/* Gauntlet track B: workouts, drills, progress. */
:root{
  --star:#ffb020; --star-off:rgba(255,255,255,.28);
  --shoot-1:#ef6a24; --shoot-2:#b63c0c;
  --handle-1:#2f66db; --handle-2:#173a8c;
  --warm-1:#22a061; --warm-2:#0f5e37;
}
.sk-shoot{--sk:var(--shoot-1);--sk2:var(--shoot-2)}
.sk-handle{--sk:var(--handle-1);--sk2:var(--handle-2)}
.sk-warm{--sk:var(--warm-1);--sk2:var(--warm-2)}

/* header: greeting with the editable name */
header.top{flex-wrap:nowrap;padding-block:14px 6px}
.brand{min-width:0}
h1.hello{font-size:clamp(1.7rem,7vw,2.3rem);text-transform:none;display:flex;align-items:baseline;white-space:nowrap;min-width:0}
.name-fit{display:inline-block;position:relative;margin-left:.25em;min-width:0}
.name-fit > *{font:inherit;letter-spacing:inherit;padding:0 2px;white-space:pre}
#nameMirror{visibility:hidden;position:absolute;left:0;top:0}
#playerName{width:4ch;max-width:52vw;min-width:2ch;border:0;background:transparent;color:var(--ball);border-bottom:3px dotted color-mix(in srgb,var(--ball) 55%,transparent);border-radius:0;outline-offset:4px}
#playerName::placeholder{color:var(--ball);opacity:.7}
header.top .level-pill{font-size:1.1rem;padding:4px 14px;flex:none}

/* focus mode: drill running or result showing */
body.focus header.top, body.focus nav.tabs{display:none}
body.focus .wrap{padding-top:12px}
body.subpage header.top{display:none}
body.subpage nav.tabs{margin-bottom:12px}

/* shared */
.stars-svg{display:inline-flex;gap:2px;vertical-align:middle;line-height:0}
.stars-svg svg{fill:var(--line)}
.stars-svg svg.on{fill:var(--star);filter:drop-shadow(0 1px 0 rgba(0,0,0,.25))}
.go{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;border:0;border-radius:18px;background:var(--ball);color:#fff;
  font-family:var(--font-display);font-weight:900;font-size:2rem;text-transform:uppercase;letter-spacing:.03em;min-height:76px;padding:10px 20px;
  box-shadow:0 5px 0 #9b3a0c,0 10px 24px rgba(226,97,31,.35)}
.go:active{transform:translateY(3px);box-shadow:0 2px 0 #9b3a0c}
.go svg{width:30px;height:30px}
.coach-says{position:relative;background:var(--surface);border:2px solid var(--ink);border-radius:18px;padding:14px 16px 14px;font-weight:700;font-size:1.15rem;line-height:1.35}
.coach-says span{display:block;font-family:var(--font-display);font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--ball);font-size:1rem;margin-bottom:2px}

/* ---------- Today ---------- */
.hero-today{background:radial-gradient(120% 90% at 100% 0%,#24304d 0%,var(--board) 60%);color:#fff;border-radius:22px;padding:18px 18px 16px;display:grid;gap:14px;
  box-shadow:0 10px 30px rgba(17,22,31,.25)}
.ht-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.ht-date{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#9aa6bf}
.ht-streak{display:inline-flex;align-items:center;gap:4px;background:rgba(255,176,32,.16);color:var(--star);font-weight:700;border-radius:999px;padding:3px 12px 3px 8px;font-size:.95rem}
.hero-today h2{font-size:clamp(2.4rem,11vw,3.4rem);font-weight:900;line-height:.92;color:#fff}
.ht-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ht-stats div{display:grid;line-height:1}
.ht-stats b{font-family:var(--font-display);font-weight:900;font-size:2.6rem;color:var(--board-digit)}
.ht-stats span{font-size:.85rem;color:#c9d1e3;font-weight:700;margin-top:2px}
.ht-strip{display:flex;gap:4px;height:12px}
.ht-strip i{border-radius:4px;background:var(--sk)}
.ht-week{display:grid;gap:8px;border-top:1px solid rgba(255,255,255,.12);padding-top:12px}
.ht-week p{color:#c9d1e3;font-size:.95rem}
.ht-week strong{color:#fff}
.hero-today .week .d{color:#9aa6bf;font-size:.85rem}
.hero-today .week .d.is-today{color:#fff}
.hero-today .week .dot{width:36px;height:36px;border-color:rgba(255,255,255,.22);color:#fff}
.hero-today .week .dot.on{background:var(--ball);border-color:var(--ball)}
.hero-today .week .dot.today{border-color:#fff;border-width:3px}
.week .dot svg{width:18px;height:18px}

.quick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qt{display:grid;justify-items:start;align-content:start;gap:4px;text-align:left;border:0;border-radius:18px;padding:14px;color:#fff;min-height:110px;
  background:linear-gradient(150deg,var(--a),var(--b))}
.qt b{font-family:var(--font-display);font-weight:900;font-size:1.6rem;text-transform:uppercase;line-height:1}
.qt span{font-size:.9rem;opacity:.9;line-height:1.25}
.qt svg{width:26px;height:26px}
.qt-shoot{--a:var(--handle-1);--b:var(--handle-2)}
.qt-drill{--a:var(--warm-1);--b:var(--warm-2)}
.qt-drill .stars-svg svg.off{fill:rgba(255,255,255,.4)}

.plan-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:-8px}
.plan-top h3{font-size:1.7rem;text-transform:uppercase}
.chip-btn{border:2px solid var(--ink);background:transparent;border-radius:999px;padding:6px 16px;font-weight:700;min-height:44px}
.tune{display:grid;gap:12px}
.tune-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tune-row > span{font-weight:700}
.tune .btn svg{width:18px;height:18px;vertical-align:-4px}
.plan2{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.plan2 li{display:grid;grid-template-columns:2.6rem 1fr auto;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);
  border-left:8px solid var(--sk);border-radius:14px;padding:8px 6px 8px 10px;min-height:64px}
.plan2 .num{font-family:var(--font-display);font-weight:900;font-size:1.9rem;color:var(--sk);text-align:center}
.pl-txt{display:grid;line-height:1.25}
.pl-txt strong{font-size:1.1rem}
.pl-txt span{color:var(--ink-soft);font-size:.92rem}
.swap2{border:0;background:var(--ground);color:var(--ink-soft);border-radius:12px;width:48px;height:48px;display:grid;place-items:center}
.grownups{color:var(--ink-soft);font-size:.92rem}
.grownups summary{cursor:pointer;font-weight:700;padding:6px 0}
.grownups p{margin-top:6px}

/* ---------- runner ---------- */
.run-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.run-name{font-size:clamp(2.2rem,10vw,3.2rem);font-weight:900;line-height:.95}
.runner .board{background:radial-gradient(120% 80% at 50% 0%,color-mix(in srgb,var(--sk) 30%,var(--board)),var(--board) 70%);border-radius:22px;padding:18px 16px}
.runner .board .step{color:var(--sk);filter:brightness(1.5)}
.board .digits .of{font-size:.45em;color:#9aa6bf}
.board .sub{font-size:1.15rem}
.live-stars .stars-svg svg{fill:var(--star-off)}
.live-stars .stars-svg svg.on{fill:var(--star)}
.runner .shotpad{max-width:520px}
.runner .shotpad button{min-height:96px;font-size:2.2rem;border-radius:18px}
.btn.cam{color:#fff;border-color:#fff;display:inline-flex;align-items:center;gap:6px}
.btn.cam svg{width:18px;height:18px}
.runner-nav .btn.primary{flex:1;max-width:340px;margin-left:auto}
.howto summary{cursor:pointer;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;font-size:1.1rem}

/* ---------- result ---------- */
.result{display:grid;gap:14px}
.res-hero{background:radial-gradient(110% 90% at 50% 0%,var(--sk) 0%,var(--sk2) 55%,#1a1208 130%);color:#fff;border-radius:24px;padding:18px 16px;display:grid;justify-items:center;text-align:center;gap:8px}
.res-kicker{font-family:var(--font-display);font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:1.15rem;background:rgba(0,0,0,.22);border-radius:999px;padding:2px 14px}
.res-hero h2{font-size:clamp(2rem,9vw,3rem);font-weight:900;color:#fff;line-height:.95}
.res-hero .stars-svg{gap:6px}
.res-hero .stars-svg svg{fill:rgba(0,0,0,.25)}
.res-hero .stars-svg svg.on{fill:var(--star);filter:drop-shadow(0 3px 0 rgba(0,0,0,.3))}
.stars-svg.big svg:nth-child(2){transform:translateY(-12px) scale(1.12)}
.stars-svg.pop svg.on{animation:starpop .5s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i) * .22s)}
@keyframes starpop{from{transform:scale(.2) rotate(-40deg);opacity:0}}
.stars-svg.pop svg.on:nth-child(2){animation-name:starpop2}
@keyframes starpop2{from{transform:translateY(-12px) scale(.2) rotate(-40deg);opacity:0}to{transform:translateY(-12px) scale(1.12)}}
.res-cheer{font-weight:700;font-size:1.2rem;line-height:1.3;max-width:26ch}
.res-check{width:84px;height:84px;border-radius:50%;background:rgba(0,0,0,.22);display:grid;place-items:center}
.res-check.on{background:var(--good)}
.res-check svg{width:52px;height:52px}
.res-starsum{display:flex;align-items:center;gap:10px}
.res-starsum b{font-family:var(--font-display);font-weight:900;font-size:3.4rem;line-height:1}
.res-starsum small{font-size:.5em;opacity:.8}
.res-side{display:grid;gap:12px;align-content:start}
.res-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
.res-stats div{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px 8px;display:grid;justify-items:center;text-align:center;line-height:1}
.res-stats b{font-family:var(--font-display);font-weight:900;font-size:2.6rem}
.res-stats small{font-size:.55em;color:var(--ink-soft)}
.res-stats span{font-size:.85rem;font-weight:700;color:var(--ink-soft);margin-top:4px;text-transform:uppercase;letter-spacing:.06em}
.res-goals,.res-list,.dd-stars{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.res-goals li{display:grid;grid-template-columns:3.6rem 1fr auto;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:6px 10px;font-weight:700;color:var(--ink-soft)}
.res-goals li.got{color:var(--ink);border-color:var(--good);background:var(--good-soft)}
.res-goals li svg[width="22"]{color:var(--good)}
.res-goals .stars-svg svg{fill:var(--star)}
.res-goals li:not(.got) .stars-svg svg{fill:var(--line)}
.res-list li{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:6px 2px;font-weight:700}
.res-list li > span:first-child{flex:1}
.res-list em{font-style:normal;color:var(--ink-soft);font-size:.9rem}
.res-list .ok{color:var(--ink-soft)}
.res-list .ok.on{color:var(--good)}
.res-btns{display:grid;grid-template-columns:1fr 1.4fr;gap:8px}
.res-btns .btn{border-radius:16px}
.res-btns .res-done{grid-column:1 / -1;border-color:var(--line)}

/* ---------- drill list ---------- */
.dl-head{display:flex;justify-content:space-between;align-items:end;gap:10px}
.dl-head h2{font-size:2.4rem;font-weight:900}
.dl-stars{display:flex;align-items:center;gap:4px;background:var(--board);color:#fff;border-radius:999px;padding:6px 14px 6px 10px;flex:none}
.dl-stars .stars-svg svg{fill:var(--star)}
.dl-stars b{font-family:var(--font-display);font-weight:900;font-size:1.6rem;line-height:1}
.dl-stars span{color:#9aa6bf;font-weight:700}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px;margin-block:-8px;padding-block:4px}
.chips button{flex:none;border:2px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 16px;font-weight:700;min-height:46px;font-size:1rem}
.chips button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.chips button.c-shoot[aria-pressed="true"]{background:var(--shoot-1);border-color:var(--shoot-1);color:#fff}
.chips button.c-handle[aria-pressed="true"]{background:var(--handle-1);border-color:var(--handle-1);color:#fff}
.chips button.c-warm[aria-pressed="true"]{background:var(--warm-1);border-color:var(--warm-1);color:#fff}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(46%,200px),1fr));gap:10px}
details.drill.tile{border:0;border-radius:18px;background:linear-gradient(160deg,var(--sk),var(--sk2));color:#fff;overflow:hidden;box-shadow:0 3px 0 rgba(0,0,0,.18)}
details.drill.tile summary{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:10px 12px 12px;min-height:200px;position:relative}
.tile .art{width:100%;height:78px;margin:2px 0 6px}
.tile .t-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:auto;padding-top:6px}
.tile .t-lvl{font-size:.85rem;color:var(--star);letter-spacing:.05em;font-weight:700;display:flex;gap:4px;align-items:center}
.tile .t-lvl em{font-style:normal;color:#fff;opacity:.85;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
.tile strong{font-family:var(--font-display);font-weight:900;font-size:1.45rem;line-height:1;text-transform:uppercase;letter-spacing:.01em}
.tile .t-meta{font-size:.85rem;opacity:.9}
.tile .t-best{display:flex;align-items:center;gap:4px;min-height:22px;font-size:.85rem;font-weight:700}
.tile .t-best em{font-style:normal}
.tile .t-best .new{background:#fff;color:var(--sk2);border-radius:999px;padding:0 10px;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;line-height:20px}
.tile .t-best svg[width="22"]{width:18px;height:18px}
.tile .stars-svg svg{fill:rgba(0,0,0,.28)}
.tile .stars-svg svg.on{fill:var(--star)}

/* ---------- drill detail ---------- */
.dd{display:grid;gap:14px;padding-bottom:112px}
.dd-hero{background:linear-gradient(160deg,var(--sk),var(--sk2));color:#fff;border-radius:24px;padding:12px 16px 18px;display:grid;gap:8px;position:relative;overflow:hidden}
.dd-hero .art{position:absolute;right:-4px;top:6px;width:190px;height:124px;opacity:.95}
.dd-back{justify-self:start;display:inline-flex;align-items:center;gap:4px;border:0;background:rgba(0,0,0,.22);color:#fff;border-radius:999px;padding:6px 14px 6px 8px;font-weight:700;min-height:44px;position:relative}
.dd-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:84px;position:relative}
.dd-chips span{background:rgba(0,0,0,.22);border-radius:999px;padding:2px 10px;font-weight:700;font-size:.85rem}
.dd-hero h2{font-size:clamp(2.4rem,11vw,3.4rem);font-weight:900;line-height:.92;color:#fff;position:relative}
.dd-goal{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px 16px;display:grid;gap:4px}
.dd-goal b{font-family:var(--font-display);font-weight:900;font-size:2.4rem;line-height:1;text-transform:uppercase;color:var(--sk)}
.dd-stars{margin-top:6px}
.dd-stars li{display:grid;grid-template-columns:3.4rem 1fr;align-items:center;gap:6px;font-weight:700}
.dd-stars .stars-svg svg{fill:var(--star)}
.dd-best{display:flex;align-items:center;gap:6px;font-weight:700;border-top:1px solid var(--line);padding-top:8px;margin-top:6px}
.dd-best svg[width="22"]{color:var(--good)}
.dd-how h3{font-size:1.5rem;text-transform:uppercase;margin-bottom:8px}
.dd-how ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dd-how li{display:grid;grid-template-columns:2.4rem 1fr;gap:10px;align-items:start;font-size:1.12rem;line-height:1.35}
.dd-how .n{width:2.4rem;height:2.4rem;border-radius:50%;background:var(--sk);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:900;font-size:1.4rem}
.dd-harder{color:var(--ink-soft)}
.dd-start{position:fixed;left:0;right:0;bottom:0;z-index:6;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));
  background:linear-gradient(to top,var(--ground) 70%,transparent);display:grid;justify-items:center;gap:4px}
.dd-start .go{max-width:728px}
.dd-cam{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;font-weight:700;color:var(--ink-soft)}
.dd-cam svg{width:16px;height:16px}

/* ---------- landscape phone: use the width ---------- */
@media (orientation:landscape) and (max-height:520px){
  .wrap{max-width:none;padding-inline:max(16px,env(safe-area-inset-left,0px)) max(16px,env(safe-area-inset-right,0px))}
  #p-today:not(:has(.runner,.result)){grid-template-columns:1.25fr 1fr;align-items:start}
  #p-today:not(:has(.runner,.result)) > .hero-today{grid-row:span 4}
  #p-today:not(:has(.runner,.result)) > .grownups{grid-column:1 / -1}
  .quick .qt{min-height:96px}
  .tiles{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
  .result{grid-template-columns:1fr 1.15fr;align-items:stretch;min-height:calc(100vh - 28px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}
  body.focus .wrap{padding-bottom:12px}
  .res-hero{align-content:center;padding:12px}
  .res-stats b{font-size:2.2rem}
  .res-goals li{padding:4px 10px}
  .dd{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;padding-bottom:0}
  .dd-hero{grid-row:span 2}
  .dd-goal{grid-column:2}
  .dd-how,.coach-says,.dd-harder{grid-column:2}
  .dd-start{position:sticky;grid-column:1;grid-row:3;bottom:8px;background:none;padding:0}
}
@media (min-width:700px) and (orientation:portrait){ .tiles{grid-template-columns:repeat(3,1fr)} }
@media (prefers-reduced-motion: reduce){ .stars-svg.pop svg.on{animation:none} }
.res-hero .stars-svg.big svg{width:clamp(64px,12vh,92px);height:clamp(64px,12vh,92px)}
@media (orientation:landscape) and (max-height:520px){ .res-hero .stars-svg.big svg{width:clamp(64px,22vh,96px);height:clamp(64px,22vh,96px)} }

/* ---------- progress: player card, skill ratings, badges, form fixes, trend ---------- */
:root{--locked:#b9c0cf;--locked-2:#d5dae4}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--locked:#3a4563;--locked-2:#2b3550}}
:root[data-theme="dark"]{--locked:#3a4563;--locked-2:#2b3550}
#p-progress{gap:14px}
.pg-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.pg-head h3{font-size:1.75rem;font-weight:900;text-transform:uppercase}
.pg-hero{background:radial-gradient(120% 100% at 0% 0%,#2a3658 0%,var(--board) 62%);color:#fff;border-radius:22px;padding:16px;display:grid;gap:14px;box-shadow:0 10px 30px rgba(17,22,31,.25)}
.pg-card{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}
.pg-ovr{width:104px;height:116px;display:grid;place-content:center;justify-items:center;line-height:1;color:#1a1208;
  background:linear-gradient(160deg,#ffd166,#ffb020 45%,#e08a00);clip-path:polygon(50% 0,100% 12%,100% 72%,50% 100%,0 72%,0 12%);padding-bottom:10px}
.pg-ovr b{font-family:var(--font-display);font-weight:900;font-size:3.6rem}
.pg-ovr span{font-family:var(--font-display);font-weight:900;text-transform:uppercase;letter-spacing:.1em;font-size:.95rem}
.pg-who{display:grid;gap:2px;min-width:0}
.pg-name{font-family:var(--font-display);font-weight:900;font-size:2rem;text-transform:uppercase;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pg-level{font-family:var(--font-display);font-weight:900;font-size:2.5rem;text-transform:uppercase;line-height:.95;color:var(--board-digit)}
.pg-next{display:grid;gap:6px;margin-top:6px;color:#c9d1e3;font-size:1rem}
.pg-next b{color:#fff}
.pg-next .progressbar{height:12px;background:rgba(255,255,255,.16)}
.pg-next .progressbar span{background:var(--board-digit)}
.pg-streak{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid rgba(255,255,255,.12);padding-top:12px}
.pg-fire{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:6px;line-height:1}
.pg-fire svg{width:52px;height:52px;color:var(--star)}
.pg-fire b{font-family:var(--font-display);font-weight:900;font-size:3.2rem;color:var(--star)}
.pg-fire span{grid-column:1 / -1;color:#c9d1e3;font-weight:700;font-size:.95rem;margin-top:2px}
.pg-cal{display:grid;gap:3px}
.pg-cal-h,.pg-cal-g{display:grid;grid-template-columns:repeat(7,18px);gap:4px}
.pg-cal-h b{font-size:.7rem;color:#9aa6bf;text-align:center;line-height:1}
.pg-cal-g i{width:18px;height:18px;border-radius:5px;background:rgba(255,255,255,.12)}
.pg-cal-g i.on{background:var(--ball)}
.pg-cal-g i.today{outline:2px solid #fff;outline-offset:1px}
.pg-cal-g i.future{background:rgba(255,255,255,.04)}
.pg-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid rgba(255,255,255,.12);padding-top:10px}
.pg-totals div{display:grid;line-height:1}
.pg-totals b{font-family:var(--font-display);font-weight:900;font-size:2.2rem;color:#fff}
.pg-totals span{font-size:.85rem;color:#c9d1e3;font-weight:700;margin-top:2px}

.pg-ratings ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.pg-ratings li{display:grid;grid-template-columns:1fr auto 3.2rem;grid-template-rows:auto auto;column-gap:10px;row-gap:5px;align-items:center}
.pg-rname{font-family:var(--font-display);font-weight:900;font-size:1.55rem;text-transform:uppercase;line-height:1;display:grid;gap:3px}
.pg-rname small{font-family:var(--font-body);font-weight:700;font-size:.85rem;text-transform:none;color:var(--ink-soft);letter-spacing:0}
.pg-rnum{font-family:var(--font-display);font-weight:900;font-size:3rem;line-height:.9;color:var(--c);font-variant-numeric:tabular-nums}
.pg-delta{font-weight:700;font-size:1rem;border-radius:999px;text-align:center;padding:2px 0}
.pg-delta.up{background:var(--good-soft);color:var(--good)}
.pg-delta.down{background:var(--line);color:var(--ink-soft)}
.pg-rbar{grid-column:1 / -1;height:12px;border-radius:999px;background:var(--line);overflow:hidden}
.pg-rbar span{display:block;height:100%;border-radius:999px;background:var(--c)}
.pg-next-up{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;background:var(--ball-soft);border-radius:16px;padding:10px 10px 10px 14px;line-height:1.3}
.pg-next-up b{font-size:1.1rem}
.pg-next-up .btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:900;font-size:1.4rem;text-transform:uppercase;padding:8px 20px 8px 14px;min-height:52px;flex:none}
.pg-next-up .btn svg{width:22px;height:22px}

.pg-count{font-weight:700;color:var(--ink-soft)}
.pg-count b{font-family:var(--font-display);font-weight:900;font-size:1.8rem;color:var(--ink)}
.pg-badges ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px 8px}
.pg-badges li{display:grid;justify-items:center;text-align:center;gap:2px;align-content:start}
.pg-badges strong{font-family:var(--font-display);font-weight:900;font-size:1.15rem;text-transform:uppercase;line-height:1.05;margin-top:2px}
.pg-badges li.locked strong{color:var(--ink-soft)}
.pg-badges small{font-size:.78rem;color:var(--ink-soft);line-height:1.2}
.pg-got{font-weight:700;font-size:.85rem;color:var(--good)}
.pg-left{display:flex;align-items:center;gap:5px;font-weight:700;font-size:.85rem;color:var(--ink-soft);min-height:1.3em}
.pg-mini{width:44px;height:7px;border-radius:999px;background:var(--line);overflow:hidden;display:inline-block}
.pg-mini span{display:block;height:100%;background:var(--ink-soft)}
.medal{display:block}

.pg-form ul{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:12px}
.pg-form li{display:grid;gap:5px;border-bottom:1px solid var(--line);padding-bottom:10px}
.pg-fx-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pg-fx-top strong{font-family:var(--font-display);font-weight:900;font-size:1.45rem;text-transform:uppercase;line-height:1}
.pg-tag{font-family:var(--font-display);font-weight:900;text-transform:uppercase;letter-spacing:.04em;font-size:1.05rem;border-radius:999px;padding:2px 12px;flex:none}
.pg-tag.good{background:var(--good);color:#fff}
.pg-tag.warn{background:var(--ball-soft);color:var(--ball)}
.pg-tag.same{background:var(--line);color:var(--ink-soft)}
.pg-fx-row{display:grid;grid-template-columns:3rem auto 1fr;align-items:center;gap:8px;font-weight:700;color:var(--ink-soft);font-size:.9rem}
.pg-fx-row em{font-style:normal;text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}
.pg-dots{display:inline-grid;grid-template-columns:repeat(10,16px);gap:4px}
.pg-dots i{width:16px;height:16px;border-radius:50%;background:var(--line)}
.pg-dots.now i.on{background:#d9412e}
.pg-dots.then i.on{background:#e9a197}

.pg-trend .seg button{padding:6px 12px;min-height:40px}
.pg-trend-line{font-size:1.15rem;font-weight:700;margin-bottom:8px}
.pg-trend-line b{font-family:var(--font-display);font-weight:900;font-size:1.6rem}
.pg-trend-line .up{color:var(--good)}
.pg-trend-line .down{color:var(--ink-soft)}
.pg-bars{display:flex;align-items:stretch;gap:6px;height:170px}
.pg-bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;min-width:0}
.pg-bar span{width:100%;max-width:44px;border-radius:8px 8px 3px 3px;background:var(--court-soft);border:2px solid var(--court)}
.pg-bar.last span{background:var(--ball);border-color:var(--ball)}
.pg-bar b{font-family:var(--font-display);font-weight:900;font-size:1.15rem;line-height:1}
.pg-bar.last b{color:var(--ball);font-size:1.4rem}
.pg-bar em{font-style:normal;font-size:.75rem;font-weight:700;color:var(--ink-soft)}
.pg-log h3{font-size:1.5rem;text-transform:uppercase}

/* result screen: new badge + ratings that went up */
.res-earn{display:grid;gap:8px}
.re-badge{display:flex;align-items:center;gap:12px;background:linear-gradient(120deg,#fff4d6,var(--surface));border:2px solid var(--star);border-radius:16px;padding:6px 12px}
.re-badge span{display:grid;line-height:1.15}
.re-badge em{font-style:normal;font-family:var(--font-display);font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--ball);font-size:1rem}
.re-badge b{font-family:var(--font-display);font-weight:900;font-size:1.7rem;text-transform:uppercase;color:#16203a}
.re-badge small{color:#4b5672;font-weight:700}
.re-ups{display:flex;flex-wrap:wrap;gap:6px}
.re-ups span{background:var(--good-soft);color:var(--good);border-radius:999px;padding:4px 12px;font-weight:700}
.re-ups s{opacity:.6}
.re-ups b{font-family:var(--font-display);font-weight:900;font-size:1.3rem}

@media (orientation:landscape) and (max-height:520px){
  #p-progress{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
  .pg-badges ul{grid-template-columns:repeat(3,1fr)}
  .pg-log{grid-column:1 / -1}
  .re-badge{padding:4px 10px}
  .re-badge .medal{width:40px;height:47px}
}
@media (min-width:700px) and (orientation:portrait){ #p-progress{grid-template-columns:1fr 1fr;align-items:start} .pg-log{grid-column:1 / -1} }
@media (max-width:370px){ .pg-dots{grid-template-columns:repeat(10,13px);gap:3px} .pg-dots i{width:13px;height:13px} .pg-ovr{width:88px;height:100px} .pg-ovr b{font-size:3rem} }
