/* AuraRank type system — one readable scale shared by every public and admin view. */
:root {
  --type-diagram: 12px;
  --type-caption: 13px;
  --type-control: 14px;
  --type-supporting: 15px;
  --type-body: 16px;
  --type-lede: 18px;
  --type-card-title: 22px;
  --type-panel-title: 24px;
  --type-section-title: clamp(30px, 3vw, 40px);
  --type-page-title: clamp(44px, 5vw, 64px);
  --leading-tight: 1.12;
  --leading-body: 1.6;
}

body { font-size: var(--type-body); line-height: 1.5; }
button, input, select, textarea { font-size: var(--type-control); }
small { font-size: var(--type-caption) !important; line-height: 1.45; }

/* Display hierarchy */
.page-heading h1, .entity-title h1 { font-size: var(--type-page-title); }
.section-title h2, .split-section h2, .manifesto h2 { font-size: var(--type-section-title); line-height: var(--leading-tight); }
.panel h2 { font-size: var(--type-panel-title); line-height: 1.2; }
.category-card h3, .home-entity-card h3, .watchlist-card h2 { font-size: var(--type-card-title); }

/* Body and explanatory copy */
.category-card p,
.home-entity-card p,
.watchlist-card p,
.my-category-card > p,
.awaiting-publication > div > span,
.profile-hero p,
.profile-hero span,
.submission-card dl > div,
.submission-resolution span,
.category-rating-workspace span,
.method-note p,
.admin-card p,
.catalog-principle span,
.methodology-flow span,
.countdown-privacy,
.disclosure,
.privacy-note {
  font-size: var(--type-supporting);
  line-height: var(--leading-body);
}

/* Shared captions, metadata, statuses, and supporting links */
.eyebrow,
.demo-badge,
.trust-line,
.trust-line span,
.board-top,
.board-top b,
.rank-identity span,
.rating-count span,
.movement,
.publication-status span,
.board-pulse,
.ticker > span,
.category-head,
.card-link,
.movers small,
.category-meta span,
.filter-bar label,
.ranking-header,
.method-note a,
.entity-metrics span,
.chart-axis,
.rating-progress,
.calibration-card > div:nth-child(2) span,
.stat span,
.stat small,
.activity-row span,
.activity-row > b,
.details div,
.mobile-nav a,
.mobile-nav button,
.entity-contexts b,
.theme-button,
.footer-brand p,
.footer-meta p,
.theme-choice button,
.catalog-list-tools label,
.catalog-list-tools select,
.auth-button,
.rating-feedback span,
.entity-rating-label,
.entity-rating-status,
.aura-opportunity > small,
.first-rank-point span,
.history-window,
.history-empty,
.admin-status,
.admin-summary span,
.admin-action-status,
.admin-ranking-category span,
.admin-ranking-category > strong,
.admin-ranking > div,
.admin-ranking-head,
.ratings-head-actions label,
.aura-row span,
.aura-ladder .panel-head > span,
.aura-ladder li > small,
.aura-neighbors span,
.aura-neighbors b,
.admin-tabs a,
.catalog-form > label,
.catalog-form > div > label,
.membership-form label,
.catalog-row small,
.catalog-state,
.catalog-row .secondary-button,
.my-rating-identity .my-rating-meta,
.my-rating-categories a,
.my-rating-status,
.account-identity span,
.entity-match-panel small,
.submission-status,
.submission-signin > small,
.submission-origin,
.countdown-clock span,
.countdown-recap .section-title > span,
.countdown-stats span,
.countdown-stats small,
.countdown-moves-head a,
.countdown-move small,
.publication-celebration-copy span,
.submission-summary span,
.submission-queue-toolbar label,
.submission-card-heading time,
.submission-resolution small,
.awaiting-entity-list small,
.awaiting-entity-list b,
.category-rating-filters button,
.category-rating-state,
.home-entity-card span,
.home-entity-card > b,
.system-fact span,
.publication-pulse span,
.publication-pulse small,
.publication-recalculation small,
.category-card-metrics small,
.category-card-metrics em,
.mini-ranking .movement,
.methodology-caveat,
.launch-card .launch-meta,
.launches-intro span,
.load-more-launches span,
.my-categories-intro > span,
.my-category-status,
.my-category-progress span,
.my-category-footer,
.watchlist-card > div:nth-child(2) > span,
.watchlist-card small,
.watchlist-actions > a,
.watchlist-actions button,
.watchlist-actions > span,
.assessment-row small,
.assessment-state,
.assessment-row label,
.review-mode-banner span,
.review-mode-banner nav a,
.user-review-search,
.user-review-avatar,
.user-review-row span,
.read-only-label,
.submission-card > .submission-note strong {
  font-size: var(--type-caption) !important;
  line-height: 1.45;
}

/* Buttons, filters, and form labels should never feel like fine print. */
.secondary-button,
.rating-control button,
.filter,
.category-rating-filters button,
.assessment-filter button,
.catalog-row .secondary-button,
.review-mode-banner nav a,
.watchlist-actions button,
.watchlist-actions > a,
.card-link,
.home-entity-card > b,
.awaiting-entity-list b {
  font-size: var(--type-control) !important;
}

.launch-form > label,
.submission-fields label,
.submission-review-form label,
.ratings-toolbar label,
.user-review-search,
.catalog-form > label,
.catalog-form > div > label,
.membership-form label,
.assessment-row label {
  font-size: var(--type-caption) !important;
}

.launch-form input,
.launch-form textarea,
.launch-form select,
.submission-review-form input,
.submission-review-form textarea,
.submission-review-form select,
.ratings-toolbar input,
.ratings-toolbar select,
.user-review-search input {
  font-size: var(--type-supporting) !important;
  line-height: 1.45;
}

/* Compact visual explanations retain a smaller—but still legible—annotation size. */
.aura-core small,
.aura-output small,
.aura-core em,
.aura-output span,
.ranking-signal small,
.ranking-result small,
.ranking-gate small,
.ranking-signal span,
.ranking-gate span,
.ranking-result span,
.ranking-result em {
  font-size: var(--type-diagram) !important;
  line-height: 1.3;
}

@media (max-width: 640px) {
  :root {
    --type-body: 16px;
    --type-supporting: 15px;
    --type-caption: 13px;
    --type-control: 14px;
    --type-page-title: clamp(40px, 12vw, 54px);
  }
  .mobile-nav a, .mobile-nav button { font-size: 11px !important; }
}

.entity-pager-link span,
.entity-pager > div span { font-size: var(--type-caption) !important; }
.entity-pager-link strong,
.entity-pager > div strong { font-size: var(--type-control) !important; }

/* One unambiguous footer text size: brand, legal links, and copyright all align. */
.footer-brand-block p,
.footer-brand-block small,
.footer-tagline,
.site-footer .footer-policy a {
  font-family: var(--sans);
  font-size: 14px !important;
  line-height: 1.5;
}
