:root {
  --readable-caption: 13px;
  --readable-secondary: 14px;
  --readable-body: 15px;
  --readable-nav: 15px;
}

html {
  text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Shared navigation and account controls. */
.site-header nav a,
.public-header nav a,
.primary-nav a,
.account-header nav a {
  font-size: var(--readable-nav);
}

.primary-account-tier,
.primary-account-logout {
  font-size: var(--readable-secondary);
}

/* Home and public editorial pages. */
.hero-copy > p,
.section-heading p,
.steps-grid p,
.advantage-grid p,
.course-card p,
.final-cta p,
.audience-grid p,
.phase-list p,
.practice-steps p,
.principle-grid p,
.disclosure-list p,
.review-process p,
.article-cta p {
  font-size: var(--readable-body);
  line-height: 1.8;
}

/* Keep the required ICP filing notice centered at the bottom of public pages. */
.home-footer,
.public-footer {
  flex-wrap: wrap;
}

.home-footer > .icp-link,
.public-footer > .icp-link {
  flex: 0 0 100%;
  color: #66766e;
  font-size: var(--readable-secondary);
  text-align: center;
  text-decoration: none;
}

.icp-link:hover {
  color: var(--green);
}

.icp-footer {
  display: block;
  padding: 24px 20px;
  border-top: 1px solid #e0e4de;
  background: #eef1eb;
  text-align: center;
}

.experience-notes,
.honesty-note,
.course-card > em,
.public-footer p,
.public-footer nav a,
footer p,
footer > div a,
.breadcrumbs,
.article-meta,
.toc a,
.course-map p,
.phase-list li,
.sources p,
.sources li {
  font-size: var(--readable-secondary);
}

/* Course reading and experiment surfaces. */
.course-meta span,
.course-rail-head small,
.rail-caption,
.rail-phase {
  font-size: var(--readable-caption);
}

.course-meta b,
.course-rail-head b {
  font-size: var(--readable-body);
}

.top-progress span,
.dashboard-link,
.rail-step > span,
.points-note p {
  font-size: var(--readable-secondary);
}

.rail-step > b {
  font-size: var(--readable-secondary);
  line-height: 1.45;
}

.scope-note,
.course-content small,
.course-content .eyebrow,
.course-content .phase-chip,
.course-content .step-state,
.course-content .section-title-row span,
.course-content .section-title-row small,
.course-content .onboarding-heading > span,
.course-content .onboarding-grid span,
.course-content .detail-card > span,
.course-content .concept-bridge article > span,
.course-content .takeaway-box span,
.course-content .learning-bridge span {
  font-size: var(--readable-caption);
}

.course-content p,
.course-content li,
.course-content ul,
.course-content label,
.course-content button,
.course-content input,
.course-content select,
.course-content textarea,
.course-content output {
  font-size: var(--readable-body);
}

.course-content p,
.course-content li,
.course-content .lab-feedback,
.course-content .builder-preview {
  line-height: 1.75;
}

.course-content .lead {
  font-size: 17px;
  line-height: 1.9;
}

.course-content .detail-card h3,
.course-content .choice-option b,
.course-content .multi-option b,
.course-content .lab-feedback b {
  font-size: 16px;
}

/* Learning dashboard, feedback and points center. */
.dashboard-main p,
.feedback-main p,
.points-main p,
.dashboard-main button,
.feedback-main button,
.points-main button,
.points-main input,
.feedback-main input,
.feedback-main textarea,
.feedback-main select {
  font-size: var(--readable-body);
}

.dashboard-main small,
.feedback-main small,
.points-main small,
.stat-card span,
.daily-card span,
.daily-card i,
.roadmap-copy span,
.roadmap-meta span,
.roadmap-meta small,
.membership-row,
.achievement-list b,
.achievement-list small,
.points-main label,
.ledger-copy small,
.ledger-amount small {
  font-size: var(--readable-secondary);
  line-height: 1.55;
}

.roadmap-copy b,
.profile-progress p b,
.ledger-copy b,
.source-notice b {
  font-size: var(--readable-body);
}

/* Account settings and authentication. */
.account-form label,
.account-form input,
.account-form button,
.account-form .form-hint,
.account-form .form-message,
.panel-copy,
.current-method small,
.oauth-list article small,
.provider-button,
.oauth-dialog > p,
.oauth-dialog > small,
.oauth-dialog > a,
.human-verification-status,
.human-verification-confirm {
  font-size: var(--readable-secondary);
  line-height: 1.6;
}

.security-banner p,
.hero-profile p,
.oauth-list article b {
  font-size: var(--readable-body);
}

.auth-card .tabs button,
.auth-card .code-action,
.auth-card .verification-confirm,
.auth-card .social-button,
.auth-card .flow-back,
.auth-card .qr-loading,
.auth-card .oauth-status small,
.auth-card .social-hint,
.auth-card .binding-reminder,
.auth-card .phone-login-note,
.auth-card .auth-divider {
  font-size: var(--readable-secondary);
}

/* Administration tables and forms. */
.admin-header p,
.admin-main p,
.admin-main label,
.admin-main input,
.admin-main textarea,
.admin-main select,
.admin-main button,
.admin-main td,
.admin-main th,
.admin-main small,
.admin-main .pagination,
.admin-main .role-badge,
.admin-main .system-state {
  font-size: var(--readable-secondary);
  line-height: 1.55;
}

.admin-sidebar nav a,
.admin-profile b,
.admin-main .user-cell b,
.admin-main .ledger-item b {
  font-size: var(--readable-body);
}

/* Security dialogs must remain readable wherever they are opened. */
.adaptive-security-dialog p,
.adaptive-security-dialog button,
.human-verification-gate-dialog p,
.human-verification-gate-dialog button,
.adaptive-security-status {
  font-size: var(--readable-secondary);
  line-height: 1.65;
}

@media (max-width: 780px) {
  :root {
    --readable-body: 16px;
    --readable-nav: 16px;
  }

  .course-content {
    line-height: 1.7;
  }

  .course-content .lead {
    font-size: 17px;
  }
}
