/* The 200 Strong — members' app styles */
/* Layout: one phone-width app column (full screen on a phone, framed on desktop) — scroll area + bottom tab bar; The 200 Strong charcoal/off-white */
:root{
  --desk:#e6e6e2; --bg:#f9f9f8; --surface:#ffffff; --ink:#202222; --muted:#454948; --line:#e3e3df; --soft:#efefec;
  --band:#202222; --band-ink:#f9f9f8; --band-muted:#a7aaa9; --band-soft:#2c2f2f; --band-line:#3a3d3d;
  --primary:#202222; --primary-ink:#f9f9f8;
  --ok:#2f6b4a; --ok-soft:#e4efe8; --bad:#9a3b2c; --bad-soft:#f6e6e2; --warn:#8a5a00; --warn-soft:#f7ecd6;
  --head:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Poppins",system-ui,-apple-system,"Segoe UI",sans-serif;
  --serif:Georgia,"Times New Roman",serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --desk:#0b0c0c; --bg:#161717; --surface:#202222; --ink:#f2f2f0; --muted:#eceeed; --line:#343737; --soft:#2a2d2d;
  --band:#0e0f0f; --band-ink:#f9f9f8; --band-muted:#9a9e9d; --band-soft:#1d2020; --band-line:#2c2f2f;
  --primary:#f2f2f0; --primary-ink:#202222;
  --ok:#7cc59b; --ok-soft:#1d2e24; --bad:#e59383; --bad-soft:#3a2420; --warn:#e8bf6a; --warn-soft:#352a14; color-scheme:dark}}
:root[data-theme="dark"]{
  --desk:#0b0c0c; --bg:#161717; --surface:#202222; --ink:#f2f2f0; --muted:#eceeed; --line:#343737; --soft:#2a2d2d;
  --band:#0e0f0f; --band-ink:#f9f9f8; --band-muted:#9a9e9d; --band-soft:#1d2020; --band-line:#2c2f2f;
  --primary:#f2f2f0; --primary-ink:#202222;
  --ok:#7cc59b; --ok-soft:#1d2e24; --bad:#e59383; --bad-soft:#3a2420; --warn:#e8bf6a; --warn-soft:#352a14; color-scheme:dark}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--desk);color:var(--ink);font:400 15px/1.55 var(--body)}
select,button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--muted);outline-offset:2px}
.phone{position:relative;max-width:430px;height:100%;margin:0 auto;background:var(--bg);display:flex;flex-direction:column;overflow:hidden}
@media (min-width:560px){.phone{height:min(900px,calc(100% - 48px));margin-block:24px;border-radius:36px;border:1px solid var(--line);box-shadow:0 20px 60px rgba(0,0,0,.18)}}
.scroll{flex:1;overflow-y:auto;overflow-x:hidden}
.pad{padding:0 20px}
/* tab bar */
.tabbar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);background:var(--surface);padding:8px 4px calc(10px + env(safe-area-inset-bottom,0px))}
.tabbar button{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;line-height:1.15;text-align:center;padding:0 1px;color:var(--muted);min-height:48px;justify-content:center}
.tabbar button[aria-current="page"]{color:var(--ink);font-weight:600}
.tabbar svg{width:22px;height:22px}
/* type */
h1{font:500 30px/1.1 var(--head);letter-spacing:-.02em;margin:0;text-wrap-style:balance}
h2{font:500 19px/1.2 var(--head);letter-spacing:-.01em;margin:0}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.muted{color:var(--muted)} .small{font-size:13px} .tiny{font-size:12px}
.head{padding:28px 20px 14px;display:flex;flex-direction:column;gap:4px}
/* wordmark */
.mark{display:flex;flex-direction:column;line-height:1}
.mark .s1{font:700 8px var(--head);letter-spacing:.42em}
.mark .s2{font:800 18px var(--head);letter-spacing:.22em;margin-top:3px}
/* home band */
.band{background:var(--band);color:var(--band-ink);padding:22px 20px 24px;display:flex;flex-direction:column;gap:16px}
.band .muted{color:var(--band-muted)}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;border:1px solid var(--band-line);border-radius:999px;padding:5px 10px;white-space:nowrap}
.dot{width:7px;height:7px;border-radius:50%;background:var(--ok)} .dot.warn{background:var(--warn)} .dot.bad{background:var(--bad)}
.next{background:var(--band-soft);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:2px}
.next b{font:500 21px/1.2 var(--head)}
.nextx{align-self:flex-start;margin-top:10px;background:none;border:1px solid currentColor;border-radius:999px;color:inherit;opacity:.85;font:500 13px/1 var(--body,inherit);padding:8px 14px;cursor:pointer}
.nextci{align-self:flex-start;margin-top:12px;min-height:44px;padding:0 22px;font-size:15px}
.nextin{align-self:flex-start;margin-top:10px;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;background:var(--ok-soft);color:var(--ok)}
.tag.ok{background:var(--ok-soft);color:var(--ok);font-weight:500}
.buyflash{animation:buyflash 2.4s ease-out 1}
@keyframes buyflash{0%,35%{box-shadow:0 0 0 3px var(--accent,#f5c400);background:rgba(245,196,0,.14)}100%{box-shadow:0 0 0 0 transparent}}
/* blocks */
.stack{display:flex;flex-direction:column;gap:12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.card.dark{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}
.card.dark .muted,.card.dark .eyebrow{color:inherit;opacity:.7}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:18px;min-height:96px}
.tile b{font:500 17px/1.2 var(--head)}
.tile span{font-size:12px;color:var(--muted)}
.tile.dark{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}
.tile.dark span{color:inherit;opacity:.7}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.item{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.item b{font-weight:500}
.alert{border-radius:12px;padding:12px 14px;font-size:13px;display:flex;flex-direction:column;gap:8px}
.alert.warn{background:var(--warn-soft);color:var(--warn)} .alert.bad{background:var(--bad-soft);color:var(--bad)}
.btn{background:var(--primary);color:var(--primary-ink);border:1px solid var(--primary);border-radius:10px;height:50px;padding:0 18px;font-weight:500;font-size:15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}
.btn.full{width:100%}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.out{background:transparent;color:var(--bad);border-color:var(--bad)}
.btn.sm{height:36px;padding:0 12px;font-size:13px;border-radius:8px}
.btn:disabled{opacity:.4;cursor:not-allowed}
.card.dark .btn{background:var(--primary-ink);color:var(--primary)}
.card.dark .btn.ghost{background:transparent;color:var(--primary-ink);border-color:currentColor}
/* segmented + chips */
.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--soft);border-radius:10px;padding:3px;margin:0 20px}
.seg button{border:0;background:transparent;border-radius:8px;padding:9px;font-weight:500;font-size:14px;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.hscroll{display:flex;gap:6px;overflow-x:auto;padding:4px 20px 6px;scrollbar-width:none}
.hscroll::-webkit-scrollbar{display:none}
.day{flex:0 0 auto;width:48px;padding:8px 0;border-radius:10px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:1px}
.day small{font-size:10px;letter-spacing:.08em;color:var(--muted)}
.day b{font:500 19px/1.1 var(--head)}
.day[aria-pressed="true"]{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}
.day[aria-pressed="true"] small{color:inherit;opacity:.7}
.day.closed{opacity:.45}
.chip{flex:0 0 auto;padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
.chip[aria-pressed="true"]{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}
.chip:disabled{opacity:.35;cursor:not-allowed}
.label{padding:12px 20px 0;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.pods{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.pod{aspect-ratio:1/1;border-radius:10px;border:1px solid var(--line);background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:2px}
.pod b{font:500 22px/1 var(--head)}
.pod small{font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center;line-height:1.2}
.pod.taken{background:var(--soft);opacity:.6;cursor:not-allowed}
.pod.na{background:transparent;border-style:dashed;opacity:.4;cursor:not-allowed}
.pod.mine{background:var(--ok-soft);border-color:var(--ok)}
.pod.mine small{color:var(--ok);font-weight:600}
.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--muted)}
.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;border:1px solid var(--line);vertical-align:-1px}
.bar{height:4px;border-radius:99px;background:var(--soft);overflow:hidden}
.bar span{display:block;height:100%;background:var(--ink)}
.card.dark .bar{background:var(--band-line)} .card.dark .bar span{background:var(--primary-ink)}
.st{display:inline-flex;font-size:12px;font-weight:500;padding:3px 9px;border-radius:999px;background:var(--ok-soft);color:var(--ok);white-space:nowrap}
.st.warn{background:var(--warn-soft);color:var(--warn)} .st.bad{background:var(--bad-soft);color:var(--bad)} .st.mute{background:var(--soft);color:var(--muted)}
/* training */
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:12px;padding:3px 9px;border-radius:999px;background:var(--soft);font-variant-numeric:tabular-nums;white-space:nowrap}
.tag.pb{background:var(--primary);color:var(--primary-ink);font-weight:500}
.sets{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1fr);gap:6px 8px;align-items:center;font-size:13px}
.sets .h{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.sets input{width:100%;height:42px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:0 10px;font-variant-numeric:tabular-nums;font-size:16px}
.vid{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--ink);text-decoration:none;border:1px solid var(--line);border-radius:8px;padding:0 12px;height:36px}
.vid.off{color:var(--muted);border-style:dashed}
.badges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.bdg{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 6px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center}
.bdg svg.medal{width:54px;height:61px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.15))}
.bdg b{font:500 12px/1.2 var(--head)}
.bdg.off svg.medal{filter:grayscale(.8);opacity:.45}
.bdg.off b{color:var(--muted)}
/* nutrition */
.macro{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px;font-variant-numeric:tabular-nums}
.macro .b{height:8px;border-radius:99px;background:var(--soft);overflow:hidden}
.macro .b span{display:block;height:100%;background:var(--ink)}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.f{display:flex;flex-direction:column;gap:4px;min-width:0}
.f label{font-size:12px;color:var(--muted)}
.f input,.f select,.f textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:16px}
.f.wide{grid-column:1/-1}
.filebtn{position:relative;overflow:hidden}
.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.coach{background:var(--soft);border-radius:10px;padding:12px 14px;font-size:14px}
/* account */
.avatar{width:56px;height:56px;border-radius:50%;background:var(--primary);color:var(--primary-ink);display:flex;align-items:center;justify-content:center;font:700 16px var(--head)}
.code{font:700 26px var(--head);letter-spacing:.3em}
.menu{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.menu button{width:100%;display:flex;justify-content:space-between;background:none;border:0;border-bottom:1px solid var(--line);padding:15px 16px;text-align:left}
.menu button:last-child{border-bottom:0}
/* login */
.login{flex:1;display:flex;flex-direction:column;background:var(--band);color:var(--band-ink);overflow-y:auto}
.login .brand{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 20px 28px}
.login .brand .s1{font:700 13px var(--head);letter-spacing:.42em}
.login .brand .s2{font:800 44px/1 var(--head);letter-spacing:.22em}
.login .brand .s3{font:400 10px var(--serif);letter-spacing:.4em;color:var(--band-muted);margin-top:6px}
.login .sheetish{background:var(--bg);color:var(--ink);border-radius:28px 28px 0 0;padding:26px 20px calc(28px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px}
.who{display:flex;justify-content:space-between;align-items:center;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;text-align:left}
/* sheet */
.overlay{position:absolute;inset:0;background:rgba(10,10,10,.5);display:flex;align-items:flex-end;z-index:20}
.sheet{width:100%;max-height:88%;overflow-y:auto;background:var(--bg);border-radius:24px 24px 0 0;padding:22px 20px calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px}
.sheet.dark{background:var(--band);color:var(--band-ink)}
.sheet.dark .muted{color:var(--band-muted)}
.sheet.dark .btn{background:var(--band-ink);color:var(--band);border-color:var(--band-ink)}
.sheet.dark .btn.ghost{background:transparent;color:var(--band-ink)}
.grab{width:40px;height:4px;border-radius:99px;background:var(--line);align-self:center;margin-top:-8px}
.spark{width:100%;height:64px;color:var(--ink)}
.toast{position:absolute;left:16px;right:16px;bottom:96px;background:var(--primary);color:var(--primary-ink);padding:12px 14px;border-radius:10px;font-size:14px;font-weight:500;z-index:30;text-align:center}
.demo{font-size:11px;color:var(--muted);text-align:center;padding:16px 20px 20px}
.empty{color:var(--muted);text-align:center;padding:16px;border:1px dashed var(--line);border-radius:12px;font-size:14px}
table{border-collapse:collapse;width:100%;font-size:13px}
td,th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;font-variant-numeric:tabular-nums}
th{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500}
/* weekly training plans */
.weekbar{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;margin:12px 20px 0}
.weekbar>div{display:flex;flex-direction:column;align-items:center;text-align:center;line-height:1.3}
.weekbar b{font:500 16px var(--head)}
.weekbar .btn{width:44px;padding:0;font-size:20px}
.chip.two{display:flex;flex-direction:column;align-items:flex-start;gap:1px;border-radius:12px;padding:8px 14px}
.chip.two b{font-weight:500}
.chip.two small{font-size:11px;opacity:.7}
.code-b{flex:0 0 auto;font:700 12px/1 var(--head);border:1px solid var(--line);border-radius:6px;padding:5px 6px;margin-top:2px}
details.fold{gap:0}
details.fold>summary{list-style:none;cursor:pointer;font-weight:500;display:flex;flex-direction:column;gap:2px;position:relative;padding-right:24px}
details.fold>summary::-webkit-details-marker{display:none}
details.fold>summary::after{content:"+";position:absolute;right:0;top:0;font:400 20px/1 var(--head);color:var(--muted)}
details.fold[open]>summary::after{content:"–"}
details.fold[open]>summary{margin-bottom:10px}
details.cc>summary b{font:500 22px/1.15 var(--head)}
details.cc[open]{gap:10px}
details.cc[open]>*:not(summary){margin-top:10px}
.steps{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:13px}
.blk{display:flex;flex-direction:column;gap:6px;min-width:0}
.tw{overflow-x:auto;margin:0 -4px;padding:0 4px}
.ct{border-collapse:collapse;width:100%;font-size:12px;line-height:1.35}
.ct th{text-align:left;font-weight:600;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:4px 6px;border-bottom:1px solid var(--line);white-space:nowrap}
.ct td{padding:6px;border-bottom:1px solid var(--line);vertical-align:top;min-width:56px}
.ct td:first-child{min-width:0}
.cue{border-left:3px solid var(--ink);padding:2px 0 2px 10px;font:500 15px/1.35 var(--head)}
.note{background:var(--soft);border-radius:10px;padding:10px 12px;font-size:13px}
.card.dark .note{background:var(--band-soft)}
.chip.unm{border-style:dashed;border-color:var(--warn);background:var(--warn-soft);color:var(--warn)}
.chip.unm[aria-pressed="true"]{background:var(--warn);color:var(--surface);border-style:solid}
.chip.fullt{border-color:var(--bad);color:var(--bad);background:var(--bad-soft)}
.chip.fullt[aria-pressed="true"]{background:var(--bad);color:var(--surface);border-color:var(--bad)}
.chip.fullt small{margin-left:6px;font-size:11px;font-weight:600}
.wlhint{margin:2px 0 8px}
.wlhint .small{display:block;background:var(--bad-soft);border-radius:10px;padding:10px 12px}
.unm-key{display:inline-block;width:10px;height:10px;border-radius:3px;border:1px dashed var(--warn);background:var(--warn-soft);margin-right:6px;vertical-align:-1px}
/* exercise video thumbnails */
.exhead{display:flex;gap:12px;align-items:flex-start}
.thumb{position:relative;flex:0 0 auto;width:128px;height:72px;border-radius:8px;overflow:hidden;background:var(--soft);display:flex;align-items:center;justify-content:center;text-decoration:none;color:#fff}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb span{position:absolute;inset:auto;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;font-size:11px;padding-left:2px}
.thumb.none{color:var(--muted)} .thumb.none span{background:transparent;color:var(--muted)}
/* badges, news, chat */
.badge{min-width:22px;height:22px;border-radius:11px;background:var(--bad);color:#fff;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
.card.news{gap:6px}
.chat{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 330px);min-height:240px;overflow-y:auto;padding:4px 0 10px}
.bub{max-width:82%;align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:9px 12px;display:flex;flex-direction:column;gap:3px}
.bub span{white-space:pre-wrap;word-wrap:break-word;font-size:15px}
.bub small{font-size:11px;color:var(--muted)}
.bub.me{align-self:flex-end;background:var(--primary);color:var(--primary-ink);border-color:var(--primary);border-radius:16px 16px 4px 16px}
.bub.me small{color:inherit;opacity:.7}
.composer{display:flex;gap:8px;align-items:flex-end;margin:6px 0 8px}
.composer textarea{flex:1;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface);font-size:16px;resize:none}
/* waiting list */
.fullcard{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--bg)}
.altclass{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:10px}
.alert.ok{background:var(--ok-soft);color:var(--ok)}

/* rest timer */
.restbar{position:absolute;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:28;background:var(--primary);color:var(--primary-ink);border-radius:18px;padding:12px 14px 14px;box-shadow:0 10px 30px rgba(0,0,0,.25);display:flex;flex-direction:column;gap:6px}
.restbar[hidden]{display:none}
.rb-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.rb-lab{font-size:12px;letter-spacing:.12em;text-transform:uppercase;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rb-lab span{text-transform:none;letter-spacing:0}
.rb-x{background:none;border:0;color:inherit;font-size:18px;min-width:40px;min-height:36px;opacity:.8}
.rb-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rb-row b{font:500 44px/1 var(--head);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.rb-adj{background:transparent;color:inherit;border:1px solid currentColor;border-radius:999px;min-width:64px;min-height:44px;font-size:15px;font-weight:600;opacity:.85}
.rb-track{height:6px;border-radius:3px;background:rgba(127,127,127,.3);overflow:hidden}
.rb-track span{display:block;height:100%;background:#FFD400;transition:width .25s linear}
.letsgo{position:absolute;inset:0;z-index:60;background:#FFD400;color:#111;display:grid;place-items:center;text-align:center;animation:lgIn .25s ease-out, lgOut .3s ease-in 2.7s forwards;cursor:pointer}
.letsgo div{display:flex;flex-direction:column;gap:14px;align-items:center;padding:24px}
.letsgo b{font:800 72px/0.95 var(--head);letter-spacing:-.01em;animation:lgPulse .6s ease-in-out infinite alternate}
.letsgo span{font-size:18px;font-weight:600;opacity:.75}
@keyframes lgIn{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}
@keyframes lgOut{to{opacity:0}}
@keyframes lgPulse{from{transform:scale(1)}to{transform:scale(1.07)}}
@media (prefers-reduced-motion:reduce){.letsgo,.letsgo b{animation:none}}
.phone:has(.restbar:not([hidden])) .scroll{padding-bottom:150px}
.linkbtn{background:none;border:0;padding:0;color:inherit;text-decoration:underline;font:inherit;cursor:pointer}

/* progress */
.stats3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stats3 div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.stats3 b{font:500 26px/1.1 var(--head);font-variant-numeric:tabular-nums}
.stats3 span{font-size:12px;color:var(--muted)}
.habits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.habit{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg);font-size:14px;min-height:46px;text-align:left;color:var(--ink)}
.habit span{font-size:18px;filter:grayscale(1);opacity:.6}
.habit[aria-pressed="true"]{background:var(--ok-soft);border-color:var(--ok);font-weight:600}
.habit[aria-pressed="true"] span{filter:none;opacity:1}
.hweek{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end;height:44px}
.hweek span{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;height:100%}
.hweek i{display:block;width:100%;max-width:22px;border-radius:4px;background:var(--ok)}
.hweek small{font-size:10px;color:var(--muted)}
.liftrow{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px 0;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;color:var(--ink);width:100%}
.liftrow:last-child{border-bottom:0}
svg.mini{width:90px;height:28px;color:var(--ink);opacity:.8}
.lb{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:8px 6px;border-bottom:1px solid var(--line);font-size:14px}
.lb:last-of-type{border-bottom:0}
.lb .rk{font-weight:600;color:var(--muted);text-align:center}
.rk[data-r="1"],.rk[data-r="2"],.rk[data-r="3"]{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font:800 12px var(--head);justify-self:center}
.rk[data-r="1"]{background:var(--gold);color:var(--gold-ink)}.rk[data-r="2"]{background:var(--silver);color:#202222}.rk[data-r="3"]{background:var(--bronze);color:#2a1606}
.lb.me{background:var(--soft);border-radius:8px}
.lb b small{font-weight:400;color:var(--muted)}
.win{display:flex;gap:12px;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:14px}
.win b{font-weight:600}
.react{flex:0 0 auto;min-width:56px;min-height:40px;border-radius:999px;border:1px solid var(--line);background:var(--bg);font-size:16px}
.react span{font-size:13px;color:var(--muted)}
.react[aria-pressed="true"]{border-color:var(--ink);background:var(--soft)}
.celebrate{position:relative}
.card .x{position:absolute;top:8px;right:8px;background:none;border:0;color:inherit;opacity:.6;min-width:36px;min-height:36px;font-size:15px}
.card:has(> .x){position:relative;padding-right:44px}
.minis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.minis button{border:1px dashed var(--line);background:transparent;border-radius:12px;padding:10px 12px;text-align:left;display:flex;flex-direction:column;gap:2px;color:var(--ink)}
.minis b{font-weight:500;font-size:14px}.minis span{font-size:11px;color:var(--muted)}
.meas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.meas span{display:flex;flex-direction:column;background:var(--bg);border-radius:10px;padding:8px}
.meas small{font-size:11px;color:var(--muted)}.meas b{font-weight:600;font-size:15px}
.meas em{font-style:normal;font-size:11px}.meas em.dn{color:var(--ok)}.meas em.up{color:var(--warn)}
.phs,.phpick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ph,.phslot{aspect-ratio:3/4;border-radius:10px;overflow:hidden;border:1px dashed var(--line);background:var(--bg);display:grid;place-items:center;padding:0;color:var(--muted);font-size:13px;cursor:pointer}
.ph{border-style:solid}
.ph img,.phslot img,.compare img{width:100%;height:100%;object-fit:cover;display:block}
.phslot.on{border-style:solid}
.phslot span{width:100%;height:100%;display:grid;place-items:center}
.ph-load{font-size:11px;color:var(--muted)}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.compare figure{margin:0;display:flex;flex-direction:column;gap:4px}
.compare figure > *:first-child{aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:var(--bg);display:grid;place-items:center}
.compare figcaption{font-size:12px;color:var(--muted);text-align:center}
.onshift{font-size:13px;background:var(--soft);border-radius:10px;padding:8px 12px}
.sheet.newspop{background:#FFD400;color:#141414}
.sheet.newspop .eyebrow{color:#141414;opacity:.75}
.sheet.newspop .grab{background:rgba(0,0,0,.25)}
.sheet.newspop h2{font:700 26px/1.15 var(--head);margin:0}
.sheet.newspop p{margin:6px 0 0;white-space:pre-line;font-size:15px}
.sheet.newspop .np + .np{border-top:1px solid rgba(0,0,0,.18);padding-top:12px}
.sheet.newspop .btn{background:#141414;color:#FFD400;border-color:#141414}
.card.today{border-color:var(--ink)}
.weekplan{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.wp{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);min-width:0}
.wp small{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.wp b{font:600 11px/1.15 var(--body);text-align:center;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.wp.now{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.wp[aria-pressed="true"]{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}
.wp[aria-pressed="true"] small{color:inherit;opacity:.7}
.wp:disabled{opacity:.45}
.pctile{display:flex;gap:12px;align-items:center;background:var(--soft);border-radius:12px;padding:10px 12px;font-size:13px}
.pctile > b{font:600 26px/1 var(--head)}
.reward{display:flex;flex-direction:column;gap:4px;background:#FFD400;color:#141414;border-radius:12px;padding:12px 14px}
.reward .code2{font:700 22px/1.1 var(--head);letter-spacing:.06em}
.card .f input{width:100%}
/* chat attachments */
.iconbtn{flex:0 0 auto;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--surface);display:grid;place-items:center;font-size:18px;cursor:pointer}
.composer{align-items:center}
.composer textarea{min-height:44px}
.bub.hasatt{padding:4px;gap:4px}
.bub.hasatt > span,.bub.hasatt > small{padding:0 8px}
.bub.hasatt > small{padding-bottom:4px}
.att-img img{display:block;max-width:100%;max-height:300px;border-radius:12px}
.att-audio{width:240px;max-width:100%;height:40px}
.att-video{max-width:100%;max-height:300px;border-radius:12px}
.att-file{display:flex;gap:6px;align-items:center;padding:8px 10px;border-radius:10px;background:rgba(127,127,127,.12);color:inherit;text-decoration:none;font-size:14px;word-break:break-all}
.att-file small{opacity:.7;white-space:nowrap}
.pending{display:flex;gap:10px;align-items:center;background:var(--soft);border-radius:12px;padding:6px 10px;margin-top:6px;font-size:14px}
.pending img{width:44px;height:44px;object-fit:cover;border-radius:8px}
.pending span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recdot{width:12px;height:12px;border-radius:50%;background:#d93a2b;animation:recp 1s infinite alternate;flex:0 0 auto}
.rectime{flex:1;font-variant-numeric:tabular-nums}
@keyframes recp{to{opacity:.3}}
.teamcheer{display:inline-block;margin-top:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--soft)}
.soon{opacity:.75}
.soontag{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--soft);color:var(--muted);white-space:nowrap}

/* Buy tab */
.buyh{margin:10px 2px 0;font:500 22px/1.15 var(--head)}
.buycard{gap:0;padding:6px 16px 12px}
.buycard > .tiny{padding:8px 0}
.buyrow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.buyrow:last-of-type{border-bottom:0}
.buyrow b{font-weight:600}
.buyrow .btn{flex:0 0 auto;min-width:76px}
.buyrow.cur{background:linear-gradient(90deg,var(--soft),transparent);margin:0 -16px;padding:12px 16px}
.buyrow.locked{opacity:.6}
.boltbox{margin-top:8px;padding:10px 12px 2px;border:1px dashed var(--line);border-radius:12px}
.kidnames{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--line);margin-top:4px}
.kidnames input,#kidNew{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;background:var(--bg);color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.kchip{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;border-radius:999px;background:var(--soft);font-size:14px;font-weight:500}
.kchip.on{background:var(--ok-soft);color:var(--ok)}
.kchip button{border:0;background:transparent;color:inherit;font-size:12px;width:24px;height:24px;border-radius:50%;cursor:pointer}
.kchip button:hover{background:rgba(0,0,0,.08)}
@media (max-width:400px){.tabbar button{font-size:9px}.tabbar svg{width:20px;height:20px}}
.yrow{align-items:baseline}.yrow > span:last-child{white-space:nowrap;text-align:right}.yrow > span:first-child{min-width:0}
/* Wordmark matches the logo: THE 200 small, widely spaced and centred over STRONG, sitting close to it.
   letter-spacing leaves a gap after the last letter, so a matching indent keeps each line truly centred. */
.mark,.brand{align-items:center !important;text-align:center}
.mark .s1,.brand .s1{letter-spacing:.6em;padding-left:.6em;margin:0}
.mark .s2,.brand .s2{letter-spacing:.3em;padding-left:.3em;margin-top:.12em}
.login .brand{gap:0}
.login .brand .s1{font-size:16px}
.login .brand .s2{margin-top:6px}
.login .brand .s3{letter-spacing:.4em;padding-left:.4em;margin-top:14px}
.pasthead{margin:10px 0 0;font-size:15px;color:var(--muted)}
.card.pastcls{opacity:.55}
.card.pastcls .bar{display:none}
/* home: getting started + minis as links */
.onbcard{text-align:left;border:1px solid var(--line);cursor:pointer;color:inherit;font:inherit;width:100%}
.minis a{border:1px dashed var(--line);background:transparent;border-radius:12px;padding:10px 12px;text-align:left;display:flex;flex-direction:column;gap:2px;color:var(--ink);text-decoration:none}
.minis a b{font-weight:500;font-size:14px}.minis a span{font-size:11px;color:var(--muted)}
.back{background:none;border:0;padding:0;color:var(--muted);font-size:14px;align-self:flex-start;cursor:pointer}
.bar.big{height:10px}
.onbrow{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.onbrow.on{background:var(--surface)}
.onbrow .tick{flex:0 0 30px;width:30px;height:30px;border-radius:9px;border:2px solid var(--ink);background:transparent;color:var(--bg);cursor:pointer;display:grid;place-items:center;padding:0;margin-top:3px}
.onbrow .tick svg{width:18px;height:18px}
.onbic{flex:0 0 36px;width:36px;height:36px;border-radius:10px;background:var(--band);color:var(--band-ink);display:grid;place-items:center}
.onbic svg{width:20px;height:20px}
.onbrow.on .onbic{background:var(--soft);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.onbrow .tick[aria-pressed="true"]{background:var(--ink)}
.onbrow .tick:disabled{border-style:dashed;cursor:default;opacity:.8}
.onbrow.on .tick:disabled{border-style:solid;opacity:1}
.onbtxt{flex:1;min-width:0}
.onbt{display:flex;gap:8px;align-items:center;width:100%;background:none;border:0;padding:4px 0 0;text-align:left;color:inherit;font:inherit;cursor:pointer;flex-wrap:wrap}
.onbt b{font-weight:600;flex:1 1 160px}
.onbrow.on .onbt b{text-decoration:line-through;text-decoration-thickness:1px;color:var(--muted)}
/* basket */
.cartbar{position:absolute;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:5;display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--ink);color:var(--bg,#fff);border:0;border-radius:14px;padding:13px 16px;font:inherit;font-size:14px;box-shadow:0 8px 24px rgba(0,0,0,.25);cursor:pointer}
.buyrow.incart{background:var(--soft,#f3f3f1);border-radius:10px}
.shopgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.prod{display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px}
.prod img,.prod .noimg{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:#202222}
.prod .noimg{display:flex;align-items:center;justify-content:center;color:#f9f9f8;font:800 22px var(--head);letter-spacing:.2em}
.prod b{font-weight:600;font-size:14px;line-height:1.2}
.prod select{width:100%}
.prod.out{opacity:.6}
/* calculator */
.calcres{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.calcres div{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px}
.calcres div.hl{background:var(--ink);color:var(--bg,#fff);border-color:var(--ink)}
.calcres span{font-size:11px;opacity:.75}.calcres b{font:500 22px/1 var(--head)}.calcres small{font-size:11px;opacity:.75}
.macros3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.macros3 b{font:500 22px var(--head);display:block}.macros3 span{font-size:12px;color:var(--muted)}
.splitbar{display:flex;height:22px;border-radius:999px;overflow:hidden;font-size:10px;font-weight:700}
.splitbar span{display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden}
.splitbar .s-P{background:#202222;color:#fff}.splitbar .s-C{background:#9aa09e;color:#fff}.splitbar .s-F{background:#d9d6cf;color:#202222}
.tips{display:grid;gap:10px}.tips>div{display:flex;gap:10px;align-items:flex-start}.tips>div>span:first-child{font-size:20px;line-height:1.2}
.hboard{display:flex;flex-direction:column;gap:4px;margin-top:4px}
.citem{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-bottom:1px solid var(--line)}
.ctop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.ctop b{font-weight:600}
.cctl{display:flex;justify-content:space-between;align-items:center}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.qty button{width:34px;height:30px;border:0;background:transparent;font-size:16px}
.qty b{min-width:22px;text-align:center;font-weight:600}
.prod .noimg{flex-direction:column;letter-spacing:0;font:inherit;line-height:1}
.prod .noimg .s1{font:700 8px var(--head);letter-spacing:.6em;padding-left:.6em}
.prod .noimg .s2{font:800 17px var(--head);letter-spacing:.3em;padding-left:.3em;margin-top:4px}
.onbt b{font-weight:500}
.onbrow.on .onbt b{text-decoration:none}
/* workout: cleaner exercise cards */
.excard{gap:10px}
.exmeta{font-size:12px;color:var(--muted);margin-top:2px}
.sets5{display:grid;grid-template-columns:22px minmax(64px,1.1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.75fr);gap:6px 6px;align-items:center;font-size:13px}
.sets5 .h{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);white-space:nowrap}
.sets5 .sn{color:var(--muted);font-weight:600;text-align:center}
.sets5 .lt{font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.sets5 input{width:100%;min-width:0;height:42px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:0 6px;text-align:center;font-variant-numeric:tabular-nums;font-size:16px}
.exact{display:flex;flex-wrap:nowrap;border-top:1px solid var(--line);margin:2px -4px 0;padding-top:8px}
.exact>*{flex:1 1 0;min-width:0;background:none;border:0;padding:6px 2px;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink);text-decoration:none;text-align:center;white-space:nowrap;border-radius:8px;cursor:pointer}
.exact>*+*{border-left:1px solid var(--line);border-radius:0}
.exact .off{color:var(--muted);cursor:default}
.resttog{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:10px;margin-top:4px;font-size:14px;cursor:pointer}
.resttog b{font-weight:600}
.resttog input{appearance:none;-webkit-appearance:none;width:46px;height:28px;border-radius:999px;background:var(--line);position:relative;flex:0 0 auto;cursor:pointer;transition:background .15s}
.resttog input::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .15s}
.resttog input:checked{background:var(--ok)}.resttog input:checked::after{left:21px}
/* rest timer sits at the top of the screen */
.restbar{top:calc(10px + env(safe-area-inset-top,0px));bottom:auto;padding:10px 14px 12px}
.rb-row b{font-size:36px}
.rb-adj{min-height:38px}
/* intensity thermometer */
.thermo{display:flex;flex-direction:column;gap:10px;padding:6px 0 4px}
.tval{display:flex;align-items:baseline;gap:10px}
.tval span:first-child{font-size:30px}.tval b{font:500 44px/1 var(--head)}.tval span:last-child{font-size:15px;color:var(--muted)}
.thermo input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:22px;border-radius:999px;background:linear-gradient(90deg,#4f9d69 0%,#b9c24a 35%,#e3a33b 60%,#d9622b 80%,#a1271a 100%);outline-offset:4px}
.thermo input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:34px;height:34px;border-radius:50%;background:#fff;border:3px solid var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.3);cursor:pointer}
.thermo input[type=range]::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:#fff;border:3px solid var(--ink);cursor:pointer}
.tscale{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
.funfact{background:var(--soft);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:4px;color:var(--ink)}
.funfact b:first-of-type{font:500 30px/1.1 var(--head)}
.phone:has(.restbar:not([hidden])) .scroll{padding-bottom:0;padding-top:96px}
.card.news.unread{background:#fff4c2;border-color:#f0d873;color:#202222}
.card.news.unread .eyebrow,.card.news.unread .small{color:#4a3d00}
.card.news.unread a{color:#202222}
.card.news.unread .gotit{background:#202222;color:#fff4c2;border-color:#202222}
.card.news{transition:background .3s}
.gotit{align-self:stretch;margin-top:4px;border:1px solid #d9bd4a;background:#fffbe6;color:#202222;border-radius:10px;padding:10px;font:inherit;font-weight:600;cursor:pointer}
.menu a{width:100%;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:15px 16px;text-align:left;color:inherit;text-decoration:none}
.menu button:last-of-type{border-bottom:0}
.codebox{display:flex;gap:8px;margin-top:10px}
.codebox input{flex:1;min-width:0;height:38px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--surface);text-transform:uppercase}
.excard .thumb{width:84px;height:48px}
.excard .thumb.none{display:none}
.excard .exhead h2{font-size:19px;line-height:1.2}
.weekplan .wp b{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* book: four tabs, deadlift platform, appointments */
.seg4 button{font-size:13px;padding-inline:4px}
.pod.dl{border:2px solid var(--dl-line);background:var(--dl-bg)}
.pod.dl b{color:var(--ink)}
.pod.dl.taken{opacity:.55}.pod.dl.mine{background:var(--ok-soft);border-color:var(--ok)}
.legend i.dlkey{background:var(--dl-bg)!important;border:2px solid var(--dl-line)!important}
.slotgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.slotgrid .chip{justify-content:center;width:100%}
.evcard .btn{margin-top:4px}
.seg.seg4{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}
.seg.seg4 button{font-size:12.5px;padding:9px 2px;white-space:nowrap;min-width:0}
.seg.seg4{grid-template-columns:.8fr 1fr .9fr 1.45fr}.seg.seg4 button{font-size:12px}
.passbtn{align-self:stretch;margin-top:2px;border:1px dashed #c8a96a;background:#fbf4e4;color:#5c4400;border-radius:10px;padding:10px;font:inherit;font-weight:600;font-size:14px;cursor:pointer}
.card.dark .passbtn{background:transparent;color:#e8cf95}
/* shop: quick-jump sections, stays at the top while scrolling */
.shopjump{position:sticky;top:0;z-index:4;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:10px 20px;background:var(--bg);border-bottom:1px solid var(--line)}
.shopjump::-webkit-scrollbar{display:none}
.shopjump button{flex:0 0 auto;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 14px;font:inherit;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}
.shopjump button:active{background:var(--ink);color:var(--bg)}
.buyh{scroll-margin-top:70px}
.item.past{opacity:.8}
.seg:has(> button:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
.healthrow{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);gap:8px;align-items:center}
.hsteps{margin:4px 0 0 18px;display:flex;flex-direction:column;gap:10px;font-size:14px;line-height:1.45}
.hcode{display:flex;gap:8px;align-items:center;margin-top:6px}.hcode code{font:600 18px/1 ui-monospace,monospace;letter-spacing:.12em;background:var(--soft);padding:8px 10px;border-radius:8px}
.fform{display:flex;flex-direction:column;gap:14px;margin:6px 0 4px}.fq label{display:block;font-weight:500;font-size:14px;margin-bottom:6px}.fq textarea,.fq input{width:100%;box-sizing:border-box}
.scale5{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.scale5 button,.choices button{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 0;font:600 15px var(--body);color:var(--ink)}
.scale5 button[aria-pressed="true"],.choices button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.scalekey{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:3px}
.choices{display:flex;flex-wrap:wrap;gap:6px}.choices button{padding:9px 12px;font-size:14px;font-weight:500}
.testwk details{border-top:1px solid var(--line);padding:8px 0}.testwk summary{cursor:pointer;list-style:none}.testwk summary::-webkit-details-marker{display:none}
.twwk{margin:8px 0 0}.twwk ul{margin:4px 0 0 18px;padding:0;font-size:14px;line-height:1.6}.twboard{margin-top:8px}.twboard>b{font-size:14px}
.nmeal{border-top:1px solid var(--line);padding-top:8px;margin-top:4px}
.nmeal ul{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}
.nmeal li{display:flex;justify-content:space-between;gap:8px;font-size:14px}
/* ───── food diary ───── */
.fdiary{gap:8px}
.fdnav{display:flex;align-items:center;gap:6px;font-size:14px}
.fdnav b{font-weight:500;min-width:84px;text-align:center}
.fdleft{display:flex;align-items:baseline;gap:8px}
.fdleft b{font:500 34px/1 var(--head);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.fdleft span{font-size:13px;color:var(--muted)}
.fdm{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px;font-variant-numeric:tabular-nums}
.fdm .b{height:6px;border-radius:99px;background:var(--soft);overflow:hidden}
.fdm .b span{display:block;height:100%;background:var(--ink);border-radius:99px}
.fdm .v small{color:var(--muted)}
.fdmeal{border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:4px}
.fdmeal b{font-weight:500}
.fdrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;font-size:14px}
.fdrow>span:first-child{display:flex;flex-direction:column;min-width:0}
.fdrow .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fdrow .linkbtn{color:var(--muted)}
.fdadd{align-self:flex-start;background:none;border:0;padding:4px 0;color:var(--ink);font-size:14px;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.fasearch{display:flex;gap:8px;align-items:center}
.fasearch input{flex:1;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
#recQ{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.falist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;max-height:46vh;overflow-y:auto}
.faitem{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;background:var(--surface);border:0;border-bottom:1px solid var(--line);padding:10px 12px}
.faitem:last-child{border-bottom:0}
.faitem>span:first-child{display:flex;flex-direction:column;min-width:0}
.faitem b{font-weight:500;font-size:14px}
.faitem>span:last-child{text-align:right;flex:0 0 auto;font-variant-numeric:tabular-nums}
.fapre{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;background:var(--soft);border-radius:10px;padding:12px 14px}
.fapre b{font:500 26px/1 var(--head);font-variant-numeric:tabular-nums}
.fapre span{font-size:13px;color:var(--muted)}
.scanbox{position:relative;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:4/3}
.scanbox video{width:100%;height:100%;object-fit:cover;display:block}
.scanbox i{position:absolute;left:12%;right:12%;top:38%;bottom:38%;border:2px solid rgba(255,255,255,.85);border-radius:10px}
/* recipes and books */
.rtiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rtiles.all{grid-template-columns:repeat(2,minmax(0,1fr))}
.rtile{display:flex;flex-direction:column;gap:4px;text-align:left;background:none;border:0;padding:0;min-width:0}
.rtile img,.rtile .rph{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;background:var(--soft)}
.rtile .rph{display:flex;align-items:center;justify-content:center;font:500 30px var(--head);color:var(--muted)}
.rtile b{font-weight:500;font-size:13px;line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.recmac{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;text-align:center}
.recmac div{background:var(--soft);border-radius:10px;padding:8px 4px;display:flex;flex-direction:column}
.recmac b{font:500 18px/1.1 var(--head);font-variant-numeric:tabular-nums}
.recmac span{font-size:11px;color:var(--muted)}
.recing,.recmeth{margin:0;padding-left:20px;font-size:14px;display:flex;flex-direction:column;gap:4px}
.libitem{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;border-top:1px solid var(--line);padding-top:10px}
.libitem img,.libitem .libph{width:48px;height:64px;object-fit:cover;border-radius:6px;background:var(--soft)}
.libitem .libph{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--muted)}
.libitem>span{display:flex;flex-direction:column;min-width:0}
.libitem b{font-weight:500}
/* member offers */
.mcard{gap:4px}
.mcard .mname{font:500 26px/1.1 var(--head);letter-spacing:-.01em}
.partner{flex-direction:row;align-items:flex-start;gap:14px}
.partner img{width:64px;height:64px;object-fit:contain;border-radius:12px;background:#fff;border:1px solid var(--line);flex:0 0 auto}
.partner>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.partner .poffer{font:500 20px/1.2 var(--head)}
/* movement assessment */
.asmem{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:10px}
.asmem:first-of-type{border-top:0;padding-top:0}
.asmem b{font-weight:500}
.asscore{display:flex;align-items:baseline;gap:8px}
.asscore b{font:500 34px/1 var(--head)}
.asscore span{font-size:13px;color:var(--muted)}
details.card>summary{cursor:pointer;list-style:none}
details.card>summary::-webkit-details-marker{display:none}
details.card>summary::after{content:" ›"}
details.card[open]>summary::after{content:" ⌄"}
.fdtot{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;text-align:center}
.fdtot div{background:var(--soft);border-radius:10px;padding:8px 4px;display:flex;flex-direction:column}
.fdtot b{font:500 18px/1.1 var(--head);font-variant-numeric:tabular-nums}
.fdtot span{font-size:11px;color:var(--muted)}
/* ───── public landing pages (/p/<name>): one 9:16 screen, like an Instagram story ───── */
body.lpbody{background:#0e0f0f;margin:0;min-height:100dvh;display:flex;align-items:center;justify-content:center}
.lpstory{position:relative;width:min(100vw,calc(100dvh * 9 / 16));height:min(100dvh,calc(100vw * 16 / 9));background:var(--band);color:var(--band-ink);overflow:hidden;display:flex;flex-direction:column;container-type:size}
@media (min-width:560px){.lpstory{height:min(calc(100dvh - 32px),920px);width:calc(min(calc(100dvh - 32px),920px) * 9 / 16);border-radius:22px;box-shadow:0 20px 60px rgba(0,0,0,.45)}}
.lpload{margin:auto;color:var(--band-muted)}
.lpphoto{position:absolute;inset:0 0 45% 0;background-size:cover;background-position:center}
.lpphoto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,34,34,.25) 0%,rgba(32,34,34,0) 30%,var(--band) 100%)}
.lpin{position:relative;flex:1;display:flex;flex-direction:column;padding:6cqh 8.9cqw calc(5cqh + env(safe-area-inset-bottom,0px))}
.lpmark{display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--band-ink)}
.lpmark .s1{font:700 2.8cqw var(--head);letter-spacing:.6em;padding-left:.6em}
.lpmark .s2{font:800 8.9cqw/1 var(--head);letter-spacing:.3em;padding-left:.3em;margin-top:.2em}
.lpmark .s3{font:400 2cqw var(--serif);letter-spacing:.4em;color:var(--band-muted);margin-top:.8em}
.lpmid{flex:1;display:flex;flex-direction:column;justify-content:center;gap:2.2cqh}
.lpkind{font:500 2.8cqw var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--band-muted)}
.lph{font:600 clamp(28px,15.5cqw,170px)/.95 var(--head);letter-spacing:-.02em;margin:0;color:var(--band-ink);overflow-wrap:anywhere}
.lptg{margin:0;font-size:4.1cqw;line-height:1.4;color:var(--band-muted)}
.lptg a{color:inherit}
.lpchips{display:flex;flex-wrap:wrap;gap:1.5cqw}
.lpchips span{border:2px solid var(--band-line);border-radius:999px;padding:.55em 1.3em;font-size:3.35cqw}
.lpnx{background:var(--band-soft,#2c2f2f);border-radius:2.6cqw;padding:3.4cqw 4cqw;display:flex;flex-direction:column;gap:.4em}
.lpnx b{font:600 4.6cqw/1.2 var(--head)}
.lpnx span{font-size:3.5cqw;color:var(--band-muted)}
.lpnx span.few{color:#e8bf6a;font-weight:500}
.lpprice2{font:500 4.2cqw var(--head)}
.lpbot{display:flex;flex-direction:column;align-items:center;gap:1.6cqh;padding-bottom:7cqh}
.lpcta{display:flex;align-items:center;justify-content:center;width:100%;min-height:13.9cqw;border-radius:999px;border:0;background:var(--band-ink);color:var(--band);font:600 4.8cqw var(--head);text-decoration:none;cursor:pointer}
.lpcta.ghost{background:transparent;color:var(--band-ink);border:2px solid var(--band-line)}
.lpmore{background:none;border:0;color:var(--band-muted);font:400 3.3cqw var(--body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.lpdone{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5em}
.lpdone b{font:600 5.6cqw var(--head)}
.lpdone span{font-size:3.6cqw;color:var(--band-muted)}
.lppoints{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:15px}
.lpprice{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 2px}
.lpprice b{font:500 22px var(--head)}
.lpbody .overlay{position:fixed}
@media (max-width:559px){body.lpbody{background:var(--band)}}
.lpbody .overlay{position:fixed;justify-content:center}
.lpbody .sheet{max-width:520px}
.lptreat{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.lptreat div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px}
.lptreat div:last-child{border-bottom:0}
.lptreat b{font-weight:500}
/* workout tiles: same height, words centred, so the bottoms line up */
.hscroll{align-items:stretch}
.chip.two{justify-content:center;min-height:52px}
.weekplan .wp{justify-content:flex-start;min-height:64px}
.badges{align-items:stretch}
.badges .bdg{height:100%}
/* ───── member journey: highlights, PAR-Q, MAP suggestions, coach habits, badges, coming soon ───── */
:root{--hl-bg:#fff4b3;--hl-line:#e3c100;--hl-ink:#3d3200}
:root{--gold:#d4a72c;--gold-ink:#3a2a00;--gold-soft:#faf1d6;--silver:#b9bdbf;--bronze:#c08552}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--hl-bg:#3b3410;--hl-line:#c9a800;--hl-ink:#f4e6a6}}
:root[data-theme="dark"]{--hl-bg:#3b3410;--hl-line:#c9a800;--hl-ink:#f4e6a6}
.card.hl{background:var(--hl-bg);border-color:var(--hl-line);color:var(--hl-ink)}
.card.hl .muted,.card.hl .eyebrow{color:var(--hl-ink);opacity:.8}
.parqgate{position:absolute;inset:0;z-index:40;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch}
.parqin{padding:calc(22px + env(safe-area-inset-top,0px)) 20px calc(32px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px}
.parqin h1{margin:0;font:500 28px/1.1 var(--head)}
.parqin p{margin:0}
.pqq{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid var(--line)}
.parqin .f{display:flex;flex-direction:column;gap:6px}
.parqin textarea,.parqin input{width:100%;box-sizing:border-box}
.excard.mapflag{background:var(--hl-bg);border-color:var(--hl-line)}
.mapnote{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--hl-ink);border-bottom:1px solid var(--hl-line);padding-bottom:8px;margin-bottom:2px}
.mapnote b{font-weight:600}
.chab{display:flex;flex-direction:column;gap:4px}
.chab .habit{width:100%;justify-content:flex-start}
.optin{border-top:1px solid var(--line);padding-top:10px;margin-top:2px}
.tile.soon{opacity:.6;cursor:default;border-style:dashed}
.badgepop{display:flex;flex-direction:column;gap:12px;text-align:center;align-items:center;padding:8px 0}
.badgepop .btn{width:100%}
.parqin .f[hidden]{display:none}
.terms{max-height:46vh;overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:4px 14px;background:var(--surface);font-size:14px;line-height:1.5}
.terms p{margin:10px 0}
.tcagree{display:flex;gap:10px;align-items:flex-start;font-size:14px}.tcagree input{margin-top:3px;flex:0 0 auto;width:20px;height:20px}
/* lottery */
.lottowin{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:10px;margin-top:2px}
.lottowin b{font:500 19px/1.2 var(--head)}
.lottoshow{position:absolute;inset:0;z-index:45;background:#141414;color:#fff;overflow-y:auto}
.lottoin{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:calc(26px + env(safe-area-inset-top,0px)) 20px calc(26px + env(safe-area-inset-bottom,0px))}
.lottoin h1{margin:0;font:600 30px/1.1 var(--head);color:#FFD400}
.lottoin .eyebrow{color:#bbb}
.wheelbox{position:relative;width:min(320px,86vw);aspect-ratio:1;margin:8px 0}
.wheel{width:100%;height:100%;transition:transform 6s cubic-bezier(.12,.62,.08,1);transform:rotate(0deg)}
.wheel .ls0{fill:#FFD400}.wheel .ls1{fill:#2a2a2a}.wheel .ls2{fill:#f4f1ea}
.wheel path{stroke:#141414;stroke-width:2}
.wheel text{font:600 11px/1 system-ui,sans-serif;dominant-baseline:middle}
.wheel .lt0,.wheel .lt2{fill:#141414}.wheel .lt1{fill:#fff}
.wheel .hub{fill:#141414;stroke:#FFD400;stroke-width:4}
.pointer{position:absolute;left:50%;top:-6px;transform:translateX(-50%);width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:26px solid #fff;z-index:2;filter:drop-shadow(0 2px 2px rgba(0,0,0,.5))}
.lottores{min-height:120px;display:flex;flex-direction:column;align-items:center;gap:4px}
.lwname{font:600 26px/1.15 var(--head);color:#FFD400}
.lwprize{font:600 22px/1.2 var(--head);padding:6px 14px;border-radius:10px;border:2px dashed #555;min-width:200px}
.lwprize.on{border-color:#FFD400;background:#FFD400;color:#141414}
.lottoshow .btn{background:#fff;color:#141414;border-color:#fff;max-width:340px}
.welcomepop{display:flex;flex-direction:column;gap:12px;padding:6px 0}
.welcomepop .mark{display:flex;flex-direction:column;line-height:1}.welcomepop .mark .s1{font-size:11px;letter-spacing:.4em}.welcomepop .mark .s2{font:700 26px/1 var(--head);letter-spacing:.12em}
.frrow{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;border-top:1px solid var(--line);padding-top:8px;font-size:14px}
.gthread{display:flex;flex-direction:column;gap:8px;min-height:40vh}
.gmsg{align-self:flex-start;max-width:82%;background:var(--surface);border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:8px 12px;display:flex;flex-direction:column;gap:2px;font-size:15px}
.gmsg.mine{align-self:flex-end;background:var(--primary);color:var(--primary-ink);border-color:var(--primary);border-radius:16px 16px 4px 16px}
.gmsg.mine .muted{color:inherit;opacity:.7}
.gsend{display:flex;gap:8px;position:sticky;bottom:0;background:var(--bg);padding:8px 0}.gsend textarea{flex:1}
/* games */
.gcard{text-align:left;display:flex;flex-direction:column;gap:6px;cursor:pointer}
.gtext p{margin:6px 0}
.gvideo{width:100%;aspect-ratio:16/9;border:0;border-radius:12px;background:#000;display:block}
div.gvideo iframe{width:100%;height:100%;border:0;border-radius:12px}
.gheat{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:8px}
.gheat .small{display:flex;flex-direction:column}.gheat .mine{font-weight:700;background:var(--hl-bg);border-radius:6px;padding:0 4px;align-self:flex-start}
.gboard{overflow-x:auto}.gboard table{width:100%;border-collapse:collapse;font-size:13px}.gboard th,.gboard td{padding:6px 4px;border-bottom:1px solid var(--line);text-align:center}
.gboard td:nth-child(2),.gboard th:nth-child(2){text-align:left}.gboard tr.me{background:var(--hl-bg)}
.gscore input{min-width:0}
.acadlink{display:flex;flex-direction:column;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:14px;margin-top:6px}
.cdline{width:100%;background:var(--surface,#fff);font:inherit;text-align:left;cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit;margin-top:4px}
.cdline b{flex:1;font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cdline .cdn{font-weight:700;font-size:13px;white-space:nowrap}
.tile .tiledate{font-size:11.5px;opacity:.75;margin-top:2px;font-weight:500}
/* countdown to app booking opening */
.cdpop{position:absolute;inset:0;z-index:46;background:#202222;color:#f9f9f8;overflow-y:auto}
.cdin{min-height:100%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:calc(34px + env(safe-area-inset-top,0px)) 24px calc(28px + env(safe-area-inset-bottom,0px))}
.cdin .mark{margin-bottom:18px}.cdin .mark .s1{font-size:11px}.cdin .mark .s2{font-size:26px}
.cdin .eyebrow{color:#b9bcbb}
.cdnum{font:700 140px/0.9 var(--head);letter-spacing:-.04em;color:#ffe14d;margin-top:6px}
.cdunit{font:600 26px/1 var(--head);margin-top:-2px}
.cdclock{font:500 15px/1 var(--head);color:#b9bcbb;letter-spacing:.06em;font-variant-numeric:tabular-nums;margin-bottom:10px}
.cdbig{font:700 54px/1.02 var(--head);color:#ffe14d;margin:8px 0}
.cdwhen{width:100%;max-width:340px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid #3a3d3d;padding:10px 2px;text-align:left}
.cdwhen b{font:600 15px/1.2 var(--head)}.cdwhen span{font-size:13px;color:#b9bcbb;text-align:right}
.cdin p{font-size:14px;line-height:1.5;color:#d6d8d7;max-width:340px;margin:6px 0 4px}
.cdin .btn{background:#ffe14d;color:#202222;border-color:#ffe14d;max-width:340px}
.cdin .linkb{background:none;border:0;color:#b9bcbb;text-decoration:underline;font:inherit;font-size:14px;cursor:pointer}
.opencard{gap:8px}
/* join + login: the already-a-member choice stands out */
.btn.hilite,.joinkinds button[data-kind="existing"]{background:#ffe14d;color:#202222;border-color:#ffe14d;font-weight:700}
.joinkinds button[data-kind="existing"][aria-pressed="true"]{background:#ffe14d;color:#202222;box-shadow:0 0 0 3px rgba(255,225,77,.45)}
.a2hs{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
.a2hs summary{font-weight:700;cursor:pointer}
.a2hs-cols{display:grid;grid-template-columns:1fr;gap:12px;margin:10px 0}
.a2hs ol{margin:6px 0 0;padding-left:20px;font-size:14px;line-height:1.45}
.a2hs li{margin-bottom:4px}
@media (min-width:560px){.a2hs-cols{grid-template-columns:1fr 1fr}}
.card.onbdone{background:#ffe14d;border-color:#ffe14d;color:#202222;gap:4px}
.a2hscard .a2hs-cols{display:grid;grid-template-columns:1fr;gap:10px}
.a2hscard ol{margin:4px 0 0;padding-left:20px;font-size:14px;line-height:1.45}
/* share to Instagram / WhatsApp */
.sharebg{position:fixed;inset:0;z-index:200;background:rgba(10,11,11,.72);display:flex;align-items:flex-end;justify-content:center}
.sharebox{background:var(--bg);color:var(--ink);width:100%;max-width:520px;max-height:96dvh;overflow:auto;border-radius:22px 22px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}
@media (min-width:600px){.sharebg{align-items:center}.sharebox{border-radius:22px}}
.sharetop{display:flex;justify-content:space-between;align-items:center}.sharetop h2{margin:0;font:600 21px/1.2 var(--head)}
.sharex{border:0;background:var(--soft);color:var(--ink);width:36px;height:36px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer}
.sharestyles{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.sharestyles button{flex:0 0 74px;border:2px solid transparent;background:none;padding:0;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:4px;align-items:center;color:var(--ink);font:500 11px/1.2 var(--body)}
.sharestyles canvas{width:70px;height:124px;border-radius:9px;background:#5b6360 repeating-conic-gradient(#6c7471 0 25%,#5b6360 0 50%) 0 0/14px 14px;display:block}
.sharestyles button[aria-pressed="true"]{border-color:#ffe14d}
.sharestyles button[aria-pressed="true"] span{font-weight:700}
.shareprev{display:flex;justify-content:center;border-radius:16px;padding:10px;background:var(--soft)}
.shareprev.chk{background:#4f5654 repeating-conic-gradient(#5d6562 0 25%,#4f5654 0 50%) 0 0/22px 22px}
.shareprev.chk.light{background:#e9e9e4 repeating-conic-gradient(#f6f6f2 0 25%,#e9e9e4 0 50%) 0 0/22px 22px}
.shareprev canvas{height:min(52dvh,560px);width:auto;aspect-ratio:9/16;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.25)}
.sharehint{margin:0;font-size:13px;line-height:1.45;color:var(--muted)}
.shareacts{display:flex;flex-direction:column;gap:8px}
.sharebox>*{flex-shrink:0}
/* fewer one-word lines */
p,.small,.tiny,.card span,.alert span,.empty,.sub{text-wrap-style:pretty}
h1,h2,h3{text-wrap-style:balance}
.lottoshow .btn.lottospin{background:#FFD400;border-color:#FFD400;color:#141414;font-weight:700}
.cutnote{font-size:13px;line-height:1.4;padding:9px 12px;border-radius:10px;background:var(--soft);color:var(--ink)}

/* deadlift platform: light grey, not yellow */
:root{--dl-bg:#e4e5e2;--dl-line:#2f6fb0}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--dl-bg:#333636;--dl-line:#6aa6e8}}
:root[data-theme="dark"]{--dl-bg:#333636;--dl-line:#6aa6e8}
/* strength leaderboards: one per level */
.lvlboards{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lvlboard{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.lvlboard.mine{border-color:var(--ink)}
.lvlboard .lb{font-size:13px}
@media (max-width:360px){.lvlboards{grid-template-columns:1fr}}
.joinrules{display:block;font-size:12.5px;line-height:1.45;color:var(--muted);background:var(--soft);border-radius:10px;padding:8px 10px;margin:8px 0}
/* lifestyle questionnaire and goals */
:root{--rag-g:#1f6a3f;--rag-gs:#dff1e6;--rag-a:#9a6a00;--rag-as:#fff1c7;--rag-r:#b3261e;--rag-rs:#fde3df}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--rag-g:#7cc59b;--rag-gs:#1d2e24;--rag-a:#e8bf6a;--rag-as:#352a14;--rag-r:#f0a093;--rag-rs:#3a2420}}
:root[data-theme="dark"]{--rag-g:#7cc59b;--rag-gs:#1d2e24;--rag-a:#e8bf6a;--rag-as:#352a14;--rag-r:#f0a093;--rag-rs:#3a2420}
.scale10{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}
.scale10 button{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:9px 0;font:600 13px var(--body);color:var(--ink)}
.scale10 button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.choices{display:flex;flex-wrap:wrap;gap:6px}.choices button{padding:9px 12px}
.lsres{display:flex;gap:16px;align-items:center}
.lsring{flex:0 0 96px;height:96px;border-radius:50%;background:conic-gradient(var(--c) calc(var(--p) * 1%), var(--soft) 0);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
.lsring::before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--surface)}
.lsring b,.lsring span{position:relative}.lsring b{font:600 24px/1 var(--head)}.lsring span{font-size:11px;color:var(--muted)}
.lscount,.lssecs{display:flex;flex-wrap:wrap;gap:6px}
.lsp{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}
.lsp.g{background:var(--rag-gs);color:var(--rag-g)}.lsp.a{background:var(--rag-as);color:var(--rag-a)}.lsp.r{background:var(--rag-rs);color:var(--rag-r)}
.lsnext ol{margin:4px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.lssec{display:flex;flex-direction:column;gap:6px}
.lsrow{display:flex;gap:10px;align-items:flex-start;border-radius:10px;padding:9px 10px;border:1px solid var(--line);background:var(--surface)}
.lsrow.g{border-left:4px solid var(--rag-g)}.lsrow.a{border-left:4px solid var(--rag-a);background:var(--rag-as)}.lsrow.r{border-left:4px solid var(--rag-r);background:var(--rag-rs)}
.lsdot{flex:0 0 10px;height:10px;border-radius:50%;margin-top:5px}
.lsrow.g .lsdot{background:var(--rag-g)}.lsrow.a .lsdot{background:var(--rag-a)}.lsrow.r .lsdot{background:var(--rag-r)}
.lsq{flex:1;font-size:13px;line-height:1.4;min-width:0}
.lstag{font-size:11px;font-weight:700;white-space:nowrap}
.lsrow.g .lstag{color:var(--rag-g)}.lsrow.a .lstag{color:var(--rag-a)}.lsrow.r .lstag{color:var(--rag-r)}
.goalproc{margin:2px 0 0;padding-left:18px;font-size:14px;line-height:1.5}
.goalhelp .small{margin-top:6px}
.geocard{border-color:var(--ok);gap:8px}
.geomsg{align-items:center}
/* log-in: one box for everyone, three tiles for first-timers */
.login .linkbtn{background:none;border:0;color:var(--muted);text-decoration:underline;padding:4px;align-self:center;cursor:pointer}
.login .back{color:var(--muted);text-decoration:none;align-self:flex-start}
.login #tiles{display:flex;flex-direction:column;gap:10px;margin-top:8px;padding-top:16px;border-top:1px solid var(--line)}
.ltiles{display:grid;grid-template-columns:1fr;gap:10px}
.ltile{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-decoration:none;position:relative}
.ltile::after{content:"";position:absolute;right:18px;top:50%;width:9px;height:9px;border-right:2px solid var(--muted);border-top:2px solid var(--muted);transform:translateY(-50%) rotate(45deg)}
.ltile b{font:500 18px/1.2 var(--head)}
.ltile span{font-size:13px;color:var(--muted);padding-right:24px}
.ltile:first-child{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.lnew{margin:4px 0 0;text-align:center}.lnew a{color:inherit}
.lsteps{margin:4px 0;padding-left:22px;display:flex;flex-direction:column;gap:10px;font-size:14px;line-height:1.45}
.lsteps .btn{margin-top:6px;display:inline-flex}
.login [hidden]{display:none!important}
/* refer a friend: awards position */
.refleague{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--band);color:var(--band-ink);border-radius:14px;padding:12px 14px}
.refleague>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.refleague .muted{color:var(--band-muted)}
.refpos{display:inline-grid;place-items:center;min-width:44px;height:44px;border-radius:50%;background:var(--gold);color:var(--gold-ink);font:800 16px var(--head);flex:none}

.badgepop .bpmedal svg{width:96px;height:108px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.18));animation:bpm .7s cubic-bezier(.2,1.4,.4,1)}
@keyframes bpm{from{transform:scale(.4) rotate(-12deg);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.badgepop .bpmedal svg{animation:none}}

/* ───── brand pass: black section boxes and one consistent padding scale ─────
   Boxes: 16px inside. Rows inside boxes: 12px top and bottom, 14px at the sides. Gaps between boxes: 12px. */
:root{--pad-box:16px;--pad-row:12px 14px}
.card,.tile,.next,.fullcard,.funfact{padding:var(--pad-box)}
.item,.alert,.coach,.who,.win,.reward,.a2hs,.fapre,.refleague,.note,.minis button,.minis a,.pctile,.lvlboard,.prod,.calcres div,.gotit,.passbtn,.shareprev,.lsrow,.joinrules,.onbrow,.restbar,.cartbar{padding:var(--pad-row)}
.bdg{padding:12px 8px}
.card>*,.tile>*{min-width:0;max-width:100%}
.card img,.card table{max-width:100%}
/* section headings become charcoal boxes; a list straight underneath joins on to make one panel */
.stack>h2{background:var(--band);color:var(--band-ink);border-radius:14px;padding:13px 16px;margin:8px 0 0!important;font:600 15px/1.25 var(--head);letter-spacing:.01em;display:flex;align-items:center;justify-content:space-between;gap:10px}
.stack>h2 .muted,.stack>h2 small{color:var(--band-muted)}
.stack>h2:has(+ .menu),.stack>h2:has(+ .badges){border-bottom-left-radius:0;border-bottom-right-radius:0}
.stack>h2+.menu{margin-top:-12px;border-top-left-radius:0;border-top-right-radius:0;border-top:0}
.stack>h2+.badges{margin-top:-12px;background:var(--surface);border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;padding:12px}
.stack>h2:first-child{margin-top:0!important}
.stack>.row:has(>h2){background:var(--band);color:var(--band-ink);border-radius:14px;padding:8px 8px 8px 16px;margin:8px 0 0!important;min-height:46px}
.stack>.row:has(>h2) h2{font:600 15px/1.25 var(--head);letter-spacing:.01em}
.stack>.row:has(>h2) .btn.ghost{background:transparent;color:var(--band-ink);border-color:var(--band-line)}

/* ───── highlights: yellow = something to do, gold = competitions and rewards ───── */
.card.hl{border-width:1.5px}
.card.comp{background:linear-gradient(155deg,#f7df8f 0%,#e9c252 55%,#d9a93a 100%);border:1.5px solid #c4952a;color:#2b1f00}
.card.comp .muted,.card.comp .eyebrow,.card.comp .tiny.muted,.card.comp .small.muted{color:#5a4300;opacity:1}
.card.comp>.eyebrow:first-child,.card.comp>.row:first-child .eyebrow{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#3a2a00}
.card.comp>.eyebrow:first-child::before,.card.comp>.row:first-child .eyebrow::before{content:"";width:14px;height:14px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3h10v2h3v2.5c0 2.6-1.9 4.5-4.3 4.9A5 5 0 0 1 13 15.8V18h3v3H8v-3h3v-2.2a5 5 0 0 1-2.7-3.4C5.9 12 4 10.1 4 7.5V5h3zm0 4H6v.5c0 1.2.8 2.3 1.9 2.7A5 5 0 0 1 7 8zm10 0v1c0 .8-.2 1.5-.5 2.2 1.1-.4 1.9-1.5 1.9-2.7V7z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3h10v2h3v2.5c0 2.6-1.9 4.5-4.3 4.9A5 5 0 0 1 13 15.8V18h3v3H8v-3h3v-2.2a5 5 0 0 1-2.7-3.4C5.9 12 4 10.1 4 7.5V5h3zm0 4H6v.5c0 1.2.8 2.3 1.9 2.7A5 5 0 0 1 7 8zm10 0v1c0 .8-.2 1.5-.5 2.2 1.1-.4 1.9-1.5 1.9-2.7V7z'/%3E%3C/svg%3E") center/contain no-repeat}
.card.comp .bar{background:rgba(43,31,0,.16)}.card.comp .bar span{background:#2b1f00}
.card.comp .btn{background:#2b1f00;color:#fbe7a6;border-color:#2b1f00}
.card.comp .btn.ghost{background:transparent;color:#2b1f00;border-color:rgba(43,31,0,.45)}
.card.comp .lb{border-color:rgba(43,31,0,.15)}.card.comp .lb.me{background:rgba(255,255,255,.45)}
.card.comp .lb .rk{color:#5a4300}
.card.comp .rk[data-r="1"]{background:#2b1f00;color:#f3cf5b}
.card.comp .chip{background:rgba(255,255,255,.4);border-color:rgba(43,31,0,.25);color:#2b1f00}.card.comp .chip[aria-pressed="true"]{background:#2b1f00;color:#fbe7a6;border-color:#2b1f00}
.card.comp .seg{background:rgba(255,255,255,.35)}.card.comp .seg button[aria-pressed="true"]{background:#2b1f00;color:#fbe7a6}
.card.comp .pctile,.card.comp .lvlboard,.card.comp .reward,.card.comp .twprog,.card.comp details{background:rgba(255,255,255,.4);border-color:rgba(43,31,0,.2)}
.card.comp .refleague{background:#2b1f00}
.card.comp input[type="checkbox"]{accent-color:#2b1f00}
.card.comp .x{color:#2b1f00}
.card.comp a{color:#2b1f00}
.card.lotto{border-width:1.5px}

/* Coming up: bookings, then events for your diary; full names, nothing cut short */
.item.cup>span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.item.cup b{font-weight:600;white-space:normal;overflow-wrap:anywhere}
.item.cup .tag{flex:none;align-self:center}
.item.cup.ev{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:14px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.item.cup.ev .cdn{flex:none;font:700 13px var(--head);background:var(--band);color:var(--band-ink);border-radius:999px;padding:5px 10px;white-space:nowrap}
.cuplabel{margin-top:4px}

/* Your chats on Home */
.card.chats{gap:0;padding-bottom:6px}
.card.chats>.row{margin-bottom:6px}
.chatrow{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;border-top:1px solid var(--line);padding:12px 0;text-align:left;font:inherit;color:inherit;cursor:pointer}
.chatrow>span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.chatrow b{font-weight:600}
.chatic{flex:none;width:40px;height:40px;border-radius:12px;background:var(--band);color:var(--band-ink);display:grid;place-items:center}
.chatic svg{width:21px;height:21px}
.chatic.grp{background:var(--soft);color:var(--ink);font:800 13px var(--head);letter-spacing:.04em;box-shadow:inset 0 0 0 1px var(--line)}

/* Buy: your current membership, highlighted */
.buyrow.cur{display:flex;flex-direction:column;align-items:stretch;gap:8px;background:var(--band);color:var(--band-ink);border-radius:14px;margin:8px 0;padding:14px 16px;border:0}
.buyrow.cur .curtag{align-self:flex-start;font:700 11px var(--head);letter-spacing:.12em;text-transform:uppercase;background:var(--band-ink);color:var(--band);border-radius:999px;padding:4px 10px}
.buyrow.cur .currow{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.buyrow.cur .currow>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.buyrow.cur .currow>span b{font:600 20px/1.15 var(--head)}
.buyrow.cur .tiny{color:var(--band-muted)}
.buyrow.cur .curprice{font:700 20px/1 var(--head);white-space:nowrap}
.buyrow.cur .curprice small{font:500 12px var(--body);color:var(--band-muted);margin-left:2px}
.memacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.memacts .btn{width:100%;padding-inline:8px;white-space:normal;line-height:1.15}
.swcmp{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}
.swcmp>div{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:14px;padding:12px 14px}
.swcmp>div.to{background:var(--band);color:var(--band-ink);border-color:var(--band)}
.swcmp b{font:600 18px var(--head)}

/* Group classes: the week overview in black, finished classes tucked into one tile */
.card.weekov{background:var(--band);color:var(--band-ink);border-color:var(--band)}
.card.weekov .eyebrow,.card.weekov .muted,.card.weekov .small{color:var(--band-muted);opacity:1}
.card.weekov h2,.card.weekov b,.card.weekov td,.card.weekov li{color:var(--band-ink)}
.card.weekov .ct th{color:var(--band-muted);border-color:var(--band-line)}
.card.weekov .ct td{border-color:var(--band-line)}
.card.weekov .tag{background:var(--band-soft);color:var(--band-ink)}
.card.weekov .cue{border-color:var(--band-ink)}
.card.weekov .note{background:var(--band-soft);color:var(--band-ink)}
.card.weekov a{color:var(--band-ink)}
.card.donecls{background:var(--soft)}
.card.donecls>summary b{font:600 17px/1.2 var(--head)}
.card.donecls .card{background:var(--surface)}

/* medals: a touch bigger */
.bdg svg.medal{width:62px;height:70px}
.card.comp .refleague{color:#fbe7a6}.card.comp .refleague .muted,.card.comp .refleague .tiny{color:#e3cf94}

/* Mini Engine prices at a glance */
.kprices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:4px}
.kprices span{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:12px;color:var(--muted)}
.kprices b{font:700 18px var(--head);color:var(--ink)}
.kprices span.on{background:var(--band);border-color:var(--band);color:var(--band-muted)}.kprices span.on b{color:var(--band-ink)}
.kprices span.sib{background:linear-gradient(155deg,#f7df8f,#e2b440);border-color:#c4952a;color:#5a4300}.kprices span.sib b{color:#2b1f00}
/* gold countdown button (locked appointments) */
.btn.cdbtn,.btn.cdbtn:disabled{opacity:1;background:linear-gradient(155deg,#f7df8f,#e2b440);color:#2b1f00;border-color:#c4952a;cursor:default;gap:6px}
.btn.cdbtn b{font:800 15px var(--head);font-variant-numeric:tabular-nums}

/* places left on a membership */
.places{display:inline-block;margin-top:4px;font:600 11.5px var(--body);color:var(--ok)}
.places.few{color:var(--warn)}.places.none{color:var(--bad)}
.buyrow.full{opacity:.75}
/* strikes, inside the membership box: green 0, yellow 1, amber 2, red 3 */
.strikes{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;border-radius:12px;padding:12px 14px;border:1px solid}
.strikes .strk{display:flex;flex-direction:column;gap:2px}
.strikes .strk b{font:700 22px/1 var(--head)}.strikes .strk small{font:500 12px var(--body);opacity:.8}
.strikes .tiny{grid-column:1/-1}
.sdots{display:flex;gap:6px}.sdots i{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;opacity:.45}.sdots i.on{background:currentColor;opacity:1}
.strikes.s0{background:#e4efe8;border-color:#9fd0b2;color:#1f5a3b}
.strikes.s1{background:#fff4b3;border-color:#e3c100;color:#4a3d00}
.strikes.s2{background:#fde3c4;border-color:#e08a2c;color:#6a3500}
.strikes.s3{background:#f6dcd6;border-color:#c0412b;color:#7a1f10}
/* why are you leaving */
.whylist{display:flex;flex-direction:column;gap:8px}
.whybtn{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;font:500 15px var(--body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;cursor:pointer}
.whybtn:hover{border-color:var(--ink)}

/* events by season */
.stack>h2.seasonh{background:var(--band);color:var(--band-ink)}
/* Halloween: the spooky tile */
.card.spooky{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 100% 0%,#3a1d4f 0%,#16101c 60%);color:#f5e9ff;border-color:#2a1838;padding-right:96px}
.card.spooky .eyebrow{color:#ffb35c;opacity:1}
.card.spooky .pumpkin{position:absolute;right:12px;top:14px;width:76px;height:76px;filter:drop-shadow(0 0 14px rgba(255,140,30,.55))}
.card.spooky .btn{background:#f07f1a;color:#1b0d00;border-color:#f07f1a}
.card.spooky .btn.ghost{background:transparent;color:#ffb35c;border-color:#ffb35c}
.card.spooky::after{content:"";position:absolute;inset:auto 0 0 0;height:22px;background:repeating-linear-gradient(90deg,transparent 0 14px,rgba(255,179,92,.12) 14px 15px);pointer-events:none}
/* booking preview before launch */
.prebook{position:relative}
.prebook .pods button,.prebook [data-act="classBook"],.prebook [data-act="kidPick"],.prebook [data-act="wlJoin"]{opacity:.55}
.prelbl{display:inline-block;margin-top:10px;font:700 11px var(--head);letter-spacing:.1em;text-transform:uppercase;background:var(--hl-bg);color:var(--hl-ink);border:1px solid var(--hl-line);border-radius:999px;padding:5px 10px}
/* big gold countdown */
.cdbig{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:2px 0}
.cdbig span{display:flex;flex-direction:column;align-items:center;gap:2px;background:#2b1f00;color:#f3cf5b;border-radius:12px;padding:10px 4px}
.cdbig b{font:800 28px/1 var(--head);font-variant-numeric:tabular-nums}
.cdbig small{font:600 10px var(--head);letter-spacing:.1em;text-transform:uppercase;color:#e3cf94}
/* log-in: moving from Mindbody stands out in yellow */
.ltile.mb{background:var(--hl-bg);border-color:var(--hl-line);color:var(--hl-ink)}.ltile.mb span{color:var(--hl-ink);opacity:.85}.ltile.mb::after{border-color:var(--hl-ink)}

/* Train: today's workout is a to-do (yellow) until it's logged, then white with a green tick */
.card.today.done{background:var(--surface);border-color:var(--ok)}
.card.today .twn{display:flex;align-items:center;gap:10px;min-width:0}
.gtick{flex:none;width:30px;height:30px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center}.gtick svg{width:18px;height:18px}
.card.allwk>summary{display:flex;flex-direction:column;gap:2px}
.card.allwk>summary b{font:600 17px/1.2 var(--head)}
/* Me: ticks on the right of check-ins */
.menu.ticks button{align-items:center}
.rtick{flex:none;width:26px;height:26px;border-radius:8px;border:2px solid var(--line);display:grid;place-items:center}
.rtick.done{background:var(--ok);border-color:var(--ok);color:#fff}.rtick svg{width:16px;height:16px}
/* body check-in plan */
.bplan{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px}
.bpt{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;border:1px solid var(--line);border-radius:12px;padding:10px 6px}
.bpt i{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:#fff}.bpt i svg{width:15px;height:15px}
.bpt.done i{background:var(--ok);border-color:var(--ok)}
.bpt.now{background:var(--hl-bg);border-color:var(--hl-line)}.bpt.now i{border-color:var(--hl-line)}
.bpt.missed{opacity:.6}
.bpt b{font:600 14px var(--head)}
.card.awardcard .btn{min-width:140px}

/* nutrition: tracking methods */
.seg.nmode{margin:0}
.hgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hport{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-top:4px solid var(--hc);border-radius:12px;padding:12px}
.hport .row b{font:600 15px var(--head)}
.hcount{display:flex;align-items:center;justify-content:space-between;gap:6px}
.hcount b{font:700 22px var(--head)}.hcount small{font:500 12px var(--body);color:var(--muted)}
.hcount .btn{min-width:38px;padding:0}
.hport .bar span{background:var(--hc)}
.tplcard.mine{border-color:var(--ink)}
.tplcard>summary{display:flex;flex-direction:column;gap:2px}.tplcard>summary b{font:600 18px var(--head)}
.tplmeals{display:flex;flex-direction:column;gap:8px;margin-top:10px}.tplmeals>div{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:8px}
.card.nstart{gap:6px}
@media (max-width:360px){.hgrid{grid-template-columns:1fr}}

/* Progress charts (drawn by hand): one series in ink, recessive grid */
.lchart,.bchart{width:100%;height:auto;display:block;overflow:visible}
.lchart .grid{stroke:var(--line);stroke-width:1}
.lchart .ax,.bchart .ax{font:500 10px var(--body);fill:var(--muted)}
.lchart .ln{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.lchart .dot{fill:var(--ink);stroke:var(--surface);stroke-width:2}
.lchart .hit,.bchart .hit{fill:transparent}
.lchart .lbl,.bchart .lbl{font:700 11px var(--head);fill:var(--ink)}
.bchart rect{fill:var(--muted);opacity:.55}.bchart rect.now{fill:var(--ink);opacity:1}.bchart rect.hit{opacity:1}
.bchart .goal{stroke:var(--ink);stroke-dasharray:3 3;stroke-width:1;opacity:.5}
.tiny.good{color:var(--ok);font-weight:600}
.erm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.erm div{display:flex;flex-direction:column;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 4px}
.erm b{font:700 20px var(--head)}.erm b small{font:500 11px var(--body);color:var(--muted);margin-left:1px}.erm span{font-size:11px;color:var(--muted)}
.htrack{display:flex;flex-direction:column;gap:8px}
.htr{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:8px}
.hcells{display:grid;grid-template-columns:repeat(28,minmax(0,1fr));gap:2px}
.hcells i{aspect-ratio:1;border-radius:3px;background:var(--soft)}.hcells i.on{background:var(--ok)}.hcells i.today{outline:2px solid var(--ink);outline-offset:-1px}
/* a top tab with something to do inside it */
.chip.todo{background:var(--hl-bg);border-color:var(--hl-line);color:var(--hl-ink)}
.chip.todo[aria-pressed="true"]{background:var(--hl-line);border-color:var(--hl-line);color:#202222}
.seg button.todo{background:var(--hl-bg);color:var(--hl-ink)}.seg button.todo[aria-pressed="true"]{background:var(--hl-line);color:#202222}
.buyrow.cur .currow{align-items:center}
.buyrow.cur .curright{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}
.buyrow.cur .curtag{align-self:flex-end}
/* strength boards and test week: one column on phones, name and score on one line */
.lvlboards{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.lvlboard .lb{grid-template-columns:26px minmax(0,1fr) auto;font-size:14px}
.lvlboard .lb>span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lvlboard .lb b{white-space:nowrap}
.testwk details{border-radius:10px;padding:10px 12px;margin-top:6px}
.testwk details summary{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.twboard{display:flex;flex-direction:column;gap:2px;margin-top:10px}
.twboard .lb b{white-space:nowrap}
.hcells i{aspect-ratio:auto;height:16px}

/* shopping list */
.shdays{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.shdays>div{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.card.shoplist{gap:2px}
.shsec{margin-top:10px}.shsec:first-child{margin-top:0}
.shrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);cursor:pointer}
.shrow input{width:20px;height:20px;accent-color:var(--ok);flex:none}
.shrow>span{flex:1;min-width:0}
.shrow.got>span{text-decoration:line-through;color:var(--muted)}
.shexport{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.shexport .btn{width:100%;padding-inline:6px}
/* quieter, tucked-away extras */
details.card.subtle{background:transparent;border-style:dashed}
details.card.subtle>summary{font-size:13px;color:var(--muted);cursor:pointer}
.tipsfold>summary{display:flex;flex-direction:column;gap:2px}.tipsfold>summary b{font:600 17px var(--head)}
.shoplist .row input{flex:1;min-width:0;width:auto}
.shoplist .row .btn{flex:none}

/* Christmas Awards Night: deep red velvet, gold statuette, holly and falling snow */
.card.xmasaw{position:relative;overflow:hidden;background:radial-gradient(130% 100% at 100% 0%,#7a0f16 0%,#3d070b 55%,#1c0306 100%);color:#fff3dc;border-color:#c99a2e;border-width:1.5px;padding-right:100px}
.card.xmasaw .eyebrow{color:#f3cf5b;opacity:1;font-weight:700}
.card.xmasaw .statuette{position:absolute;right:16px;top:12px;width:58px;height:108px;filter:drop-shadow(0 0 14px rgba(243,207,91,.55))}
.card.xmasaw .holly{position:absolute;left:-6px;bottom:-8px;width:64px;height:42px;opacity:.95}
.card.xmasaw .snow{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(2px 2px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 38% 62%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 70% 30%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 55% 85%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 85% 75%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 25% 90%,#fff 50%,transparent 51%);opacity:.7;animation:snowfall 9s linear infinite}
@keyframes snowfall{from{background-position:0 -60px}to{background-position:0 160px}}
@media (prefers-reduced-motion:reduce){.card.xmasaw .snow{animation:none}}
.card.xmasaw .btn{background:linear-gradient(155deg,#f7df8f,#d9a93a);color:#2b1f00;border-color:#c4952a}
.card.xmasaw .btn.ghost{background:transparent;color:#f3cf5b;border-color:#f3cf5b}
.card.xmasaw .st{background:#f3cf5b;color:#2b1f00}
/* family and friends passes */
.guestcard{gap:8px}
.gbtns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gbtns .btn{width:100%;min-width:0;padding-left:8px;padding-right:8px}
.gprow{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid rgba(0,0,0,.08)}
.gprow>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.sharebox2{background:var(--card,#fff);border:1px dashed var(--line,#ccc);border-radius:12px;padding:12px;font:600 14px/1.3 ui-monospace,monospace;word-break:break-all;user-select:all}
/* class waiting list */
.clwait{display:flex;flex-direction:column;gap:8px;background:#fff6dc;border:1px solid #e9c46a;border-radius:12px;padding:10px 12px;color:var(--ink)}
.clwait .btn{align-self:flex-start}
/* monthly recap */
.recapcard{text-align:left;display:flex;flex-direction:column;gap:6px;width:100%;font:inherit;color:inherit;cursor:pointer}
.recapcard .rcbig{font:500 22px/1.2 var(--head)}.recapcard .rcbig b{font-weight:800;font-size:30px}
.rch{font:600 28px/1.15 var(--head);margin:2px 0 0}.rch b{font-size:44px;font-weight:800}
.rcup{align-self:flex-start;background:var(--gold-soft);color:var(--gold-ink);border:1px solid var(--gold);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600}
.rcgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}
.rcgrid>div{background:var(--card,#fff);border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px}
.rcgrid b{font:800 26px/1 var(--head)}.rcgrid span{font-size:12px;color:var(--muted)}
.rcpbs{display:flex;flex-direction:column;gap:6px}
.rcpb{display:flex;justify-content:space-between;gap:10px;align-items:baseline;border-bottom:1px solid var(--line);padding:4px 0}
.recaplink{display:flex;justify-content:space-between;align-items:center;width:100%;background:var(--gold-soft);border:1px solid var(--gold);color:var(--gold-ink);border-radius:12px;padding:12px 14px;font:600 15px var(--head);cursor:pointer;margin-bottom:10px}
/* bring-a-friend weeks */
.fwcard{gap:8px}
.fwprize{background:rgba(255,255,255,.55);border-radius:10px;padding:8px 10px;font-size:14px}
.fwboard{display:flex;flex-direction:column;gap:4px}
.fwboard>div{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:10px;background:rgba(255,255,255,.4)}
.fwboard>div.me{background:rgba(255,255,255,.85)}
.fwboard b{flex:1;min-width:0;font-size:14px}.fwboard>div>span:last-child{font-size:13px;font-weight:600}
.fwboard .rk{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(0,0,0,.08);font-size:13px;font-weight:700;flex:none}
/* app guides */
.guidebig{display:flex;flex-direction:column;gap:4px;text-decoration:none}
.guidebig b{font:600 22px/1.2 var(--head)}.guidebig .guideopen{align-self:flex-start;margin-top:6px;font-weight:700}
.guidelist{display:flex;flex-direction:column;background:var(--card,#fff);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.guiderow{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--line);color:inherit;text-decoration:none}
.guiderow:first-child{border-top:0}
.guiderow>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.guideic{width:36px;height:36px;border-radius:10px;background:var(--soft,#efefec);display:grid;place-items:center;flex:none}.guideic svg{width:20px;height:20px}
/* log-in tiles not open yet */
.ltile.soon{opacity:.55;cursor:default;background:transparent;border-style:dashed}
.ltile.soon::after{display:none}
.ltile.soon span{font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:12px}

/* ───── getting started (to-do) list: every step still to do is yellow, done steps go back to normal.
   Colours come from the highlight tokens so text, buttons and tags read clearly in light and dark mode ───── */
.onbrow.todo{background:var(--hl-bg);border-color:var(--hl-line);color:var(--hl-ink)}
.onbrow.todo .muted,.onbrow.todo .small,.onbrow.todo .tiny{color:var(--hl-ink);opacity:.85}
.onbrow.todo .tag{background:transparent;border:1px solid var(--hl-line);color:var(--hl-ink)}
.onbrow.todo .btn{background:var(--hl-ink);color:var(--hl-bg);border-color:var(--hl-ink)}
.onbrow.todo .btn.ghost{background:transparent;color:var(--hl-ink);border-color:var(--hl-ink)}
.onbrow.todo .tick{border-color:var(--hl-ink)}
.onbrow.on{color:var(--ink)}
.onbrow.on .tick[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
/* the steps covered in the induction sit indented under it */
.onbrow.sub{margin-left:22px}
.onbsubl{margin:-4px 0 -6px 22px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
/* add-to-home-screen card and popup: steps in the normal text colour */
.a2hscard,.a2hscard ol,.a2hscard b,.sheet .a2hs-cols,.sheet .a2hs-cols ol,.sheet .a2hs-cols b{color:var(--ink)}
/* pay by Monzo */
.monzoref{display:flex;align-items:center;gap:10px;background:var(--card,#fff);border:1px dashed var(--line);border-radius:12px;padding:10px 12px}
.monzoref span{flex:none;color:var(--muted)}.monzoref b{flex:1;font:700 20px/1 ui-monospace,monospace;letter-spacing:.06em}

/* Emergency pod: break glass */
.glassbox{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;text-align:left;padding:16px 64px 16px 16px;border-radius:14px;border:3px solid #b3261e;background:linear-gradient(135deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 38%,rgba(255,255,255,.35) 52%,rgba(255,255,255,0) 64%),#fbe9e7;color:#5c0f0a;cursor:pointer;overflow:hidden;font:inherit;box-shadow:inset 0 0 0 4px #fbe9e7,inset 0 0 0 5px rgba(179,38,30,.35)}
.glassbox .glasstop{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#b3261e}
.glassbox .glasshead{font:700 22px/1.05 var(--head);letter-spacing:.06em;text-transform:uppercase;color:#b3261e}
.glassbox .glasshammer{position:absolute;right:14px;top:50%;width:38px;height:38px;margin-top:-19px;border-radius:50%;background:#b3261e;color:#fff;display:grid;place-items:center}
.glassbox .glasshammer svg{width:20px;height:20px}
.glassbox .crack{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.glassbox .crack path{fill:none;stroke:#b3261e;stroke-width:1.2;opacity:.28}
.glassbox .crack circle{fill:#b3261e;opacity:.25}
.glassbox > :not(.crack){position:relative}
.glassbox.breaking{animation:glassshake .4s ease}
.glassbox.broken{cursor:default;background:#fbe9e7;padding-right:16px}
.glassbox.used{cursor:default;border-color:var(--line);background:var(--soft);color:var(--muted);box-shadow:none}
.glassbox.used .glasshead{color:var(--muted);font-size:17px}
.glassbox .linkbtn{color:#b3261e}
.chip.glasst{border-color:#b3261e;color:#b3261e}
.chip.glasst[aria-pressed="true"]{background:#b3261e;color:#fff}
@keyframes glassshake{0%,100%{transform:translateX(0)}20%{transform:translateX(-4px) rotate(-.4deg)}40%{transform:translateX(4px) rotate(.4deg)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .glassbox:not(.used){background:#3a1513;color:#f6d4d0;box-shadow:inset 0 0 0 4px #3a1513,inset 0 0 0 5px rgba(229,115,105,.4);border-color:#e57369}
  :root:not([data-theme="light"]) .glassbox:not(.used) .glasshead,:root:not([data-theme="light"]) .glassbox:not(.used) .glasstop{color:#f28b82}}
:root[data-theme="dark"] .glassbox:not(.used){background:#3a1513;color:#f6d4d0;box-shadow:inset 0 0 0 4px #3a1513,inset 0 0 0 5px rgba(229,115,105,.4);border-color:#e57369}
:root[data-theme="dark"] .glassbox:not(.used) .glasshead,:root[data-theme="dark"] .glassbox:not(.used) .glasstop{color:#f28b82}

/* event tiles: the buttons use the full width, even beside the Christmas statuette */
.evbtns{display:flex;gap:8px;margin-right:-84px;position:relative;z-index:1}
.evbtns .btn{flex:1 1 0;white-space:nowrap;padding-left:10px;padding-right:10px}
.card:not(.xmasaw) .evbtns{margin-right:0}

/* Habit challenge pop-up and the "starts 1 November" card */
.hcpop{display:flex;flex-direction:column;gap:6px;margin:4px 0}
.hcrow{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.hcn{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--bg);font-weight:600;font-size:13px;flex:0 0 auto}
.hcsoon .habit[aria-disabled]{opacity:.55;cursor:default}

/* RIR colours */
.rirq.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok);font-weight:600}
.rirq.near{background:var(--warn-soft);border-color:var(--warn);color:var(--warn);font-weight:600}
.rirq.far{background:var(--bad-soft);border-color:var(--bad);color:var(--bad);font-weight:600}
.rirq::placeholder{color:var(--muted);opacity:.7;font-size:12px}
.rirkey{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;align-items:center}
.rirkey .rk{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 8px;vertical-align:-1px;border:1px solid}
.rk.ok{background:var(--ok-soft);border-color:var(--ok)} .rk.near{background:var(--warn-soft);border-color:var(--warn)} .rk.far{background:var(--bad-soft);border-color:var(--bad)}
/* regression levels */
.lvl{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:var(--soft);color:var(--ink);border:1px solid var(--line);vertical-align:2px;white-space:nowrap}
/* the rep continuum: dark and teal zones, each rep with its % of 1 rep max */
.repc{--rc-dk:#2f3640;--rc-tl:#5fa9a2}
.repgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;margin-top:6px}
.repzone{display:flex;flex-direction:column;gap:6px;min-width:0}
.repzn{font:600 15px/1.1 var(--head);text-transform:uppercase;letter-spacing:.03em}
.repzone.dk .repzn,.repzone.dk .repn b{color:var(--rc-dk)} .repzone.tl .repzn,.repzone.tl .repn b{color:var(--rc-tl)}
.repnums{display:flex;flex-wrap:wrap;gap:4px}
.repn{display:flex;flex-direction:column;align-items:center;min-width:34px;padding:4px 2px;border-radius:8px}
.repn b{font:600 17px/1.1 var(--head)} .repn small{font-size:10px;color:var(--muted)}
.repzone .repn.on{background:var(--rc-dk)} .repzone.tl .repn.on{background:var(--rc-tl)}
.repzone .repn.on b,.repzone .repn.on small{color:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .repc{--rc-dk:#d9dee5;--rc-tl:#7fc6bf}}
:root[data-theme="dark"] .repc{--rc-dk:#d9dee5;--rc-tl:#7fc6bf}
:root:is([data-theme="dark"]) .repzone.dk .repn.on b{color:#1b1f24}

/* noticeboard: out of order, fixed, lost property */
.gboard{gap:8px}
.gbrow{display:flex;gap:12px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line)}
.gbrow:first-of-type{border-top:0}
.gbrow img{width:52px;height:52px;object-fit:cover;border-radius:8px;flex:0 0 auto}
.gbrow > span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.gbicon{width:52px;height:52px;border-radius:8px;display:grid;place-items:center;background:var(--warn-soft);color:var(--warn);font-weight:700;font-size:22px;flex:0 0 auto}
.gbicon.ok{background:var(--ok-soft);color:var(--ok)}
.gblost{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:10px 0 2px;border:0;border-top:1px solid var(--line);background:none;color:inherit;font:inherit;cursor:pointer}
.lostcard{gap:8px}
.lostimg{width:100%;max-height:260px;object-fit:cover;border-radius:10px}

.gblost{gap:12px;align-items:flex-start}
.gblost > span:nth-child(2){display:flex;flex-direction:column;gap:3px}
.gbic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--soft);color:var(--ink);flex:0 0 auto}
.gblist{display:flex;flex-direction:column;gap:2px;font-size:14px;margin:2px 0}

/* supersets: the exercises at the top (A1 grey, A2 white), then the sets round by round */
.superset{gap:10px}
.ssex{border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:6px;border:1px solid var(--line)}
.ssex.ss0{background:var(--soft)}
.ssex.ss1{background:var(--surface,#fff)}
.ssex .exact{border-top:0;padding-top:0;margin-top:0}
.ssets{grid-template-columns:38px minmax(60px,1.1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.75fr)}
.ssround{grid-column:1/-1;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.ssround:first-of-type{margin-top:0}
.ssround small{text-transform:none;letter-spacing:0;font-weight:400}
.ssets .sn .code-b{font-size:11px;padding:2px 5px}
.ssets .sn.ss0 .code-b{background:var(--soft);border-color:var(--line)}
.ssets .sn.ss1 .code-b{background:var(--surface,#fff)}
.ssets input.ss0{background:var(--soft)}

/* saved confirmation and RIR feedback after a workout */
.savedok{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--ok-soft);color:var(--ok)}
.savedok > span:last-child{display:flex;flex-direction:column}
.savetick{width:34px;height:34px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;flex:0 0 auto}
.savetick svg{width:18px;height:18px}
.rirfb{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:12px;border:1px solid var(--line)}
.rirfb.ok{border-color:var(--ok)} .rirfb.near{border-color:var(--warn)} .rirfb.far{border-color:var(--bad)}
.rirbar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--soft)}
.rirbar .ok{background:var(--ok)} .rirbar .near{background:var(--warn)} .rirbar .far{background:var(--bad)}

/* today's workout: yellow until tapped */
.card.today.hl{cursor:pointer}
.card.today.seen{background:var(--surface,#fff)}
.wp.now{background:var(--hl-bg);border-color:var(--hl-line);color:var(--hl-ink,#3a3000)}
.wp.now small{color:inherit;opacity:.75}
.wp.now[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--ink)}
/* exercise groups take turns: A grey, B darker grey, C grey… (supersets coloured as one group) */
.excard.tone0{background:#f0f0ed;border-color:#e2e2de}
.excard.tone1{background:#dcdcd7;border-color:#c9c9c3}
.excard.tone0 .ssex,.excard.tone1 .ssex{background:rgba(255,255,255,.55);border-color:rgba(0,0,0,.08)}
.excard.tone1 input{background:#f4f4f2}
.excard.tone0.mapflag,.excard.tone1.mapflag{border-color:var(--hl-line)}
.ltname{display:block;font-style:normal;font-size:10.5px;line-height:1.15;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .excard.tone0{background:#232626;border-color:#2e3232} :root:not([data-theme="light"]) .excard.tone1{background:#2f3333;border-color:#3b4040} :root:not([data-theme="light"]) .excard.tone1 input{background:#272a2a} :root:not([data-theme="light"]) .excard .ssex{background:rgba(255,255,255,.04)}}
:root[data-theme="dark"] .excard.tone0{background:#232626;border-color:#2e3232} :root[data-theme="dark"] .excard.tone1{background:#2f3333;border-color:#3b4040} :root[data-theme="dark"] .excard.tone1 input{background:#272a2a} :root[data-theme="dark"] .excard .ssex{background:rgba(255,255,255,.04)}

/* Book → Events: at the gym or Local & UK */
.seg.evwhere{display:grid;grid-template-columns:1fr 1fr;margin:0}
.oechips{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;margin:0 -20px;padding:0 20px 2px;scrollbar-width:none}
.oechips::-webkit-scrollbar{display:none}
.oecard .evbtns{display:flex;gap:8px;flex-wrap:wrap}
.oecard a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.oecard.dark .tag{background:rgba(255,255,255,.18);color:#fff}
.oeweekly .oewk{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none}
.oeweekly .oewk>span:first-child{display:flex;flex-direction:column;gap:2px}
.gmsg .gevent{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:10px;border-radius:10px;background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.gmsg .gevbtns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* ── audit fixes (Oct 2026) ── */
.composer textarea{min-width:0}
input[type=checkbox],input[type=radio]{accent-color:var(--ink)}
.clwait{color:#3a2f00}
.glassbox.broken{color:#5a1d12}
.weekplan .wp b{-webkit-line-clamp:1}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #app .repzone.dk .repn.on b{color:#1b1f24}}
:root[data-theme="dark"] #app .repzone.dk .repn.on b{color:#1b1f24}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .stack>h2{background:var(--soft);color:var(--ink)}}
:root[data-theme="dark"] .stack>h2{background:var(--soft);color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .stack>h2 .muted,.stack>h2 small{color:var(--muted)}}
:root[data-theme="dark"] .stack>h2 .muted,.stack>h2 small{color:var(--muted)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .card.dark{background:#2c3030;color:var(--ink);border-color:#3a3f3f}}
:root[data-theme="dark"] .card.dark{background:#2c3030;color:var(--ink);border-color:#3a3f3f}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .strikes.s0{background:#1d2e24;border-color:#2f6b4a;color:#a8dcbc}}
:root[data-theme="dark"] .strikes.s0{background:#1d2e24;border-color:#2f6b4a;color:#a8dcbc}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .strikes.s1{background:#352d0c;border-color:#8a7400;color:#f4e6a6}}
:root[data-theme="dark"] .strikes.s1{background:#352d0c;border-color:#8a7400;color:#f4e6a6}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .strikes.s2{background:#3a2610;border-color:#8a5a20;color:#f6c993}}
:root[data-theme="dark"] .strikes.s2{background:#3a2610;border-color:#8a5a20;color:#f6c993}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .strikes.s3{background:#3a1d18;border-color:#8a3b2c;color:#f2b8ad}}
:root[data-theme="dark"] .strikes.s3{background:#3a1d18;border-color:#8a3b2c;color:#f2b8ad}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .clwait{background:#352a14;border-color:#8a6a20;color:#f6dd9a}}
:root[data-theme="dark"] .clwait{background:#352a14;border-color:#8a6a20;color:#f6dd9a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .glassbox.broken{background:#3a1d18;color:#f2b8ad}}
:root[data-theme="dark"] .glassbox.broken{background:#3a1d18;color:#f2b8ad}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .excard.tone0{background:#232626;border-color:#2e3232}}
:root[data-theme="dark"] .excard.tone0{background:#232626;border-color:#2e3232}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .excard.tone1{background:#2f3333;border-color:#3b4040}}
:root[data-theme="dark"] .excard.tone1{background:#2f3333;border-color:#3b4040}
.toast{z-index:70}   /* messages show above the health form, terms and Direct Debit screens */

/* calorie calculator pop-up: snooze it for a day, 3 days or a week */
.snoozerow{display:flex;flex-direction:column;gap:6px}
/* book both inductions in one visit */
.item.apboth{display:flex;gap:12px;align-items:flex-start;text-align:left;cursor:pointer}.item.apboth input{width:22px;height:22px;margin-top:2px;flex:none;accent-color:var(--ink)}
.item.apboth.on{background:var(--hl-bg);border-color:var(--hl-line);color:var(--hl-ink)}
/* App feedback: the five steps, filled in as the team works on it */
.chatic.fb{background:var(--hl-bg);color:var(--hl-ink);border:1px solid var(--hl-line)}
.afsteps{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.afsteps li{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font:600 10.5px/1.2 var(--head);letter-spacing:.02em;opacity:.55}
.afsteps li i{display:block;width:100%;height:6px;border-radius:3px;background:currentColor;opacity:.25}
.afsteps li.done,.afsteps li.now{opacity:1}.afsteps li.done i{opacity:1;background:var(--ok)}.afsteps li.now i{opacity:1;background:var(--ink)}
.afreply{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--soft)}.card.hl .afreply{background:rgba(255,255,255,.55)}
.afhist summary{cursor:pointer}.afhist div{padding:2px 0}
.afareas{display:flex;flex-wrap:wrap;gap:6px}
.item.apboth .tiny{line-height:1.4;display:inline-block;margin-top:2px}
/* a class cancelled for one week: still listed, not bookable */
.card.clsoffcard>span:first-of-type,.card.clsoffcard>.row{opacity:.6}.card.clsoffcard .bar,.card.clsoffcard .bar+.tiny{display:none}
.clsoff{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;border:1.5px dashed var(--line);background:var(--soft)}

/* pod sharing */
.itbtns{display:flex;gap:6px;align-items:center;flex-shrink:0}
#budCode{flex:1;min-width:0;text-transform:uppercase;letter-spacing:.08em}
/* How are you? status on Home */
.stbtns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.stbtn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);color:inherit;font:600 13px/1.2 var(--head);text-align:center;cursor:pointer}
.stbtn .stic{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--soft)}.stbtn .stic svg{width:18px;height:18px}
.stbtn[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--bg)}.stbtn[aria-pressed="true"] .stic{background:#FFD400;color:#141414}
.stcard.st-sick .stbtn[aria-pressed="true"] .stic{background:#fbd5d0;color:#8f1d12}.stcard.st-holiday .stbtn[aria-pressed="true"] .stic{background:#cfe8ff;color:#174a7a}
/* Mini Engine Big 8 for parents */
.k8list{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.k8i{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 8px;border-radius:10px;background:var(--soft)}
.k8i i{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:700;flex:none}
.k8i.ok{background:#e3f4e9}.k8i.ok i{background:#155c34;border-color:#155c34;color:#fff}.k8i.half i{border-color:#c9a227}
/* free pods stand out in light yellow; in use stays grey */
.pod.free{background:var(--hl-bg);border-color:var(--hl-line)}.pod.free b{color:var(--hl-ink)}.pod.free small{color:var(--hl-ink);font-weight:600}
.pod.free.dl{background:var(--hl-bg)}
.stbtn{padding:10px 4px;font-size:12px}.stcard.st-injured .stbtn[aria-pressed="true"] .stic{background:#ffe0c2;color:#8a3d00}
.hurtw{display:flex;flex-wrap:wrap;gap:6px}.hurtn{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px}.hurtn .chip{padding:8px 0;justify-content:center;min-width:0}
.injacts{display:flex;flex-direction:column;gap:8px;margin:2px 0 4px}
.unmchk{display:flex;flex-direction:column;gap:6px}.unmi{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-size:14px;line-height:1.35}.unmi input{width:20px;height:20px;flex:none;margin-top:1px;accent-color:var(--ink)}

/* audit: tidy line heights on Buy rows and lists; rep numbers fit; plain inputs in cards look like the rest */
.buyrow > span:first-child,.item > span:first-child{line-height:1.35}
.repnums{gap:2px}.repn{min-width:29px;padding:4px 0}
.card .row > input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:16px;color:inherit}
/* My workouts builder */
.mwrows{display:flex;flex-direction:column;gap:10px}
.mwrow{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}
.mwnums{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;align-items:end}
.mwnums .linkbtn{padding-bottom:12px;color:var(--muted)}
.sheet:has(.mwrows) > *{flex-shrink:0}

/* In House Throwdown */
.tdcard details{border-top:1px solid var(--line);padding-top:8px}
.tdcard summary{cursor:pointer}
.tdwk{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-bottom:1px solid var(--line)}
.tdmy{background:var(--soft);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:4px}
.tdboard{overflow-x:auto}
.tdboard table{width:100%;border-collapse:collapse;font-size:13px}
.tdboard th,.tdboard td{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tdboard .num{text-align:right}
.tdboard td small{display:block;font-size:11px;color:var(--muted)}
.tdboard .tdp{color:var(--ink);font-weight:600}
.tdboard .tdpts{font-size:17px}
.tdboard tr.tdmine td{background:var(--soft)}
.tdnote{display:block;font-size:12px;color:var(--muted);margin-top:6px}
.sllcard{gap:6px} .sllfriend{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line)} .sllfriend code{word-break:break-all;font-size:12px}
/* Strong Ladies Lift learning portal */
.sllweeks{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.sllweeks button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:600 13px/1 var(--body,inherit);cursor:pointer}
.sllweeks button small{font-size:10px;font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.sllweeks button[aria-pressed="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.sllweeks button[aria-pressed="true"] small{color:inherit;opacity:.8}
.sllweeks button.full{border-color:var(--ok)}
.sllaim span:last-child{font-size:15px}
.sllitem{padding:0;overflow:hidden}
.sllitem.done{border-color:var(--ok)}
.sllhead{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:16px 18px;background:none;border:0;text-align:left;color:var(--ink);cursor:pointer}
.sllhead>span:first-child{display:flex;flex-direction:column;gap:4px}
.sllhead b{font:500 18px/1.2 var(--head)}
.sllitem.done .sllhead b::after{content:" ✓";color:var(--ok)}
.sllchev{font-size:22px;color:var(--muted);width:20px;text-align:center}
.sllbody{display:flex;flex-direction:column;gap:12px;padding:0 18px 18px}
.sllbody p{margin:0;font-size:15px;line-height:1.55}
.sllterms{display:grid;gap:8px;background:var(--soft);border-radius:12px;padding:12px 14px}
.sllterms div{display:flex;flex-direction:column;gap:2px;font-size:14px}
.slltry{display:flex;flex-direction:column;gap:4px;border-left:3px solid var(--ink);padding:2px 0 2px 12px;font-size:15px}
.sllquiz{display:flex;flex-direction:column;gap:8px}
.sllopt{text-align:left;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-size:14px;cursor:pointer}
.sllopt.right{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}
.sllopt.wrong{border-color:var(--bad);background:var(--bad-soft);color:var(--bad)}
.sllTick{align-self:flex-start;padding:11px 18px;border-radius:999px;border:1px solid var(--ink);background:var(--ink);color:var(--surface);font-weight:600;font-size:14px;cursor:pointer}
.sllTick.on{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}
.sllsub{border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.sllsub summary{font-weight:600;font-size:14px;cursor:pointer}
.sllol{margin:8px 0 0;padding-left:20px;display:grid;gap:4px;font-size:14px;line-height:1.45}
.sllhow{margin-top:10px}
.sllpart{display:flex;flex-direction:column;gap:6px}
.sllplbl{display:flex;flex-direction:column;gap:2px;padding-bottom:4px;border-bottom:1px solid var(--line)}
.sllrow{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:start;padding:4px 0}
.sllcode{font-weight:700;color:var(--muted);font-size:13px;padding-top:2px}
.sllex,.sllrx{display:flex;flex-direction:column;gap:2px;font-size:14px}
.sllrx{text-align:right;white-space:nowrap}
.slllist{padding:6px 0;gap:0}
.slllrow{display:grid;grid-template-columns:34px 1fr 16px;gap:12px;align-items:center;padding:14px 18px;background:none;border:0;border-bottom:1px solid var(--line);text-align:left;color:var(--ink);cursor:pointer;width:100%}
.slllrow:last-child{border-bottom:0}
.sllnum{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-weight:700;font-size:14px}
.slllrow.done .sllnum{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.sllltxt{display:flex;flex-direction:column;gap:3px}
.sllltxt b{font:500 16px/1.25 var(--head)}
.sllread{padding:18px}
.sllq{display:flex;flex-direction:column;gap:7px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.sllq:last-of-type{border-bottom:0}
.sllq b{font-size:15px;line-height:1.35}
.sllopt.picked{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.sllres{display:flex;flex-direction:column;gap:4px;border-radius:12px;padding:12px 14px}
.sllres.ok{background:var(--ok-soft);color:var(--ok)} .sllres.no{background:var(--warn-soft);color:var(--warn)}
.sllsigned{border-color:var(--ok)}
.sllsigned b{font:500 18px/1.2 var(--head)}

/* booked class card: a clear Cancel button, and readable text/buttons on the dark card in dark mode */
.card.dark .btn.out{background:transparent;color:#f0a199;border-color:#f0a199}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .card.dark .btn{background:var(--ink);color:var(--bg)}:root:not([data-theme="light"]) .card.dark .btn.ghost{background:transparent;color:var(--ink);border-color:currentColor}:root:not([data-theme="light"]) .card.dark .btn.out{background:transparent;color:var(--bad);border-color:var(--bad)}:root:not([data-theme="light"]) .card.dark .bar span{background:var(--ink)}}
:root[data-theme="dark"] .card.dark .btn{background:var(--ink);color:var(--bg)}:root[data-theme="dark"] .card.dark .btn.ghost{background:transparent;color:var(--ink);border-color:currentColor}:root[data-theme="dark"] .card.dark .btn.out{background:transparent;color:var(--bad);border-color:var(--bad)}:root[data-theme="dark"] .card.dark .bar span{background:var(--ink)}
.item.cup .itbtns .btn.sm{height:36px;padding:0 12px}

/* Strong Ladies Lift: choose your time */
.sllopt{justify-content:flex-start;gap:6px;text-align:left}.sllopt:disabled{opacity:.5}

/* log-in page: Strong Ladies Lift friend's place */
.sllbox{color:var(--ink);display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:14px;background:var(--surface);border:1px solid var(--line);margin-bottom:14px}
.sllbox b{font:500 20px/1.2 var(--head)}
.sllchoice{display:flex;flex-direction:column;gap:8px;margin-top:8px}

/* Text size (Me → Text size) */
html[data-ts="l"] #app, html[data-ts="l"] #overlay{zoom:1.12}
html[data-ts="xl"] #app, html[data-ts="xl"] #overlay{zoom:1.25}
.seg.tsize{grid-template-columns:repeat(3,1fr);margin:0}
.onbcard .onbpress{display:block;margin-top:6px}
/* stop phones showing a zoomed-out page if anything is a little too wide */
html,body{overflow-x:clip;max-width:100%}

.tsbtn{margin-left:auto;margin-right:8px;height:34px;min-width:44px;padding:0 10px;border-radius:999px;border:1px solid var(--band-line);background:transparent;color:var(--band-ink);font:700 15px var(--head);cursor:pointer}

/* Book: five tabs (Pods, Zones, Classes, Events, Appointments) */
.seg.seg4.seg5{grid-template-columns:.8fr .9fr 1fr .9fr 1.45fr}
.zonecard{gap:10px}
/* a member's own changes to a workout: sets, supersets, exercise notes */
.setctl{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:2px}
.setbtns{display:flex;gap:6px}
.setbtns button,.sslink{background:none;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink);cursor:pointer;min-height:32px}
.setbtns button:disabled{opacity:.35;cursor:default}
.sslink{align-self:flex-start;border-style:dashed}
.ssctl{display:flex;gap:6px;flex-wrap:wrap}
.exnote{display:block;width:100%;text-align:left;background:var(--soft);border:0;border-left:3px solid var(--ink);border-radius:8px;padding:7px 10px;font:inherit;font-size:12.5px;color:var(--ink);cursor:pointer;white-space:pre-line}
.exnote b{font-weight:600;margin-right:4px}
.exnlist .item{align-items:flex-start}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .exnote{background:rgba(255,255,255,.06);border-left-color:currentColor}}
:root[data-theme="dark"] .exnote{background:rgba(255,255,255,.06);border-left-color:currentColor}
/* the rest timer, right under the set just done */
.restinl{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;background:var(--primary);color:var(--primary-ink);border-radius:14px;padding:8px 10px 10px;margin:4px 0 6px}
.restinl .ri-lab{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.8}
.restinl b{font:600 24px/1 var(--head);font-variant-numeric:tabular-nums;min-width:64px;text-align:center}
.restinl .rb-x{margin-left:auto}
.restinl .rb-track{flex:1 1 100%}
/* ───── workout screen, Nov 2026 ───── */
/* supersets: grouped on black, each exercise in dark grey, so A1 + A2 read as one block */
.excard.superset,.excard.superset.tone0,.excard.superset.tone1{background:#151616;border-color:#151616;color:#f4f4f1}
.excard.superset .ssex,.excard.superset.tone0 .ssex,.excard.superset.tone1 .ssex{background:#2b2e2e;border-color:#3a3e3e;color:#f4f4f1}
.excard.superset .muted,.excard.superset .tiny,.excard.superset .small,.excard.superset .sets5 .h,.excard.superset .sets5 .lt,.excard.superset .exmeta,.excard.superset .ssround,.excard.superset .ssround small{color:#f4f4f1}
.excard.superset .eyebrow{color:#e8c66d}
.excard.superset h2,.excard.superset b,.excard.superset .exact>*{color:#f4f4f1}
.excard.superset .exact{border-color:#3a3e3e}.excard.superset .exact>*+*{border-color:#3a3e3e}
.excard.superset input{background:#232626;border-color:#454a4a;color:#f4f4f1}
.excard.superset input::placeholder{color:#b9bdbb}
.excard.superset .code-b{border-color:#5a5f5e;color:#f4f4f1;background:transparent}
.excard.superset .ssround{border-color:#3a3e3e}
.excard.superset .setbtns button,.excard.superset .exnote{color:#f4f4f1;border-color:#5a5f5e;background:#232626}
.excard.superset .exfold summary{color:#e8c66d}
/* superset buttons that look like buttons and say what they do */
.ssbtn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--surface,#fff);color:var(--ink);border:1.5px solid var(--ink);border-radius:12px;padding:10px 12px;font:inherit;cursor:pointer;min-height:48px}
.ssbtn svg{flex:0 0 22px;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ssbtn span{display:flex;flex-direction:column;gap:2px;min-width:0}
.ssbtn b{font-size:14px;font-weight:600}
.ssbtn small{font-size:12px;color:var(--muted);line-height:1.3;overflow-wrap:anywhere}
.excard.superset .ssbtn{background:#2b2e2e;color:#f4f4f1;border-color:#e8c66d}
.excard.superset .ssbtn small{color:#f4f4f1}
.ssctl{display:flex;flex-direction:column;gap:8px}
/* text folded away until tapped */
.exfold{font-size:13px}
.exfold summary{cursor:pointer;font-weight:600;font-size:12.5px;color:var(--ink);list-style:none;display:inline-flex;align-items:center;gap:6px;padding:4px 0}
.exfold summary::-webkit-details-marker{display:none}
.exfold summary::after{content:"+";font-weight:700;opacity:.6}
.exfold[open] summary::after{content:"−"}
.exfold[open]>*:not(summary){display:block;margin-top:4px}
/* the exercise buttons wrap rather than overlap (Large and Extra large text) */
.exact{flex-wrap:wrap;row-gap:4px}
.exact>*{flex:1 1 auto;min-width:64px}
.sets5 .lt{white-space:normal;overflow-wrap:anywhere}
.sets5 .lt .ltname{display:block}
.exhead h2{overflow-wrap:anywhere}
.setctl .setbtns{flex-wrap:wrap}
/* check-in bar during a workout: small, at the top, never over the sets */
.cibar{position:absolute;left:12px;right:12px;top:calc(8px + env(safe-area-inset-top,0px));z-index:27;display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--ink);color:var(--bg,#fff);border-radius:14px;padding:8px 10px 8px 14px;box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:13px}
.cibar>span:first-child{flex:1 1 160px;min-width:0}
.cibar .btn{background:#e8c66d;color:#151616;border-color:#e8c66d}
.cibx{background:none;border:0;color:inherit;font-size:16px;min-width:36px;min-height:36px;opacity:.8;cursor:pointer}
.phone:has(.cibar) .scroll{padding-top:58px}
/* exercise buttons as pills, so they wrap cleanly at any text size */
.exact{gap:6px;border-top:0;margin:4px 0 0;padding-top:0}
.exact>*,.exact>*+*{flex:1 1 auto;min-width:72px;border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:transparent}
.excard.superset .exact>*,.excard.superset .exact>*+*{border-color:#4a4f4e}
/* the RIR box keeps "2-3" readable at Large and Extra large text */
.sets5 input.rirq{padding:0 2px;font-size:15px}
.sets5 input.rirq::placeholder{font-size:13px;letter-spacing:-.02em}
html[data-ts="l"] .sets5,html[data-ts="xl"] .sets5{grid-template-columns:22px minmax(48px,1fr) minmax(0,1fr) minmax(0,1fr) minmax(46px,.9fr);gap:6px 5px}
html[data-ts="l"] .sets5 .h,html[data-ts="xl"] .sets5 .h{font-size:9px;letter-spacing:.03em;white-space:normal;line-height:1.15;overflow-wrap:anywhere}
/* Inbox: the bell on Home and the list */
.bellbtn{position:relative;margin-left:auto;margin-right:8px;height:34px;width:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--band-line);background:transparent;color:var(--band-ink);cursor:pointer}
.bellbtn svg{width:19px;height:19px}
.bellbtn + .tsbtn{margin-left:0}
.belln{position:absolute;top:-5px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:#e5484d;color:#fff;font:700 11px/19px var(--body,inherit);text-align:center}
.inblist{display:flex;flex-direction:column;gap:8px}
.inbitem{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px;padding:12px;font:inherit;color:var(--ink);cursor:pointer}
.inbitem .inbtxt{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;overflow-wrap:anywhere}
.inbitem b{font-weight:600}
.inbdot{flex:0 0 9px;width:9px;height:9px;border-radius:50%;margin-top:6px;background:transparent}
.inbitem.unread{border-color:var(--ink)}
.inbitem.unread .inbdot{background:#e5484d}
.band>.row{flex-wrap:wrap;row-gap:10px}.band>.row .pill{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Ask us: the app assistant (update 240) */
.chatic.ask{background:var(--soft);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.askchat .bub.ai{background:var(--soft)}
.askchat .bub.err{border-color:var(--bad)}
.askchips{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 4px}
.askchips .chip{white-space:normal;text-align:left;font-size:14px}
.asknote{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border:1px dashed var(--line);border-radius:12px;align-self:stretch}
.asknote .small{flex:1 1 180px}
.bub.typing span{display:flex;gap:4px;padding:4px 2px}
.bub.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:askdot 1.2s infinite ease-in-out}
.bub.typing i:nth-child(2){animation-delay:.15s} .bub.typing i:nth-child(3){animation-delay:.3s}
@keyframes askdot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.bub.typing i{animation:none;opacity:.6}}
/* round Back button on every screen except Home: bottom left, above the tabs (and above the basket bar on Buy) */
.fback{position:absolute;left:12px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:26;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;padding:0;box-shadow:0 4px 14px rgba(0,0,0,.28);cursor:pointer}
.fback svg{width:22px;height:22px}
.fback.upcart{bottom:calc(146px + env(safe-area-inset-bottom,0px))}
#app:has(.fback) .scroll{padding-bottom:64px}

/* Pod 7, the Deadlift Platform: blue edge and stripes whatever its state, so a free one still stands out */
.pod.dl,.pod.free.dl{border:3px solid var(--dl-line);background-image:repeating-linear-gradient(135deg,transparent 0 7px,color-mix(in srgb,var(--dl-line) 18%,transparent) 7px 10px)}
.pod.dl small{color:var(--dl-line);font-weight:700}
.legend i.dlkey{background-image:repeating-linear-gradient(135deg,transparent 0 3px,color-mix(in srgb,var(--dl-line) 30%,transparent) 3px 5px)!important;border:2px solid var(--dl-line)!important}
/* top of Home: Message us and News */
.homequick{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.homequick .hq{display:flex;align-items:center;gap:8px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:inherit;font:inherit;text-align:left;min-height:52px}
.homequick .hq b{flex:1;font-weight:600}
.homequick .chatic{width:30px;height:30px;flex:0 0 30px}
.homequick .chatic svg{width:18px;height:18px}
/* class countdown: 3, 2, 1 space left */
.spleft{align-self:flex-start;font-size:12px;font-weight:600;letter-spacing:.02em;padding:3px 9px;border-radius:999px;background:var(--warn-soft,#fff1d6);color:var(--warn,#8a5a00)}
.spleft.full{background:var(--line);color:inherit}
/* our own demo videos, played in the app */
.demovid{width:100%;aspect-ratio:16/9;border-radius:14px;background:#202222;display:block}
.demowrap{position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}
.demoplay{position:absolute;inset:0;margin:auto;width:64px;height:64px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:26px;display:none;align-items:center;justify-content:center;padding-left:4px;pointer-events:none}
.demowrap.paused .demoplay{display:flex}
button.thumb{border:0;padding:0;font:inherit;cursor:pointer}
/* lost property: my item waiting at the desk (update 263) */
.lostwait{display:flex;flex-direction:row;gap:12px;align-items:flex-start;border-color:var(--warn-line,#e3a33a)}
.lostwait > span:nth-child(2){display:flex;flex-direction:column;gap:3px}
/* coach mode (update 265): staff logging a client's workout */
.coachbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;background:#e8c66d;color:#151616;padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;margin:0 0 8px}
.coachbar>span{flex:1 1 auto;min-width:0;display:grid;gap:2px}
.coachbar .btn{background:#151616;color:#fff;border-color:#151616}
/* RIR colours win over the superset and set-row input styles (green on target, amber one off, red further off) */
.sets5 input.rirq.ok,.excard.superset .sets5 input.rirq.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok);font-weight:700}
.sets5 input.rirq.near,.excard.superset .sets5 input.rirq.near{background:var(--warn-soft);border-color:var(--warn);color:var(--warn);font-weight:700}
.sets5 input.rirq.far,.excard.superset .sets5 input.rirq.far{background:var(--bad-soft);border-color:var(--bad);color:var(--bad);font-weight:700}
.excard.superset .sets5 input.rirq.ok{background:#1d3a28;border-color:#7cc59b;color:#bfe8cf}
.excard.superset .sets5 input.rirq.near{background:#3d3015;border-color:#e8bf6a;color:#f5dca2}
.excard.superset .sets5 input.rirq.far{background:#45241e;border-color:#e59383;color:#f7c3b8}
/* ───── WhatsApp-style chats (chatui.js): the team chat and group chats ───── */
:root{--cx-bg:#ebe8e1;--cx-pat:rgba(32,34,34,.06);--cx-mine:#d6ecd0;--cx-mine-ink:#142019;--cx-theirs:#ffffff;--cx-meta:#667069;--cx-tick:#2b8fd6;--cx-day:#fbfaf7;
  --cx-note:#fbf0cc;--cx-note-ink:#5a4710;--cx-send:#1d7a5f;--cx-wave:rgba(32,34,34,.25);--cx-wave-on:#1d7a5f;--cx-chip:rgba(32,34,34,.06);--cx-link:#1f6fa8;
  --cx-n0:#b4523a;--cx-n1:#2e7d5b;--cx-n2:#7a4fb5;--cx-n3:#1f6fa8;--cx-n4:#a0601a;--cx-n5:#c03f73;--cx-n6:#4b7a1f;--cx-n7:#1d7f86}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--cx-bg:#0e1010;--cx-pat:rgba(255,255,255,.035);--cx-mine:#1d4536;--cx-mine-ink:#eef3ef;--cx-theirs:#232626;--cx-meta:#a3aaa6;--cx-tick:#53bdeb;--cx-day:#232626;
  --cx-note:#2c2715;--cx-note-ink:#e6d7a3;--cx-send:#23a077;--cx-wave:rgba(242,242,240,.28);--cx-wave-on:#5fd3a6;--cx-chip:rgba(255,255,255,.07);--cx-link:#7cc1f0;
  --cx-n0:#f0957f;--cx-n1:#6fd0a4;--cx-n2:#b99af0;--cx-n3:#7cc1f0;--cx-n4:#e8b06a;--cx-n5:#f08cb5;--cx-n6:#a6d46f;--cx-n7:#6fd0d6}}
:root[data-theme="dark"]{--cx-bg:#0e1010;--cx-pat:rgba(255,255,255,.035);--cx-mine:#1d4536;--cx-mine-ink:#eef3ef;--cx-theirs:#232626;--cx-meta:#a3aaa6;--cx-tick:#53bdeb;--cx-day:#232626;
  --cx-note:#2c2715;--cx-note-ink:#e6d7a3;--cx-send:#23a077;--cx-wave:rgba(242,242,240,.28);--cx-wave-on:#5fd3a6;--cx-chip:rgba(255,255,255,.07);--cx-link:#7cc1f0;
  --cx-n0:#f0957f;--cx-n1:#6fd0a4;--cx-n2:#b99af0;--cx-n3:#7cc1f0;--cx-n4:#e8b06a;--cx-n5:#f08cb5;--cx-n6:#a6d46f;--cx-n7:#6fd0d6}
#app.inchat .tabbar,#app.inchat .fback,#app.inchat .cartbar{display:none}
#app.inchat .scroll{display:flex;flex-direction:column;overflow:hidden;padding-bottom:0}
.cx{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--cx-bg)}
.cx-head{position:relative;z-index:4;display:flex;align-items:center;gap:8px;padding:calc(8px + env(safe-area-inset-top,0px)) 4px 8px 2px;background:var(--surface);border-bottom:1px solid var(--line)}
.cx-back,.cx-more{flex:none;width:42px;height:44px;border:0;background:none;color:var(--ink);display:grid;place-items:center;border-radius:50%;padding:0}
.cx-av{flex:none;width:40px;height:40px;border-radius:50%;background:var(--band);color:var(--band-ink);display:grid;place-items:center;margin-left:-4px}
.cx-av svg{width:21px;height:21px}
.cx-gav{font:800 14px var(--head);letter-spacing:.03em}
.cx-ttl{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.cx-ttl b{font:600 17px/1.25 var(--head);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-ttl span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-menu{position:absolute;right:8px;top:calc(100% - 6px);min-width:230px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.2);padding:6px;display:flex;flex-direction:column;z-index:10}
.cx-menu[hidden],.cx-attach[hidden],.cx-jump[hidden]{display:none}
.cx-menu button{background:none;border:0;text-align:left;padding:12px 14px;border-radius:8px;font-size:15px;color:var(--ink)}
.cx-menu button:hover{background:var(--soft)}
.cx-menu .bad{color:var(--bad)}
.cx-banner{display:flex;align-items:center;gap:10px;width:100%;border:0;border-bottom:1px solid var(--line);background:var(--surface);padding:8px 14px;text-align:left;font-size:13px;line-height:1.35;color:var(--ink)}
.cx-banner b{font-weight:600}
.cx-banner>span:nth-child(2){flex:1;min-width:0}
.cx-banner .chatic{width:30px;height:30px;border-radius:9px}
.cx-banner .chatic svg{width:17px;height:17px}
.cx-body{position:relative;flex:1;min-height:0}
.cx-list{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:6px 16px 10px;display:flex;flex-direction:column;
  background-color:var(--cx-bg);background-image:radial-gradient(var(--cx-pat) 1.1px,transparent 1.4px),radial-gradient(var(--cx-pat) 1.1px,transparent 1.4px);background-size:24px 24px;background-position:0 0,12px 12px;background-attachment:local}
.cx-dayg{display:flex;flex-direction:column}
.cx-day{align-self:center;position:sticky;top:4px;z-index:1;margin:10px 0 4px}
.cx-day span{display:inline-block;background:var(--cx-day);color:var(--muted);font-size:12px;font-weight:500;padding:4px 10px;border-radius:8px;box-shadow:0 1px 1px rgba(0,0,0,.08)}
.cx-note{align-self:center;max-width:90%;text-align:center;background:var(--cx-note);color:var(--cx-note-ink);font-size:12px;line-height:1.4;padding:6px 12px;border-radius:8px;margin:8px 0 2px}
.cx-empty{align-self:center;max-width:290px;text-align:center;color:var(--muted);font-size:14px;margin:auto 0;background:var(--cx-day);padding:12px 16px;border-radius:12px}
.cx-row{display:flex;margin-top:2px}
.cx-row.first{margin-top:8px}
.cx-row.me{justify-content:flex-end}
.cx-bub{position:relative;max-width:min(80%,340px);min-width:70px;background:var(--cx-theirs);color:var(--ink);border-radius:10px;padding:6px 8px 7px 9px;box-shadow:0 1px .5px rgba(0,0,0,.13);font-size:15px;line-height:1.38}
.cx-row.me .cx-bub{background:var(--cx-mine);color:var(--cx-mine-ink)}
.cx-row.first .cx-bub::before{content:"";position:absolute;top:0;width:9px;height:13px;background:inherit}
.cx-row.them.first .cx-bub{border-top-left-radius:0}
.cx-row.them.first .cx-bub::before{left:-8px;clip-path:polygon(0 0,100% 0,100% 100%)}
.cx-row.me.first .cx-bub{border-top-right-radius:0}
.cx-row.me.first .cx-bub::before{right:-8px;clip-path:polygon(0 0,100% 0,0 100%)}
.cx-name{display:block;font-size:13px;font-weight:600;line-height:1.3;margin-bottom:1px}
.cx-name.n0{color:var(--cx-n0)}.cx-name.n1{color:var(--cx-n1)}.cx-name.n2{color:var(--cx-n2)}.cx-name.n3{color:var(--cx-n3)}.cx-name.n4{color:var(--cx-n4)}.cx-name.n5{color:var(--cx-n5)}.cx-name.n6{color:var(--cx-n6)}.cx-name.n7{color:var(--cx-n7)}
.cx-text{white-space:pre-wrap;overflow-wrap:anywhere}
.cx-text a{color:var(--cx-link)}
.cx-sp{display:inline-block;height:1px;vertical-align:middle}
.cx-meta{position:absolute;right:7px;bottom:4px;display:inline-flex;align-items:center;gap:3px;font-size:11px;line-height:1;color:var(--cx-meta);white-space:nowrap}
.cx-meta em{font-style:normal;font-weight:600}
.cx-meta.own{position:static;display:flex;justify-content:flex-end;margin-top:3px}
.cx-meta.over{right:10px;bottom:9px;color:#fff;background:rgba(0,0,0,.38);padding:3px 6px;border-radius:9px}
.cx-tk{flex:none;margin-left:1px}
.cx-tk.read{color:var(--cx-tick)}
.cx-bub.k-img,.cx-bub.k-vid{padding:3px}
.cx-bub.k-img .cx-text,.cx-bub.k-vid .cx-text{padding:4px 5px 3px 6px}
.cx-bub.k-img .cx-name,.cx-bub.k-vid .cx-name{padding:3px 6px 2px}
.cx-photo{display:block;border:0;padding:0;background:none;border-radius:8px;overflow:hidden;width:100%}
.cx-photo img{display:block;width:100%;min-width:180px;max-width:270px;max-height:340px;object-fit:cover}
.cx-wait{display:grid;place-items:center;width:230px;height:170px;background:var(--cx-chip);color:var(--muted);font-size:13px}
.cx-video{display:block;max-width:270px;max-height:340px;border-radius:8px}
.cx-voice{position:relative;display:flex;align-items:center;gap:8px;width:min(250px,62vw);padding:0 0 13px}
.cx-play{flex:none;width:38px;height:38px;border:0;border-radius:50%;padding:0;background:none;color:var(--ink);opacity:.75;display:grid;place-items:center}
.cx-row.me .cx-play{color:var(--cx-mine-ink)}
.cx-wave{flex:1;height:30px;display:flex;align-items:center;gap:2px;cursor:pointer}
.cx-wave i{flex:1;min-height:3px;border-radius:2px;background:var(--cx-wave)}
.cx-wave i.on{background:var(--cx-wave-on)}
.cx-dur{position:absolute;left:46px;bottom:0;font-size:11px;line-height:1;color:var(--cx-meta);font-variant-numeric:tabular-nums}
.cx-file{display:flex;align-items:center;gap:10px;min-width:210px;max-width:270px;padding:8px;border-radius:8px;background:var(--cx-chip);color:inherit;text-decoration:none}
.cx-ext{flex:none;width:36px;height:44px;border-radius:6px;background:#c8463a;color:#fff;font:700 10px var(--head);letter-spacing:.04em;display:grid;place-items:end center;padding-bottom:7px}
.cx-fn{display:flex;flex-direction:column;min-width:0}
.cx-fn b{font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-fn small{font-size:11px;color:var(--cx-meta)}
.cx-bub .gevent{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:10px;border-radius:8px;background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.cx-bub .gevbtns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cx-jump{position:absolute;right:12px;bottom:12px;z-index:2;width:42px;height:42px;border:0;border-radius:50%;background:var(--surface);color:var(--muted);box-shadow:0 2px 8px rgba(0,0,0,.22);display:grid;place-items:center;padding:0}
.cx-jump.new .cx-jn{position:absolute;top:-1px;right:-1px;width:12px;height:12px;border-radius:50%;background:var(--cx-send);border:2px solid var(--surface)}
.cx-foot{position:relative;z-index:3;padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));background:var(--cx-bg)}
.phone.kb .cx-foot{padding-bottom:6px}
.cx-quiet{margin:0 4px 6px;padding:5px 10px;border-radius:8px;background:var(--cx-note);color:var(--cx-note-ink);font-size:12px;line-height:1.4;text-align:center}
.cx-comp{display:flex;align-items:flex-end;gap:6px}
.cx-field{position:relative;flex:1;min-width:0;min-height:48px;display:flex;align-items:flex-end;padding:2px 2px;background:var(--surface);border-radius:24px;box-shadow:0 1px .5px rgba(0,0,0,.13)}
.cx-field textarea{flex:1;min-width:0;max-height:140px;border:0;background:none;resize:none;padding:11px 2px;font-size:16px;line-height:22px;color:var(--ink)}
.cx-field textarea:focus-visible{outline:none}
.cx-field:focus-within{box-shadow:0 0 0 1.5px var(--cx-send)}
.cx-ib{flex:none;width:42px;height:44px;border:0;border-radius:50%;padding:0;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.cx-round{flex:none;width:48px;height:48px;border:0;border-radius:50%;padding:0;background:var(--cx-send);color:#fff;display:grid;place-items:center;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.cx-send svg{margin-left:3px}
.cx-send,.cx-rsend{display:none}
.cx-comp.has .cx-send,.cx-comp.norec .cx-send{display:grid}
.cx-comp.has .cx-mic,.cx-comp.has .cx-cam{display:none}
.cx-comp.rec .cx-send{display:none}
.cx-comp.rec.locked .cx-rsend{display:grid}
.cx-comp.rec.locked .cx-mic{display:none}
.cx-mic{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;transition:transform .15s,background .15s}
.cx-comp.rec:not(.locked) .cx-mic{transform:scale(1.3);background:#d93a2b}
.cx-rec{display:none;position:absolute;inset:0;align-items:center;gap:10px;padding:0 16px;background:var(--surface);border-radius:24px}
.cx-comp.rec .cx-rec{display:flex}
.cx-bin{display:none}
.cx-comp.locked .cx-bin{display:grid;margin-left:-10px;color:var(--bad)}
.cx-rt{font-size:15px;font-variant-numeric:tabular-nums}
.cx-slide{margin-left:auto;color:var(--muted);font-size:14px;white-space:nowrap}
.cx-comp.locked .cx-slide{display:none}
.cx-max{display:none;margin-left:auto;color:var(--muted);font-size:12px}
.cx-comp.locked .cx-max{display:inline}
.cx-attach{position:absolute;left:8px;right:8px;bottom:calc(100% + 4px);z-index:5;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px 10px;background:var(--surface);border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.22)}
.cx-attach label{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;cursor:pointer}
.cx-ai{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:#fff}
.cx-ai.a1{background:#7457cf}.cx-ai.a2{background:#cf3f68}.cx-ai.a3{background:#3f73cf}
.cx-pend{display:flex;align-items:center;gap:10px;margin:0 2px 6px;padding:6px 6px 6px 8px;background:var(--surface);border-radius:14px;box-shadow:0 1px .5px rgba(0,0,0,.13)}
.cx-pend img{width:48px;height:48px;object-fit:cover;border-radius:8px}
.cx-pend>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.cx-pend b{font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-pend small{font-size:12px;color:var(--muted)}
.cx-viewer{position:absolute;inset:0;z-index:80;display:flex;flex-direction:column;background:#000}
.cx-vbar{display:flex;justify-content:space-between;padding:calc(8px + env(safe-area-inset-top,0px)) 10px 8px}
.cx-vbtn{width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;padding:0}
.cx-vimg{flex:1;min-height:0;display:grid;place-items:center;overflow:hidden;touch-action:none;padding-bottom:env(safe-area-inset-bottom,0px)}
.cx-vimg img{max-width:100%;max-height:100%;transform-origin:center;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
.cx-mutedic{display:inline-grid;color:var(--muted)}
.cx-mutedic svg{width:18px;height:18px}
/* My calendar (Home): month grid, dots for what was done that day; day sheet with editable sets */
.calcard .row{align-items:center}
.calm{font:600 16px/1.2 var(--head)}
.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cwd{text-align:center;font-size:11px;color:var(--muted);padding-bottom:2px}
.ccell{aspect-ratio:1/1.05;min-width:0;border:1px solid transparent;border-radius:10px;background:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding:5px 0 0;color:var(--ink);font:inherit}
.ccell.on{background:var(--soft)}
.ccell.today{border-color:var(--ink)}
.ccell.fut{color:var(--muted);opacity:.45}
.ccell .cn{font-size:12px;line-height:1}
.cdots{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;max-width:30px}
.cd{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted)}
.cd.w{background:var(--ink)}
.cd.s{background:var(--ok)}
.cd.h{background:none;border:1.5px solid var(--warn);width:6px;height:6px;box-sizing:border-box}
.cd.h.full{background:var(--warn)}
.cd.c{background:none;border:1.5px solid var(--ink);box-sizing:border-box}
.cd.m{background:var(--muted);width:5px;height:5px}
.calkey{display:flex;flex-wrap:wrap;gap:6px 12px}
.calkey span{display:inline-flex;align-items:center;gap:5px}
.calwk{gap:12px}
.csex{display:flex;flex-direction:column;gap:6px}
.csrow{display:grid;grid-template-columns:18px repeat(3,minmax(0,1fr)) auto;gap:6px;align-items:center}
.csf{display:flex;align-items:center;gap:4px;min-width:0}
.csf input{width:100%;min-width:0;padding:8px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:16px}
.next{position:relative}
.calgo{position:absolute;top:10px;right:10px;background:none;border:0;color:var(--band-ink);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;padding:4px;min-width:48px;min-height:48px;justify-content:center}
.calgo svg{width:26px;height:26px}
.next > .eyebrow,.next > b{padding-right:58px}
.wlhint.calm .small{background:var(--soft)}
