:root {
  --ink: #10233f;
  --accent: #d94f04;
  --accent-dark: #a73d03;
  --sky: #f2f7fb;
  --blue: #0b5ea8;
  --red: #d54b3d;
  --gold: #f0b429;
  --green: #2f9a67;
  --panel: #edf3f7;
  --navy: #10233f;
  --navy-60: rgba(16, 35, 63, 0.6);
  --navy-70: rgba(16, 35, 63, 0.7);
}

.hs-form-card {
  display: grid;
  gap: 0.55rem;
  max-width: 820px;
  padding: clamp(1.5rem, 4vw, 2.25rem);
  border-radius: 1.4rem;
  background: #fff;
  box-shadow: 0 18px 42px rgba(16, 35, 63, 0.1);
}

.hs-form-card label {
  margin-top: 0.55rem;
  font-weight: 800;
  color: var(--navy);
}

.hs-form-card input,
.hs-form-card textarea,
.hs-form-card select {
  width: 100%;
  border: 1px solid rgba(16, 35, 63, 0.16);
  border-radius: 0.9rem;
  padding: 0.85rem 1rem;
  background: #fff;
}

.nb-start-flow-hero {
  padding: 0;
  background: none;
  text-align: center;
}

.nb-start-flow-hero h1 {
  max-width: 900px;
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 6vw, 5rem);
  line-height: 0.96;
  letter-spacing: -0.04em;
}

.nb-start-flow-hero .hs-eyebrow {
  margin: 0 0 0.7rem;
  color: var(--accent);
  font-size: 0.86rem;
  font-weight: 900;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.nb-start-flow-hero .hs-lede {
  max-width: 760px;
  margin: 1rem auto 0;
  color: var(--navy-70);
  font-size: clamp(1.08rem, 2vw, 1.25rem);
  line-height: 1.65;
}

.nb-start-flow-hero h1 {
  margin-left: auto;
  margin-right: auto;
}

.nb-start-flow {
  padding: 0;
  margin-top: 2rem;
  background: #fff;
}

.nb-start-shell {
  display: grid;
  gap: clamp(1.5rem, 4vw, 2.5rem);
  padding: clamp(1.4rem, 4vw, 2.25rem);
  border-radius: 1.35rem;
  background: linear-gradient(180deg, #f8fbff 0%, #fff 42%);
  border: 1px solid rgba(16, 35, 63, 0.08);
  box-shadow: 0 22px 54px rgba(16, 35, 63, 0.09);
}

.nb-start-intro {
  display: grid;
  gap: 0.45rem;
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
}

.nb-start-intro h1 {
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.8rem, 5.2vw, 4rem);
  line-height: 1.04;
}

.nb-start-intro .nb-static-page__lede {
  margin: 0;
  color: var(--navy-70);
}

.nb-start-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 3rem);
}

.nb-start-hero__copy h1 {
  max-width: 860px;
  margin-bottom: 1rem;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.65rem, 5vw, 4.6rem);
  line-height: 0.98;
}

.nb-start-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1.4rem;
}

.nb-start-hero__image {
  overflow: hidden;
  border-radius: 1.2rem;
  background: #dcebf5;
  box-shadow: 0 18px 44px rgba(16, 35, 63, 0.13);
}

.nb-start-hero__image img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.nb-start-flow__choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2.4vw, 1.45rem);
  margin: 0;
}

.nb-start-flow-card {
  display: flex;
  flex-direction: column;
  min-height: 240px;
  padding: clamp(1.2rem, 2.4vw, 1.55rem);
  border-radius: 1.5rem;
  color: var(--ink);
  text-decoration: none;
  background: #fff;
  border: 1px solid rgba(16, 35, 63, 0.1);
  box-shadow: 0 24px 52px rgba(16, 35, 63, 0.1);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.nb-start-flow-card:hover,
.nb-start-flow-card:focus {
  color: var(--ink);
  transform: translateY(-4px);
  box-shadow: 0 30px 64px rgba(16, 35, 63, 0.16);
}

.nb-start-flow-card--family {
  border-top: 0.55rem solid var(--green);
}

.nb-start-flow-card--coop {
  border-top: 0.55rem solid var(--blue);
}

.nb-start-flow-card h2 {
  margin: 0.1rem 0 0.55rem;
  color: var(--ink);
  font-size: clamp(1.75rem, 3.2vw, 2.2rem);
  line-height: 1.05;
}

.nb-start-flow-card__stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex: 1;
}

.nb-start-flow-card__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}

.nb-start-flow-card__copy p {
  margin: 0;
  color: var(--navy-70);
  font-size: 0.98rem;
  line-height: 1.52;
}

.nb-start-flow-card__note {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  border: 1px solid rgba(11, 94, 168, 0.18);
  background: rgba(11, 94, 168, 0.08);
  color: var(--blue);
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.25;
}

.nb-start-flow-card strong {
  width: fit-content;
  padding: 0.8rem 1.15rem;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
}

.nb-start-flow-card--family strong {
  background: var(--green);
}

.nb-start-flow__pricing {
  display: grid;
  justify-items: center;
  gap: 0.65rem;
  margin: clamp(1.25rem, 3vw, 1.9rem) auto 0;
  padding-bottom: 0.5rem;
  color: var(--navy-70);
  font-weight: 800;
}

.nb-start-flow__pricing p {
  margin: 0;
}

.nb-start-flow__selected {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  padding: clamp(1.2rem, 3vw, 1.65rem);
  border-radius: 1.35rem;
  background: linear-gradient(135deg, rgba(11, 94, 168, 0.08), rgba(47, 154, 103, 0.08));
  border: 1px solid rgba(16, 35, 63, 0.08);
}

.nb-start-flow__selected h2 {
  margin-bottom: 0.35rem;
  color: var(--ink);
}

.nb-start-flow__selected p {
  margin-bottom: 0;
  color: var(--navy-70);
}

.nb-coop-tier-picker {
  display: grid;
  grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
  align-items: end;
  gap: 1rem;
  max-width: 780px;
  margin-bottom: 1.25rem;
}

.nb-coop-tier-picker label {
  grid-column: 1 / -1;
  margin-bottom: -0.5rem;
  font-weight: 900;
  color: var(--ink);
}

.nb-coop-tier-picker p {
  margin: 0;
  padding: 0.75rem 1rem;
  border-radius: 999px;
  background: rgba(11, 94, 168, 0.09);
  color: var(--blue);
  font-weight: 900;
}

.nb-start-tier-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.35rem;
}

.nb-start-tier-grid--single {
  grid-template-columns: minmax(0, 460px);
}

.nb-start-tier {
  appearance: none;
  position: relative;
  display: grid;
  gap: 0.3rem;
  text-align: left;
  padding: 2.45rem 1.1rem 1.1rem;
  border-radius: 1.1rem;
  background: #fff;
  border: 1px solid rgba(16, 35, 63, 0.1);
  box-shadow: 0 12px 28px rgba(16, 35, 63, 0.07);
  cursor: pointer;
}

.nb-start-tier__selected {
  display: none;
  position: absolute;
  top: 0.65rem;
  left: 0.9rem;
  z-index: 1;
  width: fit-content;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  background: rgba(11, 94, 168, 0.12);
  color: var(--blue);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.nb-start-tier span.nb-start-tier__selected {
  display: none;
}

.nb-start-tier.is-selected {
  border-color: rgba(11, 94, 168, 0.75);
  background: linear-gradient(180deg, rgba(237, 246, 255, 0.98), #fff);
  box-shadow: 0 18px 38px rgba(11, 94, 168, 0.2);
}

.nb-start-tier.is-selected span.nb-start-tier__selected {
  display: inline-flex;
}

.nb-start-tier__ribbon {
  position: absolute;
  top: 0.65rem;
  right: 0.9rem;
  z-index: 1;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: var(--gold);
  color: var(--ink);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow: 0 6px 14px rgba(240, 180, 41, 0.28);
}

.nb-start-tier:focus-visible {
  outline: 3px solid rgba(217, 79, 4, 0.28);
  outline-offset: 3px;
}

.nb-start-tier span {
  display: block;
  color: var(--navy-70);
  font-weight: 900;
}

.nb-start-tier strong {
  display: block;
  margin: 0.3rem 0;
  color: var(--ink);
  font-size: 1.35rem;
}

.nb-start-tier__estimate {
  margin-top: -0.05rem;
  color: var(--navy-70);
  font-size: 0.82rem;
  line-height: 1.28;
}

.nb-start-tier__shared {
  margin-top: 0.15rem;
  color: var(--navy-60);
  font-size: 0.76rem;
  line-height: 1.3;
}

.nb-start-tier p {
  margin-bottom: 0;
  color: var(--navy-70);
}

.nb-start-tier em {
  width: fit-content;
  margin-top: 0.2rem;
  padding: 0.3rem 0.55rem;
  border-radius: 999px;
  background: rgba(240, 180, 41, 0.18);
  color: var(--ink);
  font-size: 0.78rem;
  font-style: normal;
  font-weight: 900;
}

.nb-start-action-form {
  max-width: 780px;
}

.nb-start-action-form__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 0.8rem;
}

.nb-start-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
  align-items: start;
  gap: clamp(1.25rem, 3vw, 2rem);
}

.nb-start-form__main {
  display: grid;
  gap: 1.25rem;
}

.nb-start-selected {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: clamp(1.2rem, 3vw, 1.65rem);
  border-radius: 1.25rem;
  background: #fff;
  border: 1px solid rgba(16, 35, 63, 0.09);
  box-shadow: 0 14px 34px rgba(16, 35, 63, 0.08);
}

.nb-start-selected--family {
  border-left: 0.45rem solid var(--green);
}

.nb-start-selected--coop {
  border-left: 0.45rem solid var(--blue);
}

.nb-start-selected h2,
.nb-start-details h2,
.nb-start-summary h2 {
  margin-bottom: 0.4rem;
  color: var(--ink);
}

.nb-start-selected p:last-child,
.nb-start-details p:last-child {
  margin-bottom: 0;
}

.nb-start-selected__price {
  width: fit-content;
  margin: 0.75rem 0 0;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(16, 35, 63, 0.08);
  color: var(--ink);
  font-size: 0.85rem;
  font-weight: 900;
  line-height: 1.2;
}

.nb-start-selected--family .nb-start-selected__price {
  background: rgba(47, 154, 103, 0.16);
  color: #1c5f45;
}

.nb-start-selected--coop .nb-start-selected__price {
  background: rgba(11, 94, 168, 0.14);
  color: #0b5ea8;
}

.nb-start-details {
  max-width: none;
}

.nb-start-checkout-note {
  margin: 0 0 1rem;
  color: var(--navy-70);
}

.nb-checkout-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0 0 1rem;
}

.nb-checkout-steps__item {
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(16, 35, 63, 0.08);
  color: var(--navy-60);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.nb-checkout-steps__item.is-active {
  background: rgba(11, 94, 168, 0.14);
  color: #0b5ea8;
}

.nb-checkout-steps__item.is-complete {
  background: rgba(47, 154, 103, 0.14);
  color: #1d6548;
}

.nb-checkout-step[hidden] {
  display: none !important;
}

.nb-billing-selector {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0 0 0.55rem;
  padding: 0;
  border: 0;
}

.nb-billing-selector legend {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 900;
}

.nb-billing-option {
  position: relative;
  display: grid;
  gap: 0.2rem;
  padding: 0.85rem 0.9rem 0.8rem;
  border-radius: 0.95rem;
  border: 1px solid rgba(16, 35, 63, 0.14);
  background: #fff;
  cursor: pointer;
}

.nb-billing-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.nb-billing-option__title {
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 900;
}

.nb-billing-option strong {
  color: var(--ink);
  font-size: 1.02rem;
  line-height: 1.2;
}

.nb-billing-option__note {
  color: var(--navy-60);
  font-size: 0.78rem;
  line-height: 1.28;
}

.nb-billing-option .nb-billing-option__note + .nb-billing-option__note {
  margin-top: -0.1rem;
}

.nb-billing-option__value {
  width: fit-content;
  margin-top: 0.2rem;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  background: rgba(47, 154, 103, 0.15);
  color: #1d6548;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.nb-billing-option:has(input:checked) {
  border-color: rgba(11, 94, 168, 0.52);
  background: linear-gradient(180deg, rgba(237, 246, 255, 0.82), #fff);
  box-shadow: 0 10px 24px rgba(11, 94, 168, 0.1);
}

.nb-billing-selector__helper {
  margin: 0 0 1rem;
  color: var(--navy-60);
  font-size: 0.85rem;
}

.nb-start-billing-social-proof {
  margin: 0 0 0.35rem;
  color: var(--navy-60);
  font-size: 0.82rem;
  font-weight: 700;
}

.nb-review-card,
.nb-payment-summary {
  display: grid;
  gap: 0.8rem;
  margin: 0 0 1rem;
  padding: 1rem;
  border: 1px solid rgba(16, 35, 63, 0.12);
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(245, 249, 255, 0.82), #fff);
}

.nb-review-card__header {
  display: grid;
  gap: 0.15rem;
}

.nb-review-card__header strong,
.nb-payment-summary strong {
  color: var(--ink);
  font-size: 1rem;
}

.nb-review-card__header span,
.nb-payment-summary p {
  margin: 0;
  color: var(--navy-70);
}

.nb-review-card__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1rem;
  margin: 0;
}

.nb-review-card__grid div {
  display: grid;
  gap: 0.2rem;
}

.nb-review-card__grid dt {
  margin: 0;
  color: var(--navy-60);
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.nb-review-card__grid dd {
  margin: 0;
  color: var(--ink);
  font-weight: 700;
  line-height: 1.35;
}

.nb-review-card__note {
  margin: 0;
  color: var(--navy-70);
  font-size: 0.84rem;
}

.nb-review-card__timeline {
  display: grid;
  gap: 0.7rem;
}

.nb-review-card__timeline-title {
  margin: 0;
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 900;
  text-transform: uppercase;
}

.nb-review-card__timeline-row {
  display: grid;
  gap: 0.2rem;
}

.nb-review-card__timeline-row strong {
  color: var(--ink);
  font-size: 0.9rem;
}

.nb-review-card__timeline-row p {
  margin: 0;
  color: var(--navy-70);
  font-size: 0.84rem;
  line-height: 1.4;
}

.nb-payment-email-block {
  display: grid;
  gap: 0.45rem;
  margin: 0 0 1rem;
}

.nb-start-action-form__actions--stacked {
  margin-bottom: 1rem;
}

.nb-start-payment-panel {
  display: grid;
  gap: 0.55rem;
  margin: 0 0 1rem;
}

.nb-start-payment-panel__label {
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 900;
}

.nb-start-payment-panel__surface {
  min-height: 3.2rem;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(16, 35, 63, 0.14);
  border-radius: 0.95rem;
  background: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.nb-start-payment-panel__hint {
  margin: 0;
  color: var(--navy-60);
  font-size: 0.82rem;
}

.nb-start-payment-panel__link-note {
  margin: 0;
  color: var(--navy-70);
  font-size: 0.8rem;
}

.nb-start-payment-panel__error {
  min-height: 1.2rem;
  margin: 0;
  font-size: 0.85rem;
}

.nb-start-details__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem 1rem;
}

.nb-start-summary {
  position: sticky;
  top: 1rem;
  overflow: hidden;
  padding: clamp(1.05rem, 2.4vw, 1.35rem);
  border-radius: 1.25rem;
  background: #10233f;
  color: #fff;
  box-shadow: 0 20px 48px rgba(16, 35, 63, 0.18);
}

.nb-start-summary .nb-eyebrow,
.nb-start-summary h2 {
  color: #fff;
}

.nb-start-summary__live-price {
  margin: 0.3rem 0 0.2rem;
  color: #fff;
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
  font-weight: 900;
  line-height: 1.1;
}

.nb-start-summary__price {
  min-height: 2.6rem;
  margin-bottom: 0.9rem;
  color: rgba(255, 255, 255, 0.78);
  font-weight: 900;
}

.nb-start-summary ul {
  display: grid;
  gap: 0.5rem;
  margin: 0 0 0.85rem;
  padding-left: 1.15rem;
}

.nb-start-summary li {
  color: rgba(255, 255, 255, 0.9);
}

.nb-start-summary__billing-copy {
  min-height: 3.15rem;
  margin: 0.2rem 0 0.85rem;
}

.nb-start-summary__billing-copy p {
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.86rem;
  line-height: 1.35;
}

.nb-start-summary__billing-copy p:last-child {
  color: rgba(255, 255, 255, 0.74);
}

.nb-start-summary img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 0.85rem;
}

.nb-start-summary.is-updating .nb-start-summary__live-price,
.nb-start-summary.is-updating .nb-start-summary__price,
.nb-start-summary.is-updating .nb-start-summary__billing-copy p {
  animation: nbSummarySwap 220ms ease;
}

@keyframes nbSummarySwap {
  0% {
    opacity: 0.4;
    transform: translateY(4px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .nb-start-summary.is-updating .nb-start-summary__live-price,
  .nb-start-summary.is-updating .nb-start-summary__price,
  .nb-start-summary.is-updating .nb-start-summary__billing-copy p {
    animation: none;
  }
}

@media (max-width: 680px) {
  .nb-review-card__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.nb-start-summary--family {
  background: linear-gradient(160deg, #173f36, #10233f);
}

.nb-start-summary--coop {
  background: linear-gradient(160deg, #0b5ea8, #10233f);
}

.nb-start-summary--compact {
  max-width: 340px;
}

.hs-form-shell,
.hs-contact-card,
.hs-pricing-card {
  max-width: 860px;
}

.nb-at-home-logo {
  height: clamp(48px, 4vw, 56px);
  width: auto;
}

.nb-at-home-pricing .pricing-hero {
  text-align: center;
}

.nb-at-home-pricing .pricing-hero .eyebrow {
  margin-bottom: 0.55rem;
  color: var(--accent);
  font-size: 0.96rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.nb-at-home-pricing .pricing-hero h1 {
  max-width: 860px;
  margin: 0 auto 0.75rem;
}

.nb-at-home-pricing .pricing-hero .subtext {
  max-width: 760px;
  margin: 0 auto;
  color: var(--navy-70);
  font-size: 1.06rem;
}

.nb-at-home-pricing .billing-toggle {
  display: inline-flex;
  gap: 0.55rem;
  margin-top: 1.35rem;
  padding: 0.4rem;
  border: 1px solid rgba(16, 35, 63, 0.13);
  border-radius: 999px;
  background: #fff;
}

.nb-at-home-pricing .billing-toggle .toggle {
  border: 0;
  border-radius: 999px;
  padding: 0.62rem 1rem;
  background: transparent;
  color: var(--ink);
  font-size: 0.94rem;
  font-weight: 800;
}

.nb-at-home-pricing .billing-toggle .toggle.active {
  background: rgba(11, 94, 168, 0.12);
  color: var(--blue);
}

.nb-at-home-pricing .billing-toggle .badge {
  margin-left: 0.35rem;
  padding: 0.12rem 0.4rem;
  border-radius: 999px;
  background: rgba(47, 154, 103, 0.15);
  color: var(--green);
  font-size: 0.7rem;
  font-weight: 900;
}

.nb-at-home-pricing .pricing-social-proof {
  margin: 0.85rem auto 0;
  color: var(--navy-60);
  font-size: 0.92rem;
  font-weight: 700;
  text-align: center;
}

.nb-at-home-pricing .pricing-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  max-width: 1100px;
  margin: 40px auto;
}

.nb-at-home-pricing .pricing-card {
  display: flex;
  flex-direction: column;
  padding: 32px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(16, 35, 63, 0.1);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.05);
}

.nb-at-home-pricing .pricing-card.family {
  border-top: 0.5rem solid var(--green);
}

.nb-at-home-pricing .pricing-card.coop {
  border-top: 0.5rem solid var(--blue);
}

.nb-at-home-pricing .plan-label {
  margin: 0;
  color: var(--accent);
  font-size: 0.96rem;
  font-weight: 900;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.nb-at-home-pricing .price {
  font-size: 42px;
  font-weight: 700;
  margin: 10px 0;
  color: var(--ink);
}

.nb-at-home-pricing .price span {
  font-size: 16px;
  font-weight: 500;
  color: var(--navy-70);
}

.nb-at-home-pricing .billing-note {
  font-size: 14px;
  color: #666;
  margin-bottom: 12px;
}

.nb-at-home-pricing .yearly-note {
  font-size: 14px;
  color: var(--navy-70);
  margin-bottom: 12px;
}

.nb-at-home-pricing .value-highlight {
  background: #f4f8ff;
  padding: 10px 14px;
  border-radius: 8px;
  font-weight: 600;
  margin: 12px 0;
}

.nb-at-home-pricing .features {
  display: grid;
  gap: 0.6rem;
  margin: 0.35rem 0 1rem;
  padding-left: 0;
  list-style: none;
}

.nb-at-home-pricing .pill.subtle {
  margin-top: 16px;
  width: fit-content;
  padding: 6px 12px;
  border-radius: 20px;
  background: #eef3f8;
  font-size: 13px;
  color: var(--blue);
  font-weight: 700;
}

.nb-at-home-pricing .best-for {
  margin-top: 0.85rem;
  color: var(--navy-70);
}

.nb-at-home-pricing .cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 20px;
  padding: 14px;
  font-size: 16px;
  border-radius: 10px;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
}

.nb-at-home-pricing .cta.primary {
  background: #2e8b57;
}

.nb-at-home-pricing .cta.secondary {
  background: #1f5fa9;
}

.nb-at-home-pricing .hidden {
  display: none;
}

.nb-at-home-pricing .pricing-trust {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
  margin: 0 auto 1.75rem;
  max-width: 1100px;
}

.nb-at-home-pricing .trust-item {
  padding: 0.75rem 0.9rem;
  border-radius: 0.7rem;
  border: 1px solid rgba(16, 35, 63, 0.1);
  background: #fff;
  color: var(--navy-70);
  font-size: 0.92rem;
  font-weight: 700;
}

.nb-at-home-pricing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  margin: 2rem 0;
}

.nb-at-home-pricing-grid--primary {
  align-items: stretch;
  gap: clamp(1.25rem, 3vw, 2rem);
}

.nb-at-home-pricing-grid--tiers {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nb-at-home-pricing-grid--coop-tiers {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
  margin-top: 1.35rem;
}

.nb-at-home-plan {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: clamp(1.5rem, 3vw, 2rem);
  border-radius: 1.35rem;
  background: #fff;
  border: 1px solid rgba(16, 35, 63, 0.1);
  box-shadow: 0 18px 42px rgba(16, 35, 63, 0.09);
}

.nb-at-home-plan--family {
  border-top: 0.5rem solid var(--green);
}

.nb-at-home-plan--coop {
  border-top: 0.5rem solid var(--blue);
  box-shadow: 0 24px 52px rgba(11, 94, 168, 0.16);
}

.nb-at-home-plan--featured {
  border-top-color: var(--gold);
  box-shadow: 0 26px 58px rgba(240, 180, 41, 0.22);
}

.nb-at-home-plan h2 {
  margin-bottom: 0.65rem;
  color: var(--ink);
  font-size: clamp(2rem, 3.5vw, 3rem);
  line-height: 1.04;
}

.nb-at-home-plan__price {
  margin-bottom: 0.45rem;
  color: var(--ink);
  font-size: clamp(2rem, 4vw, 3.15rem);
  font-weight: 900;
  letter-spacing: -0.05em;
  line-height: 1;
}

.nb-at-home-plan__price span {
  margin-left: 0.3rem;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0;
  color: var(--navy-60);
}

.nb-at-home-plan__per-family {
  margin: 0.15rem 0 0.15rem;
  color: var(--navy-70);
  font-size: 0.88rem;
  line-height: 1.3;
}

.nb-at-home-plan__shared-value {
  margin: 0 0 0.7rem;
  color: var(--navy-60);
  font-size: 0.82rem;
  line-height: 1.35;
}

.nb-at-home-plan__billing-note,
.nb-at-home-plan__renew-note,
.nb-at-home-proration-note {
  margin: 0.2rem 0 0.55rem;
  color: var(--navy-60);
  font-size: 0.83rem;
  line-height: 1.35;
}

.nb-at-home-proration-note {
  margin-top: 1rem;
}

.nb-at-home-plan h2 span {
  font-family: inherit;
  font-size: 1rem;
  font-weight: 800;
  color: var(--muted, #60748d);
}

.nb-at-home-plan__year {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  width: fit-content;
  margin-bottom: 1rem;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  background: rgba(47, 154, 103, 0.12);
  color: var(--green);
  font-size: 1.15rem;
  font-weight: 900;
}

.nb-at-home-plan__year--blue {
  background: rgba(11, 94, 168, 0.12);
  color: var(--blue);
}

.nb-at-home-plan__year span {
  color: var(--navy-70);
  font-size: 0.82rem;
  font-weight: 800;
}

.nb-at-home-plan ul {
  display: grid;
  gap: 0.75rem;
  padding-left: 1.15rem;
  margin: 1rem 0 1.5rem;
}

.nb-at-home-plan .btn {
  margin-top: auto;
  align-self: flex-start;
}

.nb-at-home-plan__best {
  margin-top: auto;
  color: var(--navy-70);
}

.nb-at-home-plan--compact {
  padding: clamp(1.2rem, 2vw, 1.55rem);
  box-shadow: 0 14px 32px rgba(16, 35, 63, 0.08);
}

.nb-at-home-plan--compact h2 {
  font-size: clamp(1.7rem, 2.8vw, 2.25rem);
}

.nb-at-home-plan--compact ul {
  gap: 0.55rem;
  margin-bottom: 1.25rem;
}

.nb-at-home-coop-options {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding-top: clamp(1.75rem, 4vw, 2.5rem);
  border-top: 1px solid rgba(16, 35, 63, 0.08);
}

.nb-at-home-section-heading {
  max-width: 780px;
}

.nb-at-home-section-heading h2 {
  margin-bottom: 0.65rem;
  color: var(--ink);
  font-size: clamp(2.1rem, 4vw, 3.2rem);
}

.nb-at-home-section-heading p:last-child {
  color: var(--navy-70);
  font-size: 1.08rem;
}

.nb-at-home-section-helper {
  margin-top: 0.5rem;
  color: var(--navy-60);
  font-size: 0.9rem;
}

.nb-at-home-section-note {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 0.45rem;
  padding: 0.55rem 0.85rem;
  border-radius: 999px;
  background: rgba(11, 94, 168, 0.09);
  color: var(--blue);
  font-size: 0.95rem;
  font-weight: 900;
  line-height: 1.35;
}

.nb-at-home-plan .nb-at-home-section-note {
  align-self: flex-start;
  max-width: min(100%, 34rem);
  margin: 0.35rem 0 0.55rem;
  padding: 0.42rem 0.75rem;
  border-radius: 1rem;
}

.nb-plan-ribbon {
  position: absolute;
  top: 1rem;
  right: 1rem;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: var(--gold);
  color: var(--ink);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 8px 18px rgba(240, 180, 41, 0.28);
}

.nb-at-home-compare {
  margin-top: clamp(2.25rem, 5vw, 4rem);
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: 1.35rem;
  background: linear-gradient(180deg, #f8fbff, #fff);
  border: 1px solid rgba(16, 35, 63, 0.08);
  box-shadow: 0 18px 42px rgba(16, 35, 63, 0.07);
}

.nb-at-home-compare h2 {
  margin-bottom: 1rem;
}

.nb-at-home-compare table {
  margin-bottom: 0;
}

.nb-at-home-compare th {
  color: var(--ink);
}

.nb-at-home-compare tbody tr {
  border-color: rgba(16, 35, 63, 0.08);
}

.nb-at-home-compare td:first-child {
  color: var(--ink);
  font-weight: 800;
}

.nb-at-home-pricing-faq {
  margin-top: clamp(2.25rem, 5vw, 4rem);
}

.nb-at-home-faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.25rem;
}

.nb-at-home-faq-grid .nb-faq-item {
  align-self: start;
}

.nb-at-home-faq-grid .nb-faq-item + .nb-faq-item {
  margin-top: 0;
}

.nb-at-home-faq-grid .nb-faq-item__body {
  color: var(--navy-70);
}

.nb-at-home-faq-grid .nb-faq-item__body ul {
  margin: 0.65rem 0 1rem;
  padding-left: 1.15rem;
}

.nb-pricing-check,
.nb-pricing-no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  min-width: 3.1rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 0.88rem;
  font-weight: 900;
}

.nb-pricing-check {
  background: rgba(47, 154, 103, 0.12);
  color: var(--green);
}

.nb-pricing-no {
  background: rgba(16, 35, 63, 0.08);
  color: var(--navy-60);
}

@media (max-width: 991.98px) {
  .nb-start-hero,
  .nb-start-form {
    grid-template-columns: 1fr;
  }

  .nb-start-flow__choices,
  .nb-start-tier-grid {
    grid-template-columns: 1fr;
  }

  .nb-start-flow__selected,
  .nb-start-selected {
    align-items: flex-start;
    flex-direction: column;
  }

  .nb-coop-tier-picker {
    grid-template-columns: 1fr;
  }

  .nb-at-home-pricing-grid,
  .nb-at-home-pricing-grid--tiers,
  .nb-at-home-pricing-grid--coop-tiers,
  .nb-at-home-faq-grid {
    grid-template-columns: 1fr;
  }

  .nb-at-home-pricing .pricing-grid,
  .nb-at-home-pricing .pricing-trust {
    grid-template-columns: 1fr;
  }

  .nb-start-summary {
    position: static;
  }
}

@media (max-width: 575.98px) {
  .nb-start-shell {
    padding: 1rem;
  }

  .nb-start-details__grid {
    grid-template-columns: 1fr;
  }

  .nb-billing-selector {
    grid-template-columns: 1fr;
  }

  .nb-at-home-pricing .billing-toggle {
    width: 100%;
    justify-content: center;
  }

  .nb-at-home-pricing .price {
    font-size: 36px;
  }
}

@media (min-width: 992px) and (max-width: 1399.98px) {
  .nb-at-home-pricing-grid--tiers {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

html {
  font-size: 14px;
  position: relative;
  min-height: 100%;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

body {
  margin-bottom: 0;
  color: var(--ink);
  background: #fff;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(217, 79, 4, 0.35);
}

.navbar-brand,
.hero h1 {
  font-family: Georgia, "Times New Roman", serif;
}

.nb-topbar {
  background: #0f0f11;
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.nb-topbar__inner,
.nb-footer__sub-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.85rem 0;
}

.nb-topbar__left,
.nb-topbar__right,
.nb-footer__sub-inner > div {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.nb-topbar a,
.nb-footer a {
  color: inherit;
  text-decoration: none;
}

.nb-topbar__logout {
  margin: 0;
}

.nb-topbar__button {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
}

.nb-topbar__button:hover {
  color: #fff;
}

.nb-topbar--app {
  background: #0c1830;
}

.nb-topbar a:hover,
.nb-footer a:hover {
  color: #fff;
}

.nb-topbar__sep {
  opacity: 0.5;
}

.nb-mainnav {
  position: relative;
  z-index: 1000;
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.nb-mainnav-spacer {
  display: none;
}

.nb-mainnav.is-stuck {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 1040;
  box-shadow: 0 16px 32px rgba(16, 35, 63, 0.14);
  animation: nb-slide-down 180ms ease-out;
}

.nb-mainnav-spacer.is-active {
  display: block;
}

.nb-mainnav .nav-link {
  font-size: 0.94rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--ink);
}

.nb-mainnav .dropdown-menu {
  border: 0;
  border-top: 3px solid var(--accent);
  border-radius: 0.9rem;
  box-shadow: 0 18px 38px rgba(16, 35, 63, 0.12);
  padding: 0.75rem;
}

.nb-mainnav__cta {
  margin-left: 1.5rem;
}

.nb-mainnav__products {
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: linear-gradient(135deg, var(--accent) 0%, #ff8b2b 100%);
  box-shadow: 0 14px 28px rgba(217, 79, 4, 0.28);
  border: 0;
}

.nb-mainnav__products:hover,
.nb-mainnav__products:focus {
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 18px 34px rgba(217, 79, 4, 0.34);
}

.nb-mainnav--app {
  background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
}

.nb-mainnav--app .nav-link {
  font-size: 0.88rem;
}

.nb-mainnav--app .dropdown-menu {
  min-width: 18rem;
}

.nb-hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  background: #0d2036;
}

.nb-hero--slider {
  min-height: 84vh;
}

.nb-hero-swiper,
.nb-hero-slide {
  min-height: 84vh;
}

.nb-hero__image,
.nb-hero__overlay {
  position: absolute;
  inset: 0;
}

.nb-hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nb-hero__overlay {
  background: linear-gradient(90deg, rgba(8, 17, 29, 0.85) 0%, rgba(8, 17, 29, 0.45) 45%, rgba(8, 17, 29, 0.2) 100%);
}

.nb-hero__content {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  min-height: 78vh;
}

.nb-hero-slide__bg,
.nb-hero-slide__overlay {
  position: absolute;
  inset: 0;
}

.nb-hero-slide__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02);
}

.nb-hero-slide__overlay {
  background:
    linear-gradient(90deg, rgba(6, 14, 25, 0.88) 0%, rgba(6, 14, 25, 0.56) 42%, rgba(6, 14, 25, 0.24) 100%),
    radial-gradient(circle at 78% 30%, rgba(247, 183, 49, 0.28), transparent 28%);
}

.nb-hero-swiper__controls {
  position: absolute;
  inset: auto 0 1.75rem 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 2rem;
  pointer-events: none;
}

.nb-hero-swiper__pagination {
  position: static !important;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: auto !important;
  pointer-events: auto;
}

.nb-hero-swiper__pagination .swiper-pagination-bullet {
  width: 0.9rem;
  height: 0.9rem;
  margin: 0 !important;
  background: rgba(255, 255, 255, 0.38);
  opacity: 1;
  transition: transform 180ms ease, background-color 180ms ease;
}

.nb-hero-swiper__pagination .swiper-pagination-bullet-active {
  background: var(--accent);
  transform: scale(1.14);
}

.nb-hero-swiper__nav {
  display: flex;
  gap: 0.75rem;
  pointer-events: auto;
}

.nb-hero-swiper__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  height: 3.25rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(8, 17, 29, 0.28);
  color: #fff;
  font-size: 1rem;
  backdrop-filter: blur(10px);
  transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.nb-hero-swiper__button:hover,
.nb-hero-swiper__button:focus-visible {
  background: rgba(247, 183, 49, 0.92);
  border-color: rgba(247, 183, 49, 0.92);
  color: #12213e;
  transform: translateY(-1px);
}

.nb-hero__copy {
  max-width: 42rem;
  color: #fff;
  padding: 4rem 0;
}

.nb-eyebrow {
  margin-bottom: 0.75rem;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}

.nb-eyebrow--light {
  color: #ffd38a;
}

.nb-hero h1,
.nb-stats h2,
.nb-panel h2,
.nb-gradebook h2,
.nb-testimonials h2 {
  margin-bottom: 1rem;
  font-size: clamp(2.4rem, 5vw, 4.5rem);
  line-height: 1.05;
}

.nb-lede {
  font-size: 1.15rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.92);
}

.nb-hero-proof {
  display: inline-flex;
  width: fit-content;
  margin: 0.35rem 0 0;
  padding: 0.6rem 0.9rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  background: rgba(16, 35, 63, 0.48);
  color: #fff;
  font-weight: 900;
  line-height: 1.35;
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(10px);
}

.nb-hero__actions {
  display: flex;
  gap: 1rem;
  margin: 2rem 0 1rem;
  flex-wrap: wrap;
}

.btn-primary {
  background-color: var(--accent);
  border-color: var(--accent);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--accent-dark);
  border-color: var(--accent-dark);
}

.nb-stats {
    padding: 5rem 0;
    background: #fff;
}

.top-blue-divider,
.bottom-blue-divider {
    height: 100px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100px;
    line-height: 0;
}

.top-blue-divider {
    margin-top: -1px;
    background-image: url('/images/svg/top_divider.svg');
}

.bottom-blue-divider {
    margin-bottom: -1px;
    background-image: url('/images/svg/bottom_divider.svg');
    transform: rotateY(180deg);
}

.nb-stat {
  padding: 1.8rem;
  border-radius: 1.2rem;
  color: #fff;
  box-shadow: 0 24px 40px rgba(16, 35, 63, 0.12);
}

.nb-stat__value {
  font-size: 3rem;
  font-weight: 800;
  line-height: 1;
}

.nb-stat__label {
  margin-top: 0.5rem;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.nb-stat--blue { background: var(--blue); }
.nb-stat--red { background: var(--red); }
.nb-stat--gold { background: var(--gold); }
.nb-stat--green { background: var(--green); }

.nb-stats__copy {
    padding-left: 5rem;
}

.nb-stats__copy h2 {
    font-size: clamp(2rem, 3vw, 3.2rem);
}

.nb-home-sketch {
    font-family: "Cabin Sketch", "Trebuchet MS", sans-serif;
    letter-spacing: 0.02em;
}

.nb-home-sketch--heading {
    text-transform: uppercase;
    line-height: 1;
}

.nb-home-sketch--subheading {
    line-height: 1.05;
}

.nb-feature {
    padding: 5rem 0;
}

.nb-feature--blue {
    background: #0c71c3;
}

.nb-feature--orange {
    position: relative;
    overflow: hidden;
    background:
      radial-gradient(circle at 14% 18%, rgba(255, 196, 88, 0.45) 0%, rgba(255, 196, 88, 0) 30%),
      radial-gradient(circle at 82% 22%, rgba(255, 118, 76, 0.35) 0%, rgba(255, 118, 76, 0) 28%),
      radial-gradient(circle at 76% 78%, rgba(255, 214, 122, 0.28) 0%, rgba(255, 214, 122, 0) 26%),
      linear-gradient(135deg, #fff0d6 0%, #ffd29e 52%, #ffc076 100%);
}

.nb-feature--orange::before,
.nb-feature--orange::after {
    content: "";
    position: absolute;
    inset: auto;
    border-radius: 999px;
    pointer-events: none;
}

.nb-feature--orange::before {
    top: -6rem;
    right: -5rem;
    width: 22rem;
    height: 22rem;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0) 72%);
}

.nb-feature--orange::after {
    bottom: -7rem;
    left: -4rem;
    width: 24rem;
    height: 24rem;
    background: radial-gradient(circle, rgba(247, 98, 57, 0.24) 0%, rgba(247, 98, 57, 0) 70%);
}

.nb-feature--orange .container {
    position: relative;
    z-index: 1;
}

.nb-panel {
  background: rgba(255, 255, 255, 0.82);
  border-radius: 1.5rem;
  padding: 2.25rem;
  box-shadow: 0 28px 50px rgba(16, 35, 63, 0.1);
}

.nb-panel h2 {
  font-size: clamp(2rem, 3vw, 3rem);
}

.nb-panel ul,
.nb-gradebook ul {
  padding-left: 1.25rem;
  line-height: 1.8;
}

.nb-device-shot {
  max-width: 92%;
  filter: drop-shadow(0 20px 40px rgba(16, 35, 63, 0.18));
}

.nb-device-shot--phone {
  max-height: 34rem;
}

.nb-screenshots {
  padding: 4.5rem 0;
  background: #fff;
}

.nb-shot {
  text-align: center;
}

.nb-shot img {
  border-radius: 1rem;
  box-shadow: 0 22px 42px rgba(16, 35, 63, 0.12);
}

.nb-shot p {
  margin-top: 1.25rem;
  font-weight: 600;
}

.nb-gradebook {
  padding: 6rem 0;
  background: url('/images/home/StudentsHandsRaised.png') center/cover no-repeat;
}

.nb-gradebook__card {
  background: rgba(9, 27, 49, 0.88);
  color: #fff;
  border-radius: 1.75rem;
  padding: 2.5rem;
  box-shadow: 0 30px 60px rgba(6, 18, 34, 0.3);
}

.nb-gradebook h2 {
  color: #fff;
  font-size: clamp(2rem, 3vw, 3.25rem);
}

.nb-gradebook h3 {
  margin-top: 1.75rem;
  font-size: 1.5rem;
  color: #ffd38a;
}

.nb-testimonials {
  position: relative;
  padding: 5rem 0 6rem;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at top center, rgba(72, 145, 230, 0.22), transparent 42%),
    linear-gradient(180deg, #22395d 0%, #182a46 100%);
}

.nb-testimonials__parallax {
  position: absolute;
  inset: -10% 0;
  background:
    url('/images/home/ShapesBackground.png') center top / 980px auto repeat,
    url('/images/home/ShapesBackground.png') 490px 280px / 980px auto repeat;
  opacity: 0.96;
  filter: contrast(1.9) brightness(1.42) saturate(1.08);
  mix-blend-mode: screen;
  transform: translate3d(0, 0, 0) scale(1.08);
  will-change: transform;
  pointer-events: none;
}

.nb-testimonials .container {
  position: relative;
  z-index: 1;
}

.nb-testimonials__heading {
  text-align: center;
  margin-bottom: 2.5rem;
}

.nb-testimonials h2 {
  color: #fff;
  font-size: clamp(2rem, 3vw, 3.2rem);
}

.nb-testimonial {
  height: 100%;
  padding: 1.75rem;
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.96);
  color: var(--ink);
  border-top: 0.45rem solid transparent;
  box-shadow: 0 20px 40px rgba(4, 13, 24, 0.18);
}

.nb-testimonial p {
  line-height: 1.75;
}

.nb-testimonial h3 {
  margin: 1.5rem 0 0.35rem;
  font-size: 1rem;
  font-weight: 700;
}

.nb-testimonial span {
  color: #5f6f84;
  font-size: 0.92rem;
}

.nb-testimonial--blue { border-top-color: var(--blue); }
.nb-testimonial--orange { border-top-color: var(--accent); }
.nb-testimonial--red { border-top-color: var(--red); }

.nb-footer {
  color: rgba(255, 255, 255, 0.84);
}

.nb-footer__main {
  background: #121418;
  padding: 4.5rem 0;
}

.nb-footer--app .nb-footer__main {
  background: linear-gradient(180deg, #111927 0%, #0d1421 100%);
}

.nb-footer__logo {
  width: 180px;
  max-width: 100%;
  margin-bottom: 1rem;
}

.nb-footer h2 {
  margin-bottom: 1rem;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.nb-footer p,
.nb-footer address {
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.74);
}

.nb-footer address {
  font-style: normal;
}

.nb-footer__label {
  color: #fff;
  font-weight: 800;
}

.nb-footer__contact {
  display: grid;
  gap: 0.85rem;
}

.nb-footer__contact-row {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  align-items: start;
  gap: 0.9rem;
  margin: 0;
}

.nb-footer__contact-row--address {
  padding: 1rem 1rem 1rem 0;
  background: url('/images/home/map2.png') right center / 190px auto no-repeat;
}

.nb-footer__contact-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #ffd38a;
  font-size: 1rem;
}

.nb-footer__contact-row a,
.nb-footer__contact-row span,
.nb-footer__contact-row address {
  align-self: center;
}

.nb-footer__sub {
  background: #1b2128;
  font-size: 0.92rem;
}

.nb-footer__social a + a {
  margin-left: 1rem;
}

.nb-footer__social {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}

.nb-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  font-size: 1rem;
  transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease;
}

.nb-footer__social a:hover,
.nb-footer__social a:focus-visible {
  color: #fff;
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.28);
  transform: translateY(-1px);
}

.nb-help-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.4rem;
  height: 1.4rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--blue);
  font-size: 0.95rem;
  line-height: 1;
}

.nb-help-icon:hover,
.nb-help-icon:focus-visible {
  color: var(--gold);
}

.nb-icon-field .input-group-text {
  border-color: rgba(20, 57, 107, 0.14);
  background: linear-gradient(180deg, rgba(237, 244, 255, 0.96), rgba(229, 239, 255, 0.96));
  color: var(--blue);
  min-width: 3rem;
  justify-content: center;
  font-size: 1rem;
}

.nb-icon-field .form-control,
.nb-icon-field .form-select {
  border-left: 0;
}

.nb-icon-field .form-control:focus,
.nb-icon-field .form-select:focus {
  box-shadow: none;
}

.nb-icon-field:focus-within .input-group-text {
  border-color: rgba(13, 110, 253, 0.45);
  background: linear-gradient(180deg, rgba(226, 238, 255, 0.98), rgba(215, 231, 255, 0.98));
}

.nb-students-speak-footer h2 {
  margin-bottom: 1rem;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.nb-students-speak-footer__item {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 1rem;
  align-items: start;
  padding: 1rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.nb-students-speak-footer__item:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.nb-students-speak-footer__icon {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.06);
}

.nb-students-speak-footer__icon img {
  width: 54px;
  height: auto;
}

.nb-students-speak-footer__body h3 {
  margin: 0 0 0.45rem;
  font-size: 1rem;
}

.nb-students-speak-footer__body h3 a {
  color: #fff;
  text-decoration: none;
}

.nb-students-speak-footer__body p {
  margin-bottom: 0.45rem;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.6;
}

.nb-students-speak-footer__body h5 {
  margin: 0.2rem 0 0;
  font-size: 0.85rem;
  font-weight: 700;
  color: #c9d5e6;
}

.nb-students-speak-footer__empty {
  color: rgba(255, 255, 255, 0.72);
}

@keyframes nb-slide-down {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}

.nb-contact {
  padding: 4rem 0 5rem;
  background: linear-gradient(180deg, #f7fbff 0%, #ffffff 100%);
}

.nb-contact__card,
.nb-contact__aside {
  background: #fff;
  border-radius: 1.5rem;
  padding: 2rem;
  box-shadow: 0 24px 48px rgba(16, 35, 63, 0.1);
}

.nb-contact__header h1,
.nb-contact__aside h2,
.nb-contact__card--centered h1 {
  font-family: Georgia, "Times New Roman", serif;
}

.nb-contact__card--centered {
  max-width: 44rem;
  margin: 0 auto;
  text-align: center;
}

.nb-contact__image {
  margin-top: 1.5rem;
  max-width: 14rem;
}

.nb-contact__card--compact {
  max-width: 48rem;
  margin: 0 auto;
}

.nb-trial__aside {
  height: 100%;
}

.nb-trial__list {
  padding-left: 1.15rem;
  margin-bottom: 1.5rem;
}

.nb-trial__list li + li {
  margin-top: 0.5rem;
}

.nb-trial__honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.nb-form-errors.validation-summary-valid {
    display: none;
}

.nb-form-errors.validation-summary-errors {
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(193, 39, 45, 0.18);
    border-radius: 1rem;
    background: rgba(193, 39, 45, 0.08);
    color: #8f1f24;
    font-weight: 600;
}

.nb-form-errors ul {
    margin: 0;
    padding-left: 1.1rem;
}

.nb-admin-school-trial-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid rgba(21, 73, 145, 0.12);
    border-radius: 0.85rem;
    background: rgba(21, 73, 145, 0.04);
    font-size: 0.95rem;
}

.nb-static-page {
  padding: 4rem 0 5rem;
  background: linear-gradient(180deg, #f7fbff 0%, #ffffff 100%);
}

.nb-static-page__card {
  background: #fff;
  border-radius: 1.5rem;
  padding: 2.5rem;
  box-shadow: 0 24px 48px rgba(16, 35, 63, 0.1);
}

.nb-static-page__card h1 {
  margin-bottom: 1.25rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.2rem, 4vw, 3.6rem);
}

.nb-static-page__card p,
.nb-static-page__bullets,
.nb-static-page__list {
  font-size: 1.05rem;
  line-height: 1.9;
}

.nb-static-page__list,
.nb-static-page__bullets {
  padding-left: 1.5rem;
}

.nb-static-page__list li,
.nb-static-page__bullets li {
  margin-bottom: 1rem;
}

.nb-static-page__closing {
  margin-top: 2rem;
  font-weight: 700;
  color: var(--blue);
}

.nb-static-page__hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
}

.nb-static-page__hero > :first-child {
  flex: 1 1 auto;
  min-width: 0;
}

.nb-static-page__lede {
  max-width: none;
}

.nb-static-page__graphic {
  width: min(100%, 240px);
  height: auto;
  flex: 0 0 auto;
}

.nb-testimonials-page .nb-static-page__card {
  padding-bottom: 3rem;
}

.nb-testimonial-card {
  height: 100%;
  padding: 1.75rem;
  border-radius: 1.25rem;
  background: #fff;
  border-top: 0.45rem solid var(--blue);
  box-shadow: 0 20px 40px rgba(16, 35, 63, 0.1);
}

.nb-testimonial-card p {
  margin-bottom: 1.5rem;
  line-height: 1.8;
}

.nb-testimonial-card h2 {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 700;
}

.nb-testimonial-card span {
  color: #5f6f84;
  font-size: 0.95rem;
}

.nb-testimonial-card--blue { border-top-color: var(--blue); }
.nb-testimonial-card--green { border-top-color: var(--green); }
.nb-testimonial-card--orange { border-top-color: var(--accent); }
.nb-testimonial-card--aqua { border-top-color: #28a7b5; }
.nb-testimonial-card--red { border-top-color: var(--red); }
.nb-testimonial-card--indigo { border-top-color: #4957c8; }
.nb-testimonial-card--gold { border-top-color: var(--gold); }
.nb-testimonial-card--slate { border-top-color: #5f6f84; }
.nb-testimonial-card--purple { border-top-color: #7c4dff; }
.nb-testimonial-card--pink { border-top-color: #e05aa3; }
.nb-testimonial-card--coral { border-top-color: #ff7a59; }
.nb-testimonial-card--teal { border-top-color: #1f9d8a; }

.nb-legal-page h2,
.nb-faq-page h2,
.nb-side-card h2 {
  margin-top: 2rem;
  margin-bottom: 1rem;
  font-size: 1.3rem;
  font-weight: 800;
}

.nb-legal-page h2:first-of-type,
.nb-faq-page h2:first-of-type {
  margin-top: 0;
}

.nb-legal-page__date {
  color: var(--red);
}

.nb-faq-blocks {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin: 2rem 0 2.5rem;
}

.nb-faq-block,
.nb-side-card {
  padding: 1.5rem;
  border-radius: 1.15rem;
  background: var(--panel);
}

.nb-static-page__section-title {
  margin-top: 2rem;
}

.nb-faq-item {
  border: 1px solid rgba(16, 35, 63, 0.1);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 14px 26px rgba(16, 35, 63, 0.06);
}

.nb-faq-item + .nb-faq-item {
  margin-top: 1rem;
}

.nb-faq-item summary {
  cursor: pointer;
  list-style: none;
  padding: 1rem 1.25rem;
  font-weight: 700;
}

.nb-faq-item summary::-webkit-details-marker {
  display: none;
}

.nb-faq-item__body {
  padding: 0 1.25rem 1.25rem;
}

.nb-faq-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.nb-faq-gallery img {
  width: 100%;
  border-radius: 0.85rem;
  box-shadow: 0 16px 32px rgba(16, 35, 63, 0.12);
}

.nb-faq-shell {
  overflow: visible;
}

.nb-faq-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
  gap: 2rem;
  align-items: stretch;
  padding: clamp(1.25rem, 3vw, 2.25rem);
  margin: -0.75rem -0.75rem 2rem;
  border-radius: 2rem;
  background:
    radial-gradient(circle at 12% 8%, rgba(252, 182, 38, 0.34), transparent 34%),
    linear-gradient(135deg, #eef7ff 0%, #ffffff 48%, #fff4df 100%);
  border: 1px solid rgba(23, 51, 86, 0.08);
}

.nb-faq-hero h1 {
  max-width: 780px;
}

.nb-faq-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 1.5rem;
}

.nb-faq-hero__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
  padding: 1.5rem;
  border-radius: 1.6rem;
  color: #fff;
  background:
    linear-gradient(155deg, rgba(7, 36, 86, 0.94), rgba(0, 111, 180, 0.88)),
    url("../images/home/bgStudents.jpg") center/cover;
  box-shadow: 0 24px 50px rgba(13, 28, 66, 0.22);
}

.nb-faq-hero__panel span,
.nb-faq-answer-grid span {
  color: var(--gold);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.nb-faq-hero__panel strong {
  display: block;
  margin: 0.45rem 0 0.6rem;
  font-size: 1.45rem;
  line-height: 1.15;
}

.nb-faq-hero__panel p {
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.9);
}

.nb-faq-answer-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 2.25rem;
}

.nb-faq-answer-grid article {
  min-height: 100%;
  padding: 1.25rem;
  border-radius: 1.25rem;
  background: #fff;
  border: 1px solid rgba(23, 51, 86, 0.08);
  box-shadow: 0 16px 36px rgba(16, 35, 63, 0.08);
}

.nb-faq-answer-grid strong {
  display: block;
  margin: 0.45rem 0;
  color: var(--navy);
  font-size: 1.05rem;
}

.nb-faq-answer-grid p {
  margin-bottom: 0;
  font-size: 0.95rem;
}

.nb-faq-layout {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}

.nb-faq-nav {
  position: sticky;
  top: calc(var(--mainnav-height, 76px) + 1rem);
  display: grid;
  gap: 0.5rem;
  padding: 1rem;
  border-radius: 1.25rem;
  background: #f6f9fc;
  border: 1px solid rgba(23, 51, 86, 0.08);
}

.nb-faq-nav h2 {
  margin: 0 0 0.35rem;
  font-size: 1rem;
}

.nb-faq-nav a {
  display: block;
  padding: 0.65rem 0.75rem;
  border-radius: 999px;
  color: var(--navy);
  font-weight: 800;
  text-decoration: none;
  background: #fff;
  border: 1px solid rgba(23, 51, 86, 0.08);
}

.nb-faq-nav a:hover,
.nb-faq-nav a:focus {
  color: #fff;
  background: var(--blue);
}

.nb-faq-section {
  scroll-margin-top: calc(var(--mainnav-height, 76px) + 1.5rem);
  padding: 1.5rem;
  border-radius: 1.5rem;
  background: linear-gradient(180deg, #ffffff, #f8fbff);
  border: 1px solid rgba(23, 51, 86, 0.08);
}

.nb-faq-section + .nb-faq-section {
  margin-top: 1.5rem;
}

.nb-faq-section > h2 {
  margin-top: 0;
  font-size: clamp(1.45rem, 2vw, 2rem);
}

.nb-faq-page .nb-faq-section .nb-eyebrow {
  margin-bottom: 0.3rem;
}

.nb-at-home-faq-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 1.75rem;
}

.nb-at-home-faq-column {
  display: grid;
  align-content: start;
  gap: 1.5rem;
}

.nb-at-home-faq-column .nb-faq-section + .nb-faq-section {
  margin-top: 0;
}

.nb-faq-callout {
  margin-top: 1.5rem;
  padding: clamp(1.1rem, 3vw, 1.5rem);
  border-radius: 1.35rem;
  background: linear-gradient(135deg, rgba(11, 94, 168, 0.12), rgba(240, 180, 41, 0.16));
  border: 1px solid rgba(11, 94, 168, 0.16);
  color: var(--ink);
  box-shadow: 0 18px 42px rgba(16, 35, 63, 0.08);
}

.nb-faq-callout strong {
  display: block;
  font-size: clamp(1.25rem, 2.5vw, 1.8rem);
  line-height: 1.18;
}

.nb-faq-common {
  margin-top: 1.25rem;
  padding: clamp(1.1rem, 2.8vw, 1.5rem);
  border-radius: 1.1rem;
  border: 1px solid rgba(11, 94, 168, 0.18);
  background: linear-gradient(135deg, rgba(11, 94, 168, 0.07), rgba(16, 35, 63, 0.02));
}

.nb-faq-common > h2 {
  margin-bottom: 0.9rem;
}

.nb-faq-common-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.nb-faq-common-item {
  border: 1px solid rgba(11, 94, 168, 0.2);
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 12px 24px rgba(16, 35, 63, 0.06);
  padding: 1.1rem 1.15rem 1.15rem;
}

.nb-faq-common-item h3 {
  margin: 0 0 0.65rem;
  font-size: clamp(1.05rem, 1.5vw, 1.12rem);
  color: var(--ink);
}

.nb-faq-common-item p {
  margin: 0;
  font-size: clamp(0.99rem, 1.2vw, 1.06rem);
  line-height: 1.52;
}

.nb-faq-common-item p + p {
  margin-top: 0.6rem;
}

@media (max-width: 1200px) {
  .nb-faq-common-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .nb-faq-common-grid {
    grid-template-columns: 1fr;
  }
}

.nb-faq-page .nb-faq-item {
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.nb-faq-page .nb-faq-item[open] {
  border-color: rgba(0, 96, 168, 0.22);
  box-shadow: 0 18px 34px rgba(16, 35, 63, 0.1);
}

.nb-faq-page .nb-faq-item summary {
  position: relative;
  padding-right: 3rem;
}

.nb-faq-page .nb-faq-item summary::after {
  content: "+";
  position: absolute;
  right: 1.1rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--blue);
  font-weight: 900;
}

.nb-faq-page .nb-faq-item[open] summary::after {
  content: "-";
  background: var(--accent);
}

.nb-faq-cta {
  margin-top: clamp(2rem, 5vw, 3rem);
  padding: clamp(1.35rem, 3vw, 2rem);
  border-radius: 1.5rem;
  background: #10233f;
  color: #fff;
  text-align: center;
  box-shadow: 0 24px 52px rgba(16, 35, 63, 0.18);
}

.nb-faq-cta h2 {
  color: #fff;
  margin-bottom: 1rem;
}

.nb-faq-cta__actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.8rem;
}

.nb-faq-cta .btn-outline-primary {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.7);
}

.nb-faq-cta .btn-outline-primary:hover,
.nb-faq-cta .btn-outline-primary:focus {
  color: var(--ink);
  background: #fff;
  border-color: #fff;
}

.nb-faq-site-map {
  scroll-margin-top: calc(var(--mainnav-height, 76px) + 1.5rem);
  margin-top: 2.5rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: 1.75rem;
  background: #10233f;
  color: #fff;
}

.nb-faq-site-map h2,
.nb-faq-site-map p {
  color: #fff;
}

.nb-faq-map-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.5rem;
}

.nb-faq-map-grid article {
  display: grid;
  align-content: start;
  gap: 0.45rem;
  padding: 1rem;
  border-radius: 1.1rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.nb-faq-map-grid h3 {
  margin: 0 0 0.35rem;
  color: var(--gold);
  font-size: 1rem;
}

.nb-faq-map-grid a,
.nb-faq-map-grid span {
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.95rem;
}

.nb-faq-map-grid a:hover,
.nb-faq-map-grid a:focus {
  color: #fff;
}

@media (max-width: 1199.98px) {
  .nb-faq-answer-grid,
  .nb-faq-map-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .nb-faq-hero,
  .nb-faq-layout,
  .nb-at-home-faq-columns {
    grid-template-columns: 1fr;
  }

  .nb-faq-nav {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767.98px) {
  .nb-faq-hero {
    margin-left: 0;
    margin-right: 0;
    border-radius: 1.4rem;
  }

  .nb-faq-answer-grid,
  .nb-faq-map-grid,
  .nb-faq-nav {
    grid-template-columns: 1fr;
  }

  .nb-faq-section,
  .nb-faq-site-map {
    padding: 1rem;
    border-radius: 1.2rem;
  }
}

.nb-static-page__graphic--student {
  width: min(100%, 280px);
}

.nb-student-page__actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 2rem 0 1.5rem;
}

.nb-student-page__highlight {
  font-weight: 700;
  color: var(--blue);
}

.nb-student-feature {
  height: 100%;
  padding: 1.5rem;
  border-radius: 1.2rem;
  background: var(--panel);
}

.nb-student-feature img {
  max-width: 100%;
  border-radius: 1rem;
  box-shadow: 0 18px 32px rgba(16, 35, 63, 0.12);
}

.nb-student-feature h3 {
  margin: 1rem 0 0.75rem;
  font-size: 1.15rem;
  font-weight: 800;
}

.nb-student-page__question {
  font-size: 1.2rem;
  font-weight: 700;
}

.nb-student-page__response {
  padding: 1.5rem;
  margin: 1.5rem 0;
  border-radius: 1rem;
  background: #edf7ee;
  border-left: 0.45rem solid var(--green);
}

.nb-student-page__byline {
  color: #5f6f84;
  font-weight: 600;
}

.nb-student-dashboard__callout {
  background: linear-gradient(135deg, #f5fbff, #eef6ff);
  border: 1px solid #cfe0f4;
  border-radius: 1.5rem;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.nb-student-dashboard__code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 10rem;
  padding: 0.75rem 1.25rem;
  border-radius: 999px;
  background: #0d6efd;
  color: #fff;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.nb-student-dashboard__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}

.nb-student-dashboard__panel {
  border-radius: 1.5rem;
  border: 1px solid #dbe7f3;
  background: #fff;
  padding: 1.5rem;
  box-shadow: 0 16px 40px rgba(13, 53, 102, 0.08);
}

.nb-student-dashboard__panel-image {
  display: block;
  max-width: 180px;
  margin-bottom: 1rem;
}

.nb-student-page__intro {
  margin-bottom: 1.5rem;
}

.nb-student-speak__accordion {
  margin-top: 1rem;
}

.nb-student-speak__item {
  border: 1px solid #d7e3f2;
  border-radius: 1.25rem;
  overflow: hidden;
  margin-bottom: 1rem;
}

.nb-student-speak__item .accordion-button {
  font-weight: 700;
  color: #16325c;
  background: linear-gradient(135deg, #f4f9ff, #ecf5ff);
}

.nb-student-speak__item .accordion-button:not(.collapsed) {
  color: #16325c;
  background: linear-gradient(135deg, #eaf4ff, #e2f0ff);
  box-shadow: none;
}

.nb-student-speak__textarea {
  min-height: 10rem;
}

.nb-student-speak__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.nb-student-newzstory__summary {
  min-height: 18rem;
}

.nb-student-newzstory__lede {
  max-width: none;
}

.nb-student-newzstory__table-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.nb-student-stateknowledge__lede {
  max-width: none;
}

.nb-student-stateknowledge__gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
}

.nb-student-stateknowledge__tile {
  border-radius: 1.5rem;
  border: 1px solid #dbe7f3;
  background: linear-gradient(135deg, #f7fbff, #eef6ff);
  padding: 1.5rem;
  text-align: center;
  box-shadow: 0 16px 40px rgba(13, 53, 102, 0.08);
}

.nb-student-stateknowledge__tile img {
  max-width: 100%;
  max-height: 220px;
  object-fit: contain;
}

.nb-student-stateknowledge__official-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.nb-student-stateknowledge__stack {
  display: grid;
  gap: 1rem;
}

.nb-student-stateknowledge__representative-row {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
}

.nb-student-stateknowledge__representative-actions {
  display: flex;
  justify-content: flex-end;
}

.nb-student-stateknowledge__facts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.nb-student-stateknowledge__symbol-row {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 1rem;
  margin-top: 1rem;
}

.nb-certificates-callout {
  padding: 1.75rem;
  margin-bottom: 2rem;
  border-radius: 1.25rem;
  background: #eef6ff;
}

.nb-certificate-link img {
  width: 100%;
  border-radius: 1rem;
  box-shadow: 0 18px 30px rgba(16, 35, 63, 0.12);
}

.nb-certificate-card {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 1.5rem;
  align-items: center;
  height: 100%;
  padding: 1.5rem;
  border-radius: 1.2rem;
  background: #fff;
  box-shadow: 0 18px 32px rgba(16, 35, 63, 0.1);
  border-top: 0.45rem solid var(--blue);
}

.nb-certificate-card img {
  width: 100%;
  border-radius: 0.85rem;
}

.nb-certificate-card h2 {
  margin-top: 0;
}

.nb-certificate-card--blue { border-top-color: var(--blue); }
.nb-certificate-card--green { border-top-color: var(--green); }
.nb-certificate-card--red { border-top-color: var(--red); }
.nb-certificate-card--gold { border-top-color: var(--gold); }
.nb-certificate-card--teal { border-top-color: #1f9d8a; }

.nb-rankings-header {
  margin: 1rem 0 1.5rem;
  border-radius: 1rem;
  box-shadow: 0 18px 30px rgba(16, 35, 63, 0.12);
}

.nb-rankings-table thead th {
  background: var(--ink);
  color: #fff;
  border: 0;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.nb-rankings-table tbody td {
  vertical-align: middle;
}

.nb-rankings-table tbody tr {
  transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.nb-rankings-table tbody tr:hover {
  transform: translateY(-1px);
}

.nb-rankings-throbber {
  display: inline-flex;
  align-items: center;
  gap: 0.85rem;
  margin: 0 0 1.25rem;
  padding: 0.85rem 1.15rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(20, 57, 107, 0.08), rgba(34, 116, 205, 0.14));
  border: 1px solid rgba(34, 116, 205, 0.12);
  color: var(--ink);
  font-weight: 700;
}

.nb-rankings-throbber__spinner {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 50%;
  border: 3px solid rgba(34, 116, 205, 0.2);
  border-top-color: #1d5fae;
  animation: nb-rankings-spin 0.85s linear infinite;
}

@keyframes nb-rankings-spin {
  to {
    transform: rotate(360deg);
  }
}

.nb-rankings-row--grade-3 td {
  background: linear-gradient(90deg, rgba(255, 120, 156, 0.28), rgba(255, 214, 226, 0.88));
  border-color: rgba(214, 51, 108, 0.3);
}

.nb-rankings-row--grade-4 td {
  background: linear-gradient(90deg, rgba(255, 166, 77, 0.32), rgba(255, 233, 203, 0.9));
  border-color: rgba(245, 139, 28, 0.32);
}

.nb-rankings-row--grade-5 td {
  background: linear-gradient(90deg, rgba(255, 210, 58, 0.36), rgba(255, 245, 196, 0.9));
  border-color: rgba(210, 167, 0, 0.34);
}

.nb-rankings-row--grade-6 td {
  background: linear-gradient(90deg, rgba(124, 214, 72, 0.32), rgba(224, 248, 206, 0.9));
  border-color: rgba(88, 167, 43, 0.3);
}

.nb-rankings-row--grade-7 td {
  background: linear-gradient(90deg, rgba(45, 202, 164, 0.32), rgba(213, 247, 239, 0.9));
  border-color: rgba(25, 148, 124, 0.3);
}

.nb-rankings-row--grade-8 td {
  background: linear-gradient(90deg, rgba(86, 162, 255, 0.34), rgba(220, 238, 255, 0.9));
  border-color: rgba(48, 107, 196, 0.32);
}

.nb-rankings-row--grade-9 td {
  background: linear-gradient(90deg, rgba(122, 104, 255, 0.34), rgba(229, 224, 255, 0.9));
  border-color: rgba(96, 72, 194, 0.32);
}

.nb-rankings-row--grade-10 td {
  background: linear-gradient(90deg, rgba(206, 96, 255, 0.32), rgba(243, 223, 255, 0.9));
  border-color: rgba(156, 71, 191, 0.3);
}

.nb-rankings-row--grade-default td {
  background: linear-gradient(90deg, rgba(245, 248, 252, 0.96), rgba(252, 253, 255, 0.96));
}

.nb-rankings-row--college td {
  background: linear-gradient(90deg, rgba(227, 242, 255, 0.94), rgba(248, 251, 255, 0.94));
  border-color: rgba(33, 98, 190, 0.16);
}

.nb-college-rankings-logo {
  width: 86px;
  max-width: 100%;
  max-height: 64px;
  object-fit: contain;
  border-radius: 0.85rem;
  background: #fff;
  padding: 0.45rem;
  box-shadow: 0 12px 22px rgba(16, 35, 63, 0.08);
}

.nb-rankings-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.4rem;
  border-radius: 1.3rem;
  border: 1px solid rgba(16, 35, 63, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 249, 253, 0.98));
  box-shadow: 0 18px 32px rgba(16, 35, 63, 0.08);
  color: inherit;
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.nb-rankings-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 24px 36px rgba(16, 35, 63, 0.12);
  border-color: rgba(25, 60, 110, 0.16);
  color: inherit;
}

.nb-rankings-card__image {
  margin-bottom: 1rem;
  border-radius: 1rem;
  box-shadow: 0 18px 30px rgba(16, 35, 63, 0.12);
}

.nb-rankings-card__eyebrow {
  margin-bottom: 0.55rem;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}

.nb-rankings-card h2 {
  margin-bottom: 0.8rem;
  font-size: 1.5rem;
}

.nb-rankings-card p {
  margin-bottom: 0;
  color: var(--muted);
  line-height: 1.75;
}

.nb-rankings-preview {
  display: grid;
  gap: 0.6rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(16, 35, 63, 0.08);
}

.nb-rankings-preview__stage {
  display: grid;
  gap: 0.6rem;
}

.nb-rankings-preview__loading,
.nb-rankings-preview__empty {
  color: var(--muted);
  font-size: 0.95rem;
}

.nb-rankings-preview__item {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.7rem;
  align-items: center;
  padding: 0.7rem 0.8rem;
  border-radius: 0.95rem;
  background: rgba(248, 251, 255, 0.96);
  border: 1px solid rgba(16, 35, 63, 0.08);
}

.nb-rankings-preview__item--logo {
  grid-template-columns: auto auto 1fr;
}

.nb-rankings-preview__rank {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.2rem;
  height: 2.2rem;
  padding: 0 0.55rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #14396b, #1d5fae);
  color: #fff;
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 0.03em;
}

.nb-rankings-preview__copy {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.nb-rankings-preview__copy strong {
  color: var(--ink);
  font-size: 0.98rem;
  line-height: 1.25;
}

.nb-rankings-preview__copy span {
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.35;
}

.nb-rankings-preview__logo {
  width: 2.7rem;
  height: 2.7rem;
  object-fit: contain;
  border-radius: 0.7rem;
  background: #fff;
  padding: 0.25rem;
  box-shadow: 0 8px 16px rgba(16, 35, 63, 0.08);
}

.nb-rankings-preview__dots {
  display: flex;
  justify-content: center;
  gap: 0.35rem;
  margin-top: 0.15rem;
}

.nb-rankings-preview__dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  background: rgba(20, 57, 107, 0.18);
  transition: transform 0.2s ease, background-color 0.2s ease;
}

.nb-rankings-preview__dot.is-active {
  background: #1d5fae;
  transform: scale(1.1);
}

.nb-rankings-card__hero {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 188px;
  margin-bottom: 1rem;
  padding: 1.25rem;
  border-radius: 1rem;
  text-align: center;
  box-shadow: 0 18px 30px rgba(16, 35, 63, 0.12);
}

.nb-rankings-card__hero span {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  line-height: 1.2;
  color: #fff;
}

.nb-rankings-card__hero--monthly {
  background:
    radial-gradient(circle at top left, rgba(255, 255, 255, 0.18), transparent 38%),
    linear-gradient(135deg, #0f335f, #1c5ca8 55%, #e39b2b 100%);
}

.nb-rankings-card__hero--page {
  min-height: 220px;
  margin: 1rem 0 1.5rem;
}

.nb-player-filters {
  margin: 1rem 0 1.5rem;
}

.nb-at-home-rankings-hero {
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: 1.75rem;
  background:
    radial-gradient(circle at top right, rgba(240, 180, 41, 0.22), transparent 34rem),
    linear-gradient(135deg, #f7fbff, #fff);
  border: 1px solid rgba(16, 35, 63, 0.08);
}

.nb-at-home-rankings-hero h1 {
  margin-bottom: 0.8rem;
}

.nb-at-home-rankings-hero > p:last-of-type {
  max-width: 780px;
}

.nb-at-home-rankings-callout,
.nb-rankings-progress-callout {
  margin-top: 1.35rem;
  padding: clamp(1.1rem, 3vw, 1.6rem);
  border-radius: 1.35rem;
  background: #10233f;
  color: #fff;
  box-shadow: 0 22px 48px rgba(16, 35, 63, 0.18);
}

.nb-at-home-rankings-callout {
  display: grid;
  gap: 0.45rem;
  background: linear-gradient(135deg, #10233f, #0b5ea8);
}

.nb-at-home-rankings-callout strong,
.nb-at-home-rankings-callout span,
.nb-rankings-progress-callout strong,
.nb-rankings-progress-callout span {
  display: block;
}

.nb-at-home-rankings-callout strong,
.nb-rankings-progress-callout strong {
  font-size: clamp(1.35rem, 3vw, 2rem);
  line-height: 1.12;
}

.nb-at-home-rankings-callout span,
.nb-rankings-progress-callout span {
  margin-bottom: 0.35rem;
  color: #ffd38a;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.nb-at-home-rankings-section {
  margin-top: clamp(2rem, 5vw, 3.25rem);
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: 1.5rem;
  background: linear-gradient(180deg, #fff, #f8fbff);
  border: 1px solid rgba(16, 35, 63, 0.08);
  box-shadow: 0 16px 38px rgba(16, 35, 63, 0.07);
}

.nb-at-home-rankings-section--proof {
  border-top: 0.5rem solid var(--accent);
  box-shadow: 0 24px 56px rgba(16, 35, 63, 0.12);
}

.nb-at-home-rankings-section--cards {
  background: #f7fbff;
}

.nb-rankings-section-header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.nb-rankings-section-header h2 {
  margin-bottom: 0.35rem;
  color: var(--ink);
}

.nb-rankings-section-header p:last-child {
  margin-bottom: 0;
  color: var(--navy-70);
}

.nb-rankings-helper {
  display: inline-flex;
  width: fit-content;
  margin-top: 0.65rem;
  padding: 0.4rem 0.7rem;
  border-radius: 999px;
  background: rgba(11, 94, 168, 0.1);
  color: var(--blue) !important;
  font-weight: 900;
}

.nb-at-home-rankings-table {
  margin-bottom: 0;
}

.nb-at-home-ranking-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
}

.nb-at-home-ranking-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
}

.nb-at-home-ranking-card h3 {
  margin: 0.4rem 0 0.5rem;
  color: var(--ink);
}

.nb-at-home-ranking-card .nb-rankings-preview {
  margin-top: auto;
}

.nb-at-home-ranking-card .nb-button {
  align-self: flex-start;
  margin-top: 1rem;
}

.nb-rank-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3.1rem;
  padding: 0.32rem 0.65rem;
  border-radius: 999px;
  background: var(--blue);
  color: #fff;
  font-weight: 900;
  box-shadow: 0 8px 18px rgba(11, 94, 168, 0.22);
}

.nb-grade-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-bottom: 1rem;
}

.nb-grade-tab {
  border: 1px solid rgba(16, 35, 63, 0.14);
  border-radius: 999px;
  padding: 0.55rem 0.85rem;
  background: #fff;
  color: var(--ink);
  font-weight: 900;
}

.nb-grade-tab:hover,
.nb-grade-tab:focus,
.nb-grade-tab.is-active {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}

.nb-grade-ranking-card {
  display: grid;
  gap: 0.65rem;
  padding: clamp(1rem, 2.5vw, 1.35rem);
  border-radius: 1.2rem;
  background: #fff;
  border: 1px solid rgba(16, 35, 63, 0.08);
}

.nb-grade-ranking-card h3 {
  margin-bottom: 0.35rem;
  color: var(--ink);
}

.nb-grade-ranking-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.85rem;
  align-items: center;
  padding: 0.65rem 0;
  border-top: 1px solid rgba(16, 35, 63, 0.08);
}

.nb-grade-ranking-row span {
  font-weight: 800;
  color: var(--ink);
}

.nb-rankings-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: clamp(2rem, 5vw, 3.25rem);
}

.nb-rankings-info-card {
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: 1.5rem;
  background: #fff;
  border: 1px solid rgba(16, 35, 63, 0.08);
  box-shadow: 0 16px 38px rgba(16, 35, 63, 0.07);
}

.nb-rankings-info-card h2 {
  color: var(--ink);
}

.nb-rankings-info-card ul {
  display: grid;
  gap: 0.45rem;
  margin: 0.8rem 0 1rem;
}

.nb-rankings-progress-callout {
  background: linear-gradient(135deg, var(--green), var(--blue));
}

.nb-rankings-progress-callout p {
  max-width: 760px;
  margin: 0.65rem 0 0;
  color: rgba(255, 255, 255, 0.9);
}

@media (max-width: 991.98px) {
  .nb-rankings-info-grid,
  .nb-at-home-ranking-cards {
    grid-template-columns: 1fr;
  }

  .nb-grade-ranking-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .nb-grade-ranking-row strong {
    grid-column: 2;
  }
}

.nb-login-page {
  min-height: 60vh;
}

.nb-login-card {
  max-width: 36rem;
  margin: 0 auto;
  padding: 2.5rem;
  border-radius: 1.5rem;
  background: #fff;
  box-shadow: 0 24px 48px rgba(16, 35, 63, 0.1);
}

.nb-register-card {
  max-width: 50rem;
  margin: 0 auto;
  padding: 2.5rem;
  border-radius: 1.5rem;
  background: #fff;
  box-shadow: 0 24px 48px rgba(16, 35, 63, 0.1);
}

.nb-login-card h1 {
  margin-bottom: 1rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.2rem, 4vw, 3.4rem);
}

.nb-register-card h1 {
  margin-bottom: 1rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
}

.nb-register-tip,
.nb-register-callout {
  padding: 1rem 1.15rem;
  border-radius: 1rem;
  background: #f5f8fc;
  border: 1px solid rgba(10, 77, 140, 0.08);
}

.nb-register-tip {
  height: 100%;
  display: grid;
  align-content: center;
  color: var(--muted);
}

.nb-register-callout {
  margin-top: 1.5rem;
}

.nb-button--small {
  padding: 0.65rem 1rem;
  font-size: 0.82rem;
  white-space: nowrap;
}

.nb-school-teacher-list {
  display: grid;
  gap: 1rem;
}

.nb-school-teacher-item {
  padding: 1rem 1.1rem;
  border-radius: 0.95rem;
  background: #ffffff;
  border: 1px solid rgba(10, 77, 140, 0.1);
  box-shadow: 0 8px 20px rgba(20, 57, 107, 0.06);
}

.nb-school-teacher-item__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.55rem;
}

.nb-school-teacher-item__remove-form {
  margin: 0;
}

.nb-account-settings-stack {
  display: grid;
  gap: 1.25rem;
}

.nb-account-settings-field {
  display: grid;
  gap: 0.55rem;
}

.nb-account-settings-field h3 {
  margin-bottom: 0;
  font-size: 1.1rem;
}

.nb-account-settings-field--divider {
  padding-top: 1.1rem;
  border-top: 1px solid rgba(10, 77, 140, 0.12);
}

.nb-account-settings-readonly {
  min-height: 3.4rem;
  display: flex;
  align-items: center;
  padding: 0.85rem 1rem;
  border-radius: 0.9rem;
  background: #ffffff;
  border: 1px solid rgba(10, 77, 140, 0.12);
  color: #163052;
  font-weight: 600;
}

.nb-account-settings-help {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 0.94rem;
}

@media (max-width: 768px) {
  .nb-school-teacher-item__header {
    flex-direction: column;
    align-items: flex-start;
  }
}

.nb-college-picker {
  display: grid;
  gap: 1rem;
}

.nb-college-picker__intro {
  padding: 1.1rem 1.2rem;
  border-radius: 1.15rem;
  border: 1px solid rgba(10, 77, 140, 0.08);
  background: linear-gradient(180deg, #fbfdff 0%, #f3f8ff 100%);
}

.nb-college-picker__title {
  margin-bottom: 0.9rem;
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--ink);
}

.nb-college-picker__link {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  font: inherit;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 0.2rem;
}

.nb-college-picker__selected {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 1.1rem;
  align-items: center;
  padding: 1.2rem;
  border-radius: 1.25rem;
  border: 1px solid rgba(10, 77, 140, 0.08);
  background: linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%);
  box-shadow: 0 16px 28px rgba(16, 35, 63, 0.06);
}

.nb-college-picker__selected.is-empty {
  opacity: 0.86;
}

.nb-college-picker__selected-logo-wrap {
  display: grid;
  place-items: center;
  width: 120px;
  height: 120px;
  padding: 0.8rem;
  border-radius: 1.25rem;
  background: linear-gradient(180deg, #f9fbff, #edf4fc);
}

.nb-college-picker__selected-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.nb-college-picker__selected-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 1rem;
  font-size: 2rem;
  font-weight: 800;
  color: var(--blue);
  background: rgba(10, 77, 140, 0.08);
}

.nb-college-picker__selected-copy h3 {
  margin: 0 0 0.5rem;
  font-size: 1.35rem;
}

.nb-college-picker__selected-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

.nb-college-picker__selected-label {
  display: inline-block;
  margin-bottom: 0.35rem;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.nb-college-picker__selected-copy p {
  margin-bottom: 0.4rem;
  color: #46576c;
}

.nb-college-picker__modal {
  border: 0;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 28px 60px rgba(16, 35, 63, 0.16);
}

.nb-college-picker__conference + .nb-college-picker__conference {
  margin-top: 2rem;
}

.nb-college-picker__conference-head {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1rem;
}

.nb-college-picker__conference-head h3 {
  margin: 0;
  font-size: 1.35rem;
}

.nb-college-picker__conference-head p {
  margin: 0.2rem 0 0;
  color: #5f6f84;
}

.nb-college-picker__conference-logo {
  width: 72px;
  height: 72px;
  object-fit: contain;
  padding: 0.45rem;
  border-radius: 1rem;
  background: linear-gradient(180deg, #ffffff, #f3f7fd);
  box-shadow: 0 14px 28px rgba(16, 35, 63, 0.08);
}

.nb-college-picker__teams {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.9rem;
}

.nb-college-picker__team {
  display: grid;
  gap: 0.7rem;
  align-content: start;
  justify-items: center;
  padding: 1rem 0.9rem;
  border: 1px solid rgba(10, 77, 140, 0.1);
  border-radius: 1.25rem;
  background: #fff;
  text-align: center;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

.nb-college-picker__team:hover,
.nb-college-picker__team:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(217, 79, 4, 0.35);
  box-shadow: 0 16px 28px rgba(16, 35, 63, 0.1);
}

.nb-college-picker__team.is-selected {
  border-color: rgba(217, 79, 4, 0.45);
  background: linear-gradient(180deg, #fff7ef 0%, #ffffff 100%);
  box-shadow: 0 18px 32px rgba(217, 79, 4, 0.14);
}

.nb-college-picker__team-logo-wrap {
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  padding: 0.5rem;
  border-radius: 1rem;
  background: linear-gradient(180deg, #f9fbff, #edf4fc);
}

.nb-college-picker__team-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.nb-college-picker__team-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 0.85rem;
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--blue);
  background: rgba(10, 77, 140, 0.08);
}

.nb-college-picker__team-name {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.35;
}

.nb-products-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-bottom: 2rem;
}

.nb-products-summary > div {
  padding: 1.25rem 1.5rem;
  border-radius: 1.15rem;
  background: var(--panel);
}

.nb-products-summary strong,
.nb-products-summary span {
  display: block;
}

.nb-products-summary__label {
  margin-bottom: 0.45rem;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.nb-products-summary__roles {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.nb-role-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: #fff;
  font-size: 0.85rem;
  font-weight: 700;
}

.nb-products-alert {
  margin-bottom: 2rem;
}

.nb-static-page__graphic--teacher {
  max-width: 320px;
}

.nb-weekly-interactive-page .nb-static-page__graphic--teacher,
.nb-primer-interactive-page .nb-static-page__graphic--teacher {
  padding: 0.85rem;
  border-radius: 26px;
  background:
    radial-gradient(circle at top left, rgba(255, 196, 92, 0.34) 0%, rgba(255, 196, 92, 0) 38%),
    linear-gradient(145deg, #10234e 0%, #1f3f8b 38%, #0d1c42 100%);
  border: 1px solid rgba(255, 204, 118, 0.45);
  box-shadow:
    0 22px 48px rgba(13, 28, 66, 0.28),
    0 0 0 8px rgba(255, 255, 255, 0.72),
    0 0 26px rgba(71, 142, 255, 0.18);
  transform: translateY(-2px) rotate(-1.2deg);
}

.nb-static-page__graphic--print {
  max-width: 240px;
}

.nb-teacher-offer {
    display: grid;
    grid-template-columns: minmax(220px, 260px) 1fr;
    gap: 1.5rem;
    height: 100%;
    padding: 1.5rem;
    border: 1px solid rgba(23, 51, 86, 0.12);
    border-radius: 24px;
    background: linear-gradient(180deg, #f9fbff 0%, #eef5ff 100%);
  }
  
.nb-teacher-offer__media {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    align-self: start;
}

.nb-teacher-offer__media-link {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.75rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid rgba(23, 51, 86, 0.1);
    box-shadow: 0 16px 32px rgba(16, 35, 63, 0.08);
    color: var(--navy);
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.nb-teacher-offer__media-link:hover,
.nb-teacher-offer__media-link:focus-visible {
    transform: translateY(-2px);
    border-color: rgba(12, 113, 195, 0.35);
    box-shadow: 0 18px 34px rgba(12, 113, 195, 0.16);
    color: var(--navy);
}

.nb-teacher-offer__media-link img {
    width: 100%;
    height: 170px;
    object-fit: contain;
    align-self: center;
    justify-self: center;
}

.nb-teacher-offer__media-link span {
    display: block;
    font-weight: 800;
    font-size: 0.92rem;
    text-align: center;
}

.nb-teacher-offer h3 {
  margin-bottom: 0.75rem;
  font-size: 1.3rem;
}

.nb-teacher-offer p {
  margin-bottom: 1rem;
}

.nb-weekly-interactive-page .nb-teacher-offer {
  grid-template-columns: 180px 1fr;
  gap: 1.25rem;
  padding: 1.35rem;
  border-radius: 18px;
  background: radial-gradient(circle at top, #f5f9ff 0%, #e8f1fb 100%);
  box-shadow: none;
}

.nb-weekly-interactive-page .nb-teacher-offer img {
  width: auto;
  max-width: 100%;
  max-height: 170px;
  align-self: center;
  justify-self: center;
}

.nb-weekly-interactive-page .nb-teacher-offer img,
.nb-primer-interactive-page .nb-static-page__graphic--teacher {
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.nb-weekly-interactive-page .nb-teacher-offer img {
  padding: 0.7rem;
  border-radius: 22px;
  background:
    radial-gradient(circle at top left, rgba(255, 197, 108, 0.34) 0%, rgba(255, 197, 108, 0) 42%),
    linear-gradient(150deg, #10224d 0%, #193875 48%, #0d1c42 100%);
  border: 1px solid rgba(255, 205, 126, 0.42);
  box-shadow:
    0 18px 38px rgba(13, 28, 66, 0.18),
    0 0 0 6px rgba(255, 255, 255, 0.72),
    0 0 22px rgba(71, 142, 255, 0.14);
}

.nb-weekly-interactive-page .nb-static-page__graphic--teacher:hover,
.nb-primer-interactive-page .nb-static-page__graphic--teacher:hover,
.nb-weekly-interactive-page .nb-teacher-offer img:hover {
  transform: translateY(-5px) rotate(-1.2deg) scale(1.02);
  box-shadow:
    0 28px 56px rgba(13, 28, 66, 0.34),
    0 0 0 8px rgba(255, 255, 255, 0.82),
    0 0 30px rgba(255, 184, 76, 0.2);
}

.nb-weekly-interactive-page .nb-teacher-offer__actions {
  margin-top: 1rem;
}

.nb-teacher-offer__actions,
.nb-teacher-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 1.25rem;
}

.nb-teacher-demo-section {
  margin-top: 1.5rem;
}

.nb-teacher-demo-section__title {
  margin-bottom: 1.25rem;
  font-size: 1.45rem;
}

.nb-teacher-demo-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}

.nb-teacher-demo-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  text-align: center;
}

.nb-teacher-demo-tile img {
  width: 100%;
  max-width: 340px;
  height: 170px;
  object-fit: contain;
  border: 0;
}

.nb-teacher-demo-divider {
  margin: 2rem 0;
  border-top-color: rgba(23, 51, 86, 0.12);
}

.nb-teacher-rules details {
  border: 1px solid rgba(23, 51, 86, 0.14);
  border-radius: 20px;
  background: #f8fbff;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
}

.nb-teacher-rules summary {
  cursor: pointer;
  font-weight: 800;
  color: var(--navy);
  list-style: none;
}

.nb-teacher-rules summary::-webkit-details-marker {
  display: none;
}

.nb-teacher-upgrade-disclosure {
  padding: 1.25rem 1.5rem;
}

.nb-teacher-upgrade-disclosure summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  list-style: none;
  font-size: 1.75rem;
  font-weight: 800;
  color: var(--navy);
}

.nb-teacher-upgrade-disclosure summary::-webkit-details-marker {
  display: none;
}

.nb-teacher-upgrade-disclosure summary::after {
  content: "+";
  flex: 0 0 auto;
  margin-left: 1rem;
  font-size: 1.8rem;
  line-height: 1;
  color: var(--accent);
}

.nb-teacher-upgrade-disclosure[open] summary::after {
  content: "-";
}

.nb-teacher-upgrade-disclosure__body {
  margin-top: 1rem;
}

.nb-teacher-rule__body {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 1.25rem;
  margin-top: 1rem;
  align-items: start;
}

.nb-teacher-rule__body img {
  width: 100%;
  border-radius: 18px;
  box-shadow: 0 20px 40px rgba(23, 51, 86, 0.12);
}

.nb-interactive-rules .nb-register-callout {
  margin: 1.5rem 0;
}

.nb-demo-body {
  margin: 0;
  background: #0c1f3f;
}

.nb-product-card {
  height: 100%;
  padding: 1.6rem;
  border-radius: 1.2rem;
  background: #fff;
  border-top: 0.45rem solid var(--blue);
  box-shadow: 0 18px 34px rgba(16, 35, 63, 0.1);
}

.nb-product-card h2 {
  margin-bottom: 0.85rem;
  font-size: 1.25rem;
  font-weight: 800;
}

.nb-product-card p {
  margin-bottom: 1.25rem;
}

.nb-product-card__actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.nb-product-card--disabled {
  opacity: 0.58;
  filter: saturate(0.72);
}

.nb-product-card__actions--disabled {
  pointer-events: none;
}

.nb-product-card__actions--disabled .nb-button {
  opacity: 0.82;
  box-shadow: none;
}

.nb-teacher-dashboard__card--disabled {
  position: relative;
}

.nb-teacher-dashboard__card--disabled::after {
  content: "Access Paused";
  position: absolute;
  top: 1rem;
  right: 1rem;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  background: rgba(15, 34, 66, 0.08);
  color: #233a63;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.nb-teacher-dashboard__disabled-note {
  margin: 0.85rem 0 0;
  color: var(--muted);
  font-size: 0.95rem;
}

.nb-teacher-code--masked {
  letter-spacing: 0.16em;
  user-select: none;
}

.nb-quizbowl-unavailable__copy,
.nb-quizbowl-unavailable__copy .nb-static-page__lede {
  max-width: none;
}

.nb-quizbowl-unavailable__dates {
  display: grid;
  gap: 0.65rem;
}

.nb-quizbowl-unavailable__date-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0;
  padding: 0.8rem 1rem;
  border: 1px solid rgba(25, 60, 110, 0.12);
  border-radius: 0.95rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 250, 255, 0.96));
  color: var(--ink);
}

.nb-quizbowl-unavailable__date-copy {
  min-width: 0;
}

.nb-quizbowl-unavailable__date-copy strong {
  display: block;
  font-size: 1rem;
  line-height: 1.35;
}

.nb-quizbowl-unavailable__date-status {
  flex-shrink: 0;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  background: rgba(15, 34, 66, 0.08);
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 700;
}

.nb-quizbowl-unavailable__date-item--past {
  opacity: 0.6;
  background: linear-gradient(180deg, rgba(248, 249, 252, 0.96), rgba(241, 244, 248, 0.94));
}

.nb-quizbowl-unavailable__date-item--past .nb-quizbowl-unavailable__date-copy strong {
  text-decoration: line-through;
  text-decoration-thickness: 2px;
}

.nb-quizbowl-unavailable__date-item--active {
  border-color: rgba(22, 163, 74, 0.24);
  background: linear-gradient(180deg, rgba(241, 253, 246, 0.98), rgba(233, 249, 241, 0.96));
}

.nb-quizbowl-unavailable__date-item--active .nb-quizbowl-unavailable__date-status {
  background: rgba(22, 163, 74, 0.12);
  color: #16703a;
}

.nb-quizbowl-unavailable__date-item--upcoming .nb-quizbowl-unavailable__date-status {
  background: rgba(37, 99, 235, 0.1);
  color: #244f9f;
}

@media (max-width: 767.98px) {
  .nb-quizbowl-unavailable__date-item {
    align-items: flex-start;
    flex-direction: column;
  }

  .nb-quizbowl-unavailable__date-status {
    align-self: flex-start;
  }
}

.nb-product-card--blue { border-top-color: var(--blue); }
.nb-product-card--orange { border-top-color: var(--accent); }
.nb-product-card--green { border-top-color: var(--green); }
.nb-product-card--slate { border-top-color: #5f6f84; }
.nb-product-card--purple { border-top-color: #7c4dff; }
.nb-product-card--gold { border-top-color: var(--gold); }
.nb-product-card--red { border-top-color: var(--red); }

.nb-certificate-sticker {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.85rem;
  height: 100%;
  padding: 1.2rem;
  border-radius: 1.15rem;
  background: linear-gradient(180deg, #ffffff 0%, #f4f8ff 100%);
  border: 1px solid rgba(25, 60, 110, 0.12);
  box-shadow: 0 14px 30px rgba(25, 60, 110, 0.08);
  color: var(--ink);
  text-decoration: none;
  text-align: center;
}

.nb-certificate-sticker:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(25, 60, 110, 0.12);
  color: var(--ink);
}

.nb-certificate-sticker img {
  max-width: 100%;
  max-height: 160px;
  object-fit: contain;
}

.nb-certificate-sticker span {
  font-weight: 700;
}

.nb-quizbowl-certificates {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(25, 118, 210, 0.08), transparent 34%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(242, 247, 255, 0.98));
}

.nb-quizbowl-certificates::after {
  content: "";
  position: absolute;
  inset: auto -2rem -2rem auto;
  width: 9rem;
  height: 9rem;
  background: radial-gradient(circle, rgba(25, 118, 210, 0.12), transparent 65%);
  pointer-events: none;
}

.nb-quizbowl-certificates__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.nb-quizbowl-certificates__header h2 {
  margin-bottom: 0.35rem;
}

.nb-certificate-link {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  color: var(--ink);
  font-weight: 700;
  text-decoration: none;
}

.nb-certificate-link:hover {
  color: var(--blue);
}

.nb-certificate-link img {
  width: 180px;
  max-width: 100%;
  border-radius: 0.9rem;
  border: 1px solid rgba(25, 60, 110, 0.12);
  box-shadow: 0 12px 24px rgba(25, 60, 110, 0.08);
}

.nb-certificate-link--list {
  justify-content: space-between;
  width: 100%;
}

.nb-certificate-link__copy {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
}

.nb-certificate-link__title {
  font-size: 1.12rem;
  font-weight: 800;
}

.nb-certificate-tier {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 0.38rem 0.9rem;
    border-radius: 999px;
    font-size: 0.86rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.18), 0 10px 18px -14px rgba(15, 23, 42, 0.7);
}

.nb-certificate-tier--newzbrain {
    background: #0b72b8;
    color: #ffffff;
}

.nb-certificate-tier--freedom {
    background: #00819b;
    color: #ffffff;
}

.nb-certificate-tier--patriotism {
    background: #d04b28;
    color: #ffffff;
}

.nb-certificate-tier--president {
    background: #e0b437;
    color: #432d00;
}

.nb-certificate-tier--perfect {
    background: linear-gradient(135deg, #e0b437, #0b72b8);
    color: #ffffff;
}

.nb-certificate-legend {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 0.9rem;
}

.nb-certificate-legend__item {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.95rem 1rem;
    border-radius: 1rem;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.18), 0 10px 18px -14px rgba(15, 23, 42, 0.7);
    font-weight: 700;
}

.nb-certificate-legend__title,
.nb-certificate-legend__range {
    color: inherit;
}

.nb-certificate-legend__range {
    font-size: 0.96rem;
}

.nb-certificate-legend__item--newzbrain {
    background: #0b72b8;
    color: #ffffff;
}

.nb-certificate-legend__item--freedom {
    background: #00819b;
    color: #ffffff;
}

.nb-certificate-legend__item--patriotism {
    background: #d04b28;
    color: #ffffff;
}

.nb-certificate-legend__item--president {
    background: #e0b437;
    color: #432d00;
}

.nb-certificate-legend__item--perfect {
    background: linear-gradient(135deg, #e0b437, #0b72b8);
    color: #ffffff;
}

.nb-answer-stack {
  display: grid;
  gap: 0.6rem;
}

.nb-quizbowl-selected-answer {
  margin-bottom: 0.9rem;
  color: var(--muted);
  font-size: 0.96rem;
}

.nb-quizbowl-selected-answer strong {
  color: var(--ink);
}

.nb-answer-pill {
  display: block;
  padding: 0.7rem 0.9rem;
  border-radius: 0.85rem;
  background: #f5f8fc;
  border: 1px solid rgba(25, 60, 110, 0.08);
}

.nb-answer-pill--correct {
  background: #e7f7ea;
  border-color: rgba(24, 124, 55, 0.28);
  color: #17643a;
  font-weight: 700;
}

.nb-answer-pill--incorrect {
  background: #fdecea;
  border-color: rgba(183, 40, 40, 0.22);
  color: #9f1f1f;
  font-weight: 700;
}

.nb-award-chip {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  height: 100%;
  padding: 0.85rem 1rem;
  border-radius: 1rem;
  border: 1px solid rgba(25, 60, 110, 0.08);
  font-weight: 700;
}

.nb-award-chip img {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.nb-award-chip--newzbrain {
  background: #0b72b8;
  color: #ffffff;
}

.nb-award-chip--freedom {
  background: #00819b;
  color: #ffffff;
}

.nb-award-chip--patriotism {
  background: #d04b28;
  color: #ffffff;
}

.nb-award-chip--president {
    background: #e0b437;
    color: #432d00;
}

.nb-award-chip--perfect {
    background: linear-gradient(135deg, #e0b437, #0b72b8);
    color: #ffffff;
}

.nb-award-chip--earned {
  box-shadow: 0 16px 28px rgba(25, 60, 110, 0.12);
  border-color: rgba(25, 60, 110, 0.18);
}

.nb-quizbowl-card {
  overflow: hidden;
}

.nb-quizbowl-page {
  padding: 2rem 0 3rem;
}

.nb-quizbowl-page[data-quizbowl-shell],
.nb-quizbowl-card[data-quizbowl-surface] {
  transition: opacity 0.24s ease, transform 0.24s ease;
}

.nb-quizbowl-page.is-transitioning-out,
.nb-quizbowl-card.is-transitioning-out {
  opacity: 0;
  transform: translateY(-0.32rem);
}

.nb-quizbowl-page.is-transitioning-in,
.nb-quizbowl-card.is-transitioning-in {
  opacity: 0;
  transform: translateY(0.38rem);
}

.nb-quizbowl-page .nb-quizbowl-card {
  padding: 1.35rem;
}

.nb-quizbowl-hero-copy {
  flex: 1 1 auto;
  min-width: 0;
}

.nb-quizbowl-lede {
  max-width: none;
}

.nb-quizbowl-reportcard__lede {
  max-width: none;
}

.nb-quizbowl-hero-image-wrap {
  flex: 0 0 min(360px, 32vw);
  max-width: 360px;
  align-self: flex-start;
  border-radius: 1.5rem;
  background: linear-gradient(180deg, rgba(245, 247, 252, 0.98), rgba(232, 238, 248, 0.96));
  border: 1px solid rgba(25, 60, 110, 0.08);
  padding: 1.15rem;
  box-shadow: 0 18px 32px rgba(25, 60, 110, 0.08);
}

.nb-quizbowl-hero-image {
  width: 100%;
  max-height: 260px;
  object-fit: contain;
  border-radius: 1rem;
}

.nb-quizbowl-rules {
  display: grid;
  gap: 0.85rem;
  padding-left: 1.2rem;
  margin: 0;
}

.nb-quizbowl-rules li {
  padding-left: 0.15rem;
}

.nb-quizbowl-awards-table {
  margin-bottom: 0;
}

.nb-teacher-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 9rem;
  padding: 0.85rem 1.1rem;
  border-radius: 0.95rem;
  background: linear-gradient(135deg, #123b72, #1b5cab);
  color: #fff;
  font-size: clamp(1.3rem, 2vw, 1.75rem);
  font-weight: 800;
  letter-spacing: 0.08em;
  box-shadow: 0 12px 24px rgba(18, 59, 114, 0.2);
}

.nb-teacher-dashboard__rankings-week {
  margin-bottom: 1rem;
  color: #415570;
  font-weight: 600;
}

.nb-teacher-dashboard__rankings {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.nb-teacher-dashboard__ranking-card {
  display: grid;
  gap: 0.6rem;
  border-radius: 20px;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(16, 42, 76, 0.12);
  background: linear-gradient(180deg, #f7fbff 0%, #edf5ff 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.nb-teacher-dashboard__ranking-card--gold {
  background: linear-gradient(135deg, #fff4bf 0%, #ffe08a 100%);
  border-color: rgba(185, 134, 11, 0.35);
}

.nb-teacher-dashboard__ranking-card--silver {
  background: linear-gradient(135deg, #f3f6fa 0%, #dbe3ee 100%);
  border-color: rgba(126, 143, 166, 0.28);
}

.nb-teacher-dashboard__ranking-card--bronze {
  background: linear-gradient(135deg, #f6d7bf 0%, #e8b186 100%);
  border-color: rgba(165, 92, 42, 0.28);
}

.nb-teacher-dashboard__ranking-label {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #415570;
}

.nb-teacher-dashboard__ranking-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.nb-teacher-dashboard__ranking-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  font-size: 1rem;
  box-shadow: 0 10px 20px rgba(16, 42, 76, 0.12);
}

.nb-teacher-dashboard__ranking-icon--gold {
  background: linear-gradient(135deg, #fff7cf 0%, #ffc93f 100%);
  color: #9b6a00;
}

.nb-teacher-dashboard__ranking-icon--silver {
  background: linear-gradient(135deg, #ffffff 0%, #d4dce8 100%);
  color: #5d6d82;
}

.nb-teacher-dashboard__ranking-icon--bronze {
  background: linear-gradient(135deg, #ffe4d2 0%, #d98a52 100%);
  color: #7e3f1d;
}

.nb-teacher-dashboard__ranking-value {
  display: flex;
  align-items: baseline;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.nb-teacher-dashboard__ranking-number {
  font-size: clamp(1.5rem, 2vw, 2rem);
  font-weight: 800;
  color: #102a4c;
  line-height: 1;
}

.nb-teacher-dashboard__ranking-count {
  font-size: 0.96rem;
  color: #526983;
  font-weight: 700;
}

.nb-teacher-dashboard__rankings-empty {
  padding: 1rem 1.1rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px dashed rgba(16, 42, 76, 0.18);
  color: #415570;
  font-weight: 600;
}

.nb-dashboard-rankings-host {
  position: relative;
}

.nb-dashboard-rankings-host__throbber {
  position: absolute;
  top: 1rem;
  right: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
  z-index: 2;
}

.nb-dashboard-rankings-host.is-loading .nb-dashboard-rankings-host__throbber {
  opacity: 1;
}

.nb-dashboard-rankings-host__throbber-image {
    display: block;
    width: 2.5rem;
    height: 2.5rem;
    object-fit: contain;
}

.nb-pending-certificates-host {
    min-height: 14rem;
}

.nb-pending-certificates-filter {
    position: relative;
}

.nb-pending-certificates-filter__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.75rem;
}

.nb-pending-certificates-filter__header h2 {
    margin-bottom: 0;
}

.nb-pending-certificates-filter__throbber {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
    flex: 0 0 auto;
}

[data-pending-certificates-host].is-loading .nb-pending-certificates-filter__throbber {
    opacity: 1;
}

@media (max-width: 991.98px) {
  .nb-teacher-dashboard__rankings {
    grid-template-columns: 1fr;
  }
}

.nb-quizbowl-topic-image {
  width: min(280px, 100%);
  max-height: 220px;
  object-fit: contain;
  border-radius: 1.25rem;
  background: linear-gradient(180deg, rgba(245, 247, 252, 0.98), rgba(232, 238, 248, 0.96));
  border: 1px solid rgba(25, 60, 110, 0.08);
  padding: 1rem;
  box-shadow: 0 18px 35px rgba(25, 60, 110, 0.08);
}

.nb-quizbowl-status-strip {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 1.15rem;
  margin-bottom: 1rem;
  padding: 0.95rem 1.05rem;
  border-radius: 1.15rem;
  background:
    radial-gradient(circle at 10% 0%, rgba(var(--quiz-accent-rgb), 0.08), transparent 18rem),
    linear-gradient(135deg, rgba(248, 251, 255, 0.98), rgba(255, 255, 255, 0.96));
  border: 1px solid rgba(25, 60, 110, 0.08);
}

.nb-quizbowl-status-main {
  display: grid;
  align-content: center;
  gap: 0.35rem;
  min-width: 0;
}

.nb-quizbowl-status-main .nb-eyebrow {
  margin: 0;
}

.nb-quizbowl-status-line {
  display: grid;
  gap: 0.28rem;
}

.nb-quizbowl-status-main h1 {
  margin: 0;
  font-size: clamp(1.65rem, 3vw, 2.35rem);
  line-height: 1;
}

.nb-quizbowl-status-line span {
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 800;
}

.nb-quizbowl-status-score {
  display: grid;
  align-content: center;
  gap: 0.35rem;
  min-width: 210px;
  padding: 0.65rem 0.75rem;
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.76);
  border: 1px solid rgba(var(--quiz-accent-rgb), 0.14);
  box-shadow: 0 12px 24px rgba(25, 60, 110, 0.06);
}

.nb-quizbowl-status-score--strong,
.nb-quizbowl-status-score--almost,
.nb-quizbowl-status-score--perfect {
  box-shadow: 0 14px 30px rgba(234, 154, 24, 0.18), 0 0 0 1px rgba(234, 154, 24, 0.12);
}

.nb-quizbowl-status-score--almost,
.nb-quizbowl-status-score--perfect {
  animation: nb-quizbowl-score-pulse 1.5s ease-in-out infinite;
}

.nb-quizbowl-status-score > div:first-child {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.nb-quizbowl-status-score strong {
  color: var(--ink);
  font-size: clamp(1.35rem, 2.5vw, 1.8rem);
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}

.nb-quizbowl-status-score p {
  margin: 0;
  color: #a35a05;
  font-size: 0.82rem;
  font-weight: 900;
}

.nb-quizbowl-streak {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.3rem 0.55rem;
  padding-top: 0.15rem;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.nb-quizbowl-streak strong {
  color: var(--quiz-accent);
  font-size: 0.9rem;
  text-transform: none;
}

.nb-quizbowl-streak em {
  flex: 1 1 100%;
  color: #a35a05;
  font-style: normal;
  opacity: 0;
  transform: translateY(0.2rem);
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.nb-quizbowl-streak.is-active {
  animation: nb-quizbowl-streak-pop 0.38s ease;
}

.nb-quizbowl-streak.is-reset strong {
  color: #8f1d2c;
}

.nb-quizbowl-streak.has-message em {
  opacity: 1;
  transform: translateY(0);
}

@keyframes nb-quizbowl-streak-pop {
  50% {
    transform: scale(1.045);
  }
}

@keyframes nb-quizbowl-score-pulse {
  50% {
    transform: translateY(-1px);
  }
}

.nb-quizbowl-timer {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  background: rgba(var(--quiz-accent-rgb), 0.1);
  color: var(--quiz-accent);
  border: 1px solid rgba(var(--quiz-accent-rgb), 0.22);
  box-shadow: none;
  flex: 0 0 auto;
}

.nb-quizbowl-timer__label {
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.84;
  white-space: nowrap;
}

.nb-quizbowl-timer__value {
  min-width: 2ch;
  font-size: 1.08rem;
  line-height: 1;
}

.nb-quizbowl-timer--warning {
  background: linear-gradient(135deg, #b45309, #d97706);
  color: #fff;
  border-color: transparent;
}

.nb-quizbowl-timer--expired {
  background: linear-gradient(135deg, #8f1d2c, #b42318);
  color: #fff;
  border-color: transparent;
  animation: nb-quizbowl-timer-pulse 0.75s ease-in-out infinite;
}

.nb-quizbowl-timer--urgent {
  background: linear-gradient(135deg, #8f1d2c, #b42318);
  color: #fff;
  border-color: transparent;
  animation: nb-quizbowl-timer-pulse 0.75s ease-in-out infinite;
}

@keyframes nb-quizbowl-timer-pulse {
  50% {
    transform: scale(1.035);
  }
}

.nb-quizbowl-running-score {
  display: grid;
  gap: 0.15rem;
  min-width: 160px;
  text-align: right;
  color: var(--muted);
  font-size: 0.95rem;
}

.nb-quizbowl-running-score strong {
  color: var(--ink);
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  line-height: 1;
}

.nb-quizbowl-theme {
  --quiz-accent: #1b5cab;
  --quiz-accent-rgb: 27, 92, 171;
  --quiz-banner: linear-gradient(135deg, rgba(18, 59, 114, 0.92), rgba(27, 92, 171, 0.74));
}

.nb-quizbowl-theme--world {
  --quiz-accent: #1b6fd6;
  --quiz-accent-rgb: 27, 111, 214;
  --quiz-banner: radial-gradient(circle at 22% 35%, rgba(116, 185, 255, 0.38), transparent 18rem), linear-gradient(135deg, #123b72, #1b6fd6);
}

.nb-quizbowl-theme--national {
  --quiz-accent: #0f3d73;
  --quiz-accent-rgb: 15, 61, 115;
  --quiz-banner: linear-gradient(135deg, #10233f, #0f5fa8 58%, #b42318);
}

.nb-quizbowl-theme--science {
  --quiz-accent: #23875a;
  --quiz-accent-rgb: 35, 135, 90;
  --quiz-banner: radial-gradient(circle at 72% 28%, rgba(130, 221, 178, 0.38), transparent 16rem), linear-gradient(135deg, #123b35, #23875a);
}

.nb-quizbowl-theme--civics {
  --quiz-accent: #17304d;
  --quiz-accent-rgb: 23, 48, 77;
  --quiz-banner: linear-gradient(135deg, #10233f, #284d78);
}

.nb-quizbowl-theme--geography {
  --quiz-accent: #0f8f90;
  --quiz-accent-rgb: 15, 143, 144;
  --quiz-banner: radial-gradient(circle at 25% 28%, rgba(112, 224, 214, 0.34), transparent 16rem), linear-gradient(135deg, #123b55, #0f8f90);
}

.nb-quizbowl-theme--culture {
  --quiz-accent: #c45a14;
  --quiz-accent-rgb: 196, 90, 20;
  --quiz-banner: radial-gradient(circle at 78% 32%, rgba(255, 196, 112, 0.36), transparent 16rem), linear-gradient(135deg, #5b2d70, #c45a14);
}

.nb-quizbowl-theme--sports {
  --quiz-accent: #2f9a67;
  --quiz-accent-rgb: 47, 154, 103;
  --quiz-banner: linear-gradient(135deg, #143c2d, #2f9a67);
}

.nb-quizbowl-score-panel {
  display: grid;
  gap: 0.65rem;
  margin-bottom: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 1.1rem;
  background: linear-gradient(180deg, rgba(248, 251, 255, 0.98), rgba(255, 255, 255, 0.98));
  border: 1px solid rgba(25, 60, 110, 0.08);
}

.nb-quizbowl-score-panel > div:first-child {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  color: var(--muted);
  font-weight: 800;
}

.nb-quizbowl-score-panel strong {
  color: var(--ink);
  font-size: clamp(1.35rem, 3vw, 2rem);
  line-height: 1;
}

.nb-quizbowl-score-track {
  height: 0.38rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(25, 60, 110, 0.08);
}

.nb-quizbowl-score-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #8ea1b8 0%, #1b6fd6 32%, #0f8f90 62%, #e58f24 86%, #f6c945 100%);
  box-shadow: 0 0 14px rgba(var(--quiz-accent-rgb), 0.2);
  transition: width 0.55s ease, background 0.3s ease, box-shadow 0.3s ease;
}

.nb-quizbowl-status-score--starting .nb-quizbowl-score-track span {
  background: linear-gradient(90deg, #9aa9bb, #6f87a4);
}

.nb-quizbowl-status-score--building .nb-quizbowl-score-track span {
  background: linear-gradient(90deg, #1b6fd6, #0f8f90);
}

.nb-quizbowl-status-score--climbing .nb-quizbowl-score-track span {
  background: linear-gradient(90deg, #0f8f90, #e58f24);
}

.nb-quizbowl-status-score--strong .nb-quizbowl-score-track span,
.nb-quizbowl-status-score--almost .nb-quizbowl-score-track span,
.nb-quizbowl-status-score--perfect .nb-quizbowl-score-track span {
  background: linear-gradient(90deg, #e58f24, #f6c945);
  box-shadow: 0 0 16px rgba(246, 201, 69, 0.52);
}

.nb-quizbowl-status-score.is-scoring {
  animation: nb-quizbowl-score-pop 0.52s ease;
}

.nb-quizbowl-score-track span.is-scoring {
  box-shadow: 0 0 0 5px rgba(246, 201, 69, 0.18), 0 0 18px rgba(246, 201, 69, 0.58);
}

@keyframes nb-quizbowl-score-pop {
  42% {
    transform: translateY(-2px) scale(1.018);
  }
}

.nb-quizbowl-question-block {
  padding: 1.1rem;
  border-radius: 1.3rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(246, 249, 253, 0.98));
  border: 1px solid rgba(25, 60, 110, 0.08);
  box-shadow: 0 18px 30px rgba(25, 60, 110, 0.06);
}

.nb-quizbowl-category-banner {
  position: relative;
  display: flex;
  align-items: flex-start;
  min-height: clamp(56px, 7vw, 72px);
  margin-bottom: 0.65rem;
  padding: 0.65rem 0.9rem;
  overflow: hidden;
  border-radius: 1.05rem;
  background: var(--quiz-banner);
  background-position: center;
  background-size: cover;
  color: #fff;
  isolation: isolate;
}

.nb-quizbowl-category-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 44px 44px;
  opacity: 0.28;
}

.nb-quizbowl-category-banner-label {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.42rem 0.65rem;
  border-radius: 999px;
  background: rgba(7, 18, 34, 0.64);
  backdrop-filter: blur(4px);
  font-size: 0.9rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.32);
}

.nb-quizbowl-category-banner .nb-quizbowl-category-icon {
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  text-shadow: none;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18);
}

.nb-quizbowl-category-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  margin-bottom: 1rem;
  padding: 0.55rem 0.65rem;
  border-radius: 0.9rem;
  background: rgba(248, 251, 255, 0.9);
  border: 1px solid rgba(25, 60, 110, 0.07);
}

.nb-quizbowl-category-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
  min-width: 0;
  color: var(--ink);
}

.nb-quizbowl-category-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 0.7rem;
  background: rgba(var(--quiz-accent-rgb), 0.12);
  color: var(--quiz-accent);
}

.nb-quizbowl-category-name {
  font-size: clamp(1rem, 1.8vw, 1.18rem);
  font-weight: 900;
}

.nb-quizbowl-point-value {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.48rem 0.85rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(var(--quiz-accent-rgb), 0.96), rgba(var(--quiz-accent-rgb), 0.78));
  border: 1px solid rgba(var(--quiz-accent-rgb), 0.25);
  color: #fff;
  font-weight: 900;
  letter-spacing: 0.01em;
  box-shadow: 0 10px 18px rgba(var(--quiz-accent-rgb), 0.14);
}

.nb-quizbowl-point-value::before {
  content: "";
  width: 0.3rem;
  height: 0.3rem;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.7;
}

.nb-quizbowl-question-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.nb-quizbowl-question-header-main {
    flex: 1 1 auto;
    min-width: 0;
}

.nb-quizbowl-question-header-side {
    display: grid;
    justify-items: end;
    gap: 1rem;
    flex: 0 0 auto;
}

.nb-quizbowl-question-title {
    font-size: clamp(1.55rem, 2.35vw, 2.1rem);
    line-height: 1.32;
    margin: 0.15rem 0 1rem;
    flex: 1 1 auto;
}

.nb-quizbowl-answer-grid {
  display: grid;
  gap: 0.55rem;
}

.nb-quizbowl-answer-option {
  position: relative;
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 0.72rem 0.9rem;
  border-radius: 0.85rem;
  background: #f5f8fc;
  border: 1px solid rgba(25, 60, 110, 0.08);
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.nb-quizbowl-answer-option:hover {
  transform: translateY(-1px);
  border-color: rgba(var(--quiz-accent-rgb), 0.28);
  box-shadow: 0 10px 18px rgba(var(--quiz-accent-rgb), 0.1);
  background: rgba(var(--quiz-accent-rgb), 0.045);
}

.nb-quizbowl-answer-option input {
  margin-top: 0.25rem;
  accent-color: var(--quiz-accent);
}

.nb-quizbowl-answer-option:has(input:checked) {
  border-color: rgba(var(--quiz-accent-rgb), 0.5);
  background: rgba(var(--quiz-accent-rgb), 0.1);
  box-shadow: 0 12px 22px rgba(var(--quiz-accent-rgb), 0.12);
}

.nb-quizbowl-answer-option.is-answer-locked:has(input:checked) {
  border-color: rgba(var(--quiz-accent-rgb), 0.68);
  background:
    linear-gradient(90deg, rgba(var(--quiz-accent-rgb), 0.12), rgba(255, 255, 255, 0.82)),
    rgba(var(--quiz-accent-rgb), 0.08);
}

.nb-quizbowl-answer-option.is-answer-locked:has(input:checked)::before {
  content: "Locked";
  position: absolute;
  top: 0.45rem;
  right: 0.7rem;
  padding: 0.18rem 0.45rem;
  border-radius: 999px;
  background: rgba(var(--quiz-accent-rgb), 0.12);
  color: var(--quiz-accent);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.nb-quizbowl-answer-option.is-answer-locked.is-correct:has(input:checked)::before,
.nb-quizbowl-answer-option.is-answer-locked.is-incorrect:has(input:checked)::before {
  content: none;
}

.nb-quizbowl-answer-option.is-correct {
  border-color: rgba(22, 163, 74, 0.55);
  background: rgba(22, 163, 74, 0.12);
  box-shadow: 0 12px 22px rgba(22, 163, 74, 0.12);
  animation: nb-quizbowl-answer-confirm 0.34s ease;
}

.nb-quizbowl-answer-option.is-correct::after {
  content: "\2713";
  display: inline-grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-left: auto;
  border-radius: 999px;
  background: #16a34a;
  color: #fff;
  font-weight: 900;
}

.nb-quizbowl-answer-option.is-incorrect {
  border-color: rgba(220, 38, 38, 0.55);
  background: rgba(220, 38, 38, 0.1);
  box-shadow: 0 12px 22px rgba(220, 38, 38, 0.1);
}

.nb-quizbowl-answer-option.is-locked {
  pointer-events: none;
}

.nb-quizbowl-form.has-feedback .nb-quizbowl-actions {
  opacity: 0.72;
}

.nb-quizbowl-actions .nb-button.is-locked {
  cursor: default;
  opacity: 0.82;
}

@keyframes nb-quizbowl-answer-confirm {
  45% {
    transform: translateY(-1px) scale(1.006);
  }
}

.nb-quizbowl-feedback {
  min-height: 0;
  margin-top: 0;
  opacity: 0;
  transform: translateY(-0.25rem);
  transition: opacity 0.22s ease, transform 0.22s ease, margin-top 0.22s ease;
}

.nb-quizbowl-feedback.is-visible {
  margin-top: 0.75rem;
  opacity: 1;
  transform: translateY(0);
}

.nb-quizbowl-feedback__panel {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.6rem;
  padding: 0.75rem 0.9rem;
  border-radius: 0.9rem;
  font-weight: 900;
  animation: nb-quizbowl-feedback-pop 0.28s ease;
}

.nb-quizbowl-feedback__panel i {
  display: inline-grid;
  place-items: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 999px;
  color: #fff;
  font-size: 0.8rem;
}

.nb-quizbowl-feedback__panel--correct {
  background: rgba(22, 163, 74, 0.12);
  color: #126c35;
  border: 1px solid rgba(22, 163, 74, 0.24);
}

.nb-quizbowl-feedback__panel--correct i {
  background: #16a34a;
}

.nb-quizbowl-feedback__panel--incorrect {
  background: rgba(220, 38, 38, 0.1);
  color: #991b1b;
  border: 1px solid rgba(220, 38, 38, 0.22);
}

.nb-quizbowl-feedback__panel--incorrect i,
.nb-quizbowl-feedback__panel--timeout i {
  background: #b42318;
}

.nb-quizbowl-feedback__panel--timeout {
  background: rgba(180, 83, 9, 0.12);
  color: #8a4b08;
  border: 1px solid rgba(180, 83, 9, 0.24);
}

@keyframes nb-quizbowl-feedback-pop {
  from {
    opacity: 0;
    transform: translateY(-0.28rem);
  }
}

.nb-quizbowl-actions {
  margin-top: 0.85rem;
}

@media (prefers-reduced-motion: reduce) {
  .nb-quizbowl-page[data-quizbowl-shell],
  .nb-quizbowl-card[data-quizbowl-surface],
  .nb-quizbowl-feedback,
  .nb-quizbowl-streak em,
  .nb-quizbowl-answer-option,
  .nb-quizbowl-score-track span {
    transition: none;
  }

  .nb-quizbowl-page.is-transitioning-out,
  .nb-quizbowl-page.is-transitioning-in,
  .nb-quizbowl-card.is-transitioning-out,
  .nb-quizbowl-card.is-transitioning-in {
    opacity: 1;
    transform: none;
  }

  .nb-quizbowl-status-score--almost,
  .nb-quizbowl-status-score--perfect,
  .nb-quizbowl-status-score.is-scoring,
  .nb-quizbowl-streak.is-active,
  .nb-quizbowl-answer-option.is-correct,
  .nb-quizbowl-feedback__panel,
  .nb-quizbowl-timer--expired,
  .nb-quizbowl-timer--urgent {
    animation: none;
  }
}

@media (max-width: 767.98px) {
  .nb-quizbowl-status-strip {
      align-items: stretch;
      flex-direction: column;
    }

    .nb-quizbowl-status-score {
        min-width: 0;
    }

  .nb-quizbowl-category-row {
      align-items: stretch;
      flex-direction: column;
    }

  .nb-quizbowl-question-header {
      flex-direction: column;
      align-items: stretch;
    }

    .nb-quizbowl-question-header-side {
        flex: none;
        justify-items: start;
    }

    .nb-quizbowl-timer {
      align-self: flex-start;
    }

    .nb-quizbowl-hero-image-wrap {
      flex: none;
      width: 100%;
      max-width: 100%;
    }
  }

.nb-quizbowl-score {
  font-size: clamp(2.5rem, 6vw, 4rem);
  line-height: 1;
  font-weight: 800;
  color: var(--blue);
  display: flex;
  align-items: flex-end;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.nb-quizbowl-score__value {
  font-size: clamp(2.05rem, 4.5vw, 3.1rem);
  line-height: 1;
  font-weight: 900;
}

.nb-quizbowl-score__total {
  font-size: clamp(0.95rem, 1.9vw, 1.35rem);
  font-weight: 600;
  color: rgba(20, 57, 107, 0.58);
  line-height: 1.2;
}

.nb-register-callout--award {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(255, 214, 102, 0.45), transparent 38%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 249, 255, 0.98));
  border: 1px solid rgba(234, 178, 64, 0.28);
  box-shadow: 0 18px 34px rgba(20, 57, 107, 0.12);
}

.nb-register-callout--award::after {
    content: "";
    position: absolute;
    inset: auto -2rem -2rem auto;
  width: 10rem;
  height: 10rem;
    background: radial-gradient(circle, rgba(255, 214, 102, 0.28), transparent 65%);
    pointer-events: none;
}

.nb-register-callout--school-code {
  background:
    radial-gradient(circle at top right, rgba(247, 183, 49, 0.18), transparent 34%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.99), rgba(240, 247, 255, 0.98));
  border: 1px solid rgba(10, 77, 140, 0.16);
  box-shadow: 0 18px 34px rgba(20, 57, 107, 0.1);
}

.nb-register-callout--school-code__label {
  color: #0c2654;
  font-size: 1.05rem;
  font-weight: 800;
}

.nb-register-callout--school-code__input {
  max-width: 24rem;
  border-width: 2px;
  border-color: rgba(10, 77, 140, 0.22);
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: #ffffff;
}

.nb-register-callout--school-code__input:focus {
  border-color: rgba(217, 79, 4, 0.42);
}

.nb-quizbowl-award {
  display: flex;
  align-items: center;
  gap: 1.2rem;
}

.nb-quizbowl-award img {
  width: 132px;
  max-width: 30%;
  object-fit: contain;
  filter: drop-shadow(0 12px 20px rgba(20, 57, 107, 0.18));
}

.nb-quizbowl-award__eyebrow {
  display: inline-flex;
  margin-bottom: 0.45rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  background: linear-gradient(135deg, #f7b731, #ffd86f);
  color: #5f3c00;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.nb-monthlychallenge-form {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(20, 39, 72, 0.08);
  border-radius: 24px;
  padding: 1.5rem;
}

.nb-monthlychallenge-result {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.nb-monthlychallenge-result img {
  width: 140px;
  max-width: 100%;
  border-radius: 18px;
  box-shadow: 0 18px 36px rgba(18, 35, 66, 0.16);
  background: #fff;
  padding: 0.5rem;
}

.nb-monthlychallenge-team-card {
  display: flex;
  flex-direction: column;
}

.nb-monthlychallenge-team-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.nb-gradebook-table-wrap {
  position: relative;
  overflow-x: auto;
}

[data-gradebook-results].is-loading {
  opacity: 0.55;
  transition: opacity 0.2s ease;
  pointer-events: none;
}

[data-manage-students-results].is-loading {
  opacity: 0.55;
  transition: opacity 0.2s ease;
  pointer-events: none;
}

.nb-gradebook-floating-scrollbar {
  position: fixed;
  bottom: 1rem;
  z-index: 5;
  display: none;
  overflow-x: auto;
  overflow-y: hidden;
  height: 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(148, 163, 184, 0.28);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
  backdrop-filter: blur(8px);
}

.nb-gradebook-floating-scrollbar.is-visible {
  display: block;
}

.nb-gradebook-floating-scrollbar__track {
  height: 1px;
}

.nb-gradebook-summary {
  color: #475569;
  font-size: 0.98rem;
}

.nb-gradebook-lede {
  max-width: none;
}

.nb-gradebook-filter-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
  gap: 1rem;
  align-items: stretch;
}

.nb-gradebook-filter-toggle {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  height: 100%;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(10, 77, 140, 0.16);
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(247, 251, 255, 0.98), rgba(236, 245, 255, 0.94));
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.nb-gradebook-filter-toggle__input {
  flex: 0 0 auto;
  width: 1.2rem;
  height: 1.2rem;
  margin-top: 0.2rem;
  accent-color: #0a4d8c;
  cursor: pointer;
}

.nb-gradebook-filter-toggle__label {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin: 0;
  cursor: pointer;
}

.nb-gradebook-filter-toggle__title {
  color: #0c2654;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.2;
}

.nb-gradebook-filter-toggle__copy {
  color: #4d6284;
  font-size: 0.95rem;
  line-height: 1.45;
}

.nb-gradebook-filter-toggle:focus-within {
  border-color: rgba(217, 79, 4, 0.35);
  box-shadow: 0 0 0 0.2rem rgba(217, 79, 4, 0.12), 0 10px 24px rgba(15, 23, 42, 0.08);
}

.nb-gradebook-dependent-filter {
  display: grid;
  align-content: center;
  gap: 0.45rem;
  height: 100%;
  padding: 0.9rem 1rem;
  border-radius: 1rem;
  background: rgba(10, 77, 140, 0.04);
  border: 1px solid rgba(10, 77, 140, 0.08);
  opacity: 0.72;
  transition: opacity 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.nb-gradebook-dependent-filter.is-enabled {
  opacity: 1;
  background: #f5f8fc;
  border-color: rgba(10, 77, 140, 0.14);
}

.nb-gradebook-dependent-filter .form-label {
  margin-bottom: 0;
  color: #0c2654;
  font-size: 0.92rem;
  font-weight: 700;
}

@media (max-width: 991.98px) {
  .nb-gradebook-filter-row {
    grid-template-columns: 1fr;
  }
}

.nb-gradebook-sort-link {
  color: inherit;
  text-decoration: none;
  font-weight: 700;
}

.nb-gradebook-sort-link:hover,
.nb-gradebook-sort-link:focus {
  text-decoration: underline;
}

.nb-manage-students-sort-link {
  color: inherit;
  text-decoration: none;
  font-weight: 700;
}

.nb-manage-students-sort-link:hover,
.nb-manage-students-sort-link:focus {
  text-decoration: underline;
}

.nb-gradebook-table th,
.nb-gradebook-table td {
  white-space: nowrap;
  vertical-align: middle;
}

.nb-gradebook-table th:first-child,
.nb-gradebook-table td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  background: #f8fbff;
}

.nb-gradebook-table th:first-child {
  z-index: 3;
  box-shadow: 12px 0 22px -16px rgba(15, 23, 42, 0.45);
}

.nb-gradebook-table td:first-child {
  z-index: 2;
  box-shadow: 12px 0 22px -16px rgba(15, 23, 42, 0.28);
  font-weight: 700;
}

.nb-gradebook-score {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3.5rem;
  padding: 0.4rem 0.7rem;
  border-radius: 0.85rem;
  background: #6f8194;
  color: #ffffff;
  font-weight: 800;
  text-decoration: none;
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.18), 0 10px 18px -14px rgba(15, 23, 42, 0.7);
}

.nb-gradebook-score:hover {
  color: #ffffff;
  transform: translateY(-1px);
}

.nb-gradebook-score--newzbrain {
  background: #0b72b8;
  color: #ffffff;
}

.nb-gradebook-score--freedom {
  background: #00819b;
  color: #ffffff;
}

.nb-gradebook-score--patriotism {
  background: #d04b28;
  color: #ffffff;
}

.nb-gradebook-score--president {
    background: #e0b437;
    color: #432d00;
}

.nb-gradebook-score--perfect {
    background: linear-gradient(135deg, #e0b437, #0b72b8);
    color: #ffffff;
}

.nb-gradebook-score--na {
    background: #d7e2ea;
    color: #5f7890;
    font-weight: 500;
  opacity: 1;
  box-shadow: none;
}

.nb-gradebook-floating-header {
  position: fixed;
  top: 4.35rem;
  z-index: 1030;
  display: none;
  overflow: hidden;
}

.nb-gradebook-floating-header.is-visible {
  display: block;
}

.nb-gradebook-floating-header__viewport {
  overflow: hidden;
}

.nb-gradebook-floating-header__viewport table {
  margin-bottom: 0;
  background: #f8fbff;
}

.nb-gradebook-floating-header__viewport th,
.nb-gradebook-floating-header__viewport td {
  white-space: nowrap;
  vertical-align: middle;
}

.nb-gradebook-floating-header__viewport th {
  background: #f8fbff;
  box-shadow: inset 0 -1px 0 rgba(148, 163, 184, 0.28);
}

.nb-gradebook-floating-header__viewport th:first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  background: #f8fbff;
  box-shadow: 12px 0 22px -16px rgba(15, 23, 42, 0.45);
}

.nb-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.9rem 1.35rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.95rem;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease, background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.nb-button:hover {
  transform: translateY(-1px);
  text-decoration: none;
}

.nb-button:disabled,
.nb-button[disabled],
.nb-button.is-disabled {
  background: #d9e1ec !important;
  border-color: #c3cedd !important;
  box-shadow: none !important;
  color: #6d7c90 !important;
  cursor: not-allowed;
  filter: none !important;
  opacity: 1;
  pointer-events: none;
  transform: none !important;
}

.nb-button--sm {
  padding: 0.7rem 1rem;
  font-size: 0.84rem;
  white-space: nowrap;
}

.nb-button--primary {
  background: linear-gradient(135deg, #0f6ec6, #0a4d8c);
  border-color: #0a4d8c;
  color: #fff;
  box-shadow: 0 12px 24px rgba(10, 77, 140, 0.18);
}

.nb-button--primary:hover {
  color: #fff;
  filter: brightness(1.03);
}

.nb-button--secondary {
  background: #fff;
  border-color: rgba(10, 77, 140, 0.18);
  color: var(--blue);
  box-shadow: 0 10px 22px rgba(26, 39, 68, 0.08);
}

.nb-button--secondary:hover {
  color: var(--blue);
  background: #f8fbff;
}

.nb-order {
  display: grid;
  gap: 2rem;
}

.nb-manage-students-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.nb-manage-students-password-cell {
  min-width: 15rem;
}

.nb-button--danger {
  background: linear-gradient(135deg, #bd2c32, #d94841);
  border-color: transparent;
  color: #fff;
}

.nb-button--danger:hover,
.nb-button--danger:focus {
  color: #fff;
  background: linear-gradient(135deg, #aa232a, #c83932);
}

.nb-manage-students-name-link {
  font-weight: 700;
  text-decoration: none;
}

.nb-manage-students-name-link:hover,
.nb-manage-students-name-link:focus {
  text-decoration: underline;
}

.nb-teacher-dashboard {
  display: grid;
  gap: 1.5rem;
}

.nb-teacher-dashboard__hero {
  align-items: center;
}

.nb-teacher-dashboard__hero-copy {
  max-width: 48rem;
}

.nb-teacher-dashboard__lede,
.nb-teacher-dashboard__section-lede {
  max-width: none;
}

.nb-teacher-dashboard__status {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1.25rem;
}

.nb-teacher-dashboard__status-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 0.85rem;
  border-radius: 999px;
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.nb-teacher-dashboard__status-pill--premium {
  background: rgba(14, 110, 198, 0.12);
  color: #0a4d8c;
}

.nb-teacher-dashboard__status-pill--core {
  background: rgba(226, 104, 12, 0.12);
  color: #a14808;
}

.nb-teacher-dashboard__status-pill--family {
  background: rgba(34, 139, 34, 0.12);
  color: #1f6c1f;
}

.nb-teacher-dashboard__status-pill--nebraska {
  background: rgba(166, 32, 32, 0.12);
  color: #8a1e1e;
}

.nb-teacher-dashboard__status-pill--trial {
  background: rgba(92, 72, 191, 0.12);
  color: #4d34b6;
}

.nb-teacher-dashboard__status-pill--school {
  background: rgba(12, 38, 84, 0.08);
  color: #33557f;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.92rem;
}

.nb-teacher-dashboard__grid {
  display: grid;
  gap: 1.5rem;
}

.nb-teacher-dashboard__panel,
.nb-teacher-dashboard__card {
  height: 100%;
}

.nb-teacher-dashboard__highlight {
  background:
    radial-gradient(circle at top right, rgba(15, 110, 198, 0.12), transparent 38%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 249, 255, 0.98));
}

.nb-teacher-dashboard__section {
  display: grid;
  gap: 1rem;
}

.nb-teacher-dashboard__pending {
  display: grid;
  gap: 0.7rem;
}

.nb-dashboard-pending-host {
  position: relative;
}

.nb-dashboard-pending-host__throbber {
  display: none;
  position: absolute;
  right: 0.75rem;
  top: 0.25rem;
  z-index: 2;
}

.nb-dashboard-pending-host.is-loading .nb-dashboard-pending-host__throbber {
  display: block;
}

.nb-dashboard-pending-host__throbber-image {
  display: block;
  height: 42px;
  width: 42px;
}

.nb-teacher-dashboard__pending-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.nb-teacher-dashboard__pending-card {
  align-items: center;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(16, 51, 95, 0.1);
  border-top-width: 4px;
  border-radius: 18px;
  color: inherit;
  display: grid;
  gap: 0.7rem;
  grid-template-columns: auto 1fr;
  min-height: 0;
  padding: 0.75rem 0.9rem;
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.nb-teacher-dashboard__pending-card.is-loading {
  opacity: 0.75;
  pointer-events: none;
}

.nb-teacher-dashboard__pending-card:hover {
  border-color: rgba(16, 51, 95, 0.18);
  box-shadow: 0 14px 28px rgba(17, 35, 67, 0.08);
  transform: translateY(-1px);
}

.nb-teacher-dashboard__pending-card--blue { border-top-color: var(--blue); }
.nb-teacher-dashboard__pending-card--gold { border-top-color: var(--gold); }
.nb-teacher-dashboard__pending-card--green { border-top-color: var(--green); }
.nb-teacher-dashboard__pending-card--red { border-top-color: var(--red); }

.nb-teacher-dashboard__pending-count {
  align-items: center;
  background: #f3f7fd;
  border-radius: 16px;
  color: #10335f;
  display: inline-flex;
  font-size: 1.25rem;
  font-weight: 800;
  justify-content: center;
  min-width: 3rem;
  padding: 0.55rem 0.7rem;
}

.nb-teacher-dashboard__pending-copy h3 {
  color: #10335f;
  font-size: 0.98rem;
  margin: 0 0 0.12rem;
}

.nb-teacher-dashboard__pending-copy p {
  color: #60748d;
  font-size: 0.84rem;
  margin: 0;
}

.nb-teacher-pending-page__hero {
  padding-bottom: 0.5rem;
}

.nb-teacher-pending-page__actions {
  align-items: center;
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.nb-teacher-pending-page__summary {
  color: #60748d;
  font-size: 0.95rem;
  font-weight: 700;
  margin-bottom: 0.65rem;
}

.nb-teacher-pending-page__action-form {
  display: flex;
  margin: 0;
}

.nb-teacher-pending-page__actions .nb-button,
.nb-teacher-pending-page__action-form .nb-button {
  min-width: 220px;
}

.nb-teacher-pending-page__back-button {
  min-width: 0 !important;
}

.nb-teacher-pending-page__empty {
  margin-top: 1rem;
}

.nb-students-speak-overview {
  display: grid;
  gap: 1rem;
}

.nb-students-speak-overview__item {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  border: 1px solid rgba(10, 77, 140, 0.12);
  border-radius: 1.25rem;
  padding: 1.2rem 1.3rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(244, 248, 253, 0.96));
}

.nb-students-speak-overview__main {
  min-width: 0;
}

.nb-students-speak-overview__header {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.nb-students-speak-overview__header h2 {
  margin: 0;
  font-size: 1.25rem;
}

.nb-students-speak-overview__question {
  margin: 0.45rem 0 0;
  font-weight: 700;
  color: var(--ink);
}

.nb-students-speak-overview__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin: 0.55rem 0 0;
  color: #60748d;
  font-weight: 600;
}

.nb-students-speak-overview__status {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0.32rem 0.8rem;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.nb-students-speak-overview__status--needs-approval {
  background: rgba(8, 116, 191, 0.12);
  color: #0a4d8c;
}

.nb-students-speak-overview__status--approved {
  background: rgba(36, 128, 62, 0.14);
  color: #1d6f36;
}

.nb-students-speak-overview__status--submitted {
  background: rgba(8, 116, 191, 0.12);
  color: #0a4d8c;
}

.nb-students-speak-overview__status--returned {
  background: rgba(220, 87, 31, 0.14);
  color: #b14c1e;
}

.nb-students-speak-overview__actions {
  flex: 0 0 auto;
}

@media (max-width: 767.98px) {
  .nb-students-speak-overview__item {
    flex-direction: column;
    align-items: stretch;
  }
}

.nb-teacher-pending-page__list {
  display: grid;
  gap: 0.9rem;
}

.nb-teacher-pending-page__item {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-left: 5px solid var(--blue);
  border-radius: 20px;
  box-shadow: 0 14px 30px rgba(15, 32, 70, 0.06);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding: 1rem 1.1rem;
}

.nb-teacher-pending-page__item--blue { border-left-color: var(--blue); }
.nb-teacher-pending-page__item--gold { border-left-color: var(--gold); }
.nb-teacher-pending-page__item--green { border-left-color: var(--green); }
.nb-teacher-pending-page__item--red { border-left-color: var(--red); }

.nb-teacher-pending-page__item-main {
  flex: 1 1 auto;
  min-width: 0;
}

.nb-teacher-pending-page__item-header {
  align-items: baseline;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 0.2rem;
}

.nb-teacher-pending-page__item-header h2 {
  font-size: 1.15rem;
  margin: 0;
}

.nb-teacher-pending-page__meta {
  color: var(--navy-60);
  font-size: 0.92rem;
  white-space: nowrap;
}

.nb-teacher-pending-page__subtitle,
.nb-teacher-pending-page__description {
  margin: 0.15rem 0 0;
}

.nb-teacher-pending-page__subtitle {
  color: var(--navy);
  font-weight: 600;
}

.nb-teacher-pending-page__description {
  color: var(--navy-70);
  font-size: 0.95rem;
}

.nb-teacher-pending-page__item-actions {
  flex: 0 0 auto;
}

.nb-teacher-upgrade-preview {
  display: grid;
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}

.nb-teacher-upgrade-preview__media {
  display: grid;
  gap: 1rem;
}

.nb-teacher-upgrade-preview__tile {
  display: grid;
  grid-template-columns: minmax(96px, 128px) 1fr;
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border-radius: 1.25rem;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(15, 110, 198, 0.08);
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.05);
}

.nb-teacher-upgrade-preview__tile img {
  width: 100%;
  max-height: 108px;
  object-fit: contain;
  border-radius: 1rem;
  background: #fff;
  padding: 0.5rem;
}

.nb-teacher-upgrade-preview__tile h3,
.nb-teacher-upgrade-preview__benefits h3 {
  margin-bottom: 0.4rem;
  font-size: 1.08rem;
}

.nb-teacher-upgrade-preview__tile p,
.nb-teacher-upgrade-preview__benefits li {
  margin: 0;
  font-size: 0.97rem;
  line-height: 1.6;
}

.nb-teacher-upgrade-preview__benefits {
  padding: 1.1rem 1.2rem;
  border-radius: 1.25rem;
  background: rgba(15, 110, 198, 0.06);
  border: 1px solid rgba(15, 110, 198, 0.08);
}

.nb-teacher-upgrade-preview__benefits ul {
  margin: 0;
  padding-left: 1.25rem;
}

.nb-teacher-upgrade-price {
  margin: 0 0 1rem;
  font-size: 1.05rem;
  color: #163a63;
}

.nb-teacher-upgrade-price strong {
  font-size: 1.25rem;
  color: #0a4d8c;
}

@media (min-width: 992px) {
  .nb-teacher-upgrade-preview {
    grid-template-columns: 1.4fr 1fr;
    align-items: start;
  }
}

.nb-order-container {
  padding-top: 2rem;
  padding-bottom: 3rem;
}

.nb-order__hero {
  padding: 2.25rem;
  border-radius: 2rem;
  background:
    radial-gradient(circle at top right, rgba(255, 196, 65, 0.2), transparent 28%),
    linear-gradient(135deg, rgba(10, 77, 140, 0.06), rgba(255, 255, 255, 0.98));
  border: 1px solid rgba(10, 77, 140, 0.08);
}

.nb-order__hero-points {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin: 1.25rem 0 0;
}

.nb-order__hero-points span,
.nb-order__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.8rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.nb-order__hero-points span {
  background: rgba(10, 77, 140, 0.08);
  color: var(--blue);
}

.nb-order__heading {
  max-width: 52rem;
}

.nb-order__heading--full {
  max-width: none;
}

.nb-order__heading--compact {
  margin-top: -0.25rem;
}

.nb-order__banner {
  background: linear-gradient(135deg, #fff7df, #fff);
  border: 1px solid rgba(10, 77, 140, 0.08);
  border-radius: 2rem;
  overflow: hidden;
  box-shadow: 0 18px 40px rgba(26, 39, 68, 0.06);
}

.nb-order__promo-image {
  display: block;
  width: 100%;
}

.nb-order__source-card {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: 160px 1fr 160px;
  align-items: center;
  padding: 2rem;
  background: linear-gradient(135deg, #0a4d8c, #0f6ec6);
  color: #fff;
  border-radius: 2rem;
  box-shadow: 0 18px 40px rgba(10, 77, 140, 0.18);
}

.nb-order__source-card img {
  width: 100%;
  max-width: 160px;
  justify-self: center;
  padding: 0.85rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.18), rgba(255,255,255,0.08));
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 1.35rem;
  box-shadow: 0 14px 28px rgba(8, 32, 61, 0.18);
}

.nb-order__source-card--single {
  grid-template-columns: 1fr 160px;
}

.nb-order__source-card h2 {
  margin: 0 0 0.75rem;
  font-size: 1.45rem;
}

.nb-order__source-card p:last-child {
  margin-bottom: 0;
}

.nb-order__payment-copy {
  font-weight: 700;
  color: #ffe9a6;
}

.nb-order__grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}

.nb-order__product-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  justify-content: center;
}

.nb-order__tile,
.nb-order__product-card,
.nb-order-thankyou__card,
.nb-order-checkout__card,
.nb-order-checkout__visual {
  background: #fff;
  border: 1px solid rgba(10, 77, 140, 0.1);
  border-radius: 1.75rem;
  box-shadow: 0 18px 40px rgba(26, 39, 68, 0.08);
}

.nb-order__tile,
.nb-order__product-card {
  padding: 1.75rem;
}

.nb-order__product-card {
  flex: 0 1 calc((100% - 3rem) / 3);
  max-width: calc((100% - 3rem) / 3);
}

.nb-order__tile {
  position: relative;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.nb-order__tile:hover,
.nb-order__product-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 50px rgba(26, 39, 68, 0.12);
}

.nb-order__tile--featured {
  border-color: rgba(224, 160, 29, 0.45);
  background: linear-gradient(180deg, rgba(255, 248, 226, 0.94), #fff 22rem);
}

.nb-order__tile-head,
.nb-order__product-head {
  display: grid;
  gap: 1rem;
}

.nb-order__tile-link {
  display: grid;
  gap: 1rem;
  color: inherit;
  text-decoration: none;
}

.nb-order__tile-link:hover {
  color: inherit;
}

.nb-order__tile-media {
  display: grid;
  place-items: center;
  min-height: 260px;
  padding: 1.5rem;
  background: linear-gradient(180deg, #fff, #f3f7fb);
  border-radius: 1.2rem;
  border: 1px solid rgba(10, 77, 140, 0.07);
  overflow: hidden;
}

.nb-order__tile-head img {
    width: 100%;
    max-width: 100%;
    max-height: 260px;
    object-fit: contain;
    justify-self: center;
}

.nb-order__badge {
  justify-self: start;
  background: rgba(224, 160, 29, 0.14);
  color: #9b6400;
}

.nb-order__badge--muted {
  background: rgba(10, 77, 140, 0.08);
  color: var(--blue);
}

.nb-order__tile-copy {
  color: var(--muted);
  margin: 0;
}

.nb-order__tile-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 800;
  color: var(--blue);
}

.nb-order__tile-cta::after {
  content: "->";
  font-size: 0.95rem;
}

.nb-order__feature-list {
  margin: 1rem 0 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.55rem;
}

.nb-order__price {
  font-size: 2rem;
  font-weight: 800;
  color: var(--blue);
}

.nb-order__price-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.nb-order__price-note,
.nb-order__product-kicker {
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}

.nb-order__product-kicker {
  color: var(--blue);
}

.nb-order__price-note {
  color: var(--muted);
  max-width: 14rem;
  text-align: right;
}

.nb-order__product-head h3 span {
  display: block;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--muted);
  margin-top: 0.4rem;
}

.nb-order__product-copy {
  display: grid;
  gap: 0.85rem;
  color: var(--muted);
}

.nb-order__lead {
  color: var(--ink);
}

.nb-order__lead p,
.nb-order__detail-copy p {
  margin-bottom: 0.75rem;
}

.nb-order__lead p:last-child,
.nb-order__detail-copy p:last-child {
  margin-bottom: 0;
}

.nb-order__lead ul,
.nb-order__lead ol,
.nb-order__detail-copy ul,
.nb-order__detail-copy ol {
  margin: 0.75rem 0 0;
  padding-left: 1.2rem;
}

.nb-order__lead li,
.nb-order__detail-copy li {
  margin-bottom: 0.35rem;
}

.nb-order__actions {
  display: flex;
  gap: 0.9rem;
  flex-wrap: wrap;
  margin-top: 1.25rem;
}

.nb-order .nb-button {
  min-height: 3rem;
}

.nb-order__action-button {
  width: 100%;
  justify-content: center;
}

.nb-order__product-button {
  flex: 1 1 100%;
  justify-content: center;
  text-align: center;
  font-weight: 800;
  border-radius: 999px;
  padding: 0.95rem 1.25rem;
  box-shadow: 0 12px 24px rgba(26, 39, 68, 0.12);
}

.nb-order__product-button--primary {
  background: linear-gradient(135deg, #0f6ec6, #0a4d8c);
  border-color: #0a4d8c;
  color: #fff;
}

.nb-order__product-button--primary:hover {
  color: #fff;
  filter: brightness(1.03);
}

.nb-order__product-button--secondary {
  background: linear-gradient(135deg, #f7b731, #e09f1d);
  border-color: #d69212;
  color: #1f2937;
}

.nb-order__product-button--secondary:hover {
  color: #111827;
  filter: brightness(1.02);
}

.nb-order-checkout {
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, 1fr) 280px;
  align-items: start;
}

.nb-order-checkout__card {
  padding: 2rem;
}

.nb-order-checkout__card > h1 {
  margin-bottom: 1.5rem;
}

.nb-order-checkout__card h2 {
  font-size: 1.15rem;
  margin-bottom: 0.85rem;
}

.nb-order-checkout__visual {
  display: grid;
  gap: 1rem;
  padding: 1.5rem;
  position: sticky;
  top: 120px;
  background: linear-gradient(180deg, #f7fbff, #eef5fc);
}

.nb-order-checkout__visual-frame {
  display: grid;
  place-items: center;
  padding: 1rem;
  background: linear-gradient(180deg, #fff, #f3f8fd);
  border: 1px solid rgba(10, 77, 140, 0.08);
  border-radius: 1.35rem;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.8);
}

.nb-order-checkout__visual img {
  width: 100%;
  max-width: 220px;
  padding: 0.5rem;
  border-radius: 1rem;
}

.nb-order-form,
.nb-order-form__section,
.nb-order-totals,
.nb-order-thankyou,
.nb-order-thankyou__lines {
  display: grid;
  gap: 1.25rem;
}

.nb-order-form__section {
  padding-top: 1.5rem;
  border-top: 1px solid rgba(10, 77, 140, 0.1);
}

.nb-order-form label {
  display: inline-block;
  margin-bottom: 0.45rem;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--ink);
}

.nb-order-form__grid,
.nb-order-thankyou__columns {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nb-order-summary,
.nb-order-totals > div,
.nb-order-thankyou__lines > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}

.nb-order-summary {
  font-size: 1.1rem;
  padding: 1rem 1.15rem;
  background: #f8fafc;
  border: 1px solid rgba(10, 77, 140, 0.08);
  border-radius: 1rem;
}

.nb-order-summary__price {
  font-size: 1.5rem;
  font-weight: 800;
}

.nb-order-summary--muted {
  color: var(--muted);
}

.nb-order-addon {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  padding: 1rem 1.1rem;
  background: #f5f8fc;
  border-radius: 1rem;
  border: 1px solid transparent;
  transition: border-color 160ms ease, background 160ms ease;
}

.nb-order-addon:hover {
  background: #eef5fc;
  border-color: rgba(10, 77, 140, 0.12);
}

.nb-order-addon input {
  margin-top: 0.25rem;
}

.nb-order-promo__row {
  display: flex;
  gap: 0.75rem;
  align-items: stretch;
}

.nb-order-totals {
  padding: 1.25rem;
  background: #f8fafc;
  border: 1px solid rgba(10, 77, 140, 0.08);
  border-radius: 1.25rem;
}

.nb-order-totals__final {
  padding-top: 1rem;
  border-top: 1px solid rgba(10, 77, 140, 0.12);
  font-size: 1.15rem;
}

.nb-order-payment-panel {
  display: grid;
  gap: 0.75rem;
  padding: 1rem 1.1rem;
  background: #f8fafc;
  border: 1px solid rgba(10, 77, 140, 0.08);
  border-radius: 1rem;
}

.nb-order-payment-panel--credit-card {
  background: #fff;
  border-left: 4px solid var(--blue);
}

.nb-order-payment-panel__content {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr auto;
  align-items: center;
}

.nb-order-payment-note {
  color: #a03d18;
  font-weight: 700;
  margin-bottom: 0;
}

.nb-order-payment-badge {
  display: block;
  max-width: 140px;
  width: 100%;
}

.nb-order-checkout .nb-button {
  min-width: 190px;
  justify-content: center;
}

.nb-order-form__copy-row {
  margin-bottom: 0.35rem;
}

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

.nb-order-thankyou__card {
  padding: 1.75rem;
}

.nb-order-confirmation__hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.5rem;
  align-items: center;
  padding: 2rem 2.25rem;
  background: linear-gradient(135deg, #f7fbff 0%, #eef5fd 100%);
  border: 1px solid rgba(10, 77, 140, 0.1);
  border-radius: 1.75rem;
  margin-bottom: 1.5rem;
}

.nb-order-confirmation__hero h1 {
  margin-bottom: 0.6rem;
}

.nb-order-confirmation__hero p {
  margin-bottom: 0;
  max-width: 58ch;
}

.nb-order-confirmation__logo {
  display: none;
  width: 180px;
  max-width: 100%;
  margin-bottom: 0.75rem;
}

.nb-order-confirmation__eyebrow {
  margin-bottom: 0.45rem !important;
  color: var(--orange);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.nb-order-confirmation__hero-meta {
  display: grid;
  gap: 0.9rem;
  min-width: 220px;
  align-content: start;
}

.nb-order-confirmation__hero-meta > div {
  padding: 1rem 1.1rem;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(10, 77, 140, 0.1);
  border-radius: 1rem;
}

.nb-order-confirmation__print-button {
  border: 0;
  border-radius: 999px;
  padding: 0.9rem 1.1rem;
  background: var(--ink);
  color: #fff;
  font-weight: 800;
  line-height: 1.1;
  width: 100%;
}

.nb-order-confirmation__hero-meta span,
.nb-order-confirmation__summary span {
  display: block;
  margin-bottom: 0.3rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.nb-order-confirmation__hero-meta strong,
.nb-order-confirmation__summary strong {
  font-size: 1.15rem;
  color: var(--ink);
}

.nb-order-confirmation {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  gap: 1.5rem;
  align-items: start;
}

.nb-order-confirmation__stack {
  display: grid;
  gap: 1.5rem;
}

.nb-order-confirmation__card {
  display: grid;
  gap: 1.25rem;
}

.nb-order-confirmation__card-heading {
  display: grid;
  gap: 0.35rem;
}

.nb-order-confirmation__card-heading h2 {
  margin-bottom: 0;
}

.nb-order-confirmation__card-heading p,
.nb-order-confirmation__next-steps p {
  margin-bottom: 0;
  color: var(--muted);
}

.nb-order-confirmation__summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  padding: 1.15rem 1.2rem;
  background: #f8fbfe;
  border: 1px solid rgba(10, 77, 140, 0.08);
  border-radius: 1.1rem;
}

.nb-order-confirmation__lines {
  display: grid;
  gap: 0.9rem;
}

.nb-order-confirmation__lines-head,
.nb-order-confirmation__line {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}

.nb-order-confirmation__lines-head {
  padding-bottom: 0.8rem;
  border-bottom: 1px solid rgba(10, 77, 140, 0.12);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.nb-order-confirmation__line {
  padding: 0.95rem 0;
  border-bottom: 1px solid rgba(10, 77, 140, 0.08);
}

.nb-order-confirmation__line strong {
  white-space: nowrap;
}

.nb-order-confirmation__line--total {
  padding-top: 1.2rem;
  border-bottom: none;
  font-size: 1.08rem;
  font-weight: 800;
}

.nb-order-confirmation__address-grid,
.nb-order-confirmation__next-steps {
  display: grid;
  gap: 0.5rem;
  color: var(--ink);
}

@media print {
  body {
    background: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  header,
  footer,
  .nb-topbar,
  .nb-topbar--app,
  .nb-mainnav,
  .nb-mainnav--app,
  #nbMainnav,
  .navbar,
  .nb-site-footer,
  .nb-order-confirmation__print-button {
    display: none !important;
  }

  .container.nb-order-container,
  .nb-order-confirmation-page,
  .nb-order-confirmation,
  .nb-order-confirmation__stack {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .nb-order-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .nb-order-confirmation-page {
    box-shadow: none !important;
    border: 0 !important;
  }

  .nb-order-confirmation__hero {
    grid-template-columns: 1fr auto !important;
    gap: 0.75rem !important;
    margin-bottom: 0.55rem;
    padding: 0.85rem 0.95rem !important;
    border: 2px solid rgba(10, 77, 140, 0.35) !important;
    border-radius: 0.85rem !important;
    background: #fff !important;
  }

  .nb-order-confirmation__hero h1 {
    font-size: 1.45rem;
    margin-bottom: 0.25rem;
  }

  .nb-order-confirmation__hero p {
    font-size: 0.88rem;
  }

  .nb-order-confirmation__logo {
    display: block !important;
    width: 150px;
    margin-bottom: 0.45rem;
  }

  .nb-order-confirmation__hero-meta {
    min-width: 165px;
    gap: 0.45rem !important;
  }

  .nb-order-thankyou__card,
  .nb-order-confirmation__summary,
  .nb-order-confirmation__hero-meta > div {
    border: 2px solid rgba(10, 77, 140, 0.35) !important;
    box-shadow: none !important;
    background: #fff !important;
  }

  .nb-order-confirmation__line,
  .nb-order-confirmation__lines-head {
    border-color: rgba(10, 77, 140, 0.28) !important;
  }

  .nb-order-confirmation {
    gap: 0.7rem !important;
  }

  .nb-order-confirmation__stack,
  .nb-order-confirmation__card,
  .nb-order-confirmation__lines {
    gap: 0.55rem !important;
  }

  .nb-order-confirmation__stack {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: start !important;
  }

  .nb-order-confirmation__stack > :last-child {
    grid-column: 1 / -1;
  }

  .nb-order-thankyou__card {
    padding: 0.85rem !important;
    border-radius: 0.85rem !important;
  }

  .nb-order-confirmation__card-heading {
    gap: 0.1rem !important;
  }

  .nb-order-confirmation__card-heading h2 {
    font-size: 1rem;
  }

  .nb-order-confirmation__summary {
    gap: 0.45rem !important;
    padding: 0.6rem 0.7rem !important;
    border-radius: 0.75rem !important;
  }

  .nb-order-confirmation__hero-meta > div {
    padding: 0.55rem 0.7rem !important;
    border-radius: 0.75rem !important;
  }

  .nb-order-confirmation__hero-meta span,
  .nb-order-confirmation__summary span {
    margin-bottom: 0.15rem !important;
    font-size: 0.7rem !important;
  }

  .nb-order-confirmation__hero-meta strong,
  .nb-order-confirmation__summary strong {
    font-size: 0.92rem !important;
  }

  .nb-order-confirmation__lines-head {
    padding-bottom: 0.35rem !important;
    font-size: 0.72rem !important;
  }

  .nb-order-confirmation__line {
    padding: 0.42rem 0 !important;
    font-size: 0.88rem !important;
  }

  .nb-order-confirmation__line--total {
    padding-top: 0.55rem !important;
    font-size: 0.94rem !important;
  }

  .nb-order-confirmation__address-grid,
  .nb-order-confirmation__next-steps {
    gap: 0.18rem !important;
    font-size: 0.84rem !important;
  }
}

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

@media (max-width: 991.98px) {
  .nb-hero,
  .nb-hero__content {
    min-height: 60vh;
  }

  .nb-hero--slider,
  .nb-hero-swiper,
  .nb-hero-slide {
    min-height: 68vh;
  }

  .nb-stats__copy {
      padding-left: 0;
  }

  .nb-gradebook__card {
    padding: 1.5rem;
  }

  .nb-mainnav__cta {
    margin-left: 0;
    margin-top: 1rem;
  }

  .nb-static-page__hero {
    flex-direction: column;
  }

  .nb-faq-blocks {
    grid-template-columns: 1fr;
  }

  .nb-certificate-card {
    grid-template-columns: 1fr;
  }

  .nb-products-summary {
    grid-template-columns: 1fr;
  }

  .nb-college-picker__selected {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .nb-college-picker__selected-logo-wrap {
    margin: 0 auto;
  }

  .nb-college-picker__selected-head {
    flex-direction: column;
    align-items: center;
  }

    .nb-teacher-offer,
    .nb-teacher-rule__body {
      grid-template-columns: 1fr;
    }

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

    .nb-teacher-demo-row {
      grid-template-columns: 1fr;
    }

  .nb-static-page__graphic--teacher,
  .nb-static-page__graphic--print {
    max-width: 100%;
  }

  .nb-order__source-card,
  .nb-order__source-card--single,
  .nb-order-checkout,
  .nb-order-form__grid,
  .nb-order-confirmation,
  .nb-order-thankyou,
  .nb-order-thankyou__columns,
  .nb-order-payment-panel__content {
    grid-template-columns: 1fr;
  }

  .nb-order-confirmation__hero,
  .nb-order-confirmation__summary {
    grid-template-columns: 1fr;
  }

  .nb-order__product-card {
    flex-basis: calc((100% - 1.5rem) / 2);
    max-width: calc((100% - 1.5rem) / 2);
  }

  .nb-order__price-row {
    align-items: flex-start;
  }

  .nb-order__price-note {
    max-width: none;
    text-align: left;
  }

  .nb-order__tile-media {
    min-height: 220px;
  }

  .nb-order-checkout__visual {
    position: static;
  }

  .nb-hero-swiper__controls {
    padding: 0 1rem;
  }
}

@media (max-width: 767.98px) {
  .nb-quizbowl-award {
    flex-direction: column;
    align-items: flex-start;
  }

  .nb-quizbowl-award img {
    width: 96px;
    max-width: none;
  }

  .nb-quizbowl-running-score {
    text-align: left;
  }

  .nb-faq-gallery {
    grid-template-columns: 1fr;
  }

  .nb-order__actions,
  .nb-order-promo__row {
    flex-direction: column;
  }

  .nb-order__product-card {
    flex-basis: 100%;
    max-width: 100%;
  }

  .nb-monthlychallenge-result {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 575.98px) {
  .nb-topbar__inner,
  .nb-footer__sub-inner {
    align-items: flex-start;
    flex-direction: column;
  }

  .nb-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .nb-hero-swiper__controls {
    inset: auto 0 1rem 0;
  }

  .nb-hero-swiper__button {
    width: 2.8rem;
    height: 2.8rem;
  }
}

.nb-admin-page__lede {
  max-width: none;
}

.nb-admin-page .nb-static-page__card {
  padding: 1.35rem;
}

.nb-admin-school-page {
  padding-inline: 0;
}

.nb-admin-school-page__card {
  padding: 1.35rem;
}

.nb-admin-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.5rem 0 2rem;
}

.nb-admin-nav__link {
  border: 1px solid rgba(13, 47, 91, 0.14);
  border-radius: 999px;
  color: #174c8f;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  font-weight: 700;
  padding: 0.55rem 1rem;
  text-decoration: none;
}

.nb-admin-nav__link:hover,
.nb-admin-nav__link--active {
  background: #174c8f;
  border-color: #174c8f;
  color: #fff;
}

.nb-admin-nav__badge {
  align-items: center;
  background: #d92d20;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: 0.75rem;
  font-weight: 700;
  justify-content: center;
  line-height: 1;
  min-height: 1.45rem;
  min-width: 1.45rem;
  padding: 0.15rem 0.4rem;
}

.nb-admin-stat {
  color: #0f2748;
  font-family: "Cabin Sketch", cursive;
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1;
  margin-bottom: 0.75rem;
}

.nb-admin-list {
  margin: 0;
  padding-left: 1.25rem;
}

.nb-admin-list li + li {
  margin-top: 0.4rem;
}

.nb-admin-section + .nb-admin-section {
  margin-top: 2rem;
}

.nb-admin-section__heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.nb-admin-section__heading h2 {
  margin-bottom: 0.35rem;
  font-size: 1.55rem;
}

.nb-admin-section__heading p {
  margin-bottom: 0;
  color: #5f6f84;
}

.nb-admin-section__meta {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.8rem;
  border-radius: 999px;
  background: rgba(10, 77, 140, 0.08);
  color: var(--blue);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.nb-admin-action-card {
  height: 100%;
  padding: 1.5rem;
  border-radius: 1.35rem;
  border: 1px solid rgba(10, 77, 140, 0.08);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(245, 249, 255, 0.98));
  box-shadow: 0 18px 38px rgba(16, 35, 63, 0.08);
}

.nb-admin-action-card__count {
  margin-bottom: 0.85rem;
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1;
  font-weight: 900;
}

.nb-admin-action-card h3 {
  margin-bottom: 0.6rem;
  font-size: 1.15rem;
}

.nb-admin-action-card p {
  margin-bottom: 1rem;
  color: #516379;
  line-height: 1.65;
}

.nb-admin-action-card--red {
  border-top: 0.35rem solid #d54b3d;
}

.nb-admin-action-card--gold {
  border-top: 0.35rem solid #e0a01d;
}

.nb-admin-action-card--blue {
  border-top: 0.35rem solid #0a4d8c;
}

.nb-admin-action-card--green {
  border-top: 0.35rem solid #2f9a67;
}

.nb-admin-action-card--slate {
  border-top: 0.35rem solid #5f6f84;
}

.nb-admin-action-card--purple {
  border-top: 0.35rem solid #6b4fd3;
}

.nb-admin-action-card--orange {
  border-top: 0.35rem solid #d97a04;
}

.nb-admin-action-card--indigo {
  border-top: 0.35rem solid #4957c8;
}

.nb-admin-empty-state {
  padding: 1.35rem 1.5rem;
  border: 1px dashed rgba(10, 77, 140, 0.18);
  border-radius: 1.15rem;
  background: linear-gradient(180deg, rgba(246, 250, 255, 0.98), rgba(255, 255, 255, 0.98));
}

.nb-admin-empty-state h3 {
  margin-bottom: 0.45rem;
  font-size: 1.05rem;
}

.nb-admin-empty-state p {
  margin-bottom: 0;
  color: #5f6f84;
}

.nb-admin-table th {
  border-bottom-width: 1px;
  color: #10335f;
  font-size: 0.84rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.nb-admin-table td,
.nb-admin-table th {
  padding: 0.95rem 0.75rem;
}

.nb-admin-products__actions-cell {
  width: 280px;
  white-space: nowrap;
}

.nb-admin-products__actions {
  display: inline-grid;
  grid-template-columns: 140px 110px;
  gap: 0.5rem;
  align-items: center;
  justify-content: end;
}

.nb-admin-products__edit-button {
  width: 140px;
  justify-content: center;
}

.nb-admin-products__secondary-button {
    width: 110px;
    justify-content: center;
}

.nb-admin-weekly-pdf-slot {
    border: 1px solid #d8e2f0;
    border-radius: 1.25rem;
    padding: 1.1rem 1.25rem;
    background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%);
}

.nb-admin-weekly-pdf-picker {
    border: 1px solid #c9d9ef;
    border-top: 5px solid var(--blue);
    border-radius: 1.35rem;
    padding: 1.25rem 1.35rem 1.15rem;
    background: linear-gradient(180deg, #f4f9ff 0%, #ffffff 100%);
    box-shadow: 0 18px 34px rgba(12, 29, 74, 0.08);
}

.nb-admin-weekly-pdf-picker__label {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--navy);
}

.nb-admin-weekly-pdf-picker__select {
    min-height: 3.45rem;
    border-width: 2px;
    border-color: #9db9df;
    border-radius: 1rem;
    padding: 0.85rem 3rem 0.85rem 1rem;
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--navy);
    background-color: #fff;
    box-shadow: 0 10px 22px rgba(27, 84, 147, 0.08);
}

.nb-admin-weekly-pdf-picker__select:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 0.2rem rgba(33, 116, 198, 0.16), 0 12px 28px rgba(27, 84, 147, 0.12);
}

.nb-admin-weekly-pdf-picker__help {
    margin-top: 0.55rem;
    font-size: 0.95rem;
    color: #45607d;
}

.nb-admin-weekly-pdf-slot__header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.nb-admin-weekly-pdf-slot__status {
    flex: 0 0 auto;
}

.nb-admin-demo-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid rgba(15, 39, 84, 0.12);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.7);
}

.nb-admin-demo-files {
    display: grid;
    gap: 0.85rem;
}

.nb-admin-demo-files__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(15, 39, 84, 0.12);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.78);
}

.nb-admin-demo-files__badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

@media (max-width: 767.98px) {
    .nb-admin-demo-files__row {
        flex-direction: column;
        align-items: flex-start;
    }

    .nb-admin-demo-files__badges {
        justify-content: flex-start;
    }
}

.nb-admin-detail-list {
  display: grid;
  gap: 0.3rem 0;
  margin: 0;
}

.nb-admin-detail-list dt {
  color: #55718f;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-top: 0.9rem;
  text-transform: uppercase;
}

.nb-admin-detail-list dt:first-child {
  margin-top: 0;
}

.nb-admin-detail-list dd {
  margin: 0;
}

.nb-admin-linked-list {
  display: grid;
  gap: 1rem;
}

.nb-admin-linked-list__item {
  align-items: start;
  border: 1px solid rgba(13, 47, 91, 0.1);
  border-radius: 18px;
  display: grid;
  gap: 0.75rem;
  grid-template-columns: auto 1fr;
  padding: 1rem 1.1rem;
}

.nb-admin-linked-list__type {
  background: #e9f3ff;
  border-radius: 999px;
  color: #174c8f;
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.35rem 0.7rem;
}

.nb-admin-linked-list__details {
  color: #4f6279;
  font-size: 0.92rem;
  margin-top: 0.5rem;
}

.nb-admin-linked-list__details > div + div {
  margin-top: 0.2rem;
}

.nb-admin-answers-header {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  justify-content: space-between;
}

.nb-admin-summary-card {
  background:
    radial-gradient(circle at top right, rgba(56, 132, 255, 0.16), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
}

.nb-admin-summary-card h2 {
  color: #10335f;
}

.nb-admin-table--awards {
  border-collapse: separate;
  border-spacing: 0;
}

.nb-admin-table--awards th span {
  color: #5b718d;
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  margin-top: 0.15rem;
}

.nb-admin-table--awards tbody tr td:first-child {
  color: #10335f;
}

.nb-admin-table--awards tbody tr td:nth-child(5) {
  background: rgba(23, 76, 143, 0.08);
}

.nb-admin-table--awards tbody tr td:nth-child(6) {
  background: rgba(36, 153, 109, 0.08);
}

.nb-admin-table--awards tbody tr td:nth-child(7) {
  background: rgba(221, 118, 37, 0.08);
}

.nb-admin-table--awards tbody tr td:nth-child(8) {
  background: rgba(199, 164, 26, 0.12);
}

.nb-admin-question-list {
  display: grid;
  gap: 1rem;
}

.nb-admin-question-card__meta {
  color: #5b718d;
  display: flex;
  flex-wrap: wrap;
  font-size: 0.88rem;
  font-weight: 700;
  gap: 0.6rem 1rem;
  margin-bottom: 0.75rem;
  text-transform: uppercase;
}

.nb-admin-question-card__top {
  align-items: flex-start;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr) 130px;
}

.nb-admin-question-card__body h3 {
  margin-bottom: 0;
}

.nb-admin-topic-image-card {
  background: #f7fbff;
  border: 1px solid rgba(16, 51, 95, 0.1);
  border-radius: 16px;
  overflow: hidden;
  padding: 0.35rem;
}

.nb-admin-topic-image-card__label {
  color: #10335f;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  margin: 0.1rem 0 0.45rem;
  text-align: center;
  text-transform: uppercase;
}

.nb-admin-topic-image-card img {
  border-radius: 12px;
  display: block;
  height: 92px;
  object-fit: contain;
  object-position: center;
  width: 100%;
}

.nb-admin-points-pill {
  background: rgba(36, 153, 109, 0.12);
  border: 1px solid rgba(36, 153, 109, 0.24);
  border-radius: 999px;
  color: #176846;
  display: inline-flex;
  font-size: 0.92rem;
  font-weight: 700;
  gap: 0.35rem;
  padding: 0.45rem 0.85rem;
}

.nb-admin-points-pill--warning {
  background: rgba(203, 87, 31, 0.12);
  border-color: rgba(203, 87, 31, 0.25);
  color: #9f4113;
}

.nb-admin-answer-grid {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
}

.nb-admin-answer-option {
  background: #f5f8fc;
  border: 1px solid rgba(13, 47, 91, 0.08);
  border-radius: 14px;
  padding: 0.85rem 1rem;
}

.nb-admin-answer-option--correct {
  background: #e5f7ea;
  border-color: rgba(43, 137, 78, 0.22);
  color: #185c31;
}

.nb-admin-editor-topic {
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid rgba(16, 51, 95, 0.12);
  color: #10335f;
  font-size: 1.12rem;
  font-weight: 800;
  margin: 1.2rem 0 0.35rem;
  padding: 0.35rem 0 0.45rem;
  position: sticky;
  top: 4.75rem;
  z-index: 5;
}

.nb-admin-editor-question {
  margin-bottom: 0.8rem;
}

.nb-admin-editor-row {
  margin-bottom: 0.35rem;
}

.nb-admin-editor-textarea {
  min-height: 72px;
}

.nb-admin-editor-answers {
  display: grid;
  gap: 0.35rem;
}

.nb-admin-editor-prefix {
  background: #f1f5fb;
  color: #174c8f;
  justify-content: center;
  min-width: 4rem;
  padding: 0.4rem 0.6rem;
}

.nb-admin-editor-row--question .nb-admin-editor-prefix {
  font-weight: 800;
}

.nb-admin-editor-points-label {
  background: #eef5ff;
  color: #174c8f;
  font-weight: 800;
}

.nb-admin-editor-points-input {
  flex: 0 0 88px !important;
  max-width: 88px;
  text-align: center;
}

.nb-admin-editor-row--topic .nb-admin-editor-prefix {
  background: #174c8f;
  color: #fff;
  font-weight: 800;
}

.nb-admin-editor-row--topic .form-select {
  background: #eef5ff;
  border-color: #7ea7db;
  color: #10335f;
  font-weight: 700;
}

.nb-admin-editor-row .form-control,
.nb-admin-editor-row .input-group-text {
  border-radius: 0;
}

.nb-admin-editor-row .form-check-input {
  margin-right: 0;
}

.nb-admin-table__row--featured td {
  background: rgba(23, 76, 143, 0.08);
  font-weight: 800;
}

.nb-admin-school-header {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  justify-content: space-between;
  margin-bottom: 0.55rem;
}

.nb-admin-school-record-nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.nb-admin-order-duplicate-header {
  margin-bottom: 0.55rem;
}

.nb-admin-order-duplicate-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-left: auto;
}

.nb-admin-order-duplicate-reason {
  background: rgba(23, 76, 143, 0.1);
  border-radius: 999px;
  color: #174c8f;
  display: inline-flex;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1.1;
  padding: 0.38rem 0.75rem;
}

.nb-admin-merge-school-options {
  display: grid;
  gap: 0.75rem;
}

.nb-admin-merge-school-choice {
  align-items: flex-start;
  background: linear-gradient(180deg, rgba(247, 251, 255, 0.95), rgba(255, 255, 255, 1));
  border: 1px solid rgba(16, 51, 95, 0.12);
  border-radius: 16px;
  cursor: pointer;
  display: flex;
  gap: 0.7rem;
  padding: 0.9rem 1rem;
}

.nb-admin-merge-school-choice input[type="radio"] {
  accent-color: #174c8f;
  margin-top: 0.15rem;
}

.nb-admin-merge-school-fields {
  display: grid;
  gap: 0.8rem;
}

.nb-admin-merge-school-field {
  display: grid;
  gap: 0.4rem;
}

.nb-admin-merge-school-field__label {
  color: #10335f;
  font-size: 0.92rem;
  font-weight: 800;
}

.nb-admin-merge-school-field__choices {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nb-admin-merge-school-field__same {
  background: linear-gradient(180deg, rgba(247, 251, 255, 0.95), rgba(255, 255, 255, 1));
  border: 1px solid rgba(16, 51, 95, 0.1);
  border-radius: 14px;
  display: grid;
  gap: 0.2rem;
  padding: 0.75rem 0.85rem;
}

.nb-admin-merge-school-field__same-label {
  color: #10335f;
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1.2;
}

.nb-admin-merge-school-field__same-value {
  color: #5d7087;
  font-size: 0.9rem;
  line-height: 1.35;
  word-break: break-word;
}

.nb-admin-merge-school-field__choice {
  align-items: flex-start;
  background: #fff;
  border: 1px solid rgba(16, 51, 95, 0.1);
  border-radius: 14px;
  cursor: pointer;
  display: grid;
  gap: 0.25rem;
  grid-template-columns: auto 1fr;
  padding: 0.75rem 0.85rem;
}

.nb-admin-merge-school-field__choice input[type="radio"] {
  accent-color: #174c8f;
  margin-top: 0.1rem;
}

.nb-admin-merge-school-field__choice-title {
  color: #10335f;
  display: block;
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1.2;
}

.nb-admin-merge-school-field__choice-value {
  color: #5d7087;
  display: block;
  font-size: 0.9rem;
  grid-column: 2;
  line-height: 1.35;
  margin-top: -0.05rem;
  word-break: break-word;
}

@media (max-width: 767.98px) {
  .nb-admin-merge-school-field__choices {
    grid-template-columns: 1fr;
  }
}

.nb-admin-order-duplicate-browser-host {
  min-height: 13rem;
  position: relative;
}

.nb-admin-order-duplicate-browser-host.is-loading {
  opacity: 0.72;
}

.nb-admin-users-filter {
  border: 1px solid rgba(12, 38, 84, 0.08);
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(247, 251, 255, 0.95), rgba(241, 247, 255, 0.92));
  padding: 1.5rem;
}

.nb-admin-users-filter__header {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.nb-admin-users-filter__title {
  color: #0c2654;
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0;
}

.nb-admin-users-filter__copy {
  color: #4d6284;
  margin: 0.35rem 0 0;
}

.nb-admin-users-filter__throbber {
  align-items: center;
  color: #0c2654;
  display: none;
  font-weight: 600;
  gap: 0.6rem;
  white-space: nowrap;
}

[data-admin-users-host].is-loading .nb-admin-users-filter__throbber {
  display: inline-flex;
}

.nb-admin-users-results-host {
  position: relative;
}

[data-admin-users-results].is-loading {
  opacity: 0.5;
}

.nb-admin-users-results__summary {
  color: #4d6284;
  font-weight: 700;
  margin-bottom: 1rem;
}

.nb-admin-users-results__page-label {
  align-items: center;
  display: inline-flex;
  gap: 0.5rem;
  margin-left: 1rem;
}

.nb-admin-users-results__page-input {
  border-radius: 999px;
  font-weight: 700;
  min-width: 4.5rem;
  padding: 0.35rem 0.75rem;
  text-align: center;
  width: 4.5rem;
}

.nb-admin-users-pagination {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: space-between;
  margin-top: 1rem;
}

.nb-admin-users-pagination__pages {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.nb-admin-users-pagination .nb-button.is-current {
  background: #174c8f;
  border-color: #174c8f;
  color: #fff;
}

.nb-admin-order-detail-list dt,
.nb-admin-order-detail-list dd {
  margin-bottom: 0.32rem;
}

.nb-admin-order-detail-list .small {
  line-height: 1.3;
}

.nb-admin-school-record-jump {
  margin: 0;
}

.nb-admin-school-arrow {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(16, 51, 95, 0.12);
  border-radius: 14px;
  color: #174c8f;
  display: inline-flex;
  font-size: 1.35rem;
  font-weight: 800;
  height: 2.65rem;
  justify-content: center;
  text-decoration: none;
  width: 2.85rem;
}

.nb-admin-school-arrow:hover {
  background: #174c8f;
  border-color: #174c8f;
  color: #fff;
}

.nb-admin-school-arrow--disabled {
  background: #f5f8fc;
  color: #a1b0c0;
}

.nb-admin-school-record-count {
  align-items: center;
  color: #10335f;
  display: inline-flex;
  font-size: 0.98rem;
  font-weight: 800;
  gap: 0.45rem;
  min-width: 10.5rem;
  text-align: center;
}

.nb-admin-school-record-input {
  border: 1px solid rgba(16, 51, 95, 0.14);
  border-radius: 10px;
  color: #10335f;
  font-size: 0.95rem;
  font-weight: 800;
  min-width: 4.25rem;
  padding: 0.25rem 0.45rem;
  text-align: center;
}

.nb-admin-school-record-input:focus {
  border-color: #174c8f;
  box-shadow: 0 0 0 0.18rem rgba(23, 76, 143, 0.14);
  outline: none;
}

.nb-admin-school-find-status {
  border-radius: 999px;
  display: inline-flex;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 0.4rem 0.85rem;
}

.nb-admin-school-find-status--warning {
  background: rgba(194, 35, 35, 0.1);
  border: 1px solid rgba(194, 35, 35, 0.18);
  color: #9f2323;
}

.nb-admin-school-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.nb-admin-school-meta__pill {
  background: #eef5ff;
  border: 1px solid rgba(23, 76, 143, 0.12);
  border-radius: 999px;
  color: #10335f;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 0.45rem 0.8rem;
}

.nb-admin-school-meta__pill--alert {
  background: rgba(194, 35, 35, 0.1);
  border-color: rgba(194, 35, 35, 0.18);
  color: #9d1f1f;
}

.nb-admin-school-panel,
.nb-admin-school-savebar {
  background:
    radial-gradient(circle at top right, rgba(56, 132, 255, 0.1), transparent 38%),
    linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  border: 1px solid rgba(16, 51, 95, 0.1);
  border-radius: 20px;
}

.nb-admin-school-panel {
  padding: 0.5rem;
}

.nb-admin-school-panel--inner {
  background: #fff;
}

.nb-admin-school-subscriptions {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}

.nb-admin-school-subscription {
  background:
    linear-gradient(180deg, rgba(240, 247, 255, 0.96), rgba(228, 239, 252, 0.96));
  border: 1px solid rgba(23, 76, 143, 0.16);
  border-radius: 14px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
  color: #10335f;
  font-weight: 700;
  padding: 0.8rem 0.9rem;
  text-decoration: none;
  transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.nb-admin-school-subscription:hover,
.nb-admin-school-subscription--active {
  background: #174c8f;
  border-color: #174c8f;
  box-shadow: 0 10px 20px rgba(23, 76, 143, 0.18);
  color: #fff;
  transform: translateY(-1px);
}

.nb-admin-school-subscriptions--compact {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}

.nb-admin-school-empty {
  background: #f5f8fc;
  border: 1px dashed rgba(16, 51, 95, 0.18);
  border-radius: 16px;
  color: #4f6279;
  padding: 1rem;
}

.nb-admin-school-savebar {
  align-items: center;
  display: flex;
  gap: 0.55rem;
  justify-content: space-between;
  margin-bottom: 0.45rem;
  padding: 0.45rem 0.6rem;
}

.nb-admin-school-savebar__status {
  border-radius: 999px;
  font-size: 0.88rem;
  font-weight: 800;
  padding: 0.45rem 0.8rem;
}

.nb-admin-school-savebar__status[data-state="saving"] {
  background: rgba(23, 76, 143, 0.12);
  color: #174c8f;
}

.nb-admin-school-savebar__status[data-state="saved"] {
  background: rgba(36, 153, 109, 0.14);
  color: #176846;
}

.nb-admin-school-savebar__status[data-state="dirty"] {
  background: rgba(223, 155, 31, 0.16);
  color: #8c5c0b;
}

.nb-admin-school-savebar__status[data-state="error"] {
  background: rgba(203, 87, 31, 0.14);
  color: #9f4113;
}

.nb-admin-editor-floating-status {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: 1050;
  box-shadow: 0 10px 24px rgba(19, 42, 77, 0.14);
}

@media (max-width: 991.98px) {
  .nb-teacher-dashboard__pending-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .nb-admin-editor-floating-status {
    right: 1rem;
    bottom: 1rem;
  }
}

.nb-admin-school-grid {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nb-admin-school-panel__heading {
  margin-bottom: 0.24rem;
}

.nb-admin-school-panel__heading h2 {
  color: #10335f;
  font-size: 1.02rem;
  margin-bottom: 0.08rem;
}

.nb-admin-school-panel__heading p {
  color: #60748d;
  margin-bottom: 0;
  font-size: 0.89rem;
}

.nb-admin-order-comparison-list {
  display: grid;
  gap: 0.55rem;
}

.nb-admin-order-comparison-item {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(16, 51, 95, 0.12);
  border-radius: 16px;
  display: grid;
  gap: 0.45rem;
  grid-template-columns: minmax(170px, 200px) minmax(0, 1fr) auto;
  padding: 0.65rem 0.75rem;
  align-items: center;
}

.nb-admin-order-comparison-item__field {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.nb-admin-order-comparison-item__label {
  color: #10335f;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
}

.nb-admin-order-comparison-item__badge {
  background: rgba(198, 40, 40, 0.1);
  border: 1px solid rgba(198, 40, 40, 0.18);
  border-radius: 999px;
  color: #b42318;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 0.18rem 0.55rem;
  white-space: nowrap;
}

.nb-admin-order-comparison-item__values {
  display: grid;
  gap: 0.45rem;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.nb-admin-order-comparison-value {
  background: #fff;
  border: 1px solid rgba(16, 51, 95, 0.1);
  border-radius: 12px;
  height: 100%;
  min-height: 100%;
  padding: 0.45rem 0.6rem;
}

.nb-admin-order-comparison-value--school {
  background: linear-gradient(180deg, #f7fbff 0%, #ffffff 100%);
}

.nb-admin-order-comparison-value__label {
  color: #60748d;
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  margin-bottom: 0.12rem;
  text-transform: uppercase;
}

.nb-admin-order-comparison-value__text {
  color: #10335f;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: pre-wrap;
  word-break: break-word;
}

.nb-admin-order-comparison-item__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  justify-content: flex-end;
}

.nb-admin-order-comparison-item__actions .nb-button {
  min-width: 0;
  padding: 0.5rem 0.8rem;
}

@media (max-width: 991.98px) {
  .nb-admin-order-comparison-item {
    grid-template-columns: 1fr;
  }

  .nb-admin-order-comparison-item__values {
    grid-template-columns: 1fr;
  }

  .nb-admin-order-comparison-item__actions {
    justify-content: flex-start;
  }

  .nb-teacher-dashboard__pending-grid {
    grid-template-columns: 1fr;
  }
}

.nb-admin-school-panel__footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.4rem;
}

.nb-admin-school-form--compact .form-label {
  font-size: 0.78rem;
  margin-bottom: 0.08rem;
}

.nb-admin-school-form--compact .form-control,
.nb-admin-school-form--compact .form-select {
  min-height: calc(1.62rem + 2px);
  padding: 0.14rem 0.35rem;
  font-size: 0.9rem;
}

.nb-admin-school-form--compact textarea.form-control {
  min-height: 3.25rem;
}

.nb-admin-school-readonly-field {
  background: #eef2f7;
  border-color: rgba(16, 51, 95, 0.12);
  color: #6d7e92;
}

.nb-admin-school-readonly-field:focus {
  background: #eef2f7;
  border-color: rgba(16, 51, 95, 0.12);
  box-shadow: none;
}

.nb-admin-school-field-error {
  border-color: #c22323 !important;
  box-shadow: 0 0 0 0.18rem rgba(194, 35, 35, 0.14) !important;
}

.nb-admin-school-form--compact .nb-admin-school-subscriptions--compact {
  margin-bottom: 0.45rem !important;
}

.nb-admin-school-panel__heading--split {
  align-items: flex-start;
  display: flex;
  gap: 0.65rem;
  justify-content: space-between;
}

.nb-admin-school-inline-actions {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  gap: 0.5rem;
}

.nb-admin-school-check {
  align-items: center;
  background: #f5f8fc;
  border: 1px solid rgba(16, 51, 95, 0.08);
  border-radius: 14px;
  display: flex;
  gap: 0.45rem;
  min-height: calc(1.9rem + 2px);
  padding: 0.45rem 0.6rem;
}

.nb-admin-school-check .form-check-input {
  float: none;
  margin: 0;
}

.nb-admin-school-check .form-check-label {
  color: #10335f;
  font-size: 0.82rem;
  font-weight: 700;
}

.nb-admin-product-preview-shell {
  position: sticky;
  top: 1.5rem;
}

.nb-admin-product-preview-shell .nb-order__product-card {
  flex: 1 1 auto;
  margin-bottom: 0;
  max-width: none;
  width: 100%;
}

.redText {
  color: #c62828;
}

@media (max-width: 767.98px) {
  .nb-admin-question-card__top {
    grid-template-columns: 1fr;
  }

  .nb-admin-section__heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .nb-admin-topic-image-card {
    max-width: 180px;
  }

  .nb-admin-school-grid {
    grid-template-columns: 1fr;
  }

  .nb-admin-school-savebar,
  .nb-admin-school-header {
    align-items: stretch;
    flex-direction: column;
  }

  .nb-admin-school-panel__heading--split,
  .nb-admin-school-inline-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .nb-admin-product-preview-shell {
    position: static;
  }

  .nb-teacher-pending-page__actions {
    justify-content: stretch;
  }

  .nb-teacher-pending-page__actions .nb-button {
    width: 100%;
  }

  .nb-teacher-pending-page__item,
  .nb-teacher-pending-page__item-header {
    align-items: stretch;
    flex-direction: column;
  }

  .nb-teacher-pending-page__item-actions .nb-button {
    width: 100%;
  }
}
