/* Shared risk indicators and public factor labels. */
  .risk-state { font-size: 13px; color: var(--text-secondary); line-height: 1.5; }
  .risk-retest { border: 0; padding: 0; background: none; color: var(--blue); font: inherit; cursor: pointer; }
  .risk-tip-factors { margin: 12px 0 0; padding-left: 20px; }
  .risk-tip-factors li + li { margin-top: 8px; }
  .risk-tip-factors .risk-factor-warning { color: #b54708; font-weight: 600; }
  .risk-tip-factors .risk-factor-clear { color: #1a7f37; font-weight: 600; }
  .risk-factor-tag { display: inline-block; margin-left: 6px; padding: 1px 6px; border: 1px solid #d2e1e5; border-radius: 4px; background: #f1f6f7; color: #496574; font-size: 12px; font-weight: 600; line-height: 1.5; vertical-align: middle; white-space: nowrap; }
  .risk-factor-tag[data-kind="sources"] { border-color: #dfe3e8; background: #f6f7f9; color: #57606a; font-weight: 500; }
  .risk-factor-tag[data-kind="weak"] { border-color: #eed7b0; background: #fff6e5; color: #92530d; }
  .risk-factor-tag[data-kind="strong"], .risk-factor-tag[data-kind="restricted"], .risk-factor-tag[data-kind="abuse"] { border-color: #f1c5c0; background: #fff0ee; color: #b42318; }
  .risk-tip-factors-title { margin-top: 14px; padding-top: 12px; border-top: 1px solid #e8eef2; color: #182f40; font-weight: 600; }
  .risk-tip-factors-title + .risk-tip-factors { margin-top: 8px; }
  .risk-tip-note { color: #607889; font-size: 13px; }
  .ai-risk-scale { position: relative; display: block; width: 100%; padding: 28px 0 20px; font-variant-numeric: tabular-nums; }
  .ai-risk-marker { position: absolute; top: 0; left: clamp(0px, calc(var(--risk-position) - 29px), calc(100% - 58px)); display: flex; align-items: center; justify-content: center; gap: 4px; width: 58px; height: 22px; border-radius: 5px; background: var(--risk-color); color: var(--risk-text); white-space: nowrap; font-size: 11px; line-height: 1; }
  .ai-risk-grade { font-size: 12px; font-weight: 750; }
  .ai-risk-value { font-weight: 650; }
  /* Keep the whole arrow attached below the label, clear of its rounded corners. */
  .ai-risk-pointer { position: absolute; top: 22px; left: clamp(9px, var(--risk-position), calc(100% - 9px)); transform: translateX(-50%); width: 0; height: 0; border: 4px solid transparent; border-top-color: var(--risk-color); border-bottom: 0; }
  .ai-risk-bands { display: flex; height: 18px; width: 100%; }
  .ai-risk-band { display: flex; align-items: center; justify-content: center; flex: none; min-width: 0; border-right: 1px solid rgb(255 255 255 / 70%); font-size: 11px; font-weight: 650; line-height: 1; white-space: nowrap; }
  .ai-risk-band:first-child { font-size: 10px; letter-spacing: -.4px; }
  .ai-risk-band:last-child { border-right: 0; }
  .ai-risk-ticks { position: absolute; inset: auto 0 0; height: 18px; font-size: 11px; line-height: 18px; color: #6b7c89; }
  .ai-risk-ticks span { position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap; }
  .ai-risk-ticks span:first-child { transform: none; }
  .ai-risk-ticks span:last-child { transform: translateX(-100%); }
  .ai-risk-scale.ip-risk-scale { --risk-marker-width: 128px; padding: 32px 0 22px; }
  .ip-risk-scale .ai-risk-marker { left: clamp(0px, calc(var(--risk-position) - var(--risk-marker-width) / 2), calc(100% - var(--risk-marker-width))); width: var(--risk-marker-width); height: 26px; gap: 6px; border-radius: 6px; font-size: 12px; }
  .ip-risk-scale .ai-risk-pointer { top: 26px; }
  .ip-risk-label { font-weight: 650; }
@media (max-width: 640px) {
    .ai-risk-scale { padding: 26px 0 18px; }
    .ai-risk-marker { left: clamp(0px, calc(var(--risk-position) - 27px), calc(100% - 54px)); width: 54px; height: 20px; }
    .ai-risk-pointer { top: 20px; }
    .ai-risk-bands { height: 16px; }
    .ai-risk-band { font-size: 10px; }
    .ai-risk-band:first-child { font-size: 9px; }
    .ai-risk-ticks { height: 16px; font-size: 10px; line-height: 16px; }
    .ai-risk-ticks span:last-child { transform: translateX(-50%); }
}
.risk-state { color: #607889; }
.risk-calculating { min-height: 32px; display: inline-flex; align-items: center; gap: 8px; color: #607889; font-size: 13px; }
