/* BPF 5.15.2.14 — targeted accessibility regression repairs.
   Tested as a staging-only candidate against 5.15.2.13. Never change business logic.
   :not(#bpf514-never) raises specificity above legacy ID/!important rules;
   it matches ordinary elements without requiring a new DOM ID.
   WCAG measure at each gradient stop; body copy must be >=4.5:1. */
:root{--bpf514-ink:#061427;--bpf514-paper:#f4faff;--bpf514-blue:#62b2ff;--bpf514-blue-deep:#2f8bff}
/* Exact blue/button pair: ink 5.50:1 at the darkest blue stop and 8.21:1 at the lightest. */
#page-ask a.bpf-store-btn.primary:not(#bpf514-never),
#page-ask a.bpf-store-btn.primary:not(#bpf514-never) *,
#page-ask .bpf-hpa-actions button:not(#bpf514-never),
#tt-guided-start-hero:not(#bpf514-never),
#tt-guided-start-hero:not(#bpf514-never) *,
#tt-guided-start-inline:not(#bpf514-never),
#tt-guided-next:not(#bpf514-never),
#tt-train-btn:not(#bpf514-never),
#tt-complete-btn:not(#bpf514-never),
.tt-modal button.btn.primary:not(#bpf514-never),
.tt-submit button.btn.primary:not(#bpf514-never),
#pt-start-workout:not(#bpf514-never),
#pt-start-workout:not(#bpf514-never) *,
#bpf-progress-guided:not(#bpf514-never),
#bpf-progress-next-link:not(#bpf514-never),
#bpf-progress-next:not(#bpf514-never),
#rba-open-hero:not(#bpf514-never),
#startSession:not(#bpf514-never),
#playPause:not(#bpf514-never),
#player-view .meal-source-note button:not(#bpf514-never),
#player-view .bpf-see-plans-btn:not(#bpf514-never),
#player-view .check-btn.done:not(#bpf514-never),
.bpf-food-swap-tools a:not(#bpf514-never){
 background:linear-gradient(180deg,var(--bpf514-blue),var(--bpf514-blue-deep))!important;
 color:var(--bpf514-ink)!important;-webkit-text-fill-color:var(--bpf514-ink)!important;
 opacity:1!important;border-color:#7dc3ff!important;
}
/* Existing controls which are on a DARK surface should keep light text, not receive a bright fill. */
#page-ask .bpf-store-mini a:not(#bpf514-never),
#page-ask .bpf-store-mini a:not(#bpf514-never) *,
#page-ask a.bpf-red-cta-readable:not(#bpf514-never),
#page-ask a.bpf-red-cta-readable:not(#bpf514-never) *,
#page-more .new-badge:not(#bpf514-never),
.ncmd-actions button.ncmd-btn.ghost:not(#bpf514-never),
.ncmd-actions button.ncmd-btn.ghost:not(#bpf514-never) *{
 background-color:#0c2b49!important;color:#f4faff!important;-webkit-text-fill-color:#f4faff!important;opacity:1!important;
}
/* The legacy theme paints the tiny 'all/new' accents brighter than their lettering. */
#page-more .new-badge:not(#bpf514-never){padding:5px 8px!important;border:1px solid #62b2ff!important}
#page-ask a.bpf-red-cta-readable:not(#bpf514-never),
#page-ask .bpf-store-mini a:not(#bpf514-never){background:#0c2b49!important;background-image:none!important}
/* Existing pro-theme specificity: css :has(#diet-player-body-wrap) was overriding 5.15.2.13. */
#player-view .meal-source-note button:not(#bpf514-never){min-height:44px!important}
#player-view .meal-portion-preview .eat-label:not(#bpf514-never),
#player-view .meal-portions .eat-label:not(#bpf514-never){background:#62b2ff!important;color:#061427!important;-webkit-text-fill-color:#061427!important;opacity:1!important}
#player-view .meal-macros:not(#bpf514-never),
#player-view .meal-macros:not(#bpf514-never) *,
#player-view .adh-pct:not(#bpf514-never),
#player-view .adh-val:not(#bpf514-never){
 color:#ecf5ff!important;-webkit-text-fill-color:#ecf5ff!important;opacity:1!important;
}
/* Meal swap action used blue text on a medium blue background. */
.bpf-food-swap-tools a:not(#bpf514-never){min-height:44px!important}
/* Other actions missed by 5.15.2.13. */
#bpf-progress-function-link:not(#bpf514-never),
#bpf-progress-function-link:not(#bpf514-never) *,
#bpf-progress-guidance:not(#bpf514-never){color:#eef7ff!important;-webkit-text-fill-color:#eef7ff!important}
/* Deep blue-on-white calculator tiles and bright, pink-gray index: navy surfaces + light text. */
body.bpf-wave2-calculators .bpf-calc-index-compact:not(#bpf514-never){background:#081d35!important;border-color:#3a688f!important;color:#f4faff!important}
body.bpf-wave2-calculators .bpf-calc-index-compact h2:not(#bpf514-never),
body.bpf-wave2-calculators .bpf-calc-index-compact>p:not(#bpf514-never),
body.bpf-wave2-calculators .calc-category h3:not(#bpf514-never){color:#f4faff!important;-webkit-text-fill-color:#f4faff!important}
body.bpf-wave2-calculators .calc-category:not(#bpf514-never){background:#0a2946!important;border-color:#315b80!important}
body.bpf-wave2-calculators .navgrid .navcard:not(#bpf514-never){background:#0a2946!important;border-color:#315b80!important}
body.bpf-wave2-calculators .navgrid .navcard strong:not(#bpf514-never),
body.bpf-wave2-calculators .navgrid .navcard span:not(#bpf514-never){color:#f4faff!important;-webkit-text-fill-color:#f4faff!important}
/* Keep the shared HELP pill readable on every page, including player-help. */
a.bpf-page-help:not(#bpf514-never){background:#0b2c4a!important;background-image:none!important;color:#f4faff!important;-webkit-text-fill-color:#f4faff!important;opacity:1!important}
a.bpf-page-help:not(#bpf514-never) *{color:#f4faff!important;-webkit-text-fill-color:#f4faff!important;opacity:1!important}
/* Workout Player: actual word-breaking culprit is per-exercise .tag, not overview #duration. */
body.bpf-workout-player #overview .exercise-row .tag:not(#bpf514-never){min-width:95px!important;width:max-content!important;max-width:110px!important;overflow-wrap:normal!important;word-break:keep-all!important;white-space:nowrap!important}
@media(min-width:961px){body.bpf-workout-player #overview .exercise-row:not(#bpf514-never){grid-template-columns:44px 108px minmax(0,1fr) 105px!important}}
/* Keyboard users: do not remove visible focus when bespoke controls highlight selection. */
body .pt-tweak:focus-visible:not(#bpf514-never),
body .pt-btn:focus-visible:not(#bpf514-never),
body .pt-choice:focus-visible:not(#bpf514-never),
body .pt-option:focus-visible:not(#bpf514-never),
body #pt-start-workout:focus-visible:not(#bpf514-never),
body .choice:focus-visible:not(#bpf514-never),
body #startSession:focus-visible:not(#bpf514-never),
body #playPause:focus-visible:not(#bpf514-never){outline:3px solid #87cfff!important;outline-offset:3px!important;box-shadow:0 0 0 5px #061427!important}
/* Narrow targets: minimum 24px WCAG AA; 44px preferred when possible. */
body .add-food-btn:not(#bpf514-never){min-height:44px!important}
body .bpf-food-swap-tools a:not(#bpf514-never),
body .bpf-food-detail-row>button:not(#bpf514-never),
body .bpf-food-swap-tools button:not(#bpf514-never){min-height:44px!important}
/* Smaller text on dashboard/helper cards must not be washed out by alpha. */
body .pt-tweak small:not(#bpf514-never){color:#e4f3ff!important;-webkit-text-fill-color:#e4f3ff!important;opacity:1!important}
body .nutrition-command .ncmd-actions .ncmd-btn.ghost:not(#bpf514-never){background:#0b2d4d!important;color:#f4faff!important;-webkit-text-fill-color:#f4faff!important}
body .food-search-result .macro-line:not(#bpf514-never),
body .search-result .macro-line:not(#bpf514-never){color:#e7f4ff!important;-webkit-text-fill-color:#e7f4ff!important;opacity:1!important}
/* No red/magenta; cosmetic home kicker overhang at narrow viewport. */
@media(max-width:350px){#page-ask .bpf-store-kicker:not(#bpf514-never){max-width:100%!important;overflow-wrap:break-word!important}}
