/* Shared rating components; colors carry text labels as well as numeric meaning. */
.fpr-summary, .fpr-compact, .fpr-overall {
  --fpr-ink: #142342; --fpr-muted: #53637b; --fpr-line: #dce5f1; --fpr-track: #e7edf5;
  --fpr-good: #096c48; --fpr-good-fill: #eaf8f1; --fpr-watch: #855300; --fpr-watch-fill: #fff5df;
  --fpr-low: #b82b41; --fpr-low-fill: #fff0f2; --fpr-neutral: #52627a; --fpr-neutral-fill: #eef2f7;
  color: var(--fpr-ink); min-width: 0; font-size: 14px; line-height: 1.45; overflow-wrap: anywhere;
}
.fpr-summary *, .fpr-compact *, .fpr-overall * { box-sizing: border-box; }
.fpr-good { --fpr-tone: var(--fpr-good); --fpr-fill: var(--fpr-good-fill); }
.fpr-watch { --fpr-tone: var(--fpr-watch); --fpr-fill: var(--fpr-watch-fill); }
.fpr-low { --fpr-tone: var(--fpr-low); --fpr-fill: var(--fpr-low-fill); }
.fpr-neutral { --fpr-tone: var(--fpr-neutral); --fpr-fill: var(--fpr-neutral-fill); }
.fpr-pair, .fpr-overall { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fpr-rating { min-width: 0; padding: 14px 12px; border-radius: 13px; background: var(--fpr-fill); }
.fpr-rating-label { font-size: 12px; font-weight: 600; color: var(--fpr-ink); }
.fpr-value { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px; margin: 4px 0; color: var(--fpr-tone); font-variant-numeric: tabular-nums; }
.fpr-value strong { font-size: 32px; font-weight: 750; letter-spacing: -1px; color: inherit; line-height: 1.2; }
.fpr-value > span { font-size: 12px; color: var(--fpr-muted); }
.fpr-rating-status { color: var(--fpr-tone); font-size: 12px; font-weight: 600; }
.fpr-rating-source { color: var(--fpr-muted); font-size: 11px; margin-top: 8px; }
.fpr-trend { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 12px 0; font-size: 12px; color: var(--fpr-muted); }
.fpr-trend strong { color: var(--fpr-tone); font-weight: 650; }
.fpr-warning { color: var(--fpr-watch); background: var(--fpr-watch-fill); padding: 10px 12px; border-radius: 8px; margin: 0 0 12px; font-size: 12px; }
.fpr-distribution { border-top: 1px solid var(--fpr-line); padding-top: 12px; }
.fpr-distribution-title { color: var(--fpr-muted); font-size: 12px; margin-bottom: 10px; }
.fpr-bar-row { display: grid; grid-template-columns: 30px minmax(0, 1fr) minmax(20px, auto); gap: 10px; align-items: center; margin: 8px 0; font-size: 12px; font-variant-numeric: tabular-nums; }
.fpr-track { height: 7px; border-radius: 4px; background: var(--fpr-track); overflow: hidden; }
.fpr-track i { display: block; height: 100%; background: #1765ed; border-radius: 4px; }
.fpr-negative .fpr-track i { background: var(--fpr-low); }
.fpr-count { text-align: right; }
.fpr-negative-summary { color: var(--fpr-muted); font-size: 12px; margin-top: 12px; }
.fpr-negative-summary strong { color: var(--fpr-tone); }
.fpr-compact { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; }
.fpr-badge { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 3px; min-width: 0; padding: 4px 6px; border-radius: 7px; background: var(--fpr-fill); font-size: 11px; line-height: 1.4; }
.fpr-badge > strong { color: var(--fpr-tone); font-size: 13px; font-variant-numeric: tabular-nums; }
.fpr-badge-source { color: var(--fpr-muted); font-size: 10px; white-space: nowrap; }
.fpr-platform { min-width: 0; }
.fpr-platform h4 { color: var(--fpr-ink); margin: 0 0 10px; font-size: 15px; }
.fpr-provenance { margin: 8px 0 0; color: var(--fpr-muted); font-size: 11px; }
@media (max-width: 350px) {
  .fpr-rating { padding: 12px 10px; }
  .fpr-value strong { font-size: 28px; }
  .fpr-rating-label { min-height: 35px; }
}
@media (prefers-color-scheme: dark) {
  /* The main manager wizard remains a light surface; MiniApp follows system theme. */
  .app .fpr-summary, .app .fpr-compact, .app .fpr-overall {
    --fpr-ink: #ecf1ff; --fpr-muted: #b0bed5; --fpr-line: #344159; --fpr-track: #2b3850;
    --fpr-good: #8ce4bc; --fpr-good-fill: #173b31; --fpr-watch: #ffd080; --fpr-watch-fill: #433620;
    --fpr-low: #ffabb6; --fpr-low-fill: #442731; --fpr-neutral: #b9c7de; --fpr-neutral-fill: #273349;
  }
}
