/* SecureVPN Rankings Contrast Fix V6 — scoped to ranking dashboard only.
   Applies to all DOM elements, including API-rendered updates.
   Does not change rank logic, protocol/sample data, heatmap performance colors,
   Elementor header/footer, or legacy CSS elsewhere. */

/* Form labels live on white V3 control card, not navy. */
body .svpn-v19-rankings .r4-controls .r4-control label {
  color:#315568!important;
}
body .svpn-v19-rankings .r4-controls .r4-control small {
  color:#496675!important;
}

/* V3 leaves legacy navy status cards in place: use a light foreground. */
body .svpn-v19-rankings .r4-status-grid .r4-stat {
  background:linear-gradient(145deg,#142c3e,#0a1f31)!important;
  border:1px solid #24445a!important;
  color:#f1f8fb!important;
}
body .svpn-v19-rankings .r4-status-grid .r4-stat :is(strong,span,p) {
  color:#f1f8fb!important;
}
body .svpn-v19-rankings .r4-status-grid .r4-stat small {
  color:#c8dbe6!important;
}
body .svpn-v19-rankings .r4-status-grid .r4-stat strong.status-ready {
  color:#55eda0!important;
}
body .svpn-v19-rankings .r4-status-grid .r4-stat strong.status-withheld,
body .svpn-v19-rankings .r4-status-grid .r4-stat strong.status-insufficient {
  color:#ffd49c!important;
}

/* The leaderboard keeps its dark cards; names and supporting figures must be light. */
body .svpn-v19-rankings .r4-leaders .r4-leader {
  color:#eef8fc!important;
}
body .svpn-v19-rankings .r4-leaders .r4-leader .r4-leader-provider {
  color:#f2fffb!important;
}
body .svpn-v19-rankings .r4-leaders .r4-leader :is(.r4-leader-protocol,.r4-leader-metrics,.r4-leader-metrics span) {
  color:#c1d9e6!important;
}
body .svpn-v19-rankings .r4-leaders .r4-leader .r4-leader-score {
  color:#e7fff9!important;
}
body .svpn-v19-rankings .r4-leaders .r4-leader .r4-leader-score small {
  color:#bfd7e4!important;
}
body .svpn-v19-rankings .r4-leaders .r4-leader .r4-rank-number {
  color:#91f6e3!important;
}

/* V3 produces white sections and a white Full Ranking table.
   Legacy td and paragraph colors were intended for dark panels. */
body .svpn-v19-rankings :is(.r4-section,.r4-table-card,.r4-panel) :is(p,.r4-muted,.r4-sub) {
  color:#496675!important;
}
body .svpn-v19-rankings .r4-table-card .r4-table :is(td,td b,td strong) {
  color:#173c50!important;
}
body .svpn-v19-rankings .r4-table-card .r4-table td small {
  color:#466677!important;
}
body .svpn-v19-rankings .r4-table-card .r4-table .r4-score {
  color:#0a715b!important;
}
body .svpn-v19-rankings .r4-table-card .r4-table .r4-score small {
  color:#316d65!important;
}
body .svpn-v19-rankings .r4-table-card .r4-table tbody tr:hover td {
  background-color:#f0f9f5!important;
}

/* Dark excluded and methodology tiles keep light ink, not global white-card ink. */
body .svpn-v19-rankings :is(.r4-excluded-row,.r4-method) :is(h2,h3,strong) {
  color:#e9fbf5!important;
}
body .svpn-v19-rankings :is(.r4-excluded-row,.r4-method) :is(p,small,.r4-muted) {
  color:#c2d9e5!important;
}

/* Explicitly stabilize accessible input focus and CTA text. */
body .svpn-v19-rankings .r4-controls .r4-update {
  background:#0b765c!important;
  border-color:#0b765c!important;
  color:#fff!important;
}
body .svpn-v19-rankings .r4-controls .r4-update:hover {
  background:#085945!important;
  border-color:#085945!important;
}
body .svpn-v19-rankings :is(button,select,summary,a):focus-visible {
  outline:3px solid #52cfa4!important;
  outline-offset:3px!important;
}
@media (max-width: 640px) {
  body .svpn-v19-rankings .r4-table-card .r4-table-scroll {
    max-width:100%;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
  }
  body .svpn-v19-rankings .r4-controls .r4-update {min-height:44px!important;}
}
