/* JoyFit F7: focused visual corrections only. Last stylesheet in head. */
/* Onboarding skip actions are actual accessible buttons, not faded legacy hints. */
#intro .ob-e3-skip{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
#intro .ob-e3-skip button{color:#343b46!important;background:transparent!important;font-size:clamp(.8125rem,3.4vw,.9375rem)!important;font-weight:750!important;opacity:1!important;line-height:1.4!important;border:0!important;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;min-height:44px;padding:9px 2px!important;text-align:left}
:root[data-theme='dark'] #intro .ob-e3-skip button{color:#e5eaf0!important}
#intro .ob-e3-skip button:focus-visible{outline:2px solid #ff854d;outline-offset:4px;border-radius:4px}
#intro .ob-e3-skip button:hover{color:#833800!important}
/* Graphical ring uses elapsed time (0–100%); track remains subtle. */
.jp-fast-clock{background:transparent!important;padding:0!important;position:relative;isolation:isolate;filter:none!important;display:grid;place-items:center}
.jp-fast-clock .jp-f7-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);overflow:visible;pointer-events:none}
.jp-f7-ring circle{fill:none;stroke-width:13}
.jp-f7-track{stroke:#49505b}
.jp-f7-progress{stroke:#ff7a32;stroke-linecap:round;stroke-dasharray:565.4867;stroke-dashoffset:565.4867;filter:drop-shadow(0 0 5px #ff792f50);transition:stroke-dashoffset .45s linear}
.jp-fast-clock .jp-fast-inner{width:calc(100% - 40px);height:calc(100% - 40px);z-index:1}
/* Celebration: never render scene headline over the preceding paragraph. */
#sh .jp-e3-party>p{position:relative;line-height:1.55!important;max-width:38ch;margin:10px auto 0!important;min-height:0}
#sh .jp-e3-party .jp-playground{margin-top:26px!important;isolation:isolate}

#sh .jp-e3-party{overflow-y:auto;max-height:calc(100dvh - 32px);padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
#sh .jp-e3-party .jp-e3-prop{overflow:hidden}
/* F7: Fasting shortcut is always readable and accompanies the standard home. */
.jf-f7-fast-ring{--progress:0%;display:grid;place-items:center;position:relative;flex:none;width:50px;height:50px;border-radius:50%;background:conic-gradient(#ff7a32 var(--progress),#54515a var(--progress))}
.jf-f7-fast-ring:before{content:'';position:absolute;inset:5px;border-radius:50%;background:#222a34}
.jf-f7-fast-ring>span{position:relative;color:#fff;font-size:21px}
.jf-f7-desktop-fast{display:flex;align-items:center;gap:20px;padding:19px 22px;margin:18px auto 0;max-width:1160px;background:var(--card)!important;color:var(--t)!important}
.jf-f7-desktop-fast>div{flex:1}
.jf-f7-desktop-fast h2{font-size:22px;margin:3px 0}
.jf-f7-desktop-fast p{margin:0;color:var(--t2)}
:root {
  --joy-surface: #fffdf9;
  --joy-ink: #242921;
  --joy-muted: #50594d;
  --joy-edge: #d7dacf;
  --joy-action: #973f19;
  --joy-radius: 16px;
  --joy-water: #e1f0ef;
  --joy-training: #f5e6d7;
}
:root[data-theme="dark"] {
  --joy-surface: #242923;
  --joy-ink: #f5f4e9;
  --joy-muted: #c6cebf;
  --joy-edge: #495144;
  --joy-action: #ffab79;
  --joy-water: #223938;
  --joy-training: #3c3029;
}
#app .jf-panel, #login .box, #intro .ob-shell, #sh .box {
  border-radius: var(--joy-radius)!important;
  box-shadow: none!important;
}
#app .jf-page-header {border-bottom:1px solid var(--joy-edge);padding-bottom:1rem}
#app :is(.jp-admin-row,.jp-workout-row,.jf-vivo-meal,.jf-rank-row) {min-width:0;overflow-wrap:anywhere}
#app :is(input,select,textarea), #sh :is(input,select,textarea), #intro input, #login input {
  min-height:44px; max-width:100%; accent-color:var(--joy-action);
}
#app input[type=checkbox],#sh input[type=checkbox],#intro input[type=radio] {min-height:0}
:is(#app,#nav,#intro,#sh,#login) :focus-visible {outline:3px solid var(--joy-action)!important;outline-offset:2px}
#nav button.on {box-shadow:inset 0 -3px currentColor!important}
@media(min-width:701px){
  #app .jf-vivo-home-grid {gap:clamp(14px,1.5vw,24px)}
  #app .jf-vivo-hero {border-radius:22px!important}
  #app .jf-vivo-hero-main h2 {max-width:18ch;font-size:clamp(26px,3vw,42px)!important}
  #app .jf-f7-desktop-fast {border-inline-start:4px solid var(--joy-action)}
}
@media(max-width:700px) {
  #app:has(.jf-f7-home) {min-height:0;box-sizing:border-box;padding:calc(16px + env(safe-area-inset-top)) 0 calc(96px + env(safe-area-inset-bottom))!important}
  #app .jf-f7-home {display:grid!important;gap:12px!important;padding:0 clamp(12px,4vw,22px)!important;width:100%;max-width:520px;margin:auto;box-sizing:border-box}
  #app .jf-f5-greeting {align-items:center;padding:3px 0 8px;color:var(--joy-ink)}
  #app .jf-f5-greeting h1 {font-size:clamp(1.5rem,6vw,1.95rem)!important;line-height:1.12!important;overflow-wrap:anywhere}
  #app .jf-f5-greeting .jf-f5-kicker {text-transform:capitalize;letter-spacing:0!important;color:var(--joy-muted)!important;font-size:.8rem}
  #app .jf-f7-calories {display:grid;align-content:center;justify-items:start;gap:6px;min-height:clamp(160px,25svh,225px);padding:18px!important;border-radius:var(--joy-radius)!important;color:white!important;background:linear-gradient(90deg,#22281f 3%,rgba(33,39,30,.96) 35%,rgba(33,39,30,.15) 84%),url('../assets/hero-food.webp') right center/cover!important}
  #app .jf-f7-calories .jf-f5-kicker {color:#ffbd8e!important}
  #app .jf-f7-calories .jf-f5-main-number {color:white!important;font-size:clamp(2rem,8vw,3rem)!important;line-height:1.05;font-variant-numeric:tabular-nums}
  #app .jf-f7-calories .jf-f5-main-number small {font-size:1rem}
  #app .jf-f7-calories p {margin:0;max-width:65%;color:#fff!important;font-size:.8rem}
  #app .jf-f7-calories button {margin-top:6px!important;width:auto!important;min-height:44px!important;background:#ffba89!important;color:#352515!important}
  #app .jf-f5-home-stats {gap:10px}
  #app .jf-f5-home-stats button {position:relative;isolation:isolate;min-height:clamp(104px,16svh,154px);align-content:start;gap:5px;background:var(--joy-water)!important;border:1px solid var(--joy-edge)!important;color:var(--joy-ink)!important;padding:12px!important;border-radius:var(--joy-radius)!important}
  #app .jf-f5-home-stats button:before {content:'';position:absolute;z-index:-1;inset:0;background:right 4px bottom 5px/auto 57% no-repeat;opacity:.3}
  #app .jf-f5-home-stats .jf-f7-water:before {background-image:url('../assets/water-bottle.svg')}
  #app .jf-f5-home-stats .jf-f7-workout {background:var(--joy-training)!important}
  #app .jf-f5-home-stats .jf-f7-workout:before {background-image:url('../assets/workout-illustration.svg')}
  #app .jf-f5-home-stats button :is(strong,span,small) {color:var(--joy-ink)!important}
  #app .jf-f5-home-stats button strong {font-size:1.2rem!important}
  #app .jf-f5-home-stats button small {font-size:.75rem!important;line-height:1.35}
  #app .jf-f5-shortcuts {grid-row:5}
  #app .jf-f5-shortcuts button {min-height:44px!important;color:var(--joy-action)!important;background:transparent!important;border:0!important;border-top:1px solid var(--joy-edge)!important;border-radius:0!important}
  #app .jf-f7-fast-card {grid-row:4;display:flex;align-items:center;width:100%;gap:12px;padding:12px 16px;text-align:left;background:var(--joy-surface)!important;color:var(--joy-ink)!important;border:1px solid var(--joy-edge)!important;border-radius:var(--joy-radius)!important}
  .jf-f7-fast-copy {display:grid;gap:3px;flex:1}
  .jf-f7-fast-copy small {color:var(--joy-muted);font-variant-numeric:tabular-nums}
  .jf-f7-fast-arrow {color:var(--joy-action)}
  #sh :is(input,select,textarea),#intro input,#login input {font-size:max(16px,1rem)!important}
}


@media(prefers-reduced-motion:reduce){.jp-f7-progress{transition:none!important}}

:root[data-theme='dark'] #intro .ob-e3-skip button:hover{color:#ff9b6c!important}
#intro .ob-shell{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
#sh .jf-journey-modal{max-height:calc(100dvh - 32px - env(safe-area-inset-bottom,0px));overflow:auto;min-width:0}
@media(prefers-reduced-motion:reduce){#sh .jp-e3-party,#sh .jp-e3-party *{animation:none!important;transition:none!important}}

#sh .jp-e3-party>.jf-primary{margin-top:12px}
/* Daily measurements share one baseline in the diary and progress views. */
#app :is(.jf-result-metrics,.jf-diet-macros,.jf-rank-stats,.jp-fast-summary) strong {
  font-variant-numeric:tabular-nums;
}
#app .jf-water-actions button {min-height:48px!important;border-radius:12px!important}
#app .jf-water-actions button:active {outline:2px solid var(--joy-action);outline-offset:-2px}
#app .jf-vivo-meal-list {display:grid;gap:0}
#app .jf-vivo-meal-list .jf-vivo-meal {
  border:0!important;border-bottom:1px solid var(--joy-edge)!important;
  border-radius:0!important;background:transparent!important;box-shadow:none!important;
}
#app .jf-rank-person, #app .jp-admin-row {border-bottom:1px solid var(--joy-edge);padding-block:12px}
#app .jf-chart-legend {flex-wrap:wrap;line-height:1.5}
#app :is(.jf-rank-api-warning,.jp-fast-warning) {border-inline-start-width:4px;line-height:1.5}
#intro .ob-progress {height:6px;border-radius:3px}
#intro .ob-choices .ob-option {text-align:start;min-height:48px}
#sh .jp-days button {min-height:44px!important}
#login .box>p {max-width:36ch}
#nav button:focus-visible {outline-offset:-3px!important}
.joy-nutrition {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;gap:8px}
.joy-nutrition>div {padding:6px 0;border-top:2px solid var(--joy-edge)}
.joy-nutrition dt {font-size:.75rem;color:var(--joy-muted)}
.joy-nutrition dd {margin:3px 0 0;font-weight:700;color:var(--joy-ink);font-variant-numeric:tabular-nums}
@media(max-width:700px){
  #app .jf-f7-home {row-gap:clamp(9px,1.5svh,17px)!important}
  #app .jf-f7-home .jf-f5-shortcuts {grid-row:6}
  #app .jf-f7-home .jf-f7-fast-card {grid-row:5}
  #app .jf-f5-greeting .jf-f5-kicker {text-transform:none}
  #app .jf-f5-greeting .jf-f5-kicker:first-letter {text-transform:uppercase}
  #app .jf-f7-home .jf-f7-calories .jf-f5-main-number {font-size:clamp(2.25rem,9vw,3rem)!important}
  #nav button {font-size:clamp(.67rem,2.7vw,.8rem)!important}
}
@media(min-width:1000px){
  #app .jf-vivo-home-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  #app .jf-vivo-water-card,#app .jf-vivo-workout-card {min-height:190px!important}
  #app .jf-rank-side {align-self:start}
  #app .jp-admin-search {align-items:end}
}

/* The native checkbox owns the complete switch hit area. */
#app .jf-switch {position:relative}
#app .jf-switch input[type=checkbox] {position:absolute;inset:0;width:100%;height:100%;margin:0;z-index:1;cursor:pointer}
#app .jf-switch:has(input:focus-visible) {outline:3px solid var(--joy-action);outline-offset:3px;border-radius:999px}
:root[data-theme=dark] #app .jf-diet-ring strong {color:var(--joy-ink)}
:root[data-theme=dark] #app .jf-diet-ring span {color:var(--joy-muted)}
@media(min-width:1000px){
  #app .jf-vivo-home-grid>* {grid-column:auto!important;grid-row:auto!important}
  #app .jf-vivo-home-grid .jf-vivo-week-card {grid-column:1/-1!important}
  #app .jf-vivo-home>.jf-page-header h1 {font-size:2.2rem!important}
  #app .jf-vivo-home>.jf-vivo-hero,#app .jf-vivo-home>.jf-fire-card {min-height:350px!important}
}
#app .jf-water-register {background:var(--joy-surface)!important;color:var(--joy-ink)!important}
#app .jf-water-register :is(h2,h3,label) {color:var(--joy-ink)!important}
#app .jf-water-register>p {color:var(--joy-muted)!important}
@media(min-width:1000px){#app .jf-vivo-home-grid .jf-vivo-week-card {grid-column:auto!important}}

/* Reward rarity: one palette for the guide, labels and collectible artwork. */
:root {
 --reward-common-ink:#526173;--reward-common-soft:#edf1f5;--reward-common-edge:#c7d0dc;
 --reward-rare-ink:#1c5ab5;--reward-rare-soft:#eaf2ff;--reward-rare-edge:#a9c9f5;
 --reward-epic-ink:#7740b6;--reward-epic-soft:#f3eaff;--reward-epic-edge:#cdb0ec;
 --reward-legend-ink:#89600d;--reward-legend-soft:#fff2cc;--reward-legend-edge:#dfbb63;
}
:root[data-theme=dark] {
 --reward-common-ink:#c6d2e3;--reward-common-soft:#2e3947;--reward-common-edge:#637186;
 --reward-rare-ink:#93c4ff;--reward-rare-soft:#203751;--reward-rare-edge:#467bb7;
 --reward-epic-ink:#d7b2ff;--reward-epic-soft:#3c2950;--reward-epic-edge:#9568bc;
 --reward-legend-ink:#ffdb80;--reward-legend-soft:#43371c;--reward-legend-edge:#b29343;
}
.jf-reward-tone[data-rarity=comum]{--rarity-ink:var(--reward-common-ink);--rarity-soft:var(--reward-common-soft);--rarity-edge:var(--reward-common-edge)}
.jf-reward-tone[data-rarity=raro]{--rarity-ink:var(--reward-rare-ink);--rarity-soft:var(--reward-rare-soft);--rarity-edge:var(--reward-rare-edge)}
.jf-reward-tone[data-rarity=epico]{--rarity-ink:var(--reward-epic-ink);--rarity-soft:var(--reward-epic-soft);--rarity-edge:var(--reward-epic-edge)}
.jf-reward-tone[data-rarity=lendario]{--rarity-ink:var(--reward-legend-ink);--rarity-soft:var(--reward-legend-soft);--rarity-edge:var(--reward-legend-edge)}
#app .jf-rarity-guide{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 18px}
#app .jf-rarity-guide-label{font-size:12px;color:var(--joy-muted);margin-right:4px}
#app .jf-rarity-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;max-width:100%;border:1px solid var(--rarity-edge);border-radius:7px;background:var(--rarity-soft);color:var(--rarity-ink);font-size:11px;font-weight:750;line-height:1.3;letter-spacing:0;text-transform:none;white-space:nowrap}
#app .jf-rarity-chip i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
#app .jf-reward-tile[data-rarity]{border-color:var(--joy-edge)!important;border-top:3px solid var(--rarity-edge)!important;background:var(--joy-surface)!important;opacity:1;box-shadow:none!important;gap:12px}
#app .jf-reward-tile[data-rarity]:hover{transform:none;box-shadow:none!important;border-color:var(--rarity-edge)!important}
#app .jf-reward-tile[data-rarity] .jf-reward-level{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;color:var(--joy-muted);font-size:10px;letter-spacing:.08em;min-height:27px}
#app .jf-reward-tile[data-rarity] .jf-reward-symbol{position:relative;isolation:isolate;overflow:hidden;width:72px;height:72px;border-radius:18px!important;background:var(--rarity-soft)!important;border:1px solid var(--rarity-edge);color:var(--rarity-ink);margin-top:4px}
#app .jf-reward-symbol svg{width:46px;height:46px;position:relative;z-index:1;flex:none}
#app .jf-reward-tile[data-rarity=epico] .jf-reward-symbol{box-shadow:inset 0 0 0 4px var(--joy-surface)}
#app .jf-reward-tile[data-rarity=lendario] .jf-reward-symbol{border-width:2px;box-shadow:inset 0 0 0 4px var(--joy-surface),0 4px 14px color-mix(in srgb,var(--rarity-edge) 25%,transparent)}
#app .jf-reward-tile[data-rarity] h3{color:var(--joy-ink)!important}
#app .jf-reward-tile[data-rarity] p,#app .jf-reward-tile[data-rarity] .jf-reward-slot,#app .jf-reward-tile[data-rarity] .jf-reward-locked{color:var(--joy-muted)!important}
#app .jf-reward-tile[data-rarity].is-ready{border-color:var(--rarity-edge)!important}
#app .jf-reward-tile[data-rarity].is-ready .jf-reward-action button{background:var(--rarity-ink)!important;color:var(--joy-surface)!important;border-color:var(--rarity-ink)!important}
#app .jf-reward-tile[data-rarity].is-ready .jf-reward-action button:hover{filter:brightness(.9)}
#app .jf-reward-tile[data-rarity].is-ready .jf-reward-action button:active{filter:brightness(.8)}
#app .jf-reward-tile[data-rarity].is-equipped .jf-reward-owned{color:var(--rarity-ink);display:inline-flex;align-items:center;gap:5px;background:var(--rarity-soft);border-radius:6px;padding:6px 8px;line-height:1.4}
#app .jf-reward-tile:is([data-rarity=epico],[data-rarity=lendario]) .jf-reward-symbol::after{content:'';position:absolute;inset:-50%;z-index:2;pointer-events:none;background:linear-gradient(110deg,transparent 38%,#ffffff85 50%,transparent 62%);transform:translateX(-75%);opacity:0}
#app .jf-reward-tile:is([data-rarity=epico],[data-rarity=lendario]):is(.is-ready,.is-equipped) .jf-reward-symbol::after{animation:jf-reward-glint 1.4s .2s ease-in-out both}
@media(hover:hover){#app .jf-reward-tile:is([data-rarity=epico],[data-rarity=lendario]):hover .jf-reward-symbol::after{animation:jf-reward-glint 1.4s ease-in-out both}}
#app .jf-reward-tile:is([data-rarity=epico],[data-rarity=lendario]):focus-within .jf-reward-symbol::after{animation:jf-reward-glint 1.4s ease-in-out both}
@keyframes jf-reward-glint{0%{transform:translateX(-75%);opacity:0}20%,65%{opacity:.8}100%{transform:translateX(75%);opacity:0}}
@media(max-width:430px){#app .jf-rarity-guide{gap:6px}#app .jf-rarity-guide-label{width:100%;margin:0 0 2px}#app .jf-reward-tile[data-rarity]{min-height:275px!important}}
@media(prefers-reduced-motion:reduce){#app .jf-reward-tile[data-rarity],#app .jf-reward-symbol,#app .jf-reward-symbol::after{animation:none!important;transition:none!important}}
