/* NUMERA 57 — light-mode contrast repairs only.
   Keep all dark-mode styles, geometry and cinematic imagery unchanged. */
:root[data-resolved-theme="light"] .numera-shell {
  --numera-readable:#253047;
  --numera-readable-muted:#536078;
  --numera-readable-accent:#56377e;
}
/* Cards turned white by the 55 theme need matching dark text, not legacy
   near-white labels left behind by the original dark dashboard. */
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-46-stat,.numera-46-wallet-history,.numera-46-destination,
  .numera-48-stat,.numera-48-number-section,.numera-48-no-coverage,
  .numera-52-member-benefit,.numera-46-connect-tile
){
  background:#fff!important;
  border-color:#d8dfe9!important;
  color:var(--numera-readable)!important;
}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-46-stat,.numera-48-stat,.numera-46-destination,
  .numera-46-connect-tile,.numera-52-member-benefit
):hover{
  background:#f3f0f9!important;
  border-color:#c7b5db!important;
}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-46-stat>span,.numera-46-stat small,
  .numera-46-destination>span:last-child,
  .numera-48-stat>span,.numera-48-stat>small,
  .numera-48-no-coverage p,.numera-48-section-heading p:not(.numera-eyebrow),
  .numera-52-member-benefit small,.numera-46-wallet-history small,
  .numera-46-connect-search,.numera-46-connect-chevron
){
  color:var(--numera-readable-muted)!important;
}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-46-stat strong,.numera-46-destination strong,
  .numera-46-section-head h2,.numera-46-wallet-history strong,
  .numera-48-stat>strong,.numera-48-section-heading h2,
  .numera-52-member-benefit strong,.numera-46-number-catalogue h2,
  .numera-46-assigned h2,.numera-50-profile-intro h2
){
  color:var(--numera-readable)!important;
}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-48-stat i,.numera-46-location-art,.numera-46-wallet-symbol,
  .numera-52-member-benefit>span
){
  color:var(--numera-readable-accent)!important;
}
:root[data-resolved-theme="light"] .numera-shell .numera-48-stat i{
  background:#eee7f7!important;border-color:#d7c7e9!important;
}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-48-section-action,.numera-48-no-coverage button,
  .numera-46-invoice-link
){color:var(--numera-readable-accent)!important}
:root[data-resolved-theme="light"] .numera-shell .numera-48-number-countries .numera-country-option{
  background:#f8f9fc!important;color:var(--numera-readable)!important;
  border-color:#d7dfea!important;
}
:root[data-resolved-theme="light"] .numera-shell .numera-48-number-countries .numera-country-option:hover{
  background:#f0ebf8!important;border-color:#bca5d4!important;
}
:root[data-resolved-theme="light"] .numera-shell .numera-46-connect-search input,
:root[data-resolved-theme="light"] .numera-shell .numera-49-amount-input input{
  color:var(--numera-readable)!important;
  -webkit-text-fill-color:var(--numera-readable)!important;
}
:root[data-resolved-theme="light"] .numera-shell .numera-49-amount-input>span{
  color:var(--numera-readable-muted)!important;
}
:root[data-resolved-theme="light"] .numera-shell .numera-49-provider{
  background:#f5f2fa!important;border-color:#d5c8e6!important;
  color:#53436b!important;
}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-50-account-identifiers p,.numera-50-profile-photo-form small,
  .numera-50-profile-photo-form label,.numera-46-good-state
){color:var(--numera-readable-muted)!important}
:root[data-resolved-theme="light"] .numera-shell .numera-50-account-identifiers summary{
  color:var(--numera-readable)!important;
}
/* Membership benefits use neutral cards, while the promotional film remains
   dark with genuinely legible light text. */
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-46-hero,.numera-46-plus-promo,.numera-48-hero,
  .numera-51-hero,.numera-52-membership-hero
){color:#faf7ff!important}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-46-hero,.numera-46-plus-promo,.numera-48-hero,
  .numera-51-hero,.numera-52-membership-hero
) :is(h1,h2,h3){color:#faf7ff!important}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-46-hero,.numera-46-plus-promo,.numera-48-hero,
  .numera-51-hero,.numera-52-membership-hero
) .numera-eyebrow{color:#e7d9f9!important}
:root[data-resolved-theme="light"] .numera-shell .numera-48-hero-copy h1 span{color:#e5d0f2!important}
:root[data-resolved-theme="light"] .numera-shell .numera-52-member-copy>p:not(.numera-eyebrow){
  color:#d1c8dc!important;
}
:root[data-resolved-theme="light"] .numera-shell .numera-52-member-date{color:#c9bfd8!important}
/* The Pay & Go country and plan list has its own legacy, hard-coded white text.
   Repair it as a unit so destination names, data sizes and prices all read. */
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-54-payg-entry,.numera-54-payg-screen .numera-payg-country-section,
  .numera-54-payg-screen .numera-plan-row
){
  background:#fff!important;border-color:#d8dfe9!important;
  color:var(--numera-readable)!important;
}
:root[data-resolved-theme="light"] .numera-shell .numera-54-payg-screen .numera-plan-row.unavailable{
  background:#f2f4f8!important;
}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-54-payg-entry strong,.numera-54-destination-title h2,
  .numera-54-payg-screen .numera-payg-country-heading h2,
  .numera-54-payg-screen .numera-plan-row h2,
  .numera-54-data-size,.numera-54-payg-screen .numera-plan-price>strong
){color:var(--numera-readable)!important}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-54-payg-entry small,.numera-54-payg-entry>div>span,
  .numera-54-destination-title small,.numera-54-payment-state,
  .numera-54-payg-screen .numera-plan-row p:not(.numera-eyebrow),
  .numera-54-payg-screen .numera-plan-row small
){color:var(--numera-readable-muted)!important}
:root[data-resolved-theme="light"] .numera-shell .numera-54-payg-screen .numera-plan-row .numera-eyebrow{
  color:var(--numera-readable-accent)!important;
}
:root[data-resolved-theme="light"] .numera-shell .numera-54-payg-screen .numera-payg-country{
  background:#f9fafe!important;border-color:#d7dfea!important;
  color:var(--numera-readable)!important;
}
:root[data-resolved-theme="light"] .numera-shell .numera-54-payg-screen .numera-payg-country.selected{
  background:#efe8f8!important;border-color:#b69ccd!important;
  color:#482e66!important;
}
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-54-destination-title>span,.numera-54-ready-count,
  .numera-54-existing-topup
){
  background:#f2edf9!important;border-color:#d4c5e7!important;
  color:#4e356c!important;
}
/* Preserve clearly readable white captions on dark photograph cards. */
:root[data-resolved-theme="light"] .numera-shell :is(
  .numera-46-product-card,.numera-51-product,.numera-52-product,
  .numera-48-number-preview
){color:#fff!important}
