/* ui453: desktop-only typography system for the production cockpits. */
:root {
  --ui453-page-title: 40px;
  --ui453-command-title: 30px;
  --ui453-section-title: 24px;
  --ui453-card-title: 16px;
  --ui453-body: 13px;
  --ui453-control: 12px;
  --ui453-meta: 11px;
  --ui453-metric: 30px;
  --ui453-metric-large: 44px;
}

/* Reset inherited generations of ad-hoc sizing before restoring a deliberate hierarchy. */
html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell,
html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell {
  font-size: var(--ui453-body) !important;
  line-height: 1.55 !important;
}

html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell *,
html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell * {
  font-size: inherit !important;
  letter-spacing: 0 !important;
}

html body :is(
  #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell,
  #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell
) :is(button, .btn, .button, a[role="button"], input, select, textarea) {
  font-size: var(--ui453-control) !important;
}

html body :is(
  #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell,
  #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell
) :is(small, .eyebrow, .tag, .pill, .geo-pill, .geo-badge, .section-pilot-live, .metric-label) {
  font-size: var(--ui453-meta) !important;
  line-height: 1.45 !important;
}

html body :is(
  #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell,
  #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell
) :is(p, li, dd, dt) {
  font-size: var(--ui453-body) !important;
  line-height: 1.65 !important;
}

html body :is(
  #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell,
  #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell
) h1 {
  font-size: var(--ui453-page-title) !important;
  line-height: 1.1 !important;
}

html body :is(
  #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell,
  #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell
) h2 {
  font-size: var(--ui453-section-title) !important;
  line-height: 1.18 !important;
}

html body :is(
  #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell,
  #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell
) h3 {
  font-size: var(--ui453-card-title) !important;
  line-height: 1.3 !important;
}

html body :is(
  #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell,
  #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell
) h4 {
  font-size: 14px !important;
  line-height: 1.35 !important;
}

/* Customer cockpit hierarchy. */
html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell .portal-header .brand strong {
  font-size: 14px !important;
}

html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell :is(
  .portal-header .brand small,
  .client-nav-group > span,
  .project-picker label > span
) {
  font-size: var(--ui453-meta) !important;
}

html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell .client-nav-group button,
html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell .status-actions button {
  font-size: var(--ui453-control) !important;
}

html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell .status-project strong {
  font-size: 18px !important;
}

html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell .status-dials article b {
  font-size: 20px !important;
}

html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell :is(
  .client-home-hero,
  .client-core-hero,
  .page-control-hero,
  .tracking-control-tower,
  .flight-status-card
) :is(h1, h2),
html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell.no-project .client-command-copy h1 {
  font-size: var(--ui453-page-title) !important;
  line-height: 1.08 !important;
}

html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell :is(
  .page-control-stats article,
  .client-home-kpis article,
  .client-home-meter,
  .client-core-card-grid article,
  .publisher-command-metrics,
  .report-metric,
  .account-command > article
) :is(strong, b) {
  font-size: var(--ui453-metric) !important;
  line-height: 1.05 !important;
}

html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell :is(
  .tracking-score-card,
  .client-core-gauge,
  .client-home-meter
) > :is(h2, strong) {
  font-size: var(--ui453-metric-large) !important;
}

html body #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root main.portal-shell :is(
  .panel-head,
  .section-head,
  .publisher-section-head,
  summary
) :is(h2, h3, strong, b) {
  font-size: var(--ui453-card-title) !important;
}

/* Admin cockpit hierarchy. */
html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell .geo-topbar h1 {
  font-size: 28px !important;
  line-height: 1.1 !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell :is(
  .geo-nav button,
  .geo-nav-children button,
  .geo-topbar-actions,
  .geo-mini-button,
  .geo-story-button,
  .geo-notice-action
) {
  font-size: var(--ui453-control) !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell :is(
  .geo-sidebar .brand small,
  .geo-nav-group > span,
  .geo-topbar p,
  .geo-topbar label > span
) {
  font-size: var(--ui453-meta) !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell .geo-content :is(th, td) {
  font-size: var(--ui453-control) !important;
  line-height: 1.5 !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell .geo-content th {
  font-size: var(--ui453-meta) !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell .geo-content :is(
  .geo-command-copy,
  .geo-project-command-copy,
  .geo-model-command-copy,
  .geo-prompt-command-copy,
  .geo-schedule-command-copy,
  .geo-task-command-copy,
  .geo-search-command-copy,
  .geo-stats-command-copy,
  .geo-alert-command-copy,
  .geo-log-command-copy,
  .geo-user-command-copy,
  .geo-api-command-copy,
  .geo-delivery-copy,
  .geo-billing-hero > div:first-child,
  .geo-evidence-hero > div:first-child
) > strong {
  font-size: var(--ui453-command-title) !important;
  line-height: 1.16 !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell.section-dashboard .admin-flight-lead h2,
html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell.section-dashboard .admin-flight-lead h2 span {
  font-size: 38px !important;
  line-height: 1.08 !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell .geo-content :is(
  .geo-command-metrics,
  .geo-project-command-metrics,
  .geo-model-command-metrics,
  .geo-prompt-command-metrics,
  .geo-schedule-command-metrics,
  .geo-task-command-metrics,
  .geo-search-command-metrics,
  .geo-stats-command-metrics,
  .geo-alert-command-metrics,
  .geo-log-command-metrics,
  .geo-user-command-metrics,
  .geo-api-command-metrics,
  .geo-billing-kpis,
  .geo-evidence-kpis,
  .geo-kpi,
  .geo-stats-grid
) article > :is(strong, b),
html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell .geo-content .geo-kpi > :is(strong, b) {
  font-size: var(--ui453-metric) !important;
  line-height: 1.05 !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell .geo-content :is(
  .geo-schedule-radar,
  .geo-stats-score
) > strong {
  font-size: var(--ui453-metric-large) !important;
  line-height: 1 !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell .geo-content :is(
  .geo-project-status-lane,
  .geo-project-route-grid,
  .geo-schedule-simple-steps,
  .geo-evidence-delivery-steps,
  .geo-inline-next-steps,
  .geo-story-metrics
) :is(strong, b, em) {
  font-size: var(--ui453-card-title) !important;
  line-height: 1.25 !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell .geo-story-route article > em {
  font-size: 28px !important;
}

html body #root#root#root#root#root#root#root#root#root#root#root main.geo-admin-shell .geo-delivery-scoreboard b {
  font-size: 26px !important;
}

/* Public site remains editorial, but uses fixed desktop sizes rather than viewport-scaled type. */
@media (min-width: 1024px) {
  html body #root:not(:has(main.geo-admin-shell)) {
    font-size: 16px !important;
  }

  html body #root:not(:has(main.geo-admin-shell)) :is(.site-header, .site-footer, main) :is(button, .button, a[role="button"]) {
    font-size: 14px !important;
  }

  html body #root:not(:has(main.geo-admin-shell)) :is(.home-hero h1, .page-hero-copy h1) {
    font-size: 64px !important;
    line-height: 1.02 !important;
  }

  html body #root:not(:has(main.geo-admin-shell)) main section > :is(h2, header h2, div > h2) {
    font-size: 38px !important;
    line-height: 1.1 !important;
  }

  html body #root:not(:has(main.geo-admin-shell)) main :is(h3, article > strong) {
    font-size: 22px !important;
    line-height: 1.25 !important;
  }

  html body #root:not(:has(main.geo-admin-shell)) main :is(p, li) {
    font-size: 16px !important;
    line-height: 1.7 !important;
  }

  html body #root:not(:has(main.geo-admin-shell)) main small {
    font-size: 12px !important;
  }
}
