:root {
  /* Brand palette */
  --ds-navy-950: #0c2638;
  --ds-navy-900: #122c40;
  --ds-blue-700: #2369a6;
  --ds-blue-100: #dfeef5;
  --ds-blue-50: #f3f7f8;
  --ds-red-600: #ef735d;
  --ds-red-50: #fef2f2;
  --ds-ink: #122c40;
  --ds-text: #3f4f5e;
  --ds-muted: #6d7a86;
  --ds-border: #dce4e8;
  --ds-canvas: #f3f7f8;
  --ds-surface: #ffffff;

  /* Five-level accessible type scale. 1rem remains the browser/user default. */
  --type-1-label: 1rem;
  --type-2-body: 1.125rem;
  --type-3-subtitle: 1.5rem;
  --type-4-title: 3rem;
  --type-5-display: 4.5rem;

  --leading-label: 1.5;
  --leading-body: 1.6;
  --leading-subtitle: 1.35;
  --leading-title: 1.2;
  --leading-display: 1.08;

  --font-ui: "Poppins", Arial, Helvetica, sans-serif;
  --font-display: "Poppins", Arial, Helvetica, sans-serif;

  /* Compatibility aliases */
  --sci-blue-950: var(--ds-navy-950);
  --sci-blue-900: var(--ds-navy-900);
  --sci-blue-700: var(--ds-blue-700);
  --sci-blue-100: var(--ds-blue-100);
  --sci-blue-50: var(--ds-blue-50);
  --sci-red: var(--ds-red-600);
  --sci-red-50: var(--ds-red-50);
  --sci-border: var(--ds-border);
  --sci-bg: var(--ds-canvas);
}

/* Reusable type roles */
.type-label {
  font-size: var(--type-1-label) !important;
  line-height: var(--leading-label) !important;
  font-weight: 700;
}

.type-body {
  font-size: var(--type-2-body) !important;
  line-height: var(--leading-body) !important;
}

.type-subtitle {
  font-size: var(--type-3-subtitle) !important;
  line-height: var(--leading-subtitle) !important;
  font-weight: 800;
}

.type-title {
  font-family: var(--font-display);
  font-size: var(--type-4-title) !important;
  line-height: var(--leading-title) !important;
  font-weight: 900;
}

.type-display {
  font-family: var(--font-display);
  font-size: var(--type-5-display) !important;
  line-height: var(--leading-display) !important;
  font-weight: 900;
}

/* Global semantic assignments */
.sc-body,
.sc-body input,
.sc-body select,
.sc-body textarea,
.sc-body button {
  font-family: var(--font-ui) !important;
  letter-spacing: 0;
}

.sc-body {
  color: var(--ds-text);
  font-size: var(--type-2-body) !important;
  line-height: var(--leading-body);
}

.sc-body p,
.sc-body li,
.sc-body td,
.sc-body dd,
.sc-body input,
.sc-body select,
.sc-body textarea,
.sc-body button,
.sc-body a {
  font-size: var(--type-2-body) !important;
  line-height: var(--leading-body);
}

.sc-body span {
  font-size: inherit !important;
  line-height: inherit;
}

.sc-body small,
.sc-body dt,
.sc-body th,
.sc-body label,
.sc-body .sci-eyebrow,
.sc-body .cc-app-nav__label,
.sc-body .family-roster__columns,
.sc-body .family-data-notice,
.sc-body .family-existing-modal__notice {
  font-size: var(--type-1-label) !important;
  line-height: var(--leading-label) !important;
}

.sc-body h1,
.sc-body h2 {
  font-family: var(--font-display);
  font-size: var(--type-4-title) !important;
  line-height: var(--leading-title) !important;
  font-weight: 900;
  letter-spacing: 0 !important;
}

.sc-body h3,
.sc-body .sci-panel-title strong,
.sc-body .account-setting-row__title strong,
.sc-body .family-child-row__identity strong {
  font-family: var(--font-display);
  font-size: var(--type-3-subtitle) !important;
  line-height: var(--leading-subtitle) !important;
  font-weight: 800;
  letter-spacing: 0 !important;
}

/* The legacy dashboard stylesheet used viewport clamps with high specificity. */
.sc-body .cc-app-main.sci-app-main h1,
.sc-body .cc-app-main.sci-app-main h2 {
  font-size: var(--type-4-title) !important;
  line-height: var(--leading-title) !important;
}

.sc-body .cc-app-main.sci-app-main h3 {
  font-size: var(--type-3-subtitle) !important;
  line-height: var(--leading-subtitle) !important;
}

.sc-body .sci-public-main h2 {
  font-size: var(--type-4-title) !important;
  line-height: var(--leading-title) !important;
}

.sc-body .sci-public-main h3 {
  font-size: var(--type-3-subtitle) !important;
  line-height: var(--leading-subtitle) !important;
}

.sc-body .sci-public-main p {
  font-size: var(--type-2-body) !important;
  line-height: var(--leading-body) !important;
}

.sc-body h4,
.sc-body h5,
.sc-body h6 {
  font-size: var(--type-2-body) !important;
  line-height: var(--leading-body) !important;
}

.sc-body .sci-hero__copy h1,
.sc-body .sci-success h2,
.sc-body .sci-auth-promo h2 {
  font-size: var(--type-5-display) !important;
  line-height: var(--leading-display) !important;
}

.sc-body .sci-hero__copy > p,
.sc-body .sci-section-title > p:not(.sci-eyebrow),
.sc-body .sci-auth-promo > p,
.sc-body .sci-showcase > div > p {
  font-size: var(--type-3-subtitle) !important;
  line-height: var(--leading-body) !important;
}

.sc-body .sci-home .sci-hero__copy > p:not(.sci-eyebrow),
.sc-body .sci-home .sci-demo-grid > div > p,
.sc-body .sci-home .sci-showcase > div > p {
  font-size: var(--type-3-subtitle) !important;
  line-height: var(--leading-body) !important;
}

/* Navigation and repeated controls */
.sc-body .sci-logo,
.sc-body .cc-app-logo,
.sc-body .sc-app-logo {
  font-size: var(--type-3-subtitle) !important;
  line-height: var(--leading-subtitle) !important;
}

.sc-body .sci-level-nav,
.sc-body .sci-login,
.sc-body .sci-register,
.sc-body .cc-app-nav__link,
.sc-body .cc-app-ghost-link,
.sc-body .cc-app-profile__text strong,
.sc-body .sci-btn,
.sc-body .family-action-button,
.sc-body .family-child-row__actions a {
  font-size: var(--type-2-body) !important;
  line-height: var(--leading-body) !important;
}

.sc-body .cc-app-topbar__left span,
.sc-body .cc-app-profile__text small,
.sc-body .family-child-row__identity small,
.sc-body .family-child-row__progress span,
.sc-body .family-child-row__courses span {
  font-size: var(--type-1-label) !important;
  line-height: var(--leading-label) !important;
}

.sc-body .account-setting-row__action,
.sc-body .account-setting-row__icon,
.sc-body .account-setting-row > summary > code,
.sc-body .sci-course-card small,
.sc-body .sci-course-card [class*="tag"],
.sc-body .sci-course-card [class*="meta"],
.sc-body .sci-catalog-card small,
.sc-body .sci-catalog-card [class*="tag"],
.sc-body .sci-catalog-card [class*="meta"] {
  font-size: var(--type-1-label) !important;
  line-height: var(--leading-label) !important;
}

.sc-body .cc-app-topbar__left strong {
  font-size: var(--type-2-body) !important;
  line-height: var(--leading-body) !important;
}

.sc-body .sci-activity-feed strong,
.sc-body .sci-parent-panel .sci-child-grid strong {
  font-size: var(--type-2-body) !important;
  line-height: var(--leading-body) !important;
}

/* Forms and modal copy */
.sc-body .family-modal__header h2 {
  font-size: var(--type-4-title) !important;
}

.sc-body .family-add-pane__header h3 {
  font-size: var(--type-3-subtitle) !important;
}

.sc-body .family-add-pane__header p,
.sc-body .family-existing-modal p,
.sc-body .family-settings-danger p,
.sc-body .account-setting-row__title small {
  font-size: var(--type-2-body) !important;
  line-height: var(--leading-body) !important;
}

.sc-body .family-create-form label,
.sc-body .family-existing-form label,
.sc-body .family-settings-form label,
.sc-body .sci-field label,
.sc-body .sci-auth-form label {
  font-size: var(--type-1-label) !important;
  line-height: var(--leading-label) !important;
}

.sc-body .family-create-form input,
.sc-body .family-existing-form input,
.sc-body .family-settings-form input,
.sc-body .sci-input,
.sc-body .sci-auth-form input,
.sc-body .sci-auth-form select,
.sc-body .sci-auth-form textarea {
  font-size: var(--type-2-body) !important;
  line-height: var(--leading-body) !important;
}

.sc-body .family-field-error,
.sc-body .family-form-error,
.sc-body .sci-password-help,
.sc-body .sci-password-help li,
.sc-body .sci-password-rules > button,
.sc-body .sci-password-rules__tooltip,
.sc-body .sci-password-rules__tooltip li,
.sc-body .sci-account-recovery,
.sc-body .sci-account-recovery p,
.sc-body .sci-account-recovery__reset,
.sc-body .sci-auth-form .errorlist,
.sc-body .sci-auth-form .errorlist li {
  font-size: var(--type-1-label) !important;
  line-height: var(--leading-label) !important;
}

.sc-body .family-modal__close {
  font-size: var(--type-4-title) !important;
  line-height: 1 !important;
}

.sc-body .family-add-pane__icon,
.sc-body .family-settings-button {
  font-size: var(--type-3-subtitle) !important;
  line-height: 1 !important;
}

/* Dashboard density remains structured, never miniature. */
.sc-body .sci-dash-quickstats strong,
.sc-body .family-child-row__progress strong,
.sc-body .family-child-row__courses strong,
.sc-body .family-detail-overview strong {
  font-size: var(--type-3-subtitle) !important;
  line-height: var(--leading-subtitle) !important;
}

.sc-body .sci-dash-quickstats span,
.sc-body .sci-badge,
.sc-body .sci-goal-meter b,
.sc-body .account-security__status,
.sc-body .family-course-list__rows span,
.sc-body .family-pagination {
  font-size: var(--type-1-label) !important;
  line-height: var(--leading-label) !important;
}

@media (max-width: 720px) {
  .sc-body .family-child-row__actions a::before {
    font-size: var(--type-1-label) !important;
  }
}
