/* ui478: final fixed-PC type system. Loaded after every legacy visual pass. */
:root {
  --ui478-font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif;
  --ui478-body: 13px;
  --ui478-control: 13px;
  --ui478-meta: 11px;
  --ui478-title: 34px;
  --ui478-section: 24px;
  --ui478-card: 16px;
  --ui478-metric: 30px;
  --ui478-display: 44px;
}

/* The duplicated IDs intentionally outrank the historical repeated-ID passes. */
html body
  #portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#portal-root#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#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell {
  font-family: var(--ui478-font-sans) !important;
  font-size: var(--ui478-body) !important;
  line-height: 1.55 !important;
  font-kerning: normal !important;
  font-variant-numeric: tabular-nums !important;
  text-rendering: optimizeLegibility !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#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#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell * {
  font-family: inherit !important;
  letter-spacing: 0 !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#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(button, input, select, textarea, option),
html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell :is(button, input, select, textarea, option) {
  font-size: var(--ui478-control) !important;
  line-height: 1.35 !important;
  font-weight: 620 !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#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(h1, h2, h3, h4, p, li, dt, dd, small, label, span, a, strong, b, em),
html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell :is(h1, h2, h3, h4, p, li, dt, dd, small, label, span, a, strong, b, em) {
  font-size: var(--ui478-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#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(h1, h2, h3, h4),
html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell :is(h1, h2, h3, h4) {
  margin-block: 0 !important;
  text-wrap: balance !important;
  overflow-wrap: anywhere !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#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 h1,
html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell h1 {
  font-size: var(--ui478-title) !important;
  line-height: 1.14 !important;
  font-weight: 760 !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#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 h2,
html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell h2 {
  font-size: var(--ui478-section) !important;
  line-height: 1.25 !important;
  font-weight: 720 !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#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(h3, h4),
html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell :is(h3, h4) {
  font-size: var(--ui478-card) !important;
  line-height: 1.35 !important;
  font-weight: 680 !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#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(small, .eyebrow, .tag, .pill, .geo-pill, .geo-badge, .metric-label, .section-pilot-live),
html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell :is(small, .eyebrow, .tag, .pill, .geo-pill, .geo-badge, .metric-label, .section-pilot-live) {
  font-size: var(--ui478-meta) !important;
  line-height: 1.45 !important;
  font-weight: 620 !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#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 strong, .client-home-kpis strong, .client-home-meter strong, .client-core-card-grid strong, .publisher-command-metrics strong, .report-metric strong, .account-command strong),
html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell :is(.geo-kpi strong, .geo-command-metrics strong, .geo-stats-command-metrics strong, .geo-user-command-metrics strong, .geo-project-command-metrics strong, .geo-api-command-metrics strong, .geo-stats-score strong) {
  font-size: var(--ui478-metric) !important;
  line-height: 1.08 !important;
  font-weight: 760 !important;
  font-variant-numeric: tabular-nums !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#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 > h2, .client-core-gauge > h2, .client-home-meter > strong),
html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  main.geo-admin-shell :is(.geo-schedule-radar > strong, .geo-stats-score > strong) {
  font-size: var(--ui478-display) !important;
  line-height: 1 !important;
  font-weight: 780 !important;
}

/* Public site: one fixed desktop scale, with no viewport-dependent type. */
html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  :is(.site-header, .site-footer, #main-content, .not-found, .root-shell-loading) {
  font-family: var(--ui478-font-sans) !important;
  letter-spacing: 0 !important;
}

html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  :is(.site-header, .site-footer, #main-content, .not-found, .root-shell-loading) :is(h1, h2, h3, h4, p, li, small, label, span, a, strong, b, button, input, textarea, select) {
  font-family: inherit !important;
  letter-spacing: 0 !important;
}

html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  :is(#main-content, .not-found, .root-shell-loading) h1 {
  font-size: 56px !important;
  line-height: 1.1 !important;
  font-weight: 760 !important;
}

html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  :is(#main-content, .not-found, .root-shell-loading) h2 {
  font-size: 34px !important;
  line-height: 1.18 !important;
  font-weight: 720 !important;
}

html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  :is(#main-content, .not-found, .root-shell-loading) h3 {
  font-size: 20px !important;
  line-height: 1.35 !important;
  font-weight: 680 !important;
}

html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  :is(#main-content, .not-found, .root-shell-loading) :is(p, li) {
  font-size: 16px !important;
  line-height: 1.65 !important;
}

html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  :is(#main-content, .not-found, .root-shell-loading) :is(small, label, .eyebrow, .tag) {
  font-size: 12px !important;
  line-height: 1.45 !important;
}

html body
  #root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root#root
  :is(#main-content, .not-found, .root-shell-loading) :is(button, input, textarea, select, a[role="button"]) {
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 650 !important;
}

/* Server-rendered account, report and share pages use the common .wrap shell. */
html body .wrap {
  font-family: var(--ui478-font-sans) !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  letter-spacing: 0 !important;
  font-kerning: normal !important;
  font-variant-numeric: tabular-nums !important;
}

html body .wrap :is(h1, h2, h3, h4, p, li, small, label, span, a, strong, b, button, input, textarea, select) {
  font-family: inherit !important;
  letter-spacing: 0 !important;
}

html body .wrap :is(h1, h2, h3, h4, p, li, small, label, span, a, strong, b) {
  line-height: 1.55 !important;
}

html body .wrap :is(h1, .login-qr-side h1, .signup-copy h1, .reset-card h1) {
  font-size: 36px !important;
  line-height: 1.16 !important;
  font-weight: 760 !important;
}

html body .wrap :is(h2, .signup-form h2, .login-tabs strong) {
  font-size: 22px !important;
  line-height: 1.28 !important;
  font-weight: 720 !important;
}

html body .wrap :is(p, li) {
  font-size: 13px !important;
  line-height: 1.65 !important;
}

html body .wrap :is(small, .eyebrow, .muted, .mini, .login-title, .login-tabs span, .login-consent, .login-region, .login-error) {
  font-size: 11px !important;
  line-height: 1.5 !important;
}

html body .wrap :is(.brand, .login-brand, .signup-brand) {
  font-size: 18px !important;
  line-height: 1.3 !important;
  font-weight: 760 !important;
}

html body .wrap :is(button, .btn, .nav a, input, textarea, select) {
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 650 !important;
}

/* Account pages render their main shell directly under body, without .wrap. */
html body :is(.login-shell, .signup-shell, .reset-shell) {
  font-family: var(--ui478-font-sans) !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  letter-spacing: 0 !important;
}

html body :is(.login-shell, .signup-shell, .reset-shell) :is(h1, h2, h3, h4, p, li, small, label, span, a, strong, b, button, input, textarea, select) {
  font-family: inherit !important;
  letter-spacing: 0 !important;
}

html body :is(.login-shell, .signup-shell, .reset-shell) :is(h1, .login-qr-side h1, .signup-copy h1, .reset-card h1) {
  font-size: 36px !important;
  line-height: 1.16 !important;
  font-weight: 760 !important;
}

html body :is(.login-shell, .signup-shell, .reset-shell) :is(h2, .signup-form h2, .login-tabs strong) {
  font-size: 22px !important;
  line-height: 1.28 !important;
  font-weight: 720 !important;
}

html body :is(.login-shell, .signup-shell, .reset-shell) :is(p, li) {
  font-size: 13px !important;
  line-height: 1.65 !important;
}

html body :is(.login-shell, .signup-shell, .reset-shell) :is(small, .eyebrow, .muted, .login-title, .login-tabs span, .login-consent, .login-region, .login-error) {
  font-size: 11px !important;
  line-height: 1.5 !important;
}

html body :is(.login-shell, .signup-shell, .reset-shell) :is(button, input, textarea, select) {
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 650 !important;
}

/* The template's historical .wrap auth rules are also important; this extra
   ancestor keeps the final desktop scale authoritative when both match. */
html body .wrap :is(.login-shell, .signup-shell, .reset-shell) :is(h1, .login-qr-side h1, .signup-copy h1, .reset-card h1) {
  font-size: 36px !important;
  line-height: 1.16 !important;
  font-weight: 760 !important;
}

html body .wrap :is(.login-shell, .signup-shell, .reset-shell) :is(h2, .signup-form h2, .login-tabs strong) {
  font-size: 22px !important;
  line-height: 1.28 !important;
  font-weight: 720 !important;
}

html body .wrap :is(.login-shell, .signup-shell, .reset-shell) :is(button, input, textarea, select) {
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 650 !important;
}

/* ui479: account flows are desktop-only too. Keep the same cockpit canvas
   when a narrow browser window is used; do not collapse the product into a
   second phone layout. */
html,
html body,
html body .wrap {
  min-width: 1280px !important;
}

html body .wrap {
  width: 1280px !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body .wrap :is(.login-shell, .signup-shell, .reset-shell) {
  box-sizing: border-box !important;
  width: 1280px !important;
  min-width: 1280px !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 26px 20px 50px !important;
}

html body .wrap :is(.login-card, .signup-card) {
  box-sizing: border-box !important;
  grid-template-columns: minmax(330px, .96fr) minmax(340px, 1fr) !important;
  gap: 18px !important;
  padding: 18px !important;
}

html body .wrap .login-card,
html body .wrap .login-links {
  width: 960px !important;
}

html body .wrap .signup-card {
  width: 900px !important;
}

html body .wrap .reset-card {
  width: 580px !important;
}

html body .wrap .login-links {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

html body .wrap .signup-code-row {
  grid-template-columns: 1fr 128px !important;
}

html body .wrap .signup-form .hint {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

@media (prefers-reduced-motion: reduce) {
  * {
    text-rendering: optimizeSpeed !important;
  }
}
