
/* White Label Fitness Global Polish — stable width, dark-athletic palette, compact nav, readable player UI */
:root{ --bpf-bg:#FFFFFF;--bpf-surface:#FFFFFF;--bpf-surface-2:#F8FBFF;--bpf-panel:#FFFFFF; --bpf-panel-soft:#F8FBFF;--bpf-red:#2563EB;--bpf-red-2:#1D4ED8;--bpf-red-soft:rgba(37,99,235,.18); --bpf-line:rgba(255,255,255,.14);--bpf-red-line:rgba(37,99,235,.42); --bpf-text:#fff7f5;--bpf-muted:#c9bbbd;--bpf-success:#2563EB;
}
html{overflow-x:hidden!important;background:var(--bpf-bg)!important;}
body{overflow-x:hidden!important;background:radial-gradient(circle at 82% 0%,rgba(130,0,28,.28),transparent 34%),linear-gradient(135deg,#050506 0%,#080609 55%,#030304 100%)!important;color:var(--bpf-text)!important;}
.page,.app-shell,.app,.shell,.wrap,.container,.main,.content,.coach-shell,.library-shell,.planner-shell,.tool-shell,main{max-width:1120px!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important;}
.page,.app-shell,.app,.shell,.wrap,.container,.main,.content,.coach-shell,.library-shell,.planner-shell,.tool-shell,main{padding-left:clamp(18px,3vw,32px)!important;padding-right:clamp(18px,3vw,32px)!important;}
section,.card,.panel,.hero,.box,.tool-card,.calc-card,.program-card,.exercise-card,.workout-card{box-sizing:border-box;max-width:100%;}
img,video,iframe{max-width:100%;}
.bpf-global-bottom-nav{width:min(600px,calc(100vw - 22px))!important;height:48px!important;bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;border-radius:18px!important;padding:3px 6px!important;background:rgba(5,5,7,.97)!important;border:1px solid rgba(255,255,255,.16)!important;}
.bpf-global-bottom-nav a{font-size:6.5px!important;letter-spacing:.02em!important;gap:1px!important;}
.bpf-global-bottom-nav .ico{font-size:15px!important;line-height:15px!important;}
body{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))!important;}
/* palette cleanup: reduce lime noise and make calculator/tool pages feel like the same app */
.calculators-page,.calculator-page,.calc-page{background:transparent!important;}
.calculators-page .card,.calculator-page .card,.calc-card,.calc-panel,.tool-card{background:linear-gradient(145deg,rgba(32,15,20,.94),rgba(14,14,17,.96))!important;border-color:var(--bpf-red-line)!important;box-shadow:0 18px 52px rgba(0,0,0,.28)!important;}
.calculators-page .tag,.calculator-page .tag,.calc-card .tag,.calc-card a,.calc-card button:not(.btn),.tool-card .tag{background:rgba(37,99,235,.13)!important;border-color:rgba(37,99,235,.42)!important;color:#fff7f5!important;}
/* Workout player width + hierarchy */
body.bpf-workout-player .page{max-width:1040px!important;padding-left:clamp(18px,3vw,30px)!important;padding-right:clamp(18px,3vw,30px)!important;padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))!important;}
body.bpf-workout-player h1{font-size:clamp(44px,6vw,72px)!important;line-height:.92!important;letter-spacing:-1.6px!important;}
body.bpf-workout-player .brand{font-size:clamp(34px,5vw,46px)!important;}
body.bpf-workout-player .hero,body.bpf-workout-player .panel{padding:clamp(18px,2.8vw,28px)!important;}
body.bpf-workout-player .exercise-row{grid-template-columns:46px 108px minmax(0,1fr) 64px!important;gap:14px!important;overflow:hidden!important;}
body.bpf-workout-player .exercise-row h3{font-size:clamp(24px,3vw,32px)!important;line-height:1!important;letter-spacing:-.3px!important;}
body.bpf-workout-player .thumb{width:108px!important;height:86px!important;}
body.bpf-workout-player .cue{max-width:100%!important;overflow-wrap:anywhere!important;line-height:1.25!important;background:rgba(96,82,8,.32)!important;color:#fffbe8!important;border-color:rgba(37,99,235,.45)!important;}
body.bpf-workout-player .tag{justify-self:end;min-width:54px;text-align:center;}
body.bpf-workout-player .meta span{font-size:18px!important;border-radius:12px!important;}
body.bpf-workout-player #repInfo{background:rgba(37,99,235,.22)!important;border-color:rgba(37,99,235,.55)!important;color:#fff!important;box-shadow:0 0 0 1px rgba(37,99,235,.18) inset;}
body.bpf-workout-player .timer{font-size:clamp(52px,8vw,90px)!important;color:var(--bpf-success)!important;}
body.bpf-workout-player .big-name{font-size:clamp(40px,5.6vw,62px)!important;letter-spacing:-.8px!important;color:#fff7f5!important;text-shadow:none!important;background:none!important;-webkit-text-fill-color:currentColor!important;}
body.bpf-workout-player .big-img{height:min(46vh,450px)!important;}
body.bpf-workout-player .control-row{gap:10px!important;}
body.bpf-workout-player .btn{min-height:50px!important;font-size:14px!important;border-radius:14px!important;}
@media(max-width:860px){body.bpf-workout-player .player-layout{grid-template-columns:1fr!important}body.bpf-workout-player .exercise-row{grid-template-columns:34px 84px minmax(0,1fr)!important}body.bpf-workout-player .exercise-row .tag{grid-column:3;justify-self:start}body.bpf-workout-player .thumb{width:84px!important;height:70px!important}.bpf-global-bottom-nav{width:calc(100vw - 12px)!important}} /* White Label Fitness APP HARDENING — 2026-06-09 controlled-lime pass Purpose: keep blue as the CTA color, blue as the status/active accent, remove browser-default buttons, and protect mobile pages from bottom-tray overlap without changing page logic. */
:root{ --bpf-red:#2563EB!important; --bpf-red-2:#1D4ED8!important; --bpf-lime:#2563EB!important; --bpf-text:#fff7f5!important; --bpf-muted:#c9bbbd!important;
}
body{padding-bottom:calc(92px + env(safe-area-inset-bottom,0px))!important;}
main,.page,.app-shell,.shell,.wrap,.container,.content{scroll-margin-bottom:110px!important;} /* Normalize unstyled/default buttons while preserving existing secondary/ghost semantics. */
button:not(.bnav-item):not(.tab):not(.nav-pill),
input[type="button"],input[type="submit"],
a.btn,.btn,.button,.act-btn,.empty-cta,.notify-btn{ -webkit-appearance:none;appearance:none; border-radius:14px; border:1px solid rgba(37,99,235,.45); background:linear-gradient(180deg,#2563EB,#1D4ED8); color:#fff!important; font-weight:900; text-decoration:none; box-shadow:0 10px 28px rgba(37,99,235,.18);
}
button.secondary,.btn.secondary,a.secondary,.btn.ghost,button.ghost,.prog-act:not(.hot),.btn-o{ background:rgba(255,255,255,.075)!important; border-color:rgba(255,255,255,.18)!important; color:#fff7f5!important; box-shadow:none!important;
}
button:disabled,.btn:disabled{opacity:.68;filter:saturate(.82);cursor:not-allowed;} /* No blue/orange UI drift: nutrition/macro colors stay inside the White Label Fitness palette. */
.macro-stat-val.c-carb,.pbadge.bl{color:#fff7f5!important;border-color:rgba(255,255,255,.24)!important;background:rgba(255,255,255,.08)!important;}
.macro-stat-val.c-fat,.macro-stat-val.c-cal{color:#2563EB!important;}
.macro-stat-val.c-pro,.metric-change.up{color:#2563EB!important;}
.badge-orange,.tag.orange,.btn-sm.orange,.btn-full.orange{background:#2563EB!important;color:#fff!important;border-color:#2563EB!important;} /* Active nav is a controlled performance accent, not another blue CTA. */
.bpf-global-bottom-nav a.active{ background:linear-gradient(180deg,rgba(37,99,235,.18),rgba(37,99,235,.075))!important; color:#2563EB!important; border:1px solid rgba(37,99,235,.20)!important;
}
.bpf-global-bottom-nav a.active .ico{filter:drop-shadow(0 0 8px rgba(37,99,235,.38))!important;}
.bpf-global-bottom-nav a{touch-action:manipulation;} /* Mobile safety: forms/cards should not spill beyond the app frame. */
input,select,textarea{max-width:100%;border-radius:12px;}
.card,.panel,.hero,.tool-card,.calc-card,.program-card,.exercise-card,.workout-card{overflow-wrap:anywhere;}
@media(max-width:560px){ body{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))!important;} .page,.app-shell,.shell,.wrap,.container,main{padding-left:16px!important;padding-right:16px!important;}
} /* White Label Fitness CONTROLLED VISUAL SWEEP — 2026-06-09 Scope: consistency pass only. Keeps red as CTA, lime as active/status accent, and prevents wide/overlapped pages. */
:root{--bpf-app-max:1040px;--bpf-calc-max:940px;--bpf-nav-clear:112px;}
.page,.app-shell,.shell,.wrap,.container,.main,.content,.coach-shell,.library-shell,.planner-shell,.tool-shell,main{ max-width:var(--bpf-app-max)!important;
}
body.calculators-page .app,body.calculator-page .app,.calc-page .app,.bpf-calc-index-compact{ max-width:var(--bpf-calc-max)!important; margin-left:auto!important;margin-right:auto!important;
}
body{padding-bottom:calc(var(--bpf-nav-clear) + env(safe-area-inset-bottom,0px))!important;}
main,.page,.app,.wrap,.shell,.container{padding-bottom:max(42px,calc(var(--bpf-nav-clear) - 16px))!important;}
section:last-of-type,.card:last-child,.panel:last-child{margin-bottom:18px;} /* Responsive grids stay clean and do not feel like a wall of cards. */
.grid,.navgrid,.calc-category-grid,.program-grid,.tool-grid,.snack-grid,.cards-grid{ max-width:100%!important;
}
@media(min-width:901px){ .navgrid,.calc-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;} .snack-grid,.program-grid,.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:900px){ .grid,.navgrid,.calc-category-grid,.program-grid,.tool-grid,.snack-grid,.cards-grid{grid-template-columns:1fr!important;}
} /* Button consistency: CTAs red, utility buttons dark-outline, lime reserved for status/small badges. */
.btn.primary,.primary:not(.bpf-global-bottom-nav a),button.primary,.bpf-ai-primary,.bpf-load-day-btn,.load-free-player-btn,.preview-workout-btn,.free-workout-btn{ background:linear-gradient(180deg,#2563EB,#1D4ED8)!important; border-color:rgba(37,99,235,.65)!important; color:#fff!important; box-shadow:0 14px 30px rgba(37,99,235,.20)!important;
}
button.lime,.btn.lime,.lime:not(.badge):not(.eyebrow):not(.bpf-global-bottom-nav a),#add30,#toggleSwaps,#testAudio{ background:rgba(255,255,255,.075)!important; border:1px solid rgba(255,255,255,.18)!important; color:#fff7f5!important; box-shadow:none!important;
}
.badge,.eyebrow,.small,.prog-day-num,.status,.day{color:#2563EB!important;} /* Remove remaining blue/orange visual drift, including old free badges that may appear on cached/home sections. */
.bpf-free-badge,.free-footer-nav .free-badge{ background:linear-gradient(180deg,#2563EB,#1D4ED8)!important; color:#fff!important; border-color:rgba(37,99,235,.65)!important; text-shadow:none!important;
}
.notify-icon,.back-site-btn::before{color:#2563EB!important;}
.notify-btn{background:#2563EB!important;border-color:#2563EB!important;color:#fff!important;}
.checkin-done,.post-lead-check,.testi2-tag.win,.ba-label.after,.trend-down,.metric-change.up{ color:#2563EB!important;border-color:rgba(37,99,235,.30)!important;background:rgba(37,99,235,.08)!important;
} /* Player and image cards: clearer tap target and no trapped content behind the tray. */
.big-img,#exerciseImg,.exercise-visual img,.technique-graphic,img[data-enlarge="true"]{cursor:zoom-in;}
body.bpf-workout-player .current-panel,body.bpf-workout-player .next-card,.exercise-visual,.stage,.hero,.panel,.card{ min-width:0!important;
}
body.bpf-workout-player .player-layout{max-width:100%!important;}
body.bpf-workout-player aside{min-width:0!important;} /* Forms and calculators: readable controls, no browser-default blocks. */
input,select,textarea{background:rgba(0,0,0,.42)!important;color:#fff7f5!important;border:1px solid rgba(255,255,255,.16)!important;}
select option{background:#111114;color:#fff7f5;}
.calc-category,.calc-links a,.navcard,.workout-card,.tool-card,.program-card{ transition:transform .16s ease,border-color .16s ease,background .16s ease;
}
.calc-links a:hover,.navcard:hover,.workout-card:hover,.tool-card:hover,.program-card:hover{ border-color:rgba(37,99,235,.65)!important; transform:translateY(-1px);
} @media(max-width:560px){ :root{--bpf-nav-clear:122px;} h1{overflow-wrap:anywhere;} .hero,.panel,.card{border-radius:20px!important;} .top,.topbar{gap:10px!important;}
} /* White Label Fitness Recovery page bottom-space correction — targeted only The global nav-clearance rules are useful on most pages, but Recovery Lab has a long in-page card stack and was inheriting too much empty clearance above the fixed tray. Keep a small safe gap, not a giant black dead-zone. */
#page-recovery.page,
#page-recovery.page.active{ padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))!important; margin-bottom:0!important; min-height:auto!important;
}
#page-recovery .bpf-today-actions:last-of-type,
#page-recovery .recovery-finish{ margin-bottom:0!important;
}
body:has(#page-recovery.active){ padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))!important;
}
@supports not selector(body:has(*)){ #page-recovery{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))!important;}
} /* White Label Fitness compact mobile centering + bottom tray clearance tune Layout-only: reduces wasted black space above fixed nav and prevents mobile horizontal drift. */
html,body{ width:100%!important; max-width:100%!important; overflow-x:hidden!important;
}
body{ padding-bottom:calc(58px + env(safe-area-inset-bottom,0px))!important;
}
.shell,.app-shell,.wrap,.container,.content,.main,main{ box-sizing:border-box!important; max-width:min(980px,calc(100vw - 20px))!important; margin-left:auto!important; margin-right:auto!important;
}
.shell{ width:min(760px,100vw)!important; padding-bottom:0!important;
}
.main,.shell .main{ padding-bottom:calc(62px + env(safe-area-inset-bottom,0px))!important; scroll-padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))!important;
}
.page,.page.active{ box-sizing:border-box!important; width:100%!important; max-width:100%!important; margin-left:auto!important; margin-right:auto!important; padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))!important; min-height:auto!important; overflow-x:hidden!important;
}
.bpf-global-bottom-nav,.bot-nav,.bottom-nav{ left:50%!important; transform:translateX(-50%)!important; bottom:calc(6px + env(safe-area-inset-bottom,0px))!important; width:min(560px,calc(100vw - 18px))!important; max-width:calc(100vw - 18px)!important;
}
@media(max-width:760px){ body{padding-bottom:calc(54px + env(safe-area-inset-bottom,0px))!important;} .shell,.app-shell,.wrap,.container,.content,.main,main{ width:calc(100vw - 14px)!important; max-width:calc(100vw - 14px)!important; margin-left:auto!important; margin-right:auto!important; padding-left:0!important; padding-right:0!important; overflow-x:hidden!important; } .main,.shell .main{ padding-bottom:calc(58px + env(safe-area-inset-bottom,0px))!important; scroll-padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))!important; } .page,.page.active{ padding-left:10px!important; padding-right:10px!important; padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))!important; } .bpf-today-action-grid,.bpf-direct-flow,.recovery-grid,.mindset-grid,.recovery-routine-grid,.breath-selector,.bpf-auto-progress,.bpf-recovery-sequence{ grid-template-columns:1fr!important; } .bpf-today-action{ min-width:0!important; width:100%!important; } .topics-row,.chips,.filter-row,.free-filter-row{ max-width:100%!important; overflow-x:auto!important; -webkit-overflow-scrolling:touch!important; } .bpf-global-bottom-nav,.bot-nav,.bottom-nav{ width:calc(100vw - 18px)!important; max-width:calc(100vw - 18px)!important; bottom:calc(6px + env(safe-area-inset-bottom,0px))!important; }
}
@media(max-height:680px){ .main,.shell .main{padding-bottom:calc(54px + env(safe-area-inset-bottom,0px))!important;scroll-padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))!important;} .page,.page.active{padding-bottom:12px!important;}
}


/* ======================================================================
   WLF FINAL SMOOTH APP POLISH — 2026-06-17
   Fixes button readability, bottom nav, dark modal, and over-40 friendly text contrast.
   ====================================================================== */
:root,html[data-wlf-theme="calm-blue"]{--wlf-brand:#2b65c8;--wlf-brand-2:#1f4f9f;--wlf-brand-soft:#e4efff;--wlf-brand-wash:#f3f8ff;--wlf-text:#071b4a;--wlf-muted:#4d6078;--wlf-border:#b8d3ff;}
body{font-size:16px!important;line-height:1.55!important;color:var(--wlf-text)!important;background:#f6f9ff!important;}
p,li,small,.sub,.copy,.desc,.meta,.bpf-age-d,.bpf-snack-d,.bpf-card-copy,.bpf-today-sub,.bpf-today-actions-sub{color:var(--wlf-muted)!important;-webkit-text-fill-color:var(--wlf-muted)!important;}
h1,h2,h3,h4,strong,b,.bpf-age-t,.bpf-snack-t,.bpf-card-title,.bpf-today-actions-title,.bpf-store-title{color:var(--wlf-text)!important;-webkit-text-fill-color:var(--wlf-text)!important;}
button,.btn,a.btn,.button,a.button,[role="button"],.bpf-age-btn,.bpf-snack-btn,.bpf-today-btn,.bpf-store-btn,.recovery-chip,.topic-chip,.quick-question{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;font-weight:800!important;letter-spacing:0!important;text-transform:none!important;line-height:1.15!important;min-height:44px!important;border-radius:16px!important;}
.bpf-age-btn:not(.secondary),.bpf-snack-btn,.bpf-today-btn.primary,.bpf-store-btn.primary,.btn.primary,a.btn.primary,button.primary,.lead-btn,.cta-button,input[type="submit"]{background:linear-gradient(180deg,#2f6fe8 0%,#235bbd 100%)!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border:1px solid #235bbd!important;box-shadow:0 10px 24px rgba(31,79,159,.16)!important;}
.bpf-age-btn.secondary,.bpf-today-btn.ghost,.btn.secondary,.btn.ghost,a.btn.secondary,a.btn.ghost,.quick-question,.topic-chip{background:#eef5ff!important;color:#071b4a!important;-webkit-text-fill-color:#071b4a!important;border:1px solid #9fc2ff!important;box-shadow:none!important;}
.bpf-direct-flow,.bpf-direct-flow-polished{gap:10px!important;}.bpf-direct-step,.bpf-direct-flow .bpf-direct-step,.bpf-auto-progress>*,.bpf-life-pillars>div{background:#e7f0ff!important;color:#071b4a!important;-webkit-text-fill-color:#071b4a!important;border:1px solid #9fc2ff!important;box-shadow:none!important;}.bpf-direct-step *,.bpf-auto-progress *,.bpf-life-pillars *{color:#071b4a!important;-webkit-text-fill-color:#071b4a!important;}.bpf-direct-step strong,.bpf-auto-progress strong,.bpf-life-pillars b{background:#2f6fe8!important;color:#fff!important;-webkit-text-fill-color:#fff!important;}
.bpf-featured-age-card,.bpf-exercise-snacks-card,.bpf-today-actions,.bpf-home-access-offer,.bpf-storefront,.bpf-store-card,.app-home-card,.save-result-card{background:linear-gradient(180deg,#ffffff 0%,#f4f8ff 100%)!important;border:1px solid #b8d3ff!important;box-shadow:0 12px 30px rgba(31,79,159,.08)!important;}.bpf-age-actions,.bpf-snack-btn{min-width:190px!important;text-align:center!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
.modal.show{background:rgba(15,23,42,.42)!important;backdrop-filter:blur(8px)!important;}.modal .sheet,.sheet,.workout-modal,.modal-content,.dialog,.drawer{background:#ffffff!important;color:#071b4a!important;-webkit-text-fill-color:#071b4a!important;border:1px solid #b8d3ff!important;box-shadow:0 24px 80px rgba(15,23,42,.24)!important;}.modal .sheet h1,.modal .sheet h2,.modal .sheet h3,.modal .sheet strong,.modal .sheet b,.sheet h1,.sheet h2,.sheet h3,.sheet strong,.sheet b{color:#071b4a!important;-webkit-text-fill-color:#071b4a!important;}.modal .sheet p,.modal .sheet span,.modal .sheet small,.modal .sheet li,.sheet p,.sheet span,.sheet small,.sheet li{color:#4d6078!important;-webkit-text-fill-color:#4d6078!important;}.detail-box,.ex-row,.modal .detail-box,.modal .ex-row{background:#f4f8ff!important;border:1px solid #cfe0ff!important;color:#071b4a!important;-webkit-text-fill-color:#071b4a!important;}.ex-name,.num{color:#071b4a!important;-webkit-text-fill-color:#071b4a!important;}.ex-meta{color:#4d6078!important;-webkit-text-fill-color:#4d6078!important;}.sheet-actions{background:linear-gradient(180deg,rgba(255,255,255,0),#fff 30%)!important;}.close{background:#2f6fe8!important;color:#fff!important;-webkit-text-fill-color:#fff!important;border-color:#2f6fe8!important;}
.exerciseArt,.cardMedia img,.detailImg img,.ex-thumb,#activeImg,#nextImg{object-fit:contain!important;background:#fff!important;}
