/* ============================================================
   Iron Barbell — Phase 1 Console prototype styles
   Built on the design-system tokens (colors_and_type.css) and
   matched to the member app (mia-app.html) visual language.
   ============================================================ */

:root {
  --iron:#0A0A0A; --iron-deep:#050505;
  --steel:#161616; --steel-2:#1C1C1C; --gunmetal:#2A2A2A;
  --graphite:#3A3A3A; --silver:#9A9A9A; --silver-2:#C8C8C8;
  --plate:#D9D9D9; --chalk:#F5F5F5; --white:#FFFFFF;
  --electric:#075DC6; --electric-hover:#1C77E0; --electric-deep:#044399;
  --sky:#6AA4F4;
  /* peak tone — the elite end of any scale (design system, Aug 2026) */
  --electric-bright:#4FA8FF; --electric-tint:#E5EFFC;
  /* ---- TIER 2 · FUNCTIONAL (app UI only, never marketing) ----
     turf = earned/gained · forge = caution/attention · rust = overdue/lost.
     Pick the tone by SURFACE: base fills · -bright text on dark ·
     -deep text on light · -tint badge background on light. */
  --turf:#1E9E62; --turf-bright:#35C883; --turf-deep:#0F6B45; --turf-tint:#E7F5EE;
  --forge:#D9A21B; --forge-bright:#F2BC3C; --forge-deep:#8A6206; --forge-tint:#FBF2DC;
  --rust:#C4392E; --rust-bright:#E8695A; --rust-deep:#96261D; --rust-tint:#FBEAE8;
  /* ---- TIER 3 · APP SURFACES ("tool mode", light) ----
     The apps run LIGHT on COOL neutrals — never --chalk, which is the
     marketing light and reads warm next to the blue. */
  --app-bg:#F4F6F8; --app-surface:#FFFFFF; --app-surface-sunk:#EAEEF2;
  --app-border:#DDE3E9; --app-border-strong:#C3CCD6;
  --app-fg:#12161A; --app-fg-muted:#5B6672; --app-fg-subtle:#8794A1;
  /* body-comp zone colours (CLAUDE.md) — the continuum is its own asset and is
     NOT restyled: sickness red, wellness amber, FITNESS GREEN, athletic electric
     blue. These mean BODY COMPOSITION only. Red/amber/green STATUS is
     --rust/--forge/--turf, never these. ONE owner: this file. */
  --z-sick:#b23b3b; --z-well:#d8b24a; --z-fit:#16c46a; --z-ath:#075DC6;
  /* [v7.0] the same four hues as TEXT: -deep on a light surface, -br on iron.
     The four-rung ladder (tiers.js) colours a WORD in the rung's own tone, and a
     fill colour is not a readable text colour on either ground. */
  --z-sick-deep:#8C3A31; --z-well-deep:#8A6206; --z-fit-deep:#0F6B45; --z-ath-deep:#044399;
  --z-sick-br:#E8695A; --z-well-br:#F2BC3C; --z-fit-br:#35C883; --z-ath-br:#4FA8FF;
  /* session-type accents (CLAUDE.md) */
  --t-crossfit:#075DC6; --t-zone2:#2C7A88; --t-focus:#B0730C; --t-contrast:#5B5E8C;
  /* [v7.0] the class catalogue's own marks: Social Saturday (the public one) */
  --t-none:#64707C; --t-iron:#0A0A0A; --t-social:#1E9E62;
  --font-cond:"Barlow Condensed","Oswald",sans-serif;
  --font-body:"Inter",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --font-disp:"National Champion","Barlow Condensed",sans-serif;
  --ease:cubic-bezier(0.2,0.7,0.2,1);
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;overflow:hidden;overscroll-behavior:none;}
body{
  font-family:var(--font-body);
  background:var(--iron-deep);
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.02) 1px,transparent 1px);
  background-size:46px 46px;
  color:var(--white);
  -webkit-font-smoothing:antialiased;
}
/* PWA fix (live-owned, contract §2): lock the outer document to the DYNAMIC
   viewport so only .m-scroll scrolls. Static 100vh over-measures on iOS
   standalone (home-screen) reopen and pushes the bottom tab bar off-screen. */
#root{height:100vh;height:100dvh;overflow:hidden;}
a{color:var(--electric);text-decoration:none;}
a:hover{color:var(--electric-hover);text-decoration:underline;}
button{font-family:inherit;}
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:var(--gunmetal);border-radius:0;}
::-webkit-scrollbar-track{background:transparent;}

.eyebrow{font-family:var(--font-body);font-weight:800;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--electric);}
.eyebrow.silver{color:var(--silver);}
.mono{font-family:var(--font-mono);}

/* ===== TOP CHROME ===== */
.appbar{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:20px;
  padding:0 26px;height:66px;background:var(--iron);border-bottom:1px solid var(--graphite);
}
.appbar .brand{display:flex;align-items:center;gap:13px;}
.appbar .brand img{height:30px;display:block;}
.appbar .brand .wm{font-family:var(--font-cond);font-weight:900;font-size:20px;letter-spacing:0.04em;text-transform:uppercase;line-height:1;}
.appbar .brand .wm span{color:var(--electric);}
.appbar .tag{font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--silver);border:1px solid var(--graphite);padding:4px 9px;}
.appbar .spacer{flex:1 1 auto;}

/* role toggle */
.roletoggle{display:flex;border:1px solid var(--graphite);background:var(--steel);overflow:hidden;}
.roletoggle button{
  display:flex;align-items:center;gap:8px;padding:9px 16px;background:transparent;border:none;cursor:pointer;
  font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.06em;text-transform:uppercase;color:var(--silver);transition:all 120ms var(--ease);
}
.roletoggle button + button{border-left:1px solid var(--graphite);}
.roletoggle button.on{background:var(--electric);color:#fff;}
.roletoggle button:not(.on):hover{color:#fff;background:var(--steel-2);}
.roletoggle svg{width:15px;height:15px;}

/* ===== GENERIC ===== */
.stage{max-width:1240px;margin:0 auto;padding:34px 26px 90px;}
.pagehead{margin-bottom:26px;}
.pagehead .eyebrow{margin-bottom:12px;display:block;}
.pagehead h1{font-family:var(--font-cond);font-weight:900;font-size:46px;letter-spacing:0.02em;text-transform:uppercase;line-height:0.95;}
.pagehead p{color:var(--silver-2);font-size:14.5px;line-height:1.55;margin-top:12px;max-width:720px;}

.card{border:1px solid var(--graphite);background:var(--iron);}
.card.steel{background:var(--steel);}
.card.stripe{border-top:3px solid var(--electric);}
.card-h{display:flex;align-items:center;gap:11px;padding:16px 20px;border-bottom:1px solid var(--graphite);background:var(--steel);}
.card-h .ic{width:20px;height:20px;color:var(--electric);flex:0 0 auto;}
.card-h .ic svg{width:20px;height:20px;}
.card-h h3{font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:0.03em;text-transform:uppercase;line-height:1;}
.card-h .note{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--silver);letter-spacing:0.03em;}
.card-b{padding:20px;}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;
  font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.06em;text-transform:uppercase;
  background:var(--electric);color:#fff;border:1px solid var(--electric);border-radius:4px;padding:12px 20px;min-height:46px;
  transition:background 120ms var(--ease),transform 80ms var(--ease);
}
.btn:hover{background:var(--electric-hover);border-color:var(--electric-hover);}
.btn:active{transform:translateY(1px);background:var(--electric-deep);}
.btn[disabled]{opacity:0.5;cursor:not-allowed;}
.btn svg{width:16px;height:16px;}
.btn.ghost{background:transparent;color:var(--silver-2);border-color:var(--graphite);}
.btn.ghost:hover{background:var(--steel);color:#fff;border-color:var(--silver);}
.btn.sm{min-height:38px;padding:8px 14px;font-size:12.5px;}
.btn.wide{width:100%;}
.btn.dark{background:var(--iron);border-color:var(--iron);color:#fff;}
.btn.dark:hover{background:var(--steel-2);}

/* badges */
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:0.05em;text-transform:uppercase;padding:4px 9px;border:1px solid var(--graphite);color:var(--silver);border-radius:999px;}
.badge.blue{color:var(--electric);border-color:var(--electric);}
.badge.solid{background:var(--electric);border-color:var(--electric);color:#fff;}
.badge.warn{color:#fff;background:var(--rust);border-color:var(--rust);}
.badge.z-sickness{color:var(--z-sick);border-color:var(--z-sick);}
.badge.z-wellness{color:var(--z-well);border-color:var(--z-well);}
.badge.z-fitness{color:var(--z-fit);border-color:var(--z-fit);}
.badge.z-athletic{color:var(--z-ath);border-color:var(--z-ath);}

/* form fields */
.field{margin-bottom:16px;}
.field label{display:block;font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--silver-2);margin-bottom:7px;}
.field label .req{color:var(--electric);}
.field .hint{font-size:11.5px;color:var(--silver);margin-top:6px;line-height:1.4;}
.inp{
  width:100%;background:var(--steel);border:1px solid var(--graphite);color:#fff;border-radius:4px;
  font-family:var(--font-body);font-size:15px;padding:12px 13px;outline:none;transition:border-color 120ms var(--ease);
}
.inp:focus{border-color:var(--electric);}
.inp::placeholder{color:#666;}
textarea.inp{resize:vertical;min-height:74px;line-height:1.5;}
select.inp{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239A9A9A' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;padding-right:34px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.field-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
.suffix-wrap{position:relative;}
.suffix-wrap .sfx{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:12px;color:var(--silver);pointer-events:none;}

/* segmented radio */
.seg{display:flex;border:1px solid var(--graphite);border-radius:4px;overflow:hidden;}
.seg button{flex:1 1 0;background:var(--steel);border:none;cursor:pointer;padding:11px 8px;font-family:var(--font-cond);font-weight:900;font-size:12.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);transition:all 120ms var(--ease);}
.seg button + button{border-left:1px solid var(--graphite);}
.seg button.on{background:var(--electric);color:#fff;}
.seg button:not(.on):hover{background:var(--steel-2);color:#fff;}

/* scale 1-10 pills */
.scale{display:flex;gap:5px;flex-wrap:wrap;}
.scale button{width:34px;height:38px;border:1px solid var(--graphite);background:var(--steel);color:var(--silver);font-family:var(--font-mono);font-size:13px;font-weight:700;cursor:pointer;border-radius:3px;transition:all 100ms var(--ease);}
.scale button.on{background:var(--electric);border-color:var(--electric);color:#fff;}
.scale button:not(.on):hover{border-color:var(--silver);color:#fff;}

/* ===== CONTINUUM BAR ===== */
.contbar{margin:6px 0 4px;}
.contbar .track{position:relative;height:34px;display:flex;border:1px solid var(--graphite);overflow:hidden;border-radius:3px;}
.contbar .band{flex:1 1 0;display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-weight:900;font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;color:rgba(255,255,255,0.92);position:relative;}
.contbar .band.sickness{background:var(--z-sick);}
.contbar .band.wellness{background:var(--z-well);color:rgba(0,0,0,0.7);}
.contbar .band.fitness{background:var(--z-fit);color:rgba(0,0,0,0.75);}
.contbar .band.athletic{background:var(--z-ath);}
.contbar .marker{position:absolute;top:-7px;bottom:-7px;width:3px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,0.5);z-index:3;transition:left 500ms var(--ease);}
.contbar .marker::after{content:attr(data-lab);position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:11px;font-weight:700;color:#fff;white-space:nowrap;}
.contbar .marker.ghost{background:var(--silver);opacity:0.65;}
.contbar .marker.ghost::after{color:var(--silver);}
.contbar .scalerow{display:flex;justify-content:space-between;margin-top:9px;font-family:var(--font-mono);font-size:10px;color:var(--silver);}

/* stat tiles */
.stats{display:grid;gap:12px;}
.stats.c4{grid-template-columns:repeat(4,1fr);}
.stats.c3{grid-template-columns:repeat(3,1fr);}
.stat{border:1px solid var(--graphite);background:var(--steel);padding:14px 16px;}
.stat .k{font-family:var(--font-mono);font-size:10px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);}
.stat .v{font-family:var(--font-cond);font-weight:900;font-size:30px;letter-spacing:0.01em;line-height:1;margin-top:8px;}
.stat .v small{font-size:14px;color:var(--silver-2);font-weight:700;}
.stat .d{font-size:11.5px;color:var(--silver);margin-top:6px;line-height:1.4;}
.stat.accent .v{color:var(--electric);}
.stat.up .v{color:var(--turf);}

.delta{font-family:var(--font-mono);font-size:12px;font-weight:700;}
.delta.down{color:var(--turf);}
.delta.up{color:var(--rust);}

/* macro compare row */
.macgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--graphite);border:1px solid var(--graphite);}
.macgrid .m{background:var(--iron);padding:14px 12px;text-align:center;}
.macgrid .m .lb{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--silver);}
.macgrid .m .now{font-family:var(--font-cond);font-weight:900;font-size:26px;line-height:1;margin-top:7px;}
.macgrid .m .was{font-family:var(--font-mono);font-size:11px;color:var(--silver);margin-top:5px;text-decoration:line-through;}
.macgrid .m .chg{font-family:var(--font-mono);font-size:11px;font-weight:700;margin-top:3px;}
.macgrid .m .chg.up{color:var(--turf);}
.macgrid .m .chg.down{color:var(--rust);}
.macgrid .m.hl .now{color:var(--electric);}

/* ===== FLAG banner ===== */
.flag{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--rust);background:linear-gradient(180deg,rgba(178,59,59,0.16),rgba(178,59,59,0.04));padding:16px 18px;border-left:4px solid var(--rust);}
.flag.recomp{border-color:var(--turf);border-left-color:var(--turf);background:linear-gradient(180deg,rgba(22,196,106,0.15),rgba(22,196,106,0.03));}
.flag .fic{width:26px;height:26px;flex:0 0 auto;color:var(--turf);margin-top:1px;}
.flag.warn .fic{color:var(--rust);}
.flag .fic svg{width:26px;height:26px;}
.flag .ft{font-family:var(--font-cond);font-weight:900;font-size:18px;letter-spacing:0.02em;text-transform:uppercase;line-height:1.05;}
.flag .fd{font-size:13px;color:var(--silver-2);line-height:1.5;margin-top:5px;}
.flag .fd b{color:#fff;font-weight:700;}

/* AI draft area */
.aibox{border:1px solid var(--graphite);background:var(--steel);border-top:3px solid var(--electric);}
.aibox .aih{display:flex;align-items:center;gap:9px;padding:12px 16px;border-bottom:1px solid var(--graphite);}
.aibox .aih .dot{width:9px;height:9px;border-radius:50%;background:var(--electric);}
.aibox .aih .t{font-family:var(--font-mono);font-size:11px;letter-spacing:0.05em;text-transform:uppercase;color:var(--electric);}
.aibox .aih .st{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--silver);}
.aibox .aitext{width:100%;background:transparent;border:none;color:#fff;font-family:var(--font-body);font-size:14px;line-height:1.6;padding:16px;outline:none;resize:vertical;min-height:180px;white-space:pre-wrap;}

.dots{display:inline-flex;gap:5px;align-items:center;}
.dots i{width:6px;height:6px;border-radius:50%;background:currentColor;animation:blink 1s infinite;}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}

/* lookup */
.lookup{max-width:680px;}
/* coach shell */
.coachshell{display:flex;align-items:stretch;min-height:calc(100vh - 66px);}
.coachside{flex:0 0 226px;background:var(--steel);border-right:1px solid var(--graphite);padding:20px 14px 16px;display:flex;flex-direction:column;gap:4px;position:sticky;top:66px;height:calc(100vh - 66px);}
.coachside .cs-lbl{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--silver);padding:0 12px 12px;}
.cs-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:transparent;border:none;border-radius:4px;padding:11px 12px;cursor:pointer;color:var(--silver);font-family:var(--font-cond);font-weight:800;font-size:15px;letter-spacing:0.05em;text-transform:uppercase;transition:all 120ms var(--ease);}
.cs-item:hover{color:#fff;background:var(--steel-2);}
.cs-item.on{background:var(--electric);color:#fff;}
.cs-item .cs-n{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;font-weight:700;background:var(--rust);color:#fff;border-radius:9px;padding:2px 8px;}
.cs-item.on .cs-n{background:rgba(255,255,255,0.25);}
.cs-foot{margin-top:auto;border-top:1px solid var(--graphite);padding-top:12px;}
.coachmain{flex:1 1 auto;min-width:0;}
/* roster filter chips + row badges */
.fchips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px;}
.fchip{display:inline-flex;align-items:center;gap:7px;background:var(--steel);border:1px solid var(--graphite);color:var(--silver);font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.05em;text-transform:uppercase;padding:7px 11px;border-radius:4px;cursor:pointer;transition:all 120ms var(--ease);}
.fchip:hover{color:#fff;border-color:var(--silver);}
.fchip.on{background:var(--electric);border-color:var(--electric);color:#fff;}
.fchip b{font-weight:700;}
.result .rbadges{margin-left:auto;display:flex;gap:8px;align-items:center;flex:0 0 auto;}
@media(max-width:860px){
  .coachshell{flex-direction:column;min-height:0;}
  .coachside{position:static;height:auto;flex:0 0 auto;flex-direction:row;align-items:center;width:100%;border-right:none;border-bottom:1px solid var(--graphite);padding:8px 14px;overflow-x:auto;}
  .coachside .cs-lbl{display:none;}
  .cs-item{width:auto;flex:0 0 auto;font-size:13px;padding:9px 11px;}
  .cs-foot{margin-top:0;margin-left:auto;border-top:none;padding-top:0;}
  .result .rbadges{display:none;}
}
.searchbox{position:relative;}
.searchbox svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:19px;height:19px;color:var(--silver);pointer-events:none;}
.searchbox input{width:100%;background:var(--steel);border:1px solid var(--graphite);color:#fff;border-radius:4px;font-family:var(--font-body);font-size:16px;padding:15px 15px 15px 44px;outline:none;}
.searchbox input:focus{border-color:var(--electric);}
.result{display:flex;align-items:center;gap:15px;width:100%;text-align:left;background:var(--steel);border:1px solid var(--graphite);border-radius:4px;padding:14px 16px;margin-top:10px;cursor:pointer;transition:border-color 120ms var(--ease),background 120ms var(--ease);}
.result:hover{border-color:var(--electric);background:var(--steel-2);}
.result .av{width:44px;height:44px;flex:0 0 auto;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-weight:900;font-size:18px;letter-spacing:0.02em;border-radius:3px;}
.result .rn{font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:0.02em;text-transform:uppercase;line-height:1;}
.result .rm{font-family:var(--font-mono);font-size:11px;color:var(--silver);margin-top:5px;letter-spacing:0.02em;}
.result .rflag{margin-left:auto;flex:0 0 auto;}
.result .chev{margin-left:auto;color:var(--silver);width:20px;height:20px;flex:0 0 auto;}
.result .rflag + .chev{margin-left:12px;}

/* client detail header */
.clienthead{display:flex;align-items:center;gap:18px;padding:20px 22px;border:1px solid var(--graphite);background:var(--steel);border-bottom:none;}
.clienthead .av{width:56px;height:56px;flex:0 0 auto;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-weight:900;font-size:24px;border-radius:3px;}
.clienthead .cn{font-family:var(--font-cond);font-weight:900;font-size:30px;letter-spacing:0.02em;text-transform:uppercase;line-height:1;}
.clienthead .cmeta{font-family:var(--font-mono);font-size:11px;color:var(--silver);margin-top:7px;letter-spacing:0.03em;}
.clienthead .back{background:none;border:1px solid var(--graphite);color:var(--silver);cursor:pointer;border-radius:4px;padding:8px 10px;display:flex;align-items:center;gap:7px;font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.06em;text-transform:uppercase;}
.clienthead .back:hover{color:#fff;border-color:var(--silver);}
.clienthead .back svg{width:14px;height:14px;}

.grid2{display:grid;grid-template-columns:1.35fr 1fr;gap:18px;align-items:start;}
.stack{display:flex;flex-direction:column;gap:18px;}

/* command box */
.cmdbox{border:1px solid var(--graphite);background:var(--iron);}
.cmd-suggest{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.cmd-chip{font-family:var(--font-body);font-size:12px;color:var(--silver-2);background:var(--steel);border:1px solid var(--graphite);border-radius:999px;padding:7px 13px;cursor:pointer;transition:all 120ms var(--ease);}
.cmd-chip:hover{border-color:var(--electric);color:#fff;}

/* trend chart */
.chart svg{display:block;width:100%;height:auto;}
.chart-legend{display:flex;gap:22px;margin-top:12px;font-size:11.5px;color:var(--silver);}
.chart-legend b{color:#fff;font-family:var(--font-mono);}

/* timeline history */
.tl{display:flex;flex-direction:column;}
.tlrow{display:flex;gap:14px;padding-bottom:15px;position:relative;}
.tlrow:last-child{padding-bottom:0;}
.tlrow .td{width:13px;height:13px;flex:0 0 auto;border-radius:50%;margin-top:3px;border:2px solid var(--graphite);background:var(--iron);z-index:2;}
.tlrow .td.done{background:var(--turf);border-color:var(--turf);}
.tlrow .td.next{background:var(--electric);border-color:var(--electric);}
.tlrow:not(:last-child)::before{content:"";position:absolute;left:5px;top:16px;bottom:0;width:2px;background:var(--gunmetal);}
.tlrow .when{font-family:var(--font-mono);font-size:11.5px;color:var(--silver-2);font-weight:700;}
.tlrow .desc{font-size:12.5px;color:var(--silver);margin-top:2px;}

/* ===== PHONE FRAME (client app) ===== */
.phonewrap{display:flex;justify-content:center;padding:6px 0 0;}
.phone{width:392px;max-width:100%;background:#000;border:9px solid #1a1a1a;border-radius:44px;box-shadow:0 30px 80px rgba(0,0,0,0.6);overflow:hidden;position:relative;}
.phone .screen{background:var(--chalk);height:760px;max-height:78vh;overflow:hidden;position:relative;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;}
.phone .m-scroll{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.phone .m-scroll.bare{overflow:hidden;padding:0;display:flex;flex-direction:column;}
.m-liveframe{flex:1 1 auto;width:100%;border:0;display:block;background:var(--chalk);min-height:0;}
.m-livestrip{flex:0 0 auto;display:flex;align-items:center;gap:10px;width:100%;background:var(--iron);color:#fff;border:0;border-bottom:1px solid var(--graphite);padding:11px 13px;cursor:pointer;text-align:left;font-family:inherit;}
.m-livestrip.due{background:var(--electric);border-bottom-color:var(--electric-deep);}
.m-livestrip .ls-ic{flex:0 0 auto;width:27px;height:27px;border-radius:7px;background:rgba(255,255,255,0.14);display:flex;align-items:center;justify-content:center;}
.m-livestrip .ls-t{flex:1 1 auto;min-width:0;font-family:var(--font-cond);font-weight:800;font-size:12.5px;letter-spacing:0.02em;text-transform:uppercase;line-height:1.12;}
.m-livestrip .ls-cta{flex:0 0 auto;font-family:var(--font-mono);font-size:9.5px;font-weight:700;letter-spacing:0.09em;text-transform:uppercase;background:rgba(255,255,255,0.16);padding:5px 9px;border-radius:5px;}
.m-livestrip.due .ls-cta{background:rgba(255,255,255,0.26);}
/* check-in overlay over the live app */
.m-liveover{position:absolute;inset:0;background:var(--chalk);z-index:60;display:flex;flex-direction:column;}
.m-liveover .lo-bar{flex:0 0 auto;background:var(--iron);color:#fff;display:flex;align-items:center;gap:11px;padding:14px 14px;border-bottom:1px solid var(--graphite);}
.m-liveover .lo-x{flex:0 0 auto;width:34px;height:34px;border-radius:8px;background:var(--steel);border:1px solid var(--graphite);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.m-liveover .lo-h{font-family:var(--font-cond);font-weight:900;font-size:19px;text-transform:uppercase;letter-spacing:0.03em;line-height:1;}
.m-liveover .lo-sub{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.05em;color:var(--silver);}
.m-liveover .lo-scroll{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.phone .notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:130px;height:26px;background:#000;border-radius:0 0 16px 16px;z-index:50;}

/* check-in nudge — login notification, dismissible (Phase 2 reminders) */
@keyframes nudgeIn{from{opacity:0;transform:translateY(-14px);}to{opacity:1;transform:none;}}
.m-nudge{position:absolute;top:64px;left:10px;right:10px;z-index:45;display:flex;gap:11px;align-items:flex-start;background:var(--iron);border:1px solid var(--graphite);padding:12px 12px 13px;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,0.4);animation:nudgeIn 260ms var(--ease);}
.m-nudge::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--electric);}
.m-nudge:active{transform:translateY(1px);}
.m-nudge .nic{flex:0 0 auto;width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:var(--electric);color:#fff;}
.m-nudge .ntx{flex:1 1 auto;min-width:0;}
.m-nudge .nt{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.03em;text-transform:uppercase;color:#fff;line-height:1.05;}
.m-nudge .nd{font-size:11.5px;line-height:1.45;color:var(--silver-2);margin-top:4px;text-wrap:pretty;}
.m-nudge .nx{flex:0 0 auto;background:none;border:none;color:var(--silver);cursor:pointer;padding:3px;margin:-3px -3px 0 0;transition:color 120ms var(--ease);}
.m-nudge .nx:hover{color:#fff;}

/* member app surfaces (light, matching mia-app.html) */
.m-bar{position:sticky;top:0;z-index:20;background:var(--iron);color:#fff;padding:16px 20px 15px;flex:0 0 auto;display:flex;align-items:center;gap:13px;}
.m-bar-id{flex:1 1 auto;min-width:0;}
.m-bar .m-eyebrow{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:#6AA4F4;}
.m-bar .m-h{font-family:var(--font-cond);font-weight:900;font-size:24px;letter-spacing:0.03em;text-transform:uppercase;line-height:1;margin-top:4px;}
.m-body{padding:18px;}
.m-card{background:#fff;border:1px solid var(--plate);border-radius:8px;padding:18px;margin-bottom:15px;}
.m-card.stripe{border-top:3px solid var(--electric);}
.m-card .m-ct{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);margin-bottom:4px;}
.m-card .m-cd{font-size:12.5px;color:#666;line-height:1.5;}
.m-macros{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--plate);border:1px solid var(--plate);border-radius:6px;overflow:hidden;margin-top:4px;}
.m-macros .mm{background:#fff;padding:12px 6px;text-align:center;}
.m-macros .mm .l{font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:uppercase;color:#999;}
.m-macros .mm .v{font-family:var(--font-cond);font-weight:900;font-size:22px;color:var(--iron);line-height:1;margin-top:5px;}
.m-macros .mm.hl .v{color:var(--electric);}

.m-notice{background:var(--iron);border-radius:8px;padding:16px;margin-bottom:15px;position:relative;overflow:hidden;color:#fff;}
.m-notice::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--electric);}
.m-notice .m-ne{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:#6AA4F4;margin-bottom:9px;}
.m-notice .m-nt{font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:0.02em;text-transform:uppercase;line-height:1.05;}
.m-notice .m-nd{font-size:12.5px;color:var(--silver-2);line-height:1.5;margin-top:8px;}

.m-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:var(--electric);color:#fff;border:none;border-radius:6px;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.05em;text-transform:uppercase;padding:14px;min-height:50px;cursor:pointer;margin-top:14px;transition:background 120ms var(--ease);}
.m-btn:active{background:var(--electric-deep);}
.m-btn.ghost{background:#fff;color:var(--iron);border:1px solid var(--plate);margin-top:10px;}
.m-btn svg{width:17px;height:17px;}
.m-navgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}
.m-navgrid .m-navbtn:first-child{grid-column:1 / -1;}
.m-navbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:16px 10px;cursor:pointer;font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.04em;text-transform:uppercase;color:var(--iron);transition:all 120ms var(--ease);}
.m-navbtn:hover{border-color:var(--electric);color:var(--electric);}
.m-navbtn svg{color:var(--electric);}
.chart-keys{display:flex;gap:16px;margin-top:12px;}
.chart-keys .ck{display:flex;align-items:center;gap:7px;font-size:11px;color:#666;font-family:var(--font-mono);}
.chart-keys .ck i{width:14px;height:3px;border-radius:2px;flex:0 0 auto;}
.chart.dark .ck,.card-b .chart-keys .ck{color:var(--silver);}

/* ===== PROGRESS ▸ PERFORMANCE ===== */
.m-seg{display:flex;gap:6px;background:var(--chalk);border:1px solid var(--plate);border-radius:9px;padding:4px;margin-bottom:16px;}
.m-segb{flex:1;border:none;background:none;font-family:var(--font-cond);font-weight:800;text-transform:uppercase;letter-spacing:0.04em;font-size:12px;color:var(--steel);padding:9px 0;border-radius:6px;cursor:pointer;transition:all .12s;}
.m-segb.on{background:var(--electric);color:#fff;}
/* client summary */
.perf-sum{}
.perf-ringrow{display:flex;align-items:center;gap:16px;}
.perf-ring{position:relative;flex:0 0 auto;width:84px;height:84px;}
.perf-ring svg{width:84px;height:84px;display:block;}
.perf-ringc{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);}
.perf-ringc b{font-size:23px;font-weight:900;color:var(--iron);line-height:1;letter-spacing:-0.01em;}
.perf-ringc span{font-size:14px;font-weight:700;color:var(--steel);}
.perf-owned{font-family:var(--font-cond);font-weight:800;text-transform:uppercase;letter-spacing:0.02em;font-size:16px;color:var(--iron);}
.perf-owned b{color:var(--electric);font-size:21px;font-weight:900;}
.perf-sumr{flex:1 1 auto;}
.perf-pct{font-family:var(--font-cond);font-weight:900;font-size:34px;color:var(--electric);line-height:0.9;display:flex;align-items:baseline;gap:8px;}
.perf-pct span{font-family:var(--font-body);font-weight:600;font-size:12px;color:var(--steel);text-transform:none;letter-spacing:0;}
.perf-next{margin-top:8px;display:flex;flex-direction:column;gap:2px;}
.perf-next .lbl{font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:var(--steel);}
.perf-next .val{font-family:var(--font-cond);font-weight:800;text-transform:uppercase;font-size:15px;color:var(--iron);letter-spacing:0.02em;}
.perf-achhd{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px;}
.perf-achhd>span:first-child{font-family:var(--font-cond);font-weight:800;text-transform:uppercase;letter-spacing:0.04em;font-size:14px;color:var(--iron);}
.perf-achct{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--steel);}
.perf-cats{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-top:18px;}
.perf-cat .pc-top{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--steel);margin-bottom:5px;}
.perf-cat .pc-top span{font-family:var(--font-mono);letter-spacing:0.03em;text-transform:uppercase;font-size:9.5px;}
.perf-cat .pc-top b{font-family:var(--font-cond);font-size:13px;color:var(--iron);}
.perf-cat .pc-bar{height:5px;background:var(--chalk);border:1px solid var(--plate);border-radius:4px;overflow:hidden;}
.perf-cat .pc-bar i{display:block;height:100%;background:var(--electric);}
/* timeline */
.perf-cap{font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;text-transform:uppercase;color:#aaa;text-align:center;margin-top:8px;}
.perf-log{margin-top:14px;display:flex;flex-direction:column;}
.perf-logrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #EFEFEF;font-size:13px;}
.perf-logrow:last-child{border-bottom:none;}
.perf-logrow .pl-ic{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;}
.perf-logrow .pl-nm{flex:1 1 auto;font-weight:700;color:var(--iron);}
.perf-logrow .pl-cat{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;letter-spacing:0.03em;text-transform:uppercase;color:#bbb;}
.perf-logrow .pl-dt{flex:0 0 auto;font-family:var(--font-mono);font-size:10px;color:var(--steel);min-width:48px;text-align:right;}
.perf-empty{font-size:12.5px;color:var(--steel);line-height:1.5;padding:8px 0;}
/* coach dark variants */
.card-b .perf-owned{color:#fff;}
.card-b .perf-owned b{color:#2A7FE0;}
.card-b .perf-achhd>span:first-child{color:#fff;}
.card-b .perf-ringc b{color:#fff;}
.card-b .perf-ringc span{color:var(--silver);}
.card-b .perf-pct{color:#2A7FE0;}
.card-b .perf-next .val,.card-b .perf-cat .pc-top b{color:#fff;}
.card-b .perf-logrow{border-bottom-color:#242424;}
.card-b .perf-logrow .pl-nm{color:#e8ecf1;}
.card-b .perf-logrow .pl-dt{color:var(--silver);}
.card-b .perf-logrow .pl-cat{color:#6a7280;}
.card-b .perf-cat .pc-bar,.card-b .perf-cat .pc-top,.card-b .m-seg{background:transparent;}
.perf-coachhdr{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;}
.perf-coachhdr .pch-big{font-family:var(--font-cond);font-weight:900;font-size:30px;color:#fff;line-height:1;}
.perf-coachhdr .pch-lbl{font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);margin-top:4px;}
.perf-coachhdr .pch-next{text-align:right;}
.perf-coachhdr .pch-nl{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);}
.perf-coachhdr .pch-nv{display:block;font-family:var(--font-cond);font-weight:800;text-transform:uppercase;font-size:16px;color:var(--electric);margin-top:3px;}
.m-goalbar{height:8px;background:var(--chalk);border:1px solid var(--plate);border-radius:5px;overflow:hidden;}
.m-goalbar i{display:block;height:100%;background:var(--electric);}
.m-goalrow{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--chalk);}
.m-goalrow:last-child{border-bottom:none;}
.m-goalrow .box{flex:0 0 auto;width:20px;height:20px;border:1.5px solid var(--plate);border-radius:5px;display:flex;align-items:center;justify-content:center;color:#fff;}
.m-goalrow.owned .box{background:var(--turf);border-color:var(--turf);}
.m-goalrow .gn{flex:1 1 auto;font-family:var(--font-body);font-weight:600;font-size:13.5px;color:#888;}
.m-goalrow.owned .gn{color:var(--iron);}
.m-goalrow.next .gn{color:var(--iron);}
.m-goalrow .gt{font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:uppercase;color:var(--turf);border:1px solid var(--turf);border-radius:999px;padding:3px 8px;}
.m-goalrow .gt.next{color:var(--electric);border-color:var(--electric);}
.m-histrow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:14px 15px;margin-bottom:10px;cursor:pointer;transition:border-color 120ms var(--ease);}
.m-histrow:hover{border-color:var(--electric);}
.m-histrow .hr-l{flex:1 1 auto;}
.m-histrow .hr-t{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1;}
.m-histrow .hr-d{font-family:var(--font-mono);font-size:11px;color:#999;margin-top:5px;}
.m-histrow .hr-tag{font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;text-transform:uppercase;color:var(--electric);border:1px solid var(--electric);border-radius:999px;padding:4px 8px;flex:0 0 auto;}

/* ===== program drawer + hamburger ===== */
.m-bar-top{display:flex;align-items:center;gap:12px;margin-bottom:6px;}
.m-burger{width:34px;height:34px;flex:0 0 auto;background:rgba(255,255,255,0.08);border:1px solid var(--graphite);border-radius:7px;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.m-drawer{position:absolute;inset:0;z-index:70;pointer-events:none;}
.m-drawer.open{pointer-events:auto;}
.m-drawer-scrim{position:absolute;inset:0;background:rgba(0,0,0,0.5);opacity:0;transition:opacity 200ms var(--ease);}
.m-drawer.open .m-drawer-scrim{opacity:1;}
/* mia-app "Your Plan" drawer — light surface, profile block, circular nav icons */
.m-drawer-panel{position:absolute;top:0;bottom:0;left:0;width:82%;max-width:340px;background:var(--white);border-right:1px solid var(--plate);display:flex;flex-direction:column;transform:translateX(-102%);transition:transform 240ms var(--ease);}
.m-drawer.open .m-drawer-panel{transform:translateX(0);}
.m-drawer-head{display:flex;align-items:center;gap:13px;padding:22px 18px 18px;border-bottom:1px solid var(--plate);}
.m-drawer-av{width:46px;height:46px;flex:0 0 auto;border-radius:50%;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-weight:900;font-size:22px;}
.m-drawer-eyebrow{font-family:var(--font-cond);font-weight:900;font-size:20px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1;}
.m-drawer-name{font-family:var(--font-mono);font-size:11px;color:#888;margin-top:5px;letter-spacing:0.02em;}
.m-drawer-x{margin-left:auto;width:32px;height:32px;background:var(--white);border:1px solid var(--plate);border-radius:6px;color:var(--iron);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;}
.m-drawer-list{flex:1 1 auto;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:2px;}
.m-drawer-lbl{font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:#aaa;padding:6px 12px 8px;}
.m-drawitem{width:100%;display:flex;align-items:center;gap:14px;background:none;border:none;border-radius:8px;padding:13px 12px;cursor:pointer;text-align:left;transition:background 120ms var(--ease);}
.m-drawitem:hover:not(:disabled){background:var(--chalk);}
.m-drawitem.on{background:var(--chalk);}
.m-drawitem.locked{opacity:0.45;cursor:not-allowed;}
.m-drawitem .di-ic{width:42px;height:42px;flex:0 0 auto;border-radius:50%;background:var(--white);border:1px solid var(--plate);display:flex;align-items:center;justify-content:center;color:var(--iron);}
.m-drawitem.on .di-ic{background:var(--electric);border-color:var(--electric);color:#fff;}
.m-drawitem.complete .di-ic{color:var(--turf);}
.m-drawitem .di-b{flex:1 1 auto;min-width:0;}
.m-drawitem .di-n{display:block;font-family:var(--font-cond);font-weight:900;font-size:18px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1;}
.m-drawitem.on .di-n{color:var(--electric);}
.m-drawitem .di-s{display:block;font-size:12px;color:#888;margin-top:4px;}
.m-drawitem .di-lock{color:#bbb;flex:0 0 auto;}
.m-drawitem .di-flag{font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--electric);flex:0 0 auto;}
.m-drawitem .di-chev{color:#c4c4c4;flex:0 0 auto;display:flex;}
.m-drawitem .di-tag.done{width:22px;height:22px;flex:0 0 auto;border-radius:50%;background:var(--turf);color:#fff;display:flex;align-items:center;justify-content:center;}
.m-drawer-foot{padding:14px 18px;border-top:1px solid var(--plate);font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.04em;color:#aaa;}

/* ===== on-ramp home ===== */
.m-onrampeb{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--electric);}
.m-wkscale{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--font-mono);font-size:10px;color:#888;}
.m-wgoal{display:flex;align-items:flex-start;gap:11px;width:100%;text-align:left;background:#fff;border:1px solid var(--plate);border-radius:7px;padding:13px 13px;margin-bottom:8px;cursor:pointer;transition:all 100ms var(--ease);}
.m-wgoal:last-child{margin-bottom:0;}
.m-wgoal.on{border-color:var(--turf);background:rgba(22,196,106,0.06);}
.m-wgoal .box{flex:0 0 auto;width:22px;height:22px;border:1.5px solid var(--plate);border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;margin-top:1px;}
.m-wgoal.on .box{background:var(--turf);border-color:var(--turf);}
.m-wgoal .wg-t{display:block;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.1;}
.m-wgoal .wg-d{display:block;font-size:12px;color:#777;line-height:1.4;margin-top:4px;}
.m-miles{display:flex;gap:8px;margin-bottom:16px;}
.m-mile{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px 6px;border:1px solid var(--plate);border-radius:8px;background:#fff;}
.m-mile .mm-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--plate);display:flex;align-items:center;justify-content:center;color:#fff;}
.m-mile .mm-l{font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.03em;text-transform:uppercase;color:#999;}
.m-mile .mm-x{font-family:var(--font-mono);font-size:8px;letter-spacing:0.04em;text-transform:uppercase;color:#bbb;}
.m-mile.done{border-color:var(--turf);}
.m-mile.done .mm-dot{background:var(--turf);border-color:var(--turf);}
.m-mile.done .mm-l{color:var(--iron);}
.m-mile.next{border-color:var(--electric);}
.m-mile.next .mm-dot{border-color:var(--electric);}
.m-mile.next .mm-l,.m-mile.next .mm-x{color:var(--electric);}
.m-photo{display:flex;align-items:center;gap:11px;width:100%;background:#fff;border:1px dashed var(--plate);border-radius:7px;padding:14px;cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:13.5px;color:#555;}
.m-photo.on{border-style:solid;border-color:var(--turf);color:var(--iron);}
.m-photo .box{width:22px;height:22px;flex:0 0 auto;border:1.5px solid var(--plate);border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;}
.m-photo.on .box{background:var(--turf);border-color:var(--turf);}
.m-goalref{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #EFEFEF;font-size:13px;}
.m-goalref:last-child{border-bottom:none;}
.m-goalref .gr-ic{flex:0 0 auto;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--plate);display:flex;align-items:center;justify-content:center;color:#fff;}
.m-goalref.on .gr-ic{background:var(--turf);border-color:var(--turf);}
.m-goalref .gr-t{flex:1 1 auto;color:var(--iron);font-weight:600;}
.m-goalref .gr-s{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;text-transform:uppercase;color:#bbb;}
.m-goalref.on .gr-s{color:#16c46a;}

/* ===== bottom tab bar ===== */
.m-tabbar{flex:0 0 auto;z-index:30;background:var(--iron);border-top:1px solid var(--graphite);display:grid;grid-template-columns:repeat(4,1fr);padding:7px 2px calc(9px + env(safe-area-inset-bottom));}
.m-tab{background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px 2px;color:var(--silver);cursor:pointer;position:relative;font-family:inherit;}
.m-tab .tl{font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.01em;line-height:1;}
.m-tab.on{color:var(--electric);}
.m-tab .tdot{position:absolute;top:-2px;right:calc(50% - 20px);width:9px;height:9px;border-radius:50%;background:var(--electric);border:1.5px solid var(--iron);}
.m-tab.locked{color:#4a4a4a;}
.m-tab .tlk{position:absolute;top:-1px;right:calc(50% - 19px);color:#6a6a6a;}
/* completion tick — green medallion on a finished module's tab icon */
.m-tab .tdone{position:absolute;top:-4px;right:calc(50% - 20px);width:14px;height:14px;border-radius:50%;background:var(--turf);border:1.5px solid var(--iron);display:flex;align-items:center;justify-content:center;color:#fff;}
.m-tab .tdone svg{width:8px;height:8px;display:block;}

/* ===== Goals tab: morphing bottom bar (main tabs <-> discipline switch) ===== */
.m-tabbar.morph{position:relative;display:block;min-height:64px;overflow:hidden;padding:0;}
.m-navrow{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);padding:7px 2px 9px;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .2s cubic-bezier(.2,.7,.2,1);}
.m-navrow.main{transform:translateY(0);opacity:1;}
.m-navrow.disc{transform:translateY(100%);opacity:0;pointer-events:none;}
.m-tabbar.morph.disc-on .m-navrow.main{transform:translateY(-100%);opacity:0;pointer-events:none;}
.m-tabbar.morph.disc-on .m-navrow.disc{transform:translateY(0);opacity:1;pointer-events:auto;}
/* Home key sits left of the three disciplines, set apart by a hairline */
.m-navrow.disc .disc-home{position:relative;}
.m-navrow.disc .disc-home::after{content:"";position:absolute;top:13px;bottom:13px;right:-1px;width:1px;background:var(--graphite);}
/* unlock-count badge on a discipline icon */
.m-tab .tbadge{position:absolute;top:-6px;right:calc(50% - 22px);min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--electric);color:#fff;border:1.5px solid var(--iron);font-family:var(--font-body);font-weight:800;font-size:9px;line-height:1;display:flex;align-items:center;justify-content:center;}
@media (prefers-reduced-motion: reduce){.m-navrow{transition:opacity .12s linear;}.m-navrow.main,.m-navrow.disc{transform:none;}}

/* ===== home tab: pick up where you left off ===== */
.m-resume{background:var(--iron);color:#fff;border:none;border-radius:10px;padding:18px 17px;width:100%;text-align:left;position:relative;overflow:hidden;display:block;}
button.m-resume{cursor:pointer;}
.m-resume::before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--electric);}
.m-resume .r-eb{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:#6AA4F4;}
.m-resume .r-t{font-family:var(--font-cond);font-weight:900;font-size:23px;letter-spacing:0.02em;text-transform:uppercase;line-height:1.02;margin-top:8px;}
.m-resume .r-s{font-size:12.5px;color:var(--silver-2);margin-top:8px;line-height:1.4;}
.m-resume .r-cta{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;color:#fff;background:var(--electric);padding:9px 14px;border-radius:6px;border:none;cursor:pointer;}
.m-resume .r-prog{display:flex;gap:5px;margin-top:13px;}
.m-resume .r-pseg{flex:1 1 0;height:5px;border-radius:3px;background:rgba(255,255,255,0.14);}
.m-resume .r-pseg.on{background:var(--electric);}

/* home: pick up where you left off — one card per started program (dark, deep-links) */
.m-resume-wrap{display:block;}
.m-resume-wrap .r-eb{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:#6AA4F4;margin:0 2px 10px;}
.resume-card{display:block;width:100%;text-align:left;background:var(--iron);color:#fff;border:none;border-radius:10px;padding:15px 16px 14px;margin-bottom:9px;position:relative;overflow:hidden;cursor:pointer;font:inherit;transition:transform 80ms var(--ease);}
.resume-card::before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--electric);}
.resume-card:active{transform:translateY(1px);}
.rc-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px;}
.rc-name{font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:0.03em;text-transform:uppercase;line-height:1;}
.rc-lv{flex:0 0 auto;font-family:var(--font-body);font-weight:700;font-size:8.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--silver-2);border:1px solid var(--graphite);border-radius:20px;padding:4px 9px;white-space:nowrap;}
.rc-track{display:flex;gap:3px;height:8px;margin-bottom:10px;}
.rc-seg{flex:1;position:relative;background:rgba(255,255,255,0.12);border-radius:3px;overflow:hidden;}
.rc-fill{position:absolute;top:0;left:0;bottom:0;background:var(--electric);transition:width .4s var(--ease);}
.rc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.rc-stat{font-size:11.5px;color:var(--silver-2);}
.rc-stat b{font-family:var(--font-mono);font-weight:700;color:#6AA4F4;}
.rc-cta{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;color:#fff;background:var(--electric);padding:7px 12px;border-radius:6px;flex:0 0 auto;}
.rc-more{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin:2px 0 0;padding:11px;background:transparent;border:1px solid var(--plate);border-radius:8px;font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#666;cursor:pointer;transition:border-color 120ms,color 120ms;}
.rc-more:hover{border-color:var(--electric);color:var(--electric);}
.m-countdown{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:15px 16px;}
.m-countdown.due{border-color:var(--electric);border-left:3px solid var(--electric);}
.m-cd-n{flex:0 0 auto;width:52px;height:52px;border-radius:9px;background:var(--chalk);border:1px solid var(--plate);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;}
.m-cd-n b{font-family:var(--font-cond);font-weight:900;font-size:24px;color:var(--iron);}
.m-cd-n span{font-family:var(--font-mono);font-size:8px;letter-spacing:0.06em;text-transform:uppercase;color:var(--silver);margin-top:2px;}
.m-countdown.due .m-cd-n{background:var(--electric);border-color:var(--electric);}
.m-countdown.due .m-cd-n b,.m-countdown.due .m-cd-n span{color:#fff;}
.m-cd-b .t{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.m-cd-b .d{font-size:12px;color:#777;margin-top:5px;line-height:1.4;}
.m-secttl{font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.13em;text-transform:uppercase;color:#8A93A0;margin:22px 2px 11px;display:flex;align-items:center;gap:12px;}
.m-secttl::after{content:"";flex:1;height:1px;background:var(--plate);}
/* continuum bar on the light home card (component ships dark-themed) */
.cont-light .contbar{margin-top:26px;}
.cont-light .contbar .track{border-color:var(--plate);}
.cont-light .contbar .marker::after{color:var(--iron);}
.cont-light .contbar .marker.ghost::after{color:#999;}
.cont-light .contbar .scalerow{color:#999;}

/* locked tab screen */
.m-locked{display:flex;flex-direction:column;align-items:center;text-align:center;padding:44px 26px;}
.m-locked .lk-ic{width:62px;height:62px;border-radius:50%;background:#fff;border:1px solid var(--plate);display:flex;align-items:center;justify-content:center;color:var(--silver);margin-bottom:18px;}
.m-locked .lk-t{font-family:var(--font-cond);font-weight:900;font-size:21px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.m-locked .lk-d{font-size:13px;color:#777;line-height:1.55;margin-top:10px;max-width:250px;}

/* on-ramp complete glance stats */
.m-glance{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:4px;}
.m-glance .g{background:#fff;border:1px solid var(--plate);border-radius:8px;padding:14px;}
.m-glance .g .gl{font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:var(--silver);}
.m-glance .g .gv{font-family:var(--font-cond);font-weight:900;font-size:26px;letter-spacing:0.01em;color:var(--iron);line-height:1;margin-top:7px;}
.m-glance .g .gv small{font-size:13px;color:#999;font-weight:700;}
.m-glance .g .gd{font-size:10.5px;color:#16c46a;font-weight:700;margin-top:5px;}

/* training-plan glance (home) */
.m-week{display:flex;gap:7px;}
.m-week .wd{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:7px;}
.m-week .wl{font-family:var(--font-cond);font-weight:800;font-size:12px;letter-spacing:0.04em;color:#9aa1aa;text-transform:uppercase;}
.m-week .wb{width:100%;height:44px;border-radius:8px;background:#EEF0F2;}
.m-week .wd.rest .wl{color:#c4c9cf;}
.m-week .wd.rest .wb{background:repeating-linear-gradient(135deg,#F4F5F7,#F4F5F7 5px,#EDEFF1 5px,#EDEFF1 10px);}
.wb.t-crossfit{background:#075DC6;}
.wb.t-zone2{background:#2C7A88;}
.wb.t-focus{background:#B0730C;}
.wb.t-contrast{background:#5B5E8C;}
.m-weekfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap;}
.wk-legend{display:flex;flex-wrap:wrap;gap:14px;}
.wk-legend span{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--iron);font-weight:600;}
.wk-legend i{width:11px;height:11px;border-radius:3px;flex:0 0 auto;}
.wk-count{font-family:var(--font-mono);font-size:10px;letter-spacing:0.05em;text-transform:uppercase;color:var(--steel);white-space:nowrap;}

/* ===== full training plan (Train tab) ===== */
.tp-tally{display:flex;gap:8px;}
.tp-tallyc{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:6px;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:11px 4px;}
.tp-ic{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff;}
.tp-tallyc .tp-n{font-family:var(--font-cond);font-weight:900;font-size:19px;color:var(--iron);line-height:1;}
.tp-tallyc .tp-l{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--silver);}
.tp-week{display:flex;flex-direction:column;}
.tp-day{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--chalk-2,#ECECEC);}
.tp-day:last-child{border-bottom:0;}
.tp-day.rest{opacity:0.6;}
.tp-dl{flex:0 0 52px;}
.tp-dl .dd{font-family:var(--font-cond);font-weight:900;font-size:15px;text-transform:uppercase;color:var(--iron);letter-spacing:0.03em;line-height:1;}
.tp-dl .dn{font-family:var(--font-mono);font-size:8.5px;color:var(--silver);margin-top:3px;}
.tp-sess{flex:1 1 auto;display:flex;flex-wrap:wrap;gap:6px;}
.tp-pill{display:inline-flex;align-items:center;gap:6px;color:#fff;font-family:var(--font-body);font-weight:700;font-size:10.5px;letter-spacing:0.05em;text-transform:uppercase;padding:6px 10px;border-radius:5px;}
.tp-rest{font-family:var(--font-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--silver);}
.tp-typec{display:flex;gap:13px;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:14px;margin-bottom:9px;position:relative;overflow:hidden;}
.tp-typic{flex:0 0 auto;width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;}
.tp-typeb{flex:1 1 auto;min-width:0;}
.tp-typen{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.tp-typed{font-size:12.5px;line-height:1.45;color:#5a5a5a;margin-top:5px;text-wrap:pretty;}
.tp-typef{font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:var(--electric);margin-top:8px;}

/* ===== Goals tab · "Your Standards" panel (mia-app) ===== */
.tg-eyebrow{font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--electric);margin-bottom:8px;}
.tg-h{font-family:var(--font-cond);font-weight:900;font-size:40px;line-height:0.92;letter-spacing:0.01em;text-transform:uppercase;color:var(--iron);margin-bottom:12px;}
.tg-lead{font-size:13px;line-height:1.5;color:#5a5a5a;margin-bottom:16px;text-wrap:pretty;}
.tg-next{background:var(--iron);border-radius:10px;padding:18px 18px 16px;position:relative;overflow:hidden;margin-bottom:14px;}
.tg-next::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--electric);}
.tg-next.allrxd::before{background:var(--turf);}
.tg-next-eb{font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:#6AA4F4;margin-bottom:9px;}
.tg-next-n{font-family:var(--font-cond);font-weight:900;font-size:26px;line-height:1;letter-spacing:0.02em;text-transform:uppercase;color:#fff;}
.tg-next-b{font-size:12.5px;line-height:1.5;color:#b8b8b8;margin-top:9px;text-wrap:pretty;}
.tg-next-cat{display:inline-block;font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,0.12);border:1px solid var(--graphite);border-radius:4px;padding:4px 8px;margin-top:12px;}
.tg-meter{display:flex;gap:8px;margin-bottom:6px;}
.tg-mc{flex:1 1 0;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:12px 6px;text-align:center;}
.tg-mc-n{font-family:var(--font-cond);font-weight:900;font-size:22px;color:var(--iron);line-height:1;}
.tg-mc-n span{color:var(--silver);font-size:14px;}
.tg-mc-l{font-family:var(--font-mono);font-size:8px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);margin-top:6px;}

/* real-engine Goals panel embed */
.m-scroll.frame{padding:0!important;position:relative;overflow:hidden;}
.goals-frame{position:absolute;inset:0;width:100%;height:100%;border:none;display:block;background:#fff;}

/* On-Ramp Goals tab — the real board, greyed until graduation */
.goals-lock{position:absolute;inset:0;display:flex;flex-direction:column;}
.goals-lockbar{display:flex;gap:13px;align-items:flex-start;padding:15px 16px;background:var(--iron);color:#fff;flex:0 0 auto;z-index:2;border-bottom:1px solid var(--graphite);}
.goals-lockbar .glb-ic{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.09);border:1px solid rgba(255,255,255,0.18);display:flex;align-items:center;justify-content:center;color:#fff;flex:0 0 auto;}
.goals-lockbar .glb-t{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;line-height:1.1;}
.goals-lockbar .glb-d{font-size:11.5px;color:#9aa3ad;line-height:1.5;margin-top:4px;}
.goals-lockframe{position:relative;flex:1 1 auto;min-height:0;pointer-events:none;user-select:none;filter:grayscale(1);opacity:0.55;}

/* week-lesson sticky mark-complete */
.m-markwrap{position:sticky;bottom:-19px;z-index:8;margin:16px -4px -6px;padding:12px 4px 18px;background:linear-gradient(180deg,rgba(245,245,245,0) 0%,var(--chalk) 38%);}
.m-markbtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:var(--electric);color:#fff;border:none;border-radius:8px;padding:15px 16px;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.05em;text-transform:uppercase;cursor:pointer;box-shadow:0 8px 22px rgba(7,93,198,0.32);transition:background 120ms var(--ease);}
.m-markbtn:active{background:var(--electric-deep);transform:translateY(1px);}
.m-markbtn.on{background:var(--turf);box-shadow:0 8px 22px rgba(22,196,106,0.28);}
.m-markbtn .box{width:20px;height:20px;border-radius:5px;border:2px solid rgba(255,255,255,0.75);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}

/* home: collapsible weekly-goals card */
.m-goalscard .gc-head{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;padding:0;cursor:pointer;text-align:left;}
.m-goalscard .gc-b{flex:1 1 auto;min-width:0;}
.m-goalscard .gc-s{font-size:11.5px;color:#777;margin-top:4px;line-height:1.4;}
.m-goalscard .gc-n{font-family:var(--font-cond);font-weight:900;font-size:20px;color:var(--electric);flex:0 0 auto;line-height:1;}
.m-goalscard .gc-n.all{color:var(--turf);}
.m-goalscard .gc-list{margin-top:14px;border-top:1px solid #ECECEC;padding-top:14px;}
/* Collapsed on-ramp goals card is highlighted to pull the client's eye toward the week's work. */
.m-goalscard{transition:background .25s ease,border-color .25s ease,box-shadow .25s ease;}
.m-goalscard .gc-chev{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--chalk);color:var(--electric);display:flex;align-items:center;justify-content:center;}
.m-goalscard.nudge{background:#F1F6FD;border-color:rgba(7,93,198,0.32);box-shadow:0 0 0 3px rgba(7,93,198,0.10);animation:gc-pulse 2.4s ease-in-out infinite;}
.m-goalscard.nudge .gc-chev{background:var(--electric);color:#fff;}
.m-goalscard.done{border-color:rgba(22,196,106,0.40);}
.m-goalscard.done .gc-chev{background:var(--turf);color:#fff;}
@keyframes gc-pulse{0%,100%{box-shadow:0 0 0 3px rgba(7,93,198,0.10);}50%{box-shadow:0 0 0 5px rgba(7,93,198,0.18);}}
@media (prefers-reduced-motion:reduce){.m-goalscard.nudge{animation:none;}}
.m-goalbar.done i{background:var(--turf);}

/* next-goal card as a tappable button */
.tg-next{display:block;width:100%;text-align:left;border:none;cursor:pointer;}
.tg-next-go{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:#6AA4F4;margin-top:12px;}
.tg-next-cat + .tg-next-go{margin-left:10px;}

/* segmented tabs */
.tg-seg{position:sticky;top:-1px;z-index:6;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:var(--chalk);margin:6px -16px 12px;padding:11px 16px;border-bottom:1px solid var(--plate);}
.tg-seg button{font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.01em;text-transform:uppercase;padding:10px 3px;border:1px solid var(--plate);border-radius:6px;background:var(--white);color:var(--iron);cursor:pointer;transition:all 120ms var(--ease);}
.tg-seg button:hover{border-color:var(--electric);}
.tg-seg button.on{background:var(--electric);border-color:var(--electric);color:#fff;}

/* movement rows */
.tg-rows{display:flex;flex-direction:column;gap:8px;}
.tg-row{display:flex;align-items:stretch;gap:10px;}
.tg-box{flex:0 0 auto;width:26px;height:26px;align-self:center;border-radius:50%;border:2px solid var(--plate);background:var(--white);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 120ms var(--ease);}
.tg-box:hover{border-color:var(--electric);}
.tg-row.owned .tg-box{background:var(--turf);border-color:var(--turf);}
.tg-row-main{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:11px;background:var(--white);border:1px solid var(--plate);border-radius:8px;padding:12px 13px;cursor:pointer;text-align:left;transition:border-color 120ms var(--ease);}
.tg-row-main:hover{border-color:var(--electric);}
.tg-row-b{flex:1 1 auto;min-width:0;}
.tg-row-n{display:block;font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.tg-row.owned .tg-row-n{color:var(--silver);}
.tg-row-g{display:block;font-family:var(--font-mono);font-size:10px;color:#999;margin-top:5px;letter-spacing:0.02em;}
.tg-row-tag{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:var(--turf);}
.tg-row-tag.next{color:var(--electric);}

/* ===== movement program (drill-down) ===== */
.pg-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;font-family:var(--font-mono);font-size:11px;letter-spacing:0.04em;text-transform:uppercase;color:var(--electric);cursor:pointer;padding:0;margin-bottom:14px;}
.pg-title-row{display:flex;align-items:flex-start;gap:12px;}
.pg-eyebrow{font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--electric);margin-bottom:6px;}
.pg-title{font-family:var(--font-cond);font-weight:900;font-size:34px;line-height:0.95;letter-spacing:0.01em;text-transform:uppercase;color:var(--iron);flex:1 1 auto;}
.pg-mark{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;letter-spacing:0.05em;text-transform:uppercase;color:var(--iron);background:var(--white);border:1px solid var(--plate);border-radius:6px;padding:8px 11px;cursor:pointer;}
.pg-mark.on{background:var(--turf);border-color:var(--turf);color:#fff;}
.pg-blurb{font-size:13px;line-height:1.5;color:#5a5a5a;margin-top:11px;text-wrap:pretty;}
.pg-phases{display:flex;gap:7px;overflow-x:auto;margin:16px 0 4px;padding-bottom:4px;}
.pg-phase{flex:1 1 0;min-width:96px;background:var(--white);border:1px solid var(--plate);border-radius:8px;padding:10px 10px;cursor:pointer;text-align:left;}
.pg-phase.on{border-color:var(--electric);background:rgba(7,93,198,0.06);}
.pg-phase-tag{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--electric);}
.pg-phase-l{display:block;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);margin-top:4px;line-height:1;}
.pg-phase-body{margin-top:6px;}
.pg-focus{font-size:13px;line-height:1.55;color:#3a3a3a;margin:8px 0 14px;text-wrap:pretty;}
.pg-focus b{color:var(--iron);}
.pg-prereq{display:flex;flex-direction:column;gap:4px;background:var(--chalk);border-left:3px solid var(--electric);border-radius:0 7px 7px 0;padding:11px 13px;font-size:12.5px;line-height:1.45;color:#4a4a4a;margin-bottom:14px;}
.pg-prereq-l{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:var(--electric);}
.pg-prereq b{color:var(--iron);}
.pg-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-bottom:14px;}
.pg-meta-c{background:var(--white);border:1px solid var(--plate);border-radius:7px;padding:9px 11px;}
.pg-meta-k{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.05em;text-transform:uppercase;color:#999;}
.pg-meta-v{font-family:var(--font-cond);font-weight:900;font-size:15px;color:var(--iron);margin-top:3px;letter-spacing:0.01em;}
.pg-wc{background:var(--white);border:1px solid var(--plate);border-radius:8px;padding:12px 13px;margin-bottom:14px;}
.pg-wc-t{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:var(--electric);margin-bottom:8px;}
.pg-wc.cool .pg-wc-t{color:var(--t-zone2);}
.pg-wc-row{display:flex;align-items:baseline;gap:8px;padding:5px 0;border-top:1px solid var(--chalk);}
.pg-wc-row:first-of-type{border-top:none;}
.pg-wc-n{font-weight:700;font-size:12.5px;color:var(--iron);flex:1 1 auto;}
.pg-wc-s{font-size:11px;color:#999;flex:1 1 auto;}
.pg-wc-d{font-family:var(--font-mono);font-size:11px;color:var(--iron);flex:0 0 auto;}
.pg-sess-t{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.04em;text-transform:uppercase;color:var(--iron);margin:4px 0 10px;}
.pg-sessions{display:flex;flex-direction:column;gap:9px;}
.pg-sc{background:var(--white);border:1px solid var(--plate);border-radius:8px;padding:12px 13px;}
.pg-sc-top{display:flex;align-items:center;gap:8px;margin-bottom:7px;flex-wrap:wrap;}
.pg-sc-badge{font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:uppercase;color:#fff;background:var(--iron);border-radius:4px;padding:3px 7px;}
.pg-sc-focus{font-family:var(--font-mono);font-size:10px;color:var(--electric);text-transform:uppercase;letter-spacing:0.03em;}
.pg-sc-dose{margin-left:auto;font-family:var(--font-cond);font-weight:900;font-size:16px;color:var(--iron);}
.pg-sc-mv{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.pg-sc-cue{font-size:12.5px;line-height:1.45;color:#5a5a5a;margin-top:5px;}
.pg-sc-pass{display:flex;gap:7px;align-items:baseline;font-size:11.5px;color:#4a4a4a;margin-top:8px;padding-top:8px;border-top:1px solid var(--chalk);}
.pg-sc-pass span{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--turf);flex:0 0 auto;}
.pg-sc-acc{margin-top:9px;padding-top:9px;border-top:1px solid var(--chalk);display:flex;flex-direction:column;gap:5px;}
.pg-sc-accrow{display:flex;align-items:baseline;gap:7px;font-size:11.5px;}
.pg-sc-accn{font-weight:700;color:var(--iron);}
.pg-sc-accq{font-family:var(--font-mono);font-size:10.5px;color:var(--iron);}
.pg-sc-accsub{color:#999;flex:1 1 auto;text-align:right;}
.pg-sc-sets{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.pg-sc-set{font-family:var(--font-mono);font-size:10.5px;color:var(--iron);background:var(--chalk);border-radius:5px;padding:5px 8px;}
.pg-rx{display:flex;gap:9px;align-items:baseline;background:var(--iron);color:#fff;border-radius:8px;padding:12px 14px;margin-bottom:12px;font-size:13px;}
.pg-rx-l{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:#6AA4F4;}
.pg-rx b{color:#fff;}
.pg-note{background:var(--chalk);border-radius:8px;padding:14px;font-size:12.5px;line-height:1.5;color:#5a5a5a;}

/* check-in tab index */
.m-cisum{display:flex;gap:12px;margin:2px 0 4px;}
.m-cisum .s{flex:1 1 0;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:13px;text-align:center;}
.m-cisum .s .sl{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);}
.m-cisum .s .sv{font-family:var(--font-cond);font-weight:900;font-size:21px;color:var(--iron);line-height:1;margin-top:6px;}

/* member form */
.m-field{margin-bottom:16px;}
.m-field label{display:block;font-family:var(--font-body);font-weight:700;font-size:11px;letter-spacing:0.05em;text-transform:uppercase;color:#555;margin-bottom:7px;}
.m-inp{width:100%;background:#fff;border:1px solid var(--plate);border-radius:5px;color:var(--iron);font-family:var(--font-body);font-size:16px;padding:12px 13px;outline:none;}
.m-inp:focus{border-color:var(--electric);}
textarea.m-inp{resize:vertical;min-height:70px;line-height:1.5;}
.m-scale{display:flex;gap:4px;}
.m-scale button{flex:1 1 0;height:38px;border:1px solid var(--plate);background:#fff;color:#999;font-family:var(--font-mono);font-size:12px;font-weight:700;cursor:pointer;border-radius:3px;padding:0;}
.m-scale button.on{background:var(--electric);border-color:var(--electric);color:#fff;}
.m-ends{display:flex;justify-content:space-between;margin-top:6px;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:0.04em;color:#999;}
.chips-m{display:flex;flex-wrap:wrap;gap:6px;}
.chips-m.col{flex-direction:column;}
.chip-m{flex:0 1 auto;background:#fff;border:1px solid var(--plate);color:#555;font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.03em;text-transform:uppercase;padding:9px 12px;border-radius:4px;cursor:pointer;transition:all 100ms var(--ease);}
.chips-m.col .chip-m{text-align:left;font-family:var(--font-body);font-weight:600;letter-spacing:0;text-transform:none;font-size:13px;}
.chip-m.on{background:var(--electric);border-color:var(--electric);color:#fff;}
.m-lean{margin-top:12px;font-family:var(--font-mono);font-size:11.5px;color:#777;letter-spacing:0.02em;}
.m-lean b{color:var(--iron);font-weight:700;}
.m-planned{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--chalk);border:1px solid var(--plate);border-radius:6px;padding:12px 14px;}
.m-planned .pl{display:block;font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);}
.m-planned .ps{display:block;font-size:11px;color:#888;margin-top:2px;}
.m-planned .pv{font-family:var(--font-cond);font-weight:900;font-size:30px;line-height:1;color:var(--iron);flex:0 0 auto;}
.m-catlabel{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--electric);margin-bottom:8px;}
.m-rxdgrid{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.m-rxd{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--plate);border-radius:5px;padding:9px 10px;cursor:pointer;text-align:left;font-family:var(--font-body);font-weight:600;font-size:12.5px;color:#444;transition:all 100ms var(--ease);}
.m-rxd .box{flex:0 0 auto;width:19px;height:19px;border:1.5px solid var(--plate);border-radius:4px;display:flex;align-items:center;justify-content:center;color:#fff;}
.m-rxd.on{border-color:var(--electric);background:rgba(7,93,198,0.06);color:var(--iron);}
.m-rxd.on .box{background:var(--electric);border-color:var(--electric);}
.m-prrow{display:flex;gap:8px;align-items:center;margin-bottom:8px;}
.m-prrow .m-inp{flex:1 1 auto;}
.m-prx{flex:0 0 auto;width:40px;height:44px;background:#fff;border:1px solid var(--plate);border-radius:5px;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.m-prx:hover{border-color:var(--rust);color:var(--rust);}
.m-addpr{display:flex;align-items:center;gap:7px;background:none;border:1px dashed var(--plate);border-radius:5px;color:var(--electric);font-family:var(--font-cond);font-weight:900;font-size:12.5px;letter-spacing:0.04em;text-transform:uppercase;padding:10px 14px;cursor:pointer;width:100%;justify-content:center;margin-top:2px;}
.m-addpr:hover{border-color:var(--electric);background:rgba(7,93,198,0.04);}
.m-steplab{font-family:var(--font-mono);font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;color:#888;text-align:center;margin-bottom:14px;}
.m-wznav{display:flex;gap:10px;margin-top:14px;}
.m-wznav .m-btn{flex:1 1 auto;}
.m-step-dot i.done{background:var(--electric);}
.m-step-dot{display:flex;gap:6px;justify-content:center;margin:2px 0 4px;}
.m-step-dot i{width:7px;height:7px;border-radius:50%;background:var(--plate);}
.m-step-dot i.on{background:var(--electric);width:22px;border-radius:4px;}

.m-success{text-align:center;padding:34px 24px;}
.m-success .ok{width:70px;height:70px;margin:0 auto 18px;border-radius:50%;background:var(--turf);display:flex;align-items:center;justify-content:center;color:#fff;}
.m-success .ok svg{width:38px;height:38px;}
.m-success h2{font-family:var(--font-cond);font-weight:900;font-size:26px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.m-success p{font-size:13.5px;color:#666;line-height:1.55;margin-top:12px;}

/* coach message bubble in client view */
.m-coachmsg{background:#fff;border:1px solid var(--plate);border-left:3px solid var(--electric);border-radius:6px;padding:16px;}
.m-coachmsg .cm-from{display:flex;align-items:center;gap:9px;margin-bottom:11px;}
.m-coachmsg .cm-from .av{width:32px;height:32px;background:var(--iron);color:#fff;border-radius:3px;display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-weight:900;font-size:13px;}
.m-coachmsg .cm-from .nm{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.m-coachmsg .cm-from .rl{font-family:var(--font-mono);font-size:10px;color:#999;margin-top:3px;}
.m-coachmsg .cm-body{font-size:13.5px;color:#333;line-height:1.6;}
.m-coachmsg .cm-body .cm-p{margin:0 0 10px;color:#333;}
/* A coach reply renders as a lead line + "## Heading" section blocks — used in
   the check-in feedback card and the front-of-screen notification. Each section
   gets an electric rule + faint wash so it reads as a scannable block, not prose. */
.cm-lead{font-size:14px;font-weight:600;color:var(--iron);margin:0 0 13px;text-wrap:pretty;}
.cm-sec{padding:10px 12px 11px 13px;border-left:3px solid var(--electric);
  background:linear-gradient(90deg,rgba(7,93,198,0.055),rgba(7,93,198,0));
  border-radius:0 7px 7px 0;margin:0 0 9px;}
.cm-sec:last-child{margin-bottom:0;}
.cm-h{font-family:var(--font-cond);font-weight:900;font-size:11.5px;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--electric);margin:0 0 5px;line-height:1.1;}
.cm-sec .cm-p{margin:0;font-size:13.5px;line-height:1.55;color:#2C2C2C;text-wrap:pretty;}
.cm-sec .cm-p + .cm-p{margin-top:7px;}
/* a full check-in reply is longer than a one-line nudge — keep the card on screen */
.m-pop-body{max-height:46vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.m-pop-body .cm-lead{font-size:13.5px;}
.m-coachmsg .cm-body .cm-p:last-child{margin-bottom:0;}
.m-coachmsg .cm-body .cm-p:first-child{color:#0A0A0A;font-weight:600;}
.m-coachmsg .cm-body strong{font-weight:700;color:#0A0A0A;}

.divider{height:1px;background:var(--graphite);margin:22px 0;}
.muted{color:var(--silver);}
.hide{display:none !important;}

/* small helpers */
.row{display:flex;align-items:center;gap:12px;}
.between{justify-content:space-between;}
.wrap-gap{display:flex;flex-wrap:wrap;gap:10px;}
.kv{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--steel-2);font-size:13px;}
.kv:last-child{border-bottom:none;}
.kv .k{color:var(--silver);}
.kv .v{color:#fff;font-family:var(--font-mono);font-weight:700;}
.ratrow{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--graphite);border:1px solid var(--graphite);margin:14px 0;}
.ratrow .rat{background:var(--steel);padding:9px 12px;display:flex;justify-content:space-between;align-items:baseline;}
.ratrow .rat .rl{font-size:12px;color:var(--silver-2);}
.ratrow .rat .rv{font-family:var(--font-cond);font-weight:900;font-size:19px;color:#fff;}
.ratrow .rat .rv i{font-family:var(--font-mono);font-size:10px;color:var(--silver);font-style:normal;font-weight:400;}
.perfbox{border:1px solid var(--graphite);border-left:3px solid var(--turf);background:rgba(22,196,106,0.06);border-radius:4px;padding:12px 14px;margin:14px 0;}
.perfbox-h{display:flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--turf);margin-bottom:10px;}
.perfbox-h svg{color:var(--turf);}
.orbar{height:9px;background:var(--steel-2);border:1px solid var(--graphite);border-radius:5px;overflow:hidden;}
.orbar i{display:block;height:100%;background:var(--electric);}

/* On-Ramp weekly lesson view */
.m-lesson-eb{font-family:var(--font-mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--electric);margin:6px 2px 6px;}
.m-lesson-h{font-family:var(--font-cond);font-weight:900;font-size:26px;line-height:1.02;letter-spacing:0.01em;text-transform:uppercase;color:var(--iron);margin:0 0 14px;}
.m-video{position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#111;border:1px solid var(--plate);}
.m-video iframe,.m-video video{position:absolute;inset:0;width:100%;height:100%;border:0;}
.m-video-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;background:radial-gradient(120% 120% at 50% 0%,#20242b 0%,#111317 70%);color:#fff;}
.m-video-play{width:52px;height:52px;border-radius:50%;background:var(--electric);display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.m-video-play svg{width:22px;height:22px;fill:#fff;margin-left:3px;}
.m-video-eb{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;color:#8fb4ff;margin-bottom:6px;}
.m-video-t{font-family:var(--font-cond);font-weight:900;font-size:17px;text-transform:uppercase;letter-spacing:0.02em;line-height:1.1;}
.m-video-d{font-size:11.5px;color:#aab2bd;margin-top:8px;max-width:280px;line-height:1.45;}
.m-lesson-intro{font-size:14px;line-height:1.6;color:#3a4048;margin:16px 2px 4px;}
.m-keypts{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:11px;}
.m-keypts li{position:relative;padding-left:22px;font-size:13px;line-height:1.5;color:#3a4048;}
.m-keypts li::before{content:"";position:absolute;left:0;top:6px;width:9px;height:9px;border-radius:2px;background:var(--electric);}
.m-keypts li b{color:var(--iron);font-weight:700;}
.m-read-h{font-family:var(--font-cond);font-weight:800;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);margin-bottom:7px;}
.m-read-p{font-size:13px;line-height:1.62;color:#4a505a;margin:0;}
.m-preview{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.pv-cat{display:flex;align-items:center;gap:11px;background:var(--chalk);border:1px solid var(--plate);border-radius:8px;padding:12px 14px;}
.pv-n{font-family:var(--font-cond);font-weight:900;font-size:24px;line-height:1;color:var(--electric);flex:0 0 auto;}
.pv-l{font-family:var(--font-cond);font-weight:800;font-size:13px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);}
/* onboarding module rows */
.m-modrow{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:14px;margin-bottom:9px;cursor:pointer;position:relative;overflow:hidden;font-family:inherit;transition:border-color 120ms;}
.m-modrow::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--electric);transform:scaleY(0);transform-origin:top;transition:transform 200ms var(--ease);}
.m-modrow:hover{border-color:var(--electric);}
.m-modrow:hover::before{transform:scaleY(1);}
.m-modrow:active{transform:translateY(1px);}
.m-modrow .mr-ic{flex:0 0 auto;width:42px;height:42px;border-radius:9px;background:var(--chalk);border:1px solid var(--plate);display:flex;align-items:center;justify-content:center;color:var(--electric);}
.m-modrow.done .mr-ic{background:var(--electric);border-color:var(--electric);color:#fff;}
.m-modrow .mr-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:5px;}
.m-modrow .mr-t{font-family:var(--font-cond);font-weight:800;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.m-modrow .mr-s{font-family:var(--font-mono);font-size:10px;letter-spacing:0.03em;color:#9aa3ad;}
.m-modrow.done .mr-s{color:var(--turf);}
/* onboarding sticky action dock */
.m-dock{position:sticky;bottom:0;z-index:6;display:flex;align-items:center;gap:10px;margin:6px -18px -18px;padding:14px 18px 18px;background:linear-gradient(180deg,rgba(245,245,245,0) 0%,var(--chalk) 30%);}
.m-dock-check{flex:0 0 auto;width:46px;height:46px;border-radius:8px;background:#fff;border:1.5px solid var(--plate);display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:all 120ms var(--ease);}
.m-dock-check.on{background:var(--turf);border-color:var(--turf);}
.m-dock-check:active{transform:translateY(1px);}
.m-dock .m-btn{height:46px;}
.m-dock-n{flex:0 0 auto;font-family:var(--font-mono);font-size:11px;font-weight:700;color:#9aa3ad;}
.m-goalbar.done i{background:var(--turf);}
.m-quotecard{background:var(--iron);border-radius:9px;padding:20px 18px;margin-bottom:15px;}
.m-quote-eb{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--electric-hover);margin-bottom:9px;}
.m-quote{font-family:var(--font-cond);font-weight:800;font-size:20px;line-height:1.16;letter-spacing:0.01em;text-transform:uppercase;color:#fff;}
.m-quote b{color:var(--electric-hover);}

/* ═══════════════════════════════════════════════════════════════════════
   ONBOARDING (Ava) — reference-matched. Blue = actions / pills / done-icon /
   completion medallion. Green (--z-fit) = filled progress bars + "watched".
   ═══════════════════════════════════════════════════════════════════════ */
/* overview hero */
.ob-hero{margin:2px 0 18px;}
.ob-eb{font-family:var(--font-body);font-weight:700;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--electric);margin-bottom:11px;display:flex;align-items:center;gap:10px;}
.ob-eb::before{content:"";width:22px;height:2px;background:var(--electric);flex:0 0 auto;}
.ob-title{font-family:var(--font-cond);font-weight:900;font-size:38px;line-height:0.92;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);margin:0 0 12px;}
.ob-title .bl{color:var(--electric);}
.ob-sub{font-size:13.5px;line-height:1.55;color:#555;text-wrap:pretty;margin:0;}
.ob-sub strong{color:var(--iron);font-weight:600;}
/* progress card */
.ob-progtop{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:11px;}
.ob-progtop .lbl{font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.1em;text-transform:uppercase;color:var(--iron);}
.ob-progtop .ct{font-family:var(--font-mono);font-weight:700;font-size:12px;color:var(--iron);}
.ob-progtop .ct b{color:var(--electric);}
.ob-goalbar{height:9px;}
/* module row */
.ob-modrow{display:flex;align-items:center;gap:13px;width:100%;text-align:left;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:14px;margin-bottom:9px;cursor:pointer;position:relative;overflow:hidden;font-family:inherit;transition:border-color 120ms;}
.ob-modrow::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--electric);transform:scaleY(0);transform-origin:top;transition:transform 200ms var(--ease);}
.ob-modrow:hover{border-color:var(--electric);}
.ob-modrow:hover::before{transform:scaleY(1);}
.ob-modrow:active{transform:translateY(1px);}
.ob-mr-ic{flex:0 0 auto;width:42px;height:42px;border-radius:9px;background:var(--chalk);border:1px solid var(--plate);display:flex;align-items:center;justify-content:center;color:var(--electric);}
.ob-modrow.done .ob-mr-ic{background:var(--electric);border-color:var(--electric);color:#fff;}
.ob-mr-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;}
.ob-mr-eb{font-family:var(--font-body);font-weight:800;font-size:13px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1.1;}
.ob-mr-eb b{color:var(--electric);font-weight:800;}
.ob-mr-meta{display:flex;align-items:center;gap:9px;margin-top:8px;}
.ob-mini{width:52px;height:5px;background:var(--chalk);border:1px solid var(--plate);border-radius:4px;overflow:hidden;flex:0 0 auto;}
.ob-mini.flex{width:auto;flex:1 1 auto;height:8px;}
.ob-mini i{display:block;height:100%;width:0;background:var(--electric);transition:width 0.5s var(--ease);}
.ob-mini i.done{background:var(--turf);}
.ob-mr-stat{font-family:var(--font-mono);font-size:10px;color:#9aa3ad;}
.ob-mr-go{flex:0 0 auto;color:#c2c9d1;display:flex;}
/* completion medallion */
.ob-cleared{margin-top:18px;border:1px solid var(--plate);border-radius:9px;padding:22px 20px;background:#fff;display:flex;gap:16px;align-items:flex-start;}
.ob-cleared.on{border-color:rgba(7,93,198,0.4);border-top:3px solid var(--electric);background:linear-gradient(180deg,rgba(7,93,198,0.06),#fff);}
.ob-cleared-mark{flex:0 0 auto;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--plate);display:flex;align-items:center;justify-content:center;color:#cfd4db;}
.ob-cleared.on .ob-cleared-mark{background:var(--electric);border-color:var(--electric);color:#fff;}
.ob-cleared-c{min-width:0;}
.ob-cleared-eb{font-family:var(--font-cond);font-weight:900;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:#9aa3ad;margin-bottom:5px;}
.ob-cleared.on .ob-cleared-eb{color:var(--electric);}
.ob-cleared-h{font-family:var(--font-cond);font-weight:900;font-size:22px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;margin-bottom:7px;}
.ob-cleared-b{font-size:12.5px;line-height:1.55;color:#555;margin:0;}
.ob-cleared-b strong{color:var(--iron);font-weight:600;}

/* ── guide view ── */
.ob-guide-eb{font-family:var(--font-cond);font-weight:800;font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--electric);margin:0 2px 11px;display:flex;align-items:center;gap:9px;}
.ob-guide-eb::before{content:"";width:22px;height:2px;background:var(--electric);flex:0 0 auto;}
.ob-guide-title{font-family:var(--font-cond);font-weight:900;font-size:30px;line-height:0.96;letter-spacing:0.01em;text-transform:uppercase;color:var(--iron);margin:0 0 14px;}
.ob-ghd-prog{display:flex;align-items:center;gap:11px;margin:0 2px 15px;}
.ob-ghd-ct{font-family:var(--font-mono);font-weight:700;font-size:11px;color:var(--iron);white-space:nowrap;flex:0 0 auto;}
.ob-pill{flex:0 0 auto;font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.12em;text-transform:uppercase;padding:5px 9px;border-radius:999px;white-space:nowrap;}
.ob-pill.ns{background:#ECEFF3;color:#8A93A0;}
.ob-pill.ip{background:rgba(7,93,198,0.12);color:var(--electric);}
.ob-pill.dn{background:var(--electric);color:#fff;}
/* step 1 — watch toggle */
.ob-watch{display:flex;align-items:center;gap:14px;width:100%;text-align:left;margin-top:13px;padding:14px 16px;border:1.5px solid #BBD3F2;background:#EAF1FC;border-radius:9px;cursor:pointer;font-family:inherit;transition:border-color 200ms var(--ease),background 200ms var(--ease);}
.ob-watch:hover{border-color:var(--electric);}
.ob-watch .wr-ck{flex:0 0 auto;width:26px;height:26px;border:2px solid #BBD3F2;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;transition:all 200ms var(--ease);}
.ob-watch .wr-ck svg{width:13px;height:13px;stroke:#fff;fill:none;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity 200ms var(--ease);}
.ob-watch-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;}
.ob-watch-t{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1.1;}
.ob-watch-d{font-size:12px;color:#555;margin-top:2px;}
.ob-watch .wr-ico{flex:0 0 auto;color:var(--electric);display:flex;}
.ob-watch.on{border-color:var(--turf);background:#E9F4ED;}
.ob-watch.on .wr-ck{background:var(--turf);border-color:var(--turf);}
.ob-watch.on .wr-ck svg{opacity:1;}
.ob-watch.on .wr-ico{color:var(--turf);}
.ob-watch.on .ob-watch-d{color:var(--turf);}
/* content cards */
.ob-cards{display:flex;flex-direction:column;gap:13px;margin-top:16px;}
.ob-ccard{background:#fff;border:1px solid var(--plate);border-radius:9px;padding:20px 18px;}
.ob-ctop{display:flex;align-items:center;gap:11px;margin-bottom:12px;}
.ob-cn{font-family:var(--font-mono);font-weight:700;font-size:12px;color:var(--electric);letter-spacing:0.04em;}
.ob-ckick{font-family:var(--font-body);font-weight:800;font-size:10px;letter-spacing:0.13em;text-transform:uppercase;color:#8A93A0;}
.ob-ch{font-family:var(--font-cond);font-weight:900;font-size:24px;line-height:1.0;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);margin:0 0 13px;}
.ob-points{list-style:none;margin:0;padding:0;border:1px solid var(--plate);border-radius:7px;overflow:hidden;}
.ob-points li{display:grid;grid-template-columns:18px 1fr;gap:12px;align-items:start;padding:12px 14px;font-size:13.5px;line-height:1.5;color:#555;border-top:1px solid var(--plate);}
.ob-points li:first-child{border-top:none;}
.ob-points li svg{width:15px;height:15px;stroke:var(--electric);fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;margin-top:2px;}
.ob-points li b{color:var(--iron);font-weight:600;}
/* take-away quote */
.ob-quote{position:relative;overflow:hidden;background:linear-gradient(180deg,#EAF1FC,#fff 130%);border:1px solid #BBD3F2;border-radius:9px;padding:20px 18px 22px;margin-top:13px;}
.ob-quote::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--electric);}
.ob-quote-eb{font-family:var(--font-body);font-weight:800;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--electric);margin-bottom:10px;}
.ob-quote-t{font-family:var(--font-cond);font-weight:900;font-size:23px;line-height:1.12;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);margin:0;}
.ob-quote-t b{color:var(--electric);}
/* step 2 — mark complete */
.ob-complete{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:16px;padding:18px;border:1px solid var(--plate);border-top:3px solid var(--electric);border-radius:9px;background:var(--chalk);}
.ob-complete-c{min-width:0;flex:1 1 150px;}
.ob-complete-t{font-family:var(--font-cond);font-weight:900;font-size:18px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.ob-complete-d{font-size:12.5px;color:#555;margin:5px 0 0;line-height:1.45;}
.ob-complete-btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-cond);font-weight:900;font-size:14px;text-transform:uppercase;letter-spacing:0.04em;padding:13px 20px;border-radius:6px;background:var(--electric);color:#fff;white-space:nowrap;border:none;cursor:pointer;transition:background 120ms var(--ease),transform 80ms var(--ease);}
.ob-complete-btn:hover{background:var(--electric-hover);}
.ob-complete-btn:active{transform:translateY(1px);}
.ob-complete-btn.on{background:var(--turf);}
.ob-complete-btn .bx{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,0.55);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.ob-complete-btn .bx svg{width:12px;height:12px;stroke:#fff;fill:none;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;}
.ob-complete-btn.on .bx{background:#fff;border-color:#fff;}
.ob-complete-btn.on .bx svg{stroke:var(--turf);}
/* prev / next guide */
.ob-btmnav{display:flex;align-items:stretch;gap:10px;margin-top:14px;}
.ob-nav-btn{display:flex;align-items:center;gap:11px;padding:12px 15px;border-radius:7px;border:1px solid var(--plate);background:#fff;min-width:0;cursor:pointer;font-family:inherit;transition:border-color 120ms,background 120ms;}
.ob-nav-btn:active{transform:translateY(1px);}
.ob-nav-btn.prev{flex:0 0 auto;color:#8A93A0;}
.ob-nav-btn.prev:hover{border-color:#8A93A0;}
.ob-nav-btn.next{flex:1 1 auto;justify-content:flex-end;background:var(--electric);border-color:var(--electric);}
.ob-nav-btn.next:hover{background:var(--electric-hover);border-color:var(--electric-hover);}
.ob-nav-ic{flex:0 0 auto;display:flex;}
.ob-nav-b{display:flex;flex-direction:column;min-width:0;}
.ob-nav-btn.next .ob-nav-b{align-items:flex-end;}
.ob-nav-eb{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.12em;text-transform:uppercase;line-height:1.3;}
.ob-nav-btn.prev .ob-nav-eb{color:#8A93A0;}
.ob-nav-btn.next .ob-nav-eb{color:rgba(255,255,255,0.82);}
.ob-nav-t{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ob-nav-btn.prev .ob-nav-t{color:var(--iron);}
.ob-nav-btn.next .ob-nav-t,.ob-nav-btn.next .ob-nav-ic{color:#fff;}
/* sticky action bar — back · achieved · next, pinned above the category tabs */
.ob-actionbar{position:sticky;bottom:0;z-index:6;display:flex;align-items:stretch;gap:8px;margin:20px -18px 0;padding:11px 14px;background:#fff;border-top:1px solid var(--plate);}
.ob-ab-side{flex:0 0 auto;display:flex;align-items:center;gap:7px;padding:11px 14px;border:1px solid var(--plate);border-radius:7px;background:#fff;color:var(--iron);cursor:pointer;font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.04em;text-transform:uppercase;transition:border-color 120ms var(--ease),color 120ms var(--ease);}
.ob-ab-side:hover{border-color:var(--electric);color:var(--electric);}
.ob-ab-side:active{transform:translateY(1px);}
.ob-ab-side svg{flex:0 0 auto;}
.ob-ab-done{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 12px;border:1px solid var(--electric);border-radius:7px;background:var(--electric);color:#fff;cursor:pointer;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.04em;text-transform:uppercase;transition:background 120ms var(--ease),border-color 120ms var(--ease);}
.ob-ab-done:hover{background:var(--electric-hover);border-color:var(--electric-hover);}
.ob-ab-done:active{transform:translateY(1px);}
.ob-ab-done.on{background:var(--turf);border-color:var(--turf);}
.ob-ab-done .bx{width:19px;height:19px;border-radius:50%;border:2px solid rgba(255,255,255,0.55);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.ob-ab-done .bx svg{width:11px;height:11px;stroke:#fff;fill:none;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;}
.ob-ab-done.on .bx{background:#fff;border-color:#fff;}
.ob-ab-done.on .bx svg{stroke:var(--turf);}

@media(max-width:920px){
  .grid2{grid-template-columns:1fr;}
  .stats.c4{grid-template-columns:1fr 1fr;}
  .pagehead h1{font-size:34px;}
}

/* LIVE-OWNED (contract §2): on a real phone the app fills the screen — the
   workspace previews inside a phone mockup, so this block only exists live.
   Without it clients get the 392px bezel+notch mockup instead of the app.
   100dvh (never 100vh) — static vh over-measures on iOS home-screen reopen. */
@media (max-width: 540px){
  .phonewrap{padding:0;}
  .phone{width:100%;max-width:none;border:none;border-radius:0;box-shadow:none;}
  .phone .screen{height:100dvh;max-height:100dvh;}
  .phone .notch{display:none;}
  .stage{padding:16px 12px 40px;}
}

/* ===== notifications: bell (client app bar) + sheet + coach tool ===== */
.m-bell{position:relative;width:34px;height:34px;flex:0 0 auto;background:rgba(255,255,255,0.08);border:1px solid var(--graphite);border-radius:7px;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 120ms var(--ease);}
.m-bell:hover{background:rgba(255,255,255,0.14);}
.m-bell-n{position:absolute;top:-7px;right:-7px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--electric);color:#fff;font-family:var(--font-mono);font-size:9.5px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--iron);box-sizing:border-box;}
.m-notifs{position:absolute;inset:0;z-index:80;}
.m-notifs-scrim{position:absolute;inset:0;background:rgba(0,0,0,0.5);}
@keyframes notifIn{from{opacity:0;transform:translateY(-14px);}to{opacity:1;transform:none;}}
.m-notifs-panel{position:absolute;top:0;left:0;right:0;max-height:78%;background:var(--white);border-bottom:1px solid var(--plate);display:flex;flex-direction:column;animation:notifIn 200ms var(--ease);}
.m-notifs-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 13px;border-bottom:1px solid var(--plate);flex:0 0 auto;}
.m-notifs-head .nh-t{font-family:var(--font-cond);font-weight:900;font-size:20px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1;}
.m-notifs-list{overflow-y:auto;padding:8px 14px 14px;}
.m-notifs-empty{font-size:13px;color:#999;padding:20px 6px 14px;text-align:center;}
.m-notif{display:flex;gap:12px;align-items:flex-start;padding:13px 8px;border-bottom:1px solid var(--chalk);}
.m-notif:last-child{border-bottom:none;}
.m-notif .nf-ic{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--chalk);color:#999;display:flex;align-items:center;justify-content:center;}
.m-notif.unread .nf-ic{background:var(--electric);color:#fff;}
.m-notif .nf-tx{flex:1 1 auto;min-width:0;}
.m-notif .nf-t{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.m-notif .nf-new{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--electric);border:1px solid var(--electric);border-radius:999px;padding:2px 7px;}
.m-notif .nf-d{font-size:12.5px;line-height:1.5;color:#444;margin-top:4px;text-wrap:pretty;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.m-notif .nf-m{font-family:var(--font-mono);font-size:10px;color:#aaa;margin-top:6px;letter-spacing:0.03em;}
.m-notif .nf-chev{flex:0 0 auto;align-self:center;color:#c4c4c4;display:flex;}
.m-notif.tap:hover .nf-chev{color:var(--electric);}
/* coach notify tool */
.ns-flash{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--turf);}
.ns-row{padding:13px 2px;border-bottom:1px solid var(--gunmetal);}
.ns-row:last-child{border-bottom:none;padding-bottom:2px;}
.ns-row .ns-t{font-family:var(--font-cond);font-weight:900;font-size:15.5px;letter-spacing:0.03em;text-transform:uppercase;color:#fff;line-height:1.1;}
.ns-row .ns-d{font-size:12.5px;line-height:1.5;color:var(--silver-2);margin-top:4px;text-wrap:pretty;}
.ns-row .ns-m{font-family:var(--font-mono);font-size:10px;color:var(--silver);margin-top:6px;letter-spacing:0.03em;}

/* ===== auto-popup: the most recent notification, shown over the app on open ===== */
.m-pop{position:absolute;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:22px;}
.m-pop-scrim{position:absolute;inset:0;background:rgba(0,0,0,0.55);}
@keyframes popIn{from{opacity:0;transform:translateY(10px) scale(0.97);}to{opacity:1;transform:none;}}
.m-pop-card{position:relative;width:100%;max-width:322px;background:var(--white);border:1px solid var(--plate);border-top:4px solid var(--electric);border-radius:10px;padding:18px 18px 16px;box-shadow:0 16px 44px rgba(0,0,0,0.4);animation:popIn 200ms var(--ease,ease-out);}
.m-pop-from{display:flex;align-items:center;gap:11px;margin-bottom:13px;}
.m-pop-av{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.02em;}
.m-pop-nm{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.1;}
.m-pop-rl{font-family:var(--font-mono);font-size:10px;color:#9a9a9a;letter-spacing:0.03em;margin-top:2px;}
.m-pop-x{margin-left:auto;flex:0 0 auto;width:28px;height:28px;border-radius:6px;background:var(--chalk);border:none;color:#888;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 120ms var(--ease,ease-out),color 120ms var(--ease,ease-out);}
.m-pop-x:hover{background:#e8e8e8;color:var(--iron);}
.m-pop-t{font-family:var(--font-cond);font-weight:900;font-size:21px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;margin-bottom:8px;text-wrap:balance;}
.m-pop-body{font-size:13.5px;line-height:1.55;color:#333;text-wrap:pretty;margin-bottom:15px;}
.m-pop-actions{display:flex;flex-direction:column;}

/* ============================================================
   Phase 2 — client sign-in (magic link) + account touchpoints
   ============================================================ */
.si-wrap{padding-top:26px;}
.phone .screen.si-screen{background:var(--iron);color:var(--white);}
.si-screen .si-body{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;padding:44px 28px 24px;}
.si-body > *:first-child{margin-top:auto;}
.si-body > *:last-child{margin-bottom:auto;}
.si-brand{margin-bottom:30px;}
.si-wm{font-family:var(--font-cond);font-weight:900;font-size:25px;letter-spacing:0.05em;text-transform:uppercase;color:var(--white);line-height:1;}
.si-wm span{color:var(--electric);}
.si-tag{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.22em;text-transform:uppercase;color:var(--silver);margin-top:7px;}
.si-ic{width:54px;height:54px;border-radius:50%;border:1px solid var(--graphite);background:var(--steel);color:var(--electric);display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.si-ic.warn{color:var(--silver-2);}
.si-h{font-family:var(--font-cond);font-weight:900;font-size:38px;line-height:0.98;letter-spacing:0.01em;text-transform:uppercase;color:var(--white);margin-bottom:12px;text-wrap:balance;}
.si-p{font-size:14px;line-height:1.6;color:var(--silver-2);margin-bottom:8px;}
.si-p b{color:var(--white);font-weight:600;word-break:break-all;}
.si-fine{font-size:11.5px;line-height:1.55;color:var(--silver);margin:6px 0 14px;}
.si-form{display:flex;flex-direction:column;gap:9px;margin-top:14px;}
.si-lbl{font-family:var(--font-body);font-weight:700;font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--silver);}
.si-inp{width:100%;height:50px;background:var(--steel);border:1px solid var(--graphite);border-radius:4px;color:var(--white);font-family:var(--font-body);font-size:15px;padding:0 15px;outline:none;transition:border-color 120ms var(--ease);}
.si-inp::placeholder{color:#5a5a5a;}
.si-inp:focus{border-color:var(--electric);}
.si-btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:50px;margin-top:4px;background:var(--electric);border:none;border-radius:4px;color:#fff;font-family:var(--font-body);font-weight:700;font-size:12.5px;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;transition:background 120ms var(--ease);}
.si-btn:hover:not(:disabled){background:var(--electric-hover);}
.si-btn:active:not(:disabled){transform:translateY(1px);background:var(--electric-deep);}
.si-btn:disabled{background:var(--gunmetal);color:var(--silver);cursor:default;}
.si-btn.ghost{background:none;border:1px solid var(--graphite);color:var(--white);}
.si-btn.ghost:hover:not(:disabled){background:var(--steel);}
.si-btn.ghost:disabled{background:none;border-color:var(--gunmetal);color:var(--silver);}
.si-link{display:block;background:none;border:none;margin:16px auto 0;padding:6px;color:var(--silver);font-family:var(--font-body);font-size:12px;cursor:pointer;text-decoration:none;text-align:center;}
.si-link:hover{color:var(--white);text-decoration:underline;}
.si-foot{flex:0 0 auto;padding:14px 28px 22px;font-family:var(--font-mono);font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:#555;text-align:center;}

/* — the sign-in email (demo mock; design reference for the real send) — */
.si-mail{position:absolute;inset:0;z-index:80;background:var(--white);color:var(--iron);display:flex;flex-direction:column;overflow-y:auto;}
.si-mail-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:32px 14px 10px;border-bottom:1px solid var(--plate);}
.si-mail-back{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--electric);font-family:var(--font-body);font-weight:600;font-size:13px;cursor:pointer;padding:6px;}
.si-mail-alt{background:none;border:1px solid var(--plate);border-radius:4px;color:#888;font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;padding:6px 9px;cursor:pointer;}
.si-mail-alt:hover{color:var(--iron);border-color:var(--iron);}
.si-mail-meta{flex:0 0 auto;padding:14px 18px;border-bottom:1px solid var(--plate);}
.si-mail-subj{font-family:var(--font-body);font-weight:700;font-size:15px;margin-bottom:9px;}
.si-mail-kv{display:flex;gap:8px;font-size:11.5px;color:#777;line-height:1.6;word-break:break-all;}
.si-mail-kv span{flex:0 0 34px;font-weight:700;font-size:9.5px;letter-spacing:0.1em;text-transform:uppercase;color:#aaa;padding-top:2px;}
.si-mail-body{flex:1 1 auto;}
.si-mail-head{background:var(--iron);padding:22px 24px;}
.si-wm.sm{font-size:19px;}
.si-mail-inner{padding:26px 24px 30px;}
.si-mail-eyebrow{font-family:var(--font-body);font-weight:700;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--electric);margin-bottom:8px;}
.si-mail-h{font-family:var(--font-cond);font-weight:900;font-size:30px;line-height:1;letter-spacing:0.01em;text-transform:uppercase;color:var(--iron);margin-bottom:12px;}
.si-mail-p{font-size:13.5px;line-height:1.65;color:#444;margin-bottom:20px;}
.si-mail-cta{display:block;width:100%;height:52px;background:var(--electric);border:none;border-radius:4px;color:#fff;font-family:var(--font-body);font-weight:700;font-size:13px;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;transition:background 120ms var(--ease);}
.si-mail-cta:hover{background:var(--electric-hover);}
.si-mail-fine{font-size:11px;line-height:1.6;color:#999;margin-top:18px;}
.si-mail-sign{font-size:12.5px;color:#444;margin-top:16px;}
.si-mail-plain{flex:1 1 auto;font-family:var(--font-mono);font-size:11px;line-height:1.75;color:#333;padding:18px;white-space:pre-wrap;cursor:pointer;}

/* — demo strip (outside the phone; not part of the design) — */
.si-demo{max-width:560px;margin:16px auto 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:1px solid var(--graphite);border-left:3px solid var(--electric);background:var(--steel);padding:11px 15px;font-size:12px;color:var(--silver-2);}
.si-demo-t{font-family:var(--font-body);font-weight:700;font-size:9.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--electric);}
.si-demo-btn{background:rgba(255,255,255,0.07);border:1px solid var(--graphite);border-radius:4px;color:var(--white);font-family:var(--font-mono);font-size:10.5px;padding:6px 10px;cursor:pointer;transition:border-color 120ms var(--ease);}
.si-demo-btn:hover{border-color:var(--electric);}
.si-demo-btn.ghost{color:var(--silver);}

/* — drawer foot: signed-in account block + log out — */
.m-drawer-acct{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;padding:10px 12px;border:1px solid var(--plate);border-radius:6px;background:var(--chalk);}
.m-drawer-acct .ac-lbl{font-family:var(--font-body);font-weight:700;font-size:8.5px;letter-spacing:0.16em;text-transform:uppercase;color:#aaa;}
.m-drawer-acct .ac-em{font-family:var(--font-mono);font-size:10.5px;color:var(--iron);margin-top:3px;word-break:break-all;}
.m-drawer-acct .ac-out{flex:0 0 auto;display:flex;align-items:center;gap:6px;background:var(--white);border:1px solid var(--plate);border-radius:5px;color:var(--iron);font-family:var(--font-body);font-weight:700;font-size:9.5px;letter-spacing:0.08em;text-transform:uppercase;padding:8px 10px;cursor:pointer;transition:border-color 120ms var(--ease);}
.m-drawer-acct .ac-out:hover{border-color:var(--iron);}
.m-drawer-journey{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.04em;color:#aaa;}

/* "Focus this month" — the one thing to chase, lifted out of the coach's reply
   and pinned above the full write-up in the client's check-in report. */
.m-card.focus-card{background:linear-gradient(135deg,#075DC6,#0A4FA8);border-color:#075DC6;}
.focus-eyebrow{display:flex;align-items:center;gap:6px;font-family:var(--font-cond);font-weight:900;
  font-size:11.5px;letter-spacing:0.11em;text-transform:uppercase;color:rgba(255,255,255,0.72);margin-bottom:7px;}
.focus-text{font-size:15.5px;line-height:1.45;font-weight:600;color:#fff;text-wrap:pretty;}
.focus-text b{color:#fff;font-weight:800;}

/* ============================================================
   Coach "Client View" exit control + save warning
   Both were rendered with NO styling at all — plain blocks after the client
   app, which fills 100dvh. On desktop the page scrolled far enough to reach
   them; on mobile they sat below the fold and were unreachable, so a coach who
   opened Client View had no way back. Both are fixed and above the client
   chrome now (.m-tabbar is z-index 30).
   Top-RIGHT deliberately: the bottom edge already carries the client's tab bar
   (which the coach needs, to inspect the other screens) and the floating coach
   bubble.
   ============================================================ */
.ib-viewas{position:fixed;top:calc(8px + env(safe-area-inset-top));right:10px;z-index:60;
  display:inline-flex;align-items:center;gap:7px;
  background:var(--electric);border:1px solid var(--electric-deep);border-radius:999px;
  min-height:44px;padding:8px 15px 8px 12px;color:#fff;cursor:pointer;
  font-family:var(--font-cond);font-weight:900;font-size:12.5px;letter-spacing:0.05em;text-transform:uppercase;
  box-shadow:0 4px 16px rgba(0,0,0,0.35);transition:background 120ms var(--ease),transform 120ms var(--ease);}
.ib-viewas:hover{background:var(--electric-hover);}
.ib-viewas:active{transform:translateY(1px);}
.ib-viewas svg{flex:0 0 auto;}
.ib-viewas .ib-viewas-w{font-family:var(--font-mono);font-weight:400;font-size:9.5px;letter-spacing:0.02em;
  text-transform:none;color:rgba(255,255,255,0.82);}
.ib-viewas .ib-viewas-w b{font-weight:700;color:#fff;}
/* very narrow screens: keep the action, drop the "as <name>" tail */
@media (max-width:360px){ .ib-viewas .ib-viewas-w{display:none;} }

/* save-failure warning — same problem, same fix. Bottom-centre, clear of the
   tab bar's safe-area padding. */
.ib-savewarn{position:fixed;left:12px;right:12px;bottom:calc(74px + env(safe-area-inset-bottom));z-index:61;
  background:var(--rust);color:#fff;border-radius:8px;padding:11px 13px;
  font-family:var(--font-mono);font-size:11px;line-height:1.45;letter-spacing:0.02em;
  box-shadow:0 6px 20px rgba(0,0,0,0.4);cursor:pointer;text-align:center;}

/* ===== CHECK-IN REFRESH — shared client + coach visual language (added 2026-07-22) ===== */
/* days-on-plan PATTERN picker (read the shape, not just the count) */
.daypick{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}
.daypick button{aspect-ratio:1/1;font-family:var(--font-cond);font-weight:900;font-size:15px;color:#8a8a8a;background:var(--chalk);border:1px solid var(--plate);border-radius:6px;cursor:pointer;transition:all 100ms var(--ease);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.daypick button .dn{font-family:var(--font-mono);font-weight:500;font-size:7.5px;letter-spacing:0.04em;color:#b0b0b0;text-transform:uppercase;}
.daypick button:hover{border-color:#b7b7b7;}
.daypick button.on{background:var(--turf);border-color:var(--turf);color:#063d20;}
.daypick button.on .dn{color:#0a5c31;}
.daypick button.we{border-style:dashed;}
.daycount{margin-top:10px;display:flex;align-items:baseline;gap:8px;}
.daycount .n{font-family:var(--font-cond);font-weight:900;font-size:26px;line-height:1;color:var(--iron);}
.daycount .l{font-size:11.5px;color:#777;}
.daycount .pat{margin-left:auto;font-family:var(--font-body);font-weight:700;font-size:10px;letter-spacing:0.05em;text-transform:uppercase;padding:5px 9px;border-radius:20px;background:#f0e2c4;color:#8a6a12;}
.daycount .pat.good{background:#d7f0e0;color:#0a5c31;}
.patwrap{pointer-events:none;margin-top:4px;}
/* steps vs target */
.steprow{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
.steprow .chip-m{text-align:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:12px;padding:12px 0;letter-spacing:0;text-transform:none;}
.steptar{margin-top:11px;background:var(--chalk);border:1px solid var(--plate);border-radius:6px;padding:11px 12px;display:flex;align-items:center;gap:10px;font-size:11.5px;color:#6d6d6d;}
.steptar b{color:var(--iron);font-family:var(--font-mono);}
.steptar .tag{margin-left:auto;font-family:var(--font-body);font-weight:700;font-size:9.5px;letter-spacing:0.06em;text-transform:uppercase;padding:4px 8px;border-radius:4px;}
.steptar .tag.under{background:#f7e0e0;color:#a13030;}
.steptar .tag.ok{background:#d7f0e0;color:#0a5c31;}
/* the two outcomes every check-in is judged against */
.out-row{display:flex;gap:11px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--plate);}
.out-row:last-child{border-bottom:none;}
.out-ic{flex:0 0 auto;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#fff;}
.out-b{flex:1;min-width:0;}
.out-t{font-family:var(--font-cond);font-weight:900;text-transform:uppercase;letter-spacing:0.02em;font-size:14px;line-height:1.05;color:var(--iron);}
.out-d{font-size:11.5px;line-height:1.45;color:#6d6d6d;margin-top:3px;text-wrap:pretty;}
.out-tag{flex:0 0 auto;font-family:var(--font-body);font-weight:700;font-size:9.5px;letter-spacing:0.06em;text-transform:uppercase;align-self:center;}
/* "since your last check-in" wins + recurring watch */
.since{background:#eef4fc;border:1px solid #cfe0f5;border-radius:7px;padding:12px 13px;}
.since .se{font-family:var(--font-body);font-weight:700;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--electric);margin-bottom:7px;}
.since .srow{display:flex;gap:9px;font-size:12px;line-height:1.45;color:#3a3a3a;margin-bottom:7px;}
.since .srow:last-child{margin-bottom:0;}
.since .srow .ic{flex:0 0 auto;width:16px;height:16px;margin-top:1px;}
.since .srow.win .ic{color:var(--turf);}
.since .srow.watch .ic{color:#c98a1a;}
.since .srow b{color:var(--iron);}
/* the client's 3 priorities (#1 = crucial) */
.prio-head{font-family:var(--font-cond);font-weight:900;text-transform:uppercase;letter-spacing:0.03em;font-size:16px;margin:4px 2px 11px;display:flex;align-items:center;gap:8px;color:var(--iron);}
.prio-head .n{font-family:var(--font-mono);font-weight:500;font-size:10px;color:#9a9a9a;text-transform:none;letter-spacing:0;margin-left:auto;}
.prio{background:#fff;border:1px solid var(--plate);border-radius:8px;padding:14px 15px;margin-bottom:10px;position:relative;}
.prio .rank{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-body);font-weight:700;font-size:9.5px;letter-spacing:0.1em;text-transform:uppercase;color:#9a9a9a;margin-bottom:8px;}
.prio .rank .dot{width:18px;height:18px;border-radius:50%;background:#8a8a8a;color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:10px;}
.prio .pt{font-family:var(--font-cond);font-weight:900;text-transform:uppercase;letter-spacing:0.01em;font-size:17px;line-height:1.05;color:var(--iron);margin-bottom:6px;}
.prio .pd{font-size:12.5px;line-height:1.5;color:#5a5a5a;text-wrap:pretty;}
.prio .ptar{margin-top:10px;font-size:11px;line-height:1.4;color:var(--electric);font-weight:600;display:flex;gap:7px;align-items:flex-start;}
.prio .ptar .ic{flex:0 0 auto;margin-top:1px;}
.prio.crucial{border-top:3px solid var(--electric);background:#fbfcfe;}
.prio.crucial .rank{color:var(--electric);}
.prio.crucial .rank .dot{background:var(--electric);}
.prio.crucial .flag{position:absolute;top:14px;right:15px;font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:#fff;background:var(--electric);border-radius:4px;padding:4px 8px;}
/* coach-side ranked diagnosis list */
.rank-list{list-style:none;margin:0;padding:0;}
.rank-row{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid var(--plate);align-items:flex-start;}
.rank-row:last-child{border-bottom:none;}
.rank-row .rk{flex:0 0 auto;width:22px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:11px;background:var(--chalk);border:1px solid var(--plate);color:#8a8a8a;}
.rank-row.picked .rk{background:var(--electric);border-color:var(--electric);color:#fff;}
.rank-row .rb{min-width:0;}
.rank-row .rb .rt{font-family:var(--font-cond);font-weight:900;text-transform:uppercase;letter-spacing:0.01em;font-size:14px;line-height:1.1;color:var(--iron);}
.rank-row .rb .rd{font-size:11.5px;line-height:1.45;color:#777;margin-top:3px;}
.rank-row .sev{flex:0 0 auto;font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.06em;text-transform:uppercase;padding:4px 8px;border-radius:4px;align-self:center;}
.sev.red{background:#f7e0e0;color:#a13030;}
.sev.amber{background:#f7eccf;color:#8a6a12;}
.sev.green{background:#d7f0e0;color:#0a5c31;}
.sev.grey{background:#ececec;color:#8a8a8a;}

/* coach review · Plan → Execute → Measure rows (added 2026-07-22) */
.pem-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;border-bottom:1px solid var(--plate,#E4E4E4);}
.pem-row:first-of-type{padding-top:0;}
.pem-row.last{border-bottom:none;padding-bottom:0;}
.pem-k{font-family:var(--font-body);font-weight:600;font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;color:#9a9a9a;flex:0 0 auto;padding-top:2px;}
.pem-v{font-family:var(--font-body);font-weight:700;font-size:14px;color:var(--iron,#111);text-align:right;line-height:1.35;}
.pem-v.flag{color:#a13030;}

/* coach review · weekly-goals block summary (added 2026-07-22) */
.wg-sum{display:flex;align-items:center;gap:16px;background:#f6f6f6;border:1px solid #e8e8e8;border-radius:9px;padding:14px 16px;}
.wg-big{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:34px;line-height:1;color:#111;flex:0 0 auto;}
.wg-big span{font-size:18px;color:#9a9a9a;}
.wg-sb{flex:1;min-width:0;}
.wg-lab{font-family:var(--font-mono,monospace);font-size:9.5px;letter-spacing:0.06em;text-transform:uppercase;color:#8a8a8a;margin-bottom:8px;}

/* collapsible coach note on client feedback (added 2026-07-22) */
.cm-more{margin-top:11px;display:inline-flex;align-items:center;gap:5px;background:none;border:none;padding:0;cursor:pointer;font-family:var(--font-body);font-weight:700;font-size:10.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--electric);}
.cm-more:hover{opacity:0.82;}
.cm-p.lead{font-weight:600;color:#0A0A0A;}

/* Sunday Brief — richer popup: scrollable, structured body, two CTAs */
.m-pop-card.brief{max-height:82%;overflow-y:auto;}
.m-pop-brief{margin-bottom:14px;text-wrap:pretty;}
.m-brief-lead{font-size:14px;line-height:1.55;color:#1c1c1c;}
.m-brief-p{font-size:12.8px;line-height:1.55;color:#333;margin-top:9px;}
.m-brief-h{font-family:var(--font-cond);font-weight:900;font-size:12.5px;letter-spacing:0.09em;text-transform:uppercase;color:#0a0a0a;margin:15px 0 3px;}
.m-brief-act{display:flex;gap:10px;align-items:flex-start;background:var(--chalk);border:1px solid var(--plate);border-left:3px solid var(--electric);border-radius:6px;padding:10px 11px;margin-top:8px;}
.m-brief-act .num{width:20px;height:20px;flex:0 0 auto;border-radius:50%;background:var(--electric);color:#fff;font-family:var(--font-cond);font-weight:900;font-size:12px;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.m-brief-act .tx{font-size:12.5px;line-height:1.5;color:#333;}
.m-brief-act .tx b{color:#0a0a0a;font-weight:800;}
.m-brief-quote{border-left:3px solid var(--electric);padding:3px 0 3px 12px;margin:15px 0 4px;font-family:var(--font-cond);font-weight:700;font-size:15.5px;color:#0a0a0a;line-height:1.18;text-wrap:balance;}
.m-brief-sign{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.03em;text-transform:uppercase;color:var(--electric);margin-top:13px;}
.m-brief-lead b,.m-brief-p b{color:#0a0a0a;font-weight:800;}
.m-pop-cap{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.02em;color:#9a9a9a;text-align:center;margin:5px 0 0;display:flex;align-items:center;justify-content:center;gap:5px;}
.m-pop-cap svg{width:11px;height:11px;color:#b0b0b0;}
.m-pop-note{font-family:var(--font-mono);font-size:9.5px;color:#aaa;text-align:center;margin-top:12px;letter-spacing:0.02em;}
.m-notif.tap{cursor:pointer;}
.m-notif.tap:hover{background:var(--chalk);}

/* ===== Sunday Brief newsletter (client) ===== */
.m-brief-prose{margin-bottom:2px;}
.m-brief-video{position:relative;display:block;width:100%;height:158px;border:none;border-radius:9px;background:#111 center/cover no-repeat;overflow:hidden;cursor:pointer;padding:0;margin-bottom:14px;}
.m-brief-video::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.08),rgba(0,0,0,0.55));}
.m-brief-video.playing{height:190px;background:#000;cursor:default;}
.m-brief-video.playing::after{display:none;}
.m-brief-video.playing iframe{width:100%;height:100%;display:block;border:0;}
.m-brief-video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;z-index:1;box-shadow:0 6px 20px rgba(0,0,0,0.45);}
.m-brief-video-play svg{margin-left:3px;}
.m-brief-video-tag{position:absolute;left:12px;bottom:10px;z-index:1;font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,0.5);border-radius:999px;padding:4px 9px;}
.m-brief-doc-h{font-family:var(--font-cond);font-weight:900;font-size:12.5px;letter-spacing:0.1em;text-transform:uppercase;color:#0a0a0a;margin:17px 0 9px;display:flex;align-items:center;gap:8px;}
.m-brief-doc-h::after{content:"";flex:1;height:1px;background:var(--plate);}
.m-brief-foc{display:flex;flex-direction:column;gap:8px;}
.m-brief-foc-row{display:flex;gap:11px;align-items:center;background:var(--chalk);border:1px solid var(--plate);border-radius:8px;padding:9px 11px;}
.m-brief-foc-day{flex:0 0 auto;width:42px;text-align:center;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.03em;text-transform:uppercase;border:1.5px solid;border-radius:6px;padding:7px 0;background:#fff;}
.m-brief-foc-b{flex:1 1 auto;min-width:0;}
.m-brief-foc-cat{font-family:var(--font-mono);font-size:9px;letter-spacing:0.09em;text-transform:uppercase;font-weight:700;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.m-brief-foc-blk{font-family:var(--font-body);font-weight:800;font-size:8px;letter-spacing:0.06em;color:#fff;background:var(--iron);border-radius:999px;padding:2px 7px;}
.m-brief-foc-lab{font-family:var(--font-cond);font-weight:800;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.1;margin-top:3px;}
.m-brief-jobs{display:flex;flex-direction:column;gap:9px;}
.m-brief-job{display:flex;gap:11px;align-items:center;width:100%;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:11px 12px;text-align:left;cursor:pointer;font-family:inherit;transition:border-color 120ms var(--ease,ease-out);}
.m-brief-job:hover{border-color:var(--electric);}
.m-brief-job:active{transform:translateY(1px);}
.m-brief-job-ic{flex:0 0 auto;width:38px;height:38px;border-radius:8px;background:rgba(7,93,198,0.1);color:var(--electric);display:flex;align-items:center;justify-content:center;}
.m-brief-job-b{flex:1 1 auto;min-width:0;}
.m-brief-job-t{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.m-brief-job-d{font-size:11.5px;color:#666;line-height:1.4;margin-top:3px;text-wrap:pretty;}
.m-brief-job-cap{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.04em;color:var(--electric);margin-top:5px;display:flex;align-items:center;gap:4px;}
.m-brief-job-chev{flex:0 0 auto;color:#c4c4c4;}
.m-brief-ev{display:flex;gap:10px;align-items:flex-start;background:var(--chalk);border:1px solid var(--plate);border-left:3px solid var(--electric);border-radius:8px;padding:11px 12px;}
.m-brief-ev-ic{flex:0 0 auto;color:var(--electric);}
.m-brief-ev-tx{font-size:12.5px;line-height:1.5;color:#333;text-wrap:pretty;}
.m-brief-confirm{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:16px;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.05em;text-transform:uppercase;border-radius:6px;padding:13px;min-height:48px;cursor:pointer;border:1px solid var(--electric);background:var(--electric);color:#fff;}
.m-brief-confirm:active{background:var(--electric-deep);}
.m-brief-qw{position:relative;background:var(--iron);border-radius:9px;padding:15px 15px 12px 40px;margin:0 0 14px;overflow:hidden;}
.m-brief-qw::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--electric);}
.m-brief-qw-mark{position:absolute;left:11px;top:2px;font-family:var(--font-cond);font-weight:900;font-size:40px;line-height:1;color:var(--electric);}
.m-brief-qw-tx{font-family:var(--font-cond);font-weight:700;font-size:17px;line-height:1.2;color:#fff;text-wrap:balance;}
.m-brief-qw-cap{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.12em;text-transform:uppercase;color:#6AA4F4;margin-top:8px;}
.m-brief-highlight{font-size:14px;line-height:1.5;color:#1c1c1c;margin:0 0 4px;text-wrap:pretty;}
.m-brief-highlight b{color:#0a0a0a;font-weight:800;}
.m-brief-note{display:flex;flex-direction:column;gap:8px;}
.m-brief-note-row{display:flex;gap:11px;align-items:center;background:var(--chalk);border:1px solid var(--plate);border-left:3px solid var(--electric);border-radius:8px;padding:10px 11px;}
.m-brief-note-ic{flex:0 0 auto;width:30px;height:30px;border-radius:7px;background:rgba(7,93,198,0.1);color:var(--electric);display:flex;align-items:center;justify-content:center;}
.m-brief-note-b{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;}
.m-brief-note-day{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:var(--electric);border:1px solid var(--electric);border-radius:999px;padding:2px 7px;flex:0 0 auto;}
.m-brief-note-lab{font-family:var(--font-cond);font-weight:800;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.15;}

/* Sunday Brief — benchmark/heavy/notable tag + focus "Great for" line */
.m-brief-note-tag{margin-left:auto;font-family:var(--font-mono);font-size:8px;letter-spacing:0.09em;text-transform:uppercase;font-weight:700;border:1px solid;border-radius:999px;padding:2px 7px;white-space:nowrap;align-self:center;}
.m-brief-foc-great{font-family:var(--font-body);font-size:11px;line-height:1.35;color:#666;margin-top:5px;}

/* ============================================================================
   TRAINING SECTION (window.IBTrainingPlan) — ported from mockups/training-week.
   Lives inside the phone .screen; the client Shell hands it the body via rawBody
   (component draws its own .m-scroll + .tw-lockbar + .m-tabbar). Light panels.
   ============================================================================ */
/* restructured program drawer: active-program hero + plan sub-items */
.m-drawer-lbl.pad{margin-top:14px;}
.dp-hero{display:flex;align-items:center;gap:11px;width:100%;min-height:70px;text-align:left;background:var(--iron);color:#fff;border:none;border-radius:11px;padding:15px;position:relative;overflow:hidden;margin-bottom:4px;cursor:pointer;}
.dp-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--electric);}
.dp-hero .hi{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:var(--electric);display:flex;align-items:center;justify-content:center;color:#fff;}
.dp-hero .hb{flex:1 1 auto;min-width:0;}
.dp-hero .hn-row{display:flex;align-items:center;gap:9px;}
.dp-hero .hn{font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:0.02em;text-transform:uppercase;line-height:1;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis;}
.dp-hero .hs{font-family:var(--font-mono);font-size:9.5px;color:var(--silver-2);margin-top:6px;letter-spacing:0.02em;white-space:nowrap;}
.dp-hero .hflag{flex:0 0 auto;font-family:var(--font-mono);font-size:8px;letter-spacing:0.08em;text-transform:uppercase;color:#fff;background:var(--electric);border-radius:999px;padding:4px 8px;white-space:nowrap;}
.dp-item{width:100%;display:flex;align-items:center;gap:13px;background:none;border:none;border-radius:9px;padding:12px;text-align:left;transition:background 120ms var(--ease);cursor:pointer;}
.dp-item:hover{background:var(--chalk);}
.dp-item.on{background:var(--chalk);}
.dp-item .di{flex:0 0 auto;width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid var(--plate);display:flex;align-items:center;justify-content:center;color:var(--iron);}
.dp-item.on .di{background:var(--electric);border-color:var(--electric);color:#fff;}
.dp-item .db{flex:1 1 auto;min-width:0;}
.dp-item .dn{display:block;font-family:var(--font-cond);font-weight:900;font-size:18px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.dp-item.on .dn{color:var(--electric);}
.dp-item .ds{display:block;font-size:12px;color:#888;margin-top:4px;}
.dp-item .dchev{flex:0 0 auto;color:#c4c4c4;display:flex;}
.dp-item .dflag{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--electric);}
/* CHALLENGES group — its own treatment so it reads as a different KIND of thing
   from the plan rows above it. Same palette (iron + the one electric blue), but a
   dark card with a series lockup and a left accent stripe, where the active-program
   hero is a flat iron card with a top stripe. The two guards (flex:0 0 auto,
   min-height) stop this overflow:hidden card silently clipping itself in the flex
   column instead of pushing the list taller — same reason .dp-hero has min-height. */
.m-drawer-lbl.chal{color:var(--electric);}
.dp-chal{width:100%;flex:0 0 auto;min-height:82px;display:flex;align-items:center;gap:12px;text-align:left;background:var(--iron);color:#fff;border:none;border-left:3px solid var(--electric);border-radius:11px;padding:14px 15px;margin-top:2px;position:relative;overflow:hidden;cursor:pointer;font-family:inherit;transition:filter 120ms var(--ease);}
.dp-chal+.dp-chal{margin-top:8px;}
.dp-chal::before{content:"";position:absolute;inset:0;background:radial-gradient(125% 100% at 88% 0%,rgba(7,93,198,0.42),transparent 62%);}
.dp-chal:hover{filter:brightness(1.18);}
.dp-chal>*{position:relative;}
.dp-chal .ci{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:var(--electric);display:flex;align-items:center;justify-content:center;color:#fff;}
.dp-chal.on .ci{background:#fff;color:var(--electric);}
.dp-chal .cb{flex:1 1 auto;min-width:0;}
.dp-chal .ceb{display:flex;align-items:center;gap:7px;font-family:var(--font-body);font-weight:800;font-size:8px;letter-spacing:0.2em;text-transform:uppercase;color:#6AA4F4;}
.dp-chal .ceb i{width:12px;height:1px;background:#6AA4F4;display:block;flex:0 0 auto;}
.dp-chal .cn{display:block;font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:0.02em;text-transform:uppercase;color:#fff;line-height:1;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dp-chal .cs{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.02em;color:var(--silver-2);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dp-chal .cflag{flex:0 0 auto;font-family:var(--font-mono);font-size:8px;letter-spacing:0.1em;text-transform:uppercase;color:#fff;background:var(--electric);border-radius:999px;padding:4px 8px;}
.dp-chal.on .cflag{background:#fff;color:var(--electric);}
/* .dp-next removed Aug 2026 — the locked-next-program drawer hint went with it
   (onramp-client.js). */

/* Sunday-brief origin banner */
.tw-brief{display:flex;align-items:center;gap:12px;background:var(--iron);color:#fff;border-radius:9px;padding:13px 14px;margin-bottom:16px;position:relative;overflow:hidden;}
.tw-brief::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--electric);}
.tw-brief .bi{flex:0 0 auto;width:32px;height:32px;border-radius:8px;background:var(--electric);display:flex;align-items:center;justify-content:center;color:#fff;}
.tw-brief .bb{flex:1 1 auto;min-width:0;}
.tw-brief .be{font-family:var(--font-body);font-weight:800;font-size:8.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--sky);}
.tw-brief .bt{font-size:12px;color:var(--silver-2);line-height:1.4;margin-top:3px;}
.tw-brief .bt b{color:#fff;font-weight:700;}
.tw-brief .bx{flex:0 0 auto;width:24px;height:24px;background:transparent;border:1px solid var(--graphite);border-radius:6px;color:var(--silver);display:flex;align-items:center;justify-content:center;cursor:pointer;}

/* week calendar — matches the nutrition planner (p1/assets/planner.js) */
.wk-nav{background:var(--iron);border-radius:8px;padding:12px 12px 11px;margin:0 0 14px;}
.wk-navtop{display:flex;align-items:center;gap:8px;margin-bottom:11px;}
.wk-navbtn{flex:0 0 auto;width:36px;height:36px;border-radius:6px;background:var(--steel);border:1px solid var(--graphite);color:var(--silver-2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color 120ms,color 120ms;}
.wk-navbtn:hover{border-color:var(--electric);color:#fff;}
.wk-navbtn[disabled]{opacity:0.35;pointer-events:none;}
.wk-lab{flex:1 1 auto;text-align:center;min-width:0;}
.wk-range{font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:0.04em;text-transform:uppercase;color:#fff;line-height:1;}
.wk-rel{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--electric);margin-top:4px;}
.wk-rel.past{color:var(--silver);}
.wk-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}
.wkday{position:relative;background:var(--steel);border:1px solid var(--graphite);border-radius:7px;padding:8px 2px 7px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;}
.wkday:hover{border-color:var(--silver);}
.wkday .dow{font-family:var(--font-cond);font-weight:900;font-size:11px;letter-spacing:0.04em;text-transform:uppercase;color:var(--silver);}
.wkday .dnum{font-family:var(--font-cond);font-weight:900;font-size:19px;line-height:1;color:#fff;}
.wkday .dots{display:flex;gap:2.5px;margin-top:2px;height:5px;}
.wkday .dots i{width:5px;height:5px;border-radius:50%;background:var(--graphite);animation:none;}
.wkday .dots i.set{background:var(--silver-2);}
.wkday .dots i.set.crossfit{background:var(--t-crossfit);}
.wkday .dots i.set.zone2{background:var(--t-zone2);}
.wkday .dots i.set.focus{background:var(--t-focus);}
.wkday .dots i.set.contrast{background:var(--t-contrast);}
.wkday .dots i.rest{background:var(--silver-2);}
.wkday.sel .dots i{background:rgba(255,255,255,0.4);}
.wkday.sel .dots i.set{background:#fff;}
.wkday.unplanned{border-color:#b23b3b;background:rgba(178,59,59,0.12);}
.wkday.unplanned .dnum{color:#e06b6b;}
.wkday.unplanned::after{content:"";position:absolute;top:5px;right:6px;width:5px;height:5px;border-radius:50%;background:#b23b3b;}
.wkday.today .dnum{color:var(--electric);}
.wkday.today::after{content:"";position:absolute;top:5px;right:6px;width:5px;height:5px;border-radius:50%;background:var(--electric);}
.wkday.sel{background:var(--electric);border-color:var(--electric);}
.wkday.sel .dow{color:rgba(255,255,255,0.85);}
.wkday.sel .dnum{color:#fff;}
.wkday.sel.today::after,.wkday.sel.unplanned::after{background:#fff;}
.wkday.flag{box-shadow:inset 0 -3px 0 var(--forge);}
/* focused-day header + editor label */
.wk-dayhead{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:0 0 6px;}
.wk-dh-day{font-family:var(--font-cond);font-weight:900;font-size:28px;line-height:0.9;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);}
.wk-dh-date{font-family:var(--font-mono);font-size:11px;color:#888;margin-top:5px;letter-spacing:0.04em;}
.wk-focus-tag{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:uppercase;color:var(--electric);border:1px solid var(--electric);border-radius:999px;padding:4px 10px;}
.wk-focus-tag.rest{color:#9aa1aa;border-color:var(--plate);}
.wk-focus-tag.unplanned{color:#fff;background:var(--rust);border-color:var(--rust);}
.wk-daylabel{font-family:var(--font-body);font-weight:800;font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:#999;margin:14px 0 10px;}
.wk-daylabel.alert{color:#b23b3b;display:flex;align-items:center;gap:6px;letter-spacing:0.08em;}
.wk-daylabel.alert svg{width:14px;height:14px;flex:0 0 auto;}

/* session-type option rows (inline day editor) */
.tw-dayedit{display:flex;flex-direction:column;gap:8px;}
.tw-optwrap{display:flex;flex-direction:column;}
.tw-slots{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 4px 3px 46px;}
.tw-slots-lbl{font-family:var(--font-body);font-weight:800;font-size:8.5px;letter-spacing:0.14em;text-transform:uppercase;color:#a7abb1;margin-right:2px;}
.tw-slot{font-family:var(--font-mono);font-weight:700;font-size:11px;letter-spacing:0.01em;color:#4a4a4a;background:#fff;border:1px solid var(--plate);border-radius:5px;padding:6px 9px;cursor:pointer;transition:border-color 120ms,background 120ms,color 120ms;}
.tw-slot:hover{border-color:var(--silver);}
.tw-slot.on{background:var(--electric);border-color:var(--electric);color:#fff;}
.tw-slot-none{font-family:var(--font-mono);font-size:11px;color:#9aa1aa;font-style:italic;}
.tw-opt.disabled{opacity:0.5;cursor:not-allowed;background:var(--chalk);}
.tw-opt.disabled:hover{border-color:var(--plate);}
.tw-opt.disabled .oi{background:#c4cad1;}
.tw-opt.disabled .on2{color:#8a93a0;}
.tw-opt .ocheck.lock{background:transparent;border-color:var(--plate);color:#a7abb1;}
.tw-opt{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:12px 13px;transition:border-color 120ms,background 120ms;cursor:pointer;}
.tw-opt:hover{border-color:var(--silver);}
.tw-opt .oi{flex:0 0 auto;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;background:#c9ced4;}
.tw-opt.crossfit .oi{background:var(--t-crossfit);}
.tw-opt.zone2 .oi{background:var(--t-zone2);}
.tw-opt.focus .oi{background:var(--t-focus);}
.tw-opt.contrast .oi{background:var(--t-contrast);}
.tw-opt.rest .oi{background:#8A93A0;}
.tw-opt .oi svg{width:19px;height:19px;}
.tw-opt .ob{flex:1 1 auto;min-width:0;}
.tw-opt .on2{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.tw-opt .od{display:block;font-size:11px;color:#7a7a7a;margin-top:3px;line-height:1.35;}
.tw-opt .ocheck{flex:0 0 auto;width:24px;height:24px;border:1.6px solid var(--plate);border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff;}
.tw-opt .ocheck svg{opacity:0;}
.tw-opt.on{border-color:var(--electric);background:rgba(7,93,198,0.05);}
.tw-opt.on .ocheck{background:var(--electric);border-color:var(--electric);}
.tw-opt.on .ocheck svg{opacity:1;}
.tw-opt.crossfit.on{border-color:var(--t-crossfit);}.tw-opt.crossfit.on .ocheck{background:var(--t-crossfit);border-color:var(--t-crossfit);}
.tw-opt.zone2.on{border-color:var(--t-zone2);}.tw-opt.zone2.on .ocheck{background:var(--t-zone2);border-color:var(--t-zone2);}
.tw-opt.focus.on{border-color:var(--t-focus);}.tw-opt.focus.on .ocheck{background:var(--t-focus);border-color:var(--t-focus);}
.tw-opt.contrast.on{border-color:var(--t-contrast);}.tw-opt.contrast.on .ocheck{background:var(--t-contrast);border-color:var(--t-contrast);}
.tw-opt.rest{margin-top:2px;}
.tw-opt.rest.on{border-color:#8A93A0;background:#F4F5F7;}
.tw-opt.rest.on .ocheck{background:#8A93A0;border-color:#8A93A0;}

/* session chips */
.tw-chip{display:inline-flex;align-items:center;gap:5px;color:#fff;font-family:var(--font-body);font-weight:700;font-size:10.5px;letter-spacing:0.03em;text-transform:uppercase;padding:5px 9px 5px 7px;border-radius:5px;}
.tw-chip.crossfit{background:var(--t-crossfit);}.tw-chip.zone2{background:var(--t-zone2);}
.tw-chip.focus{background:var(--t-focus);}.tw-chip.contrast{background:var(--t-contrast);}

/* structure guidance */
.tw-guide{background:var(--iron);color:var(--silver-2);border-radius:9px;padding:15px 16px;margin:14px 0 6px;}
.tw-guide .gt{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.04em;text-transform:uppercase;color:#fff;margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.tw-guide .gt svg{color:var(--sky);}
.tw-guide p{font-size:12px;line-height:1.55;margin-bottom:8px;text-wrap:pretty;}
.tw-guide p:last-child{margin-bottom:0;}
.tw-guide b{color:#fff;font-weight:700;}

/* week quality readout */
.tw-quality{background:#fff;border:1px solid var(--plate);border-radius:10px;padding:17px 16px 15px;margin-bottom:13px;border-top:3px solid var(--electric);transition:border-color 200ms;}
.tw-quality.strong{border-top-color:var(--turf);}
.tw-quality.min{border-top-color:var(--forge);}
.tw-quality.below{border-top-color:var(--rust);}
.tw-q-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.tw-q-l .ql-eyebrow{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:#9aa1aa;margin-bottom:6px;}
.tw-q-l .ql-state{font-family:var(--font-cond);font-weight:900;font-size:27px;letter-spacing:0.02em;text-transform:uppercase;line-height:0.95;}
.tw-q-l .ql-note{font-size:11.5px;color:#666;line-height:1.45;margin-top:7px;max-width:200px;text-wrap:pretty;}
.tw-q-r{flex:0 0 auto;text-align:right;}
.tw-q-r .qn{font-family:var(--font-cond);font-weight:900;font-size:44px;line-height:0.8;}
.tw-q-r .qd{font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:#9aa1aa;margin-top:4px;}
.tw-pips{display:flex;gap:6px;margin-bottom:13px;}
.tw-pip{flex:1 1 0;height:9px;border-radius:3px;background:#E7E9EC;position:relative;overflow:hidden;}
.tw-pip.on{background:var(--electric);}
.tw-pip.min{outline:2px dashed #cfd3d8;outline-offset:2px;}
.tw-quality.strong .tw-pip.on{background:var(--turf);}
.tw-quality.min .tw-pip.on{background:var(--forge);}
.tw-quality.below .tw-pip.on{background:var(--rust);}
.tw-tally{display:grid;gap:8px;padding-top:13px;border-top:1px solid #EEE;}
.tw-tallyc{display:flex;flex-direction:column;align-items:center;gap:5px;}
.tw-tallyc .ti{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff;}
.tw-tallyc .tn{font-family:var(--font-cond);font-weight:900;font-size:17px;color:var(--iron);line-height:1;}
.tw-tallyc .tl2{font-family:var(--font-mono);font-size:8px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);}

/* burnout warn strip */
.tw-warn{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--forge);border-left:4px solid var(--forge);background:linear-gradient(180deg,rgba(216,178,74,0.16),rgba(216,178,74,0.04));padding:13px 14px;border-radius:8px;margin-bottom:13px;}
.tw-warn .wi{flex:0 0 auto;width:22px;height:22px;color:#9a7714;margin-top:1px;}
.tw-warn .wt{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.02em;text-transform:uppercase;color:#7a5e12;line-height:1.05;}
.tw-warn .wd{font-size:11.5px;color:#6e5a24;line-height:1.45;margin-top:4px;}
.tw-warn .wd b{color:#4a3c10;}

/* docked lock-in bar (pinned above the sub-tab bar) */
.tw-lockbar{flex:0 0 auto;background:#fff;border-top:1px solid var(--plate);padding:11px 16px;box-shadow:0 -6px 18px rgba(10,10,10,0.06);}
.tw-locked{display:flex;align-items:center;gap:12px;}
.tw-locked .li{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--turf);color:#fff;display:flex;align-items:center;justify-content:center;}
.tw-locked .lt{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:#0f7a41;line-height:1;}
.tw-locked .ld{font-size:11.5px;color:#3f7a58;line-height:1.4;margin-top:3px;}
.tw-relock{margin-left:auto;flex:0 0 auto;align-self:center;background:#fff;border:1px solid var(--turf);border-radius:6px;color:#0f7a41;font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;padding:8px 13px;cursor:pointer;}
.tw-relock:hover{background:rgba(22,196,106,0.08);}

/* burnout popup */
.tw-popwrap{position:absolute;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:22px;}
.tw-pop-scrim{position:absolute;inset:0;background:rgba(0,0,0,0.55);}
.tw-pop{position:relative;width:100%;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,0.5);}
.tw-pop-top{background:var(--forge);padding:18px 18px 16px;display:flex;align-items:center;gap:13px;}
.tw-pop-top .pi{flex:0 0 auto;width:42px;height:42px;border-radius:10px;background:rgba(255,255,255,0.22);display:flex;align-items:center;justify-content:center;color:#fff;}
.tw-pop-top .pt{font-family:var(--font-cond);font-weight:900;font-size:22px;letter-spacing:0.02em;text-transform:uppercase;color:#fff;line-height:0.95;}
.tw-pop-top .ps{font-family:var(--font-mono);font-size:10px;color:rgba(255,255,255,0.85);margin-top:4px;}
.tw-pop-body{padding:16px 18px 18px;}
.tw-pop-body p{font-size:13px;line-height:1.55;color:#444;text-wrap:pretty;}
.tw-pop-body p b{color:var(--iron);font-weight:700;}
.tw-pop-acts{display:flex;flex-direction:column;gap:9px;margin-top:16px;}

/* "The Week" printable document */
.twk-doc{background:#fff;border:1px solid var(--plate);border-radius:11px;overflow:hidden;}
.twk-head{padding:19px 18px 17px;border-bottom:2px solid var(--iron);display:flex;align-items:flex-end;justify-content:space-between;gap:12px;}
.twk-eyebrow{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--electric);margin-bottom:6px;}
.twk-title{font-family:var(--font-cond);font-weight:900;font-size:34px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:0.9;}
.twk-sub{font-family:var(--font-mono);font-size:10px;color:#9aa1aa;margin-top:8px;}
.twk-print{flex:0 0 auto;width:40px;height:40px;border-radius:8px;border:1px solid var(--plate);background:#fff;color:#6a6a6a;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.twk-print:hover{border-color:var(--electric);color:var(--electric);}
.twk-day{display:flex;gap:14px;padding:14px 18px;border-bottom:1px solid #EEE;}
.twk-day:last-of-type{border-bottom:none;}
.twk-day.rest{background:#FAFAFB;}
.twk-date{flex:0 0 46px;text-align:center;}
.twk-date .dn{font-family:var(--font-cond);font-weight:900;font-size:26px;color:var(--iron);line-height:0.9;}
.twk-date .dw{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:#a7abb1;margin-top:4px;}
.twk-day.rest .dn{color:#c4cad1;}
.twk-lines{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:9px;justify-content:center;}
.twk-line{display:flex;align-items:center;gap:10px;}
.twk-line .dot{flex:0 0 auto;width:10px;height:10px;border-radius:3px;}
.twk-line .ln{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);}
.twk-line .lm{font-family:var(--font-mono);font-size:10px;color:#9aa1aa;margin-left:auto;white-space:nowrap;}
.twk-restlab{font-family:var(--font-body);font-style:italic;font-size:12.5px;color:#b0b6bd;}
.twk-totals{display:grid;gap:1px;background:#EEE;border-top:2px solid var(--iron);}
.twk-tot{background:#fff;padding:14px 6px;text-align:center;}
.twk-tot .tv{font-family:var(--font-cond);font-weight:900;font-size:24px;color:var(--iron);line-height:1;}
.twk-tot .tv.blue{color:var(--electric);}
.twk-tot .tl3{font-family:var(--font-mono);font-size:8px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);margin-top:6px;}
.twk-note{font-size:11.5px;color:#9aa1aa;line-height:1.5;text-align:center;margin-top:14px;text-wrap:pretty;}

/* prescription tabs (zone 2 / contrast) */
.rx-hero{color:#fff;border-radius:11px;padding:18px 17px;margin-bottom:14px;position:relative;overflow:hidden;}
.rx-hero.zone2{background:var(--t-zone2);}.rx-hero.contrast{background:var(--t-contrast);}
.rx-hero .rh-top{display:flex;align-items:center;gap:12px;margin-bottom:13px;}
.rx-hero .rh-ic{flex:0 0 auto;width:44px;height:44px;border-radius:10px;background:rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center;}
.rx-hero .rh-eyebrow{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,255,255,0.82);}
.rx-hero .rh-title{font-family:var(--font-cond);font-weight:900;font-size:25px;letter-spacing:0.02em;text-transform:uppercase;line-height:0.95;margin-top:3px;}
.rx-hero .rh-desc{font-size:12.5px;line-height:1.55;color:rgba(255,255,255,0.92);text-wrap:pretty;}
.rx-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,0.25);border-radius:7px;overflow:hidden;margin-top:14px;}
.rx-stat{padding:12px 8px;text-align:center;}
.rx-stat.zone2{background:var(--t-zone2);}.rx-stat.contrast{background:var(--t-contrast);}
.rx-stat .sv{font-family:var(--font-cond);font-weight:900;font-size:20px;color:#fff;line-height:1;}
.rx-stat .sl{font-family:var(--font-body);font-weight:700;font-size:8px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.8);margin-top:6px;}
.rx-planned{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:12px 14px;margin-bottom:14px;}
.rx-planned .rp-n{flex:0 0 auto;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-cond);font-weight:900;font-size:18px;}
.rx-planned .rp-t{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.rx-planned .rp-d{font-size:11.5px;color:#7a7a7a;margin-top:3px;}
.rx-cue{display:flex;gap:12px;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:13px 14px;margin-bottom:8px;}
.rx-cue .cn{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-cond);font-weight:900;font-size:13px;}
.rx-cue .cb{flex:1 1 auto;min-width:0;}
.rx-cue .ct{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.rx-cue .cd{font-size:12px;color:#666;line-height:1.45;margin-top:4px;text-wrap:pretty;}
.rx-mode{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:12px 14px;margin-bottom:8px;}
.rx-mode .mb{flex:1 1 auto;min-width:0;}
.rx-mode .mn{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.rx-mode .md{font-size:11.5px;color:#777;margin-top:4px;line-height:1.4;}
.rx-mgoals{flex:0 0 auto;display:flex;gap:14px;text-align:right;}
.rx-mgoals .mg{display:flex;flex-direction:column;gap:3px;align-items:flex-end;}
.rx-mgoals .mg .k{font-family:var(--font-body);font-weight:700;font-size:7.5px;letter-spacing:0.1em;text-transform:uppercase;color:#b0b6bd;}
.rx-mgoals .mg .v{font-family:var(--font-mono);font-weight:700;font-size:12px;color:var(--iron);white-space:nowrap;}
.rx-goalnote{font-family:var(--font-mono);font-size:10px;line-height:1.5;color:#9aa1aa;margin-top:4px;text-wrap:pretty;}
.rx-round{display:flex;align-items:stretch;gap:0;background:#fff;border:1px solid var(--plate);border-radius:9px;overflow:hidden;margin-bottom:9px;}
.rx-round .rn{flex:0 0 auto;width:46px;background:var(--t-contrast);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.rx-round .rn .rl{font-family:var(--font-mono);font-size:8px;letter-spacing:0.06em;text-transform:uppercase;opacity:0.8;}
.rx-round .rn .rv{font-family:var(--font-cond);font-weight:900;font-size:22px;line-height:1;}
.rx-round .rc{flex:1 1 auto;display:flex;}
.rx-round .rcell{flex:1 1 0;padding:11px 12px;}
.rx-round .rcell+.rcell{border-left:1px solid #EEE;}
.rx-round .rk{font-family:var(--font-body);font-weight:700;font-size:8px;letter-spacing:0.12em;text-transform:uppercase;margin-bottom:5px;display:flex;align-items:center;gap:5px;}
.rx-round .rk.heat{color:#B0730C;}.rx-round .rk.cold{color:var(--t-zone2);}
.rx-round .rval{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.01em;text-transform:uppercase;color:var(--iron);line-height:1.05;}


/* session dropdown — tap a session, answer one question, it closes again */
.tw-optwrap{position:relative;}
.tw-optwrap.open{z-index:20;}
.tw-menuscrim{position:fixed;inset:0;z-index:18;}
.tw-opt .oval{flex:0 0 auto;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-weight:700;font-size:11px;color:#4a4a4a;background:var(--chalk);border:1px solid var(--plate);border-radius:5px;padding:5px 7px;}
.tw-opt .ocaret{flex:0 0 auto;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#b8bec5;}
.tw-opt.active{border-color:var(--iron);}
.tw-opt.active .ocaret{color:var(--iron);transform:rotate(180deg);}
.tw-optwrap.crossfit .tw-opt.on .oval{color:var(--t-crossfit);border-color:rgba(7,93,198,0.32);background:rgba(7,93,198,0.07);}
.tw-optwrap.zone2 .tw-opt.on .oval{color:var(--t-zone2);border-color:rgba(44,122,136,0.32);background:rgba(44,122,136,0.07);}
.tw-optwrap.focus .tw-opt.on .oval{color:var(--t-focus);border-color:rgba(176,115,12,0.32);background:rgba(176,115,12,0.07);}
.tw-optwrap.contrast .tw-opt.on .oval{color:var(--t-contrast);border-color:rgba(91,94,140,0.32);background:rgba(91,94,140,0.07);}
.tw-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--iron);border-radius:9px;box-shadow:0 18px 40px rgba(10,10,10,0.22);padding:11px 11px 10px;animation:twMenuIn 140ms cubic-bezier(0.2,0.7,0.2,1) both;}
@keyframes twMenuIn{from{opacity:0;transform:translateY(-5px);}to{opacity:1;transform:none;}}
.tw-menu-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px;}
.tw-menu-h .mh{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:#9aa1aa;}
.tw-menu-h .mx{width:24px;height:24px;margin:-5px -4px -5px 0;border:none;background:transparent;color:#b8bec5;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.tw-menu-h .mx:hover{color:var(--iron);}
.tw-menu-g{display:grid;gap:6px;}
.tw-mi{font-family:var(--font-mono);font-weight:700;font-size:12px;color:#3a3a3a;background:#fff;border:1px solid var(--plate);border-radius:6px;padding:10px 8px;min-height:42px;cursor:pointer;transition:border-color 120ms,background 120ms,color 120ms;}
.tw-mi:hover{border-color:var(--silver);}
.tw-mi.on{background:var(--electric);border-color:var(--electric);color:#fff;}
.tw-mi.any{font-family:var(--font-body);font-weight:600;font-size:11.5px;color:#8a8f95;}
.tw-optwrap.zone2 .tw-mi.on{background:var(--t-zone2);border-color:var(--t-zone2);color:#fff;}
.tw-optwrap.focus .tw-mi.on{background:var(--t-focus);border-color:var(--t-focus);color:#fff;}
.tw-optwrap.contrast .tw-mi.on{background:var(--t-contrast);border-color:var(--t-contrast);color:#fff;}
.tw-menu-rm{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:38px;margin-top:9px;padding-top:9px;border:none;border-top:1px solid #EEE;background:transparent;font-family:var(--font-cond);font-weight:900;font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;color:#b23b3b;cursor:pointer;}
.tw-menu-rm:hover{color:#8f2c2c;}

/* session chips */
.tw-chip{display:inline-flex;align-items:center;gap:5px;color:#fff;font-family:var(--font-body);font-weight:700;font-size:10.5px;letter-spacing:0.03em;text-transform:uppercase;padding:5px 9px 5px 7px;border-radius:5px;}
.tw-chip.crossfit{background:var(--t-crossfit);}.tw-chip.zone2{background:var(--t-zone2);}
.tw-chip.focus{background:var(--t-focus);}.tw-chip.contrast{background:var(--t-contrast);}

/* structure guidance */
.tw-guide{background:var(--iron);color:var(--silver-2);border-radius:9px;padding:15px 16px;margin:14px 0 6px;}
.tw-guide .gt{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.04em;text-transform:uppercase;color:#fff;margin-bottom:8px;display:flex;align-items:center;gap:8px;}
.tw-guide .gt svg{color:var(--sky);}
.tw-guide p{font-size:12px;line-height:1.55;margin-bottom:8px;text-wrap:pretty;}
.tw-guide p:last-child{margin-bottom:0;}
.tw-guide b{color:#fff;font-weight:700;}

/* week quality readout */
.tw-quality{background:#fff;border:1px solid var(--plate);border-radius:10px;padding:17px 16px 15px;margin-bottom:13px;border-top:3px solid var(--electric);transition:border-color 200ms;}
.tw-quality.strong{border-top-color:var(--turf);}
.tw-quality.min{border-top-color:var(--forge);}
.tw-quality.below{border-top-color:var(--rust);}
.tw-q-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.tw-q-l .ql-eyebrow{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:#9aa1aa;margin-bottom:6px;}
.tw-q-l .ql-state{font-family:var(--font-cond);font-weight:900;font-size:27px;letter-spacing:0.02em;text-transform:uppercase;line-height:0.95;}
.tw-q-l .ql-note{font-size:11.5px;color:#666;line-height:1.45;margin-top:7px;max-width:200px;text-wrap:pretty;}
.tw-q-r{flex:0 0 auto;text-align:right;}
.tw-q-r .qn{font-family:var(--font-cond);font-weight:900;font-size:44px;line-height:0.8;}
.tw-q-r .qd{font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:#9aa1aa;margin-top:4px;}
.tw-pips{display:flex;gap:6px;margin-bottom:13px;}
.tw-pip{flex:1 1 0;height:9px;border-radius:3px;background:#E7E9EC;position:relative;overflow:hidden;}
.tw-pip.on{background:var(--electric);}
.tw-pip.min{outline:2px dashed #cfd3d8;outline-offset:2px;}
.tw-quality.strong .tw-pip.on{background:var(--turf);}
.tw-quality.min .tw-pip.on{background:var(--forge);}
.tw-quality.below .tw-pip.on{background:var(--rust);}
.tw-tally{display:grid;gap:8px;padding-top:13px;border-top:1px solid #EEE;}
.tw-tallyc{display:flex;flex-direction:column;align-items:center;gap:5px;}
.tw-tallyc .ti{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff;}
.tw-tallyc .tn{font-family:var(--font-cond);font-weight:900;font-size:17px;color:var(--iron);line-height:1;}
.tw-tallyc .tl2{font-family:var(--font-mono);font-size:8px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);}

/* burnout warn strip */
.tw-warn{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--forge);border-left:4px solid var(--forge);background:linear-gradient(180deg,rgba(216,178,74,0.16),rgba(216,178,74,0.04));padding:13px 14px;border-radius:8px;margin-bottom:13px;}
.tw-warn .wi{flex:0 0 auto;width:22px;height:22px;color:#9a7714;margin-top:1px;}
.tw-warn .wt{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.02em;text-transform:uppercase;color:#7a5e12;line-height:1.05;}
.tw-warn .wd{font-size:11.5px;color:#6e5a24;line-height:1.45;margin-top:4px;}
.tw-warn .wd b{color:#4a3c10;}

/* docked lock-in bar (pinned above the sub-tab bar) */
.tw-lockbar{flex:0 0 auto;background:#fff;border-top:1px solid var(--plate);padding:11px 16px;box-shadow:0 -6px 18px rgba(10,10,10,0.06);}
.tw-locked{display:flex;align-items:center;gap:12px;}
.tw-locked .li{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--turf);color:#fff;display:flex;align-items:center;justify-content:center;}
.tw-locked .lt{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:#0f7a41;line-height:1;}
.tw-locked .ld{font-size:11.5px;color:#3f7a58;line-height:1.4;margin-top:3px;}
.tw-relock{margin-left:auto;flex:0 0 auto;align-self:center;background:#fff;border:1px solid var(--turf);border-radius:6px;color:#0f7a41;font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;padding:8px 13px;cursor:pointer;}
.tw-relock:hover{background:rgba(22,196,106,0.08);}

/* burnout popup */
.tw-popwrap{position:absolute;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:22px;}
.tw-pop-scrim{position:absolute;inset:0;background:rgba(0,0,0,0.55);}
.tw-pop{position:relative;width:100%;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,0.5);}
.tw-pop-top{background:var(--forge);padding:18px 18px 16px;display:flex;align-items:center;gap:13px;}
.tw-pop-top .pi{flex:0 0 auto;width:42px;height:42px;border-radius:10px;background:rgba(255,255,255,0.22);display:flex;align-items:center;justify-content:center;color:#fff;}
.tw-pop-top .pt{font-family:var(--font-cond);font-weight:900;font-size:22px;letter-spacing:0.02em;text-transform:uppercase;color:#fff;line-height:0.95;}
.tw-pop-top .ps{font-family:var(--font-mono);font-size:10px;color:rgba(255,255,255,0.85);margin-top:4px;}
.tw-pop-body{padding:16px 18px 18px;}
.tw-pop-body p{font-size:13px;line-height:1.55;color:#444;text-wrap:pretty;}
.tw-pop-body p b{color:var(--iron);font-weight:700;}
.tw-pop-acts{display:flex;flex-direction:column;gap:9px;margin-top:16px;}

/* "The Week" print actions (mirrors Nutrition › The Week) */
.twk-act{background:#fff;border:1px solid var(--plate);border-radius:10px;padding:15px 16px 16px;margin-bottom:13px;}
.twk-act .row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;}
.twk-act .v{font-family:var(--font-cond);font-weight:900;font-size:30px;line-height:0.9;color:var(--iron);}
.twk-act .v u{font-family:var(--font-mono);font-weight:500;font-size:11px;color:#9aa1aa;text-decoration:none;margin-left:7px;}
.twk-act .r{font-family:var(--font-mono);font-size:10px;color:#9aa1aa;text-align:right;line-height:1.7;}
.twk-acts{display:flex;gap:8px;margin-top:13px;}
.twk-acts button{font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.07em;text-transform:uppercase;border-radius:5px;padding:10px 13px;min-height:42px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;}
.twk-acts .pri{flex:1 1 auto;justify-content:center;background:var(--electric);border:1px solid var(--electric);color:#fff;}
.twk-acts .pri:active{background:var(--electric-deep);border-color:var(--electric-deep);}
.twk-acts .tog{background:#fff;border:1px solid var(--plate);color:#8a8f95;}
.twk-acts .tog .bx{width:16px;height:16px;border:1.5px solid var(--plate);border-radius:3px;display:flex;align-items:center;justify-content:center;color:#fff;}
.twk-acts .tog .bx svg{opacity:0;}
.twk-acts .tog.on{border-color:var(--electric);color:var(--electric);}
.twk-acts .tog.on .bx{background:var(--electric);border-color:var(--electric);}
.twk-acts .tog.on .bx svg{opacity:1;}
.twk-hint{font-size:11.5px;line-height:1.55;color:#8a8f95;margin-top:11px;text-wrap:pretty;}
.twk-hint b{color:var(--iron);font-weight:700;}

/* "The Week" printable document */
.twk-doc{background:#fff;border:1px solid var(--plate);border-radius:11px;overflow:hidden;}
.twk-head{padding:19px 18px 17px;border-bottom:2px solid var(--iron);display:flex;align-items:flex-end;justify-content:space-between;gap:12px;}
.twk-eyebrow{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--electric);margin-bottom:6px;}
.twk-title{font-family:var(--font-cond);font-weight:900;font-size:34px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:0.9;}
.twk-sub{font-family:var(--font-mono);font-size:10px;color:#9aa1aa;margin-top:8px;}
.twk-print{flex:0 0 auto;width:40px;height:40px;border-radius:8px;border:1px solid var(--plate);background:#fff;color:#6a6a6a;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.twk-print:hover{border-color:var(--electric);color:var(--electric);}
.twk-day{display:flex;gap:14px;padding:14px 18px;border-bottom:1px solid #EEE;}
.twk-day:last-of-type{border-bottom:none;}
.twk-day.rest{background:#FAFAFB;}
.twk-date{flex:0 0 46px;text-align:center;}
.twk-date .dn{font-family:var(--font-cond);font-weight:900;font-size:26px;color:var(--iron);line-height:0.9;}
.twk-date .dw{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:#a7abb1;margin-top:4px;}
.twk-day.rest .dn{color:#c4cad1;}
.twk-lines{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:9px;justify-content:center;}
.twk-line{display:flex;align-items:center;gap:10px;}
.twk-line .dot{flex:0 0 auto;width:10px;height:10px;border-radius:3px;}
.twk-line .ln{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);}
.twk-line .lm{font-family:var(--font-mono);font-size:10px;color:#9aa1aa;margin-left:auto;white-space:nowrap;}
.twk-restlab{font-family:var(--font-body);font-style:italic;font-size:12.5px;color:#b0b6bd;}
.twk-totals{display:grid;gap:1px;background:#EEE;border-top:2px solid var(--iron);}
.twk-tot{background:#fff;padding:14px 6px;text-align:center;}
.twk-tot .tv{font-family:var(--font-cond);font-weight:900;font-size:24px;color:var(--iron);line-height:1;}
.twk-tot .tv.blue{color:var(--electric);}
.twk-tot .tl3{font-family:var(--font-mono);font-size:8px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);margin-top:6px;}
.twk-note{font-size:11.5px;color:#9aa1aa;line-height:1.5;text-align:center;margin-top:14px;text-wrap:pretty;}

/* prescription tabs (zone 2 / contrast) */
.rx-hero{color:#fff;border-radius:11px;padding:18px 17px;margin-bottom:14px;position:relative;overflow:hidden;}
.rx-hero.zone2{background:var(--t-zone2);}.rx-hero.contrast{background:var(--t-contrast);}
.rx-hero .rh-top{display:flex;align-items:center;gap:12px;margin-bottom:13px;}
.rx-hero .rh-ic{flex:0 0 auto;width:44px;height:44px;border-radius:10px;background:rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center;}
.rx-hero .rh-eyebrow{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,255,255,0.82);}
.rx-hero .rh-title{font-family:var(--font-cond);font-weight:900;font-size:25px;letter-spacing:0.02em;text-transform:uppercase;line-height:0.95;margin-top:3px;}
.rx-hero .rh-desc{font-size:12.5px;line-height:1.55;color:rgba(255,255,255,0.92);text-wrap:pretty;}
.rx-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,0.25);border-radius:7px;overflow:hidden;margin-top:14px;}
.rx-stat{padding:12px 8px;text-align:center;}
.rx-stat.zone2{background:var(--t-zone2);}.rx-stat.contrast{background:var(--t-contrast);}
.rx-stat .sv{font-family:var(--font-cond);font-weight:900;font-size:20px;color:#fff;line-height:1;}
.rx-stat .sl{font-family:var(--font-body);font-weight:700;font-size:8px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.8);margin-top:6px;}
.rx-planned{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:12px 14px;margin-bottom:14px;}
.rx-planned .rp-n{flex:0 0 auto;width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-cond);font-weight:900;font-size:18px;}
.rx-planned .rp-t{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.rx-planned .rp-d{font-size:11.5px;color:#7a7a7a;margin-top:3px;}
.rx-cue{display:flex;gap:12px;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:13px 14px;margin-bottom:8px;}
.rx-cue .cn{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-cond);font-weight:900;font-size:13px;}
.rx-cue .cb{flex:1 1 auto;min-width:0;}
.rx-cue .ct{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.rx-cue .cd{font-size:12px;color:#666;line-height:1.45;margin-top:4px;text-wrap:pretty;}
.rx-mode{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:12px 14px;margin-bottom:8px;}
.rx-mode .mb{flex:1 1 auto;min-width:0;}
.rx-mode .mn{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.rx-mode .md{font-size:11.5px;color:#777;margin-top:4px;line-height:1.4;}
.rx-mgoals{flex:0 0 auto;display:flex;gap:14px;text-align:right;}
.rx-mgoals .mg{display:flex;flex-direction:column;gap:3px;align-items:flex-end;}
.rx-mgoals .mg .k{font-family:var(--font-body);font-weight:700;font-size:7.5px;letter-spacing:0.1em;text-transform:uppercase;color:#b0b6bd;}
.rx-mgoals .mg .v{font-family:var(--font-mono);font-weight:700;font-size:12px;color:var(--iron);white-space:nowrap;}
.rx-goalnote{font-family:var(--font-mono);font-size:10px;line-height:1.5;color:#9aa1aa;margin-top:4px;text-wrap:pretty;}
.rx-round{display:flex;align-items:stretch;gap:0;background:#fff;border:1px solid var(--plate);border-radius:9px;overflow:hidden;margin-bottom:9px;}
.rx-round .rn{flex:0 0 auto;width:46px;background:var(--t-contrast);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.rx-round .rn .rl{font-family:var(--font-mono);font-size:8px;letter-spacing:0.06em;text-transform:uppercase;opacity:0.8;}
.rx-round .rn .rv{font-family:var(--font-cond);font-weight:900;font-size:22px;line-height:1;}
.rx-round .rc{flex:1 1 auto;display:flex;}
.rx-round .rcell{flex:1 1 0;padding:11px 12px;}
.rx-round .rcell+.rcell{border-left:1px solid #EEE;}
.rx-round .rk{font-family:var(--font-body);font-weight:700;font-size:8px;letter-spacing:0.12em;text-transform:uppercase;margin-bottom:5px;display:flex;align-items:center;gap:5px;}
.rx-round .rk.heat{color:#B0730C;}.rx-round .rk.cold{color:var(--t-zone2);}
.rx-round .rval{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.01em;text-transform:uppercase;color:var(--iron);line-height:1.05;}

/* ===== "The Week" A4-landscape print pack (preview overlay + colour sheet) ===== */
/* FIXED, NOT ABSOLUTE [23 Aug 2026 - Adam: "I click print, it brings up this
   screen and no option to actually print"]. Absolute resolves against the nearest
   positioned ancestor - a tall scrolling container - so inset:0 spanned the whole
   SCROLL height, not the viewport: the pages showed but the toolbar carrying Print
   and Close sat at the top of that box, off screen above the scroll position, and
   the app header and tabs stayed visible around it. The two sheets that print fine
   are both pinned to a viewport (the shopping list is position:fixed; the nutrition
   week is absolute inside the engine frame, whose shell IS one viewport tall). */
.twp-scrim{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,0.78);display:flex;flex-direction:column;}
.twp-bar{flex:0 0 auto;display:flex;align-items:center;gap:9px;padding:12px 13px;background:var(--iron);border-bottom:1px solid var(--graphite);}
.twp-bar .pt{flex:1 1 auto;min-width:0;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.04em;text-transform:uppercase;color:#fff;line-height:1.2;}
.twp-bar .pt span{display:block;font-family:var(--font-mono);font-weight:400;font-size:9px;letter-spacing:0.04em;text-transform:none;color:var(--silver);margin-top:3px;}
.twp-bar button{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;border-radius:5px;padding:9px 12px;min-height:42px;cursor:pointer;border:none;}
.twp-bar .dl{background:var(--electric);color:#fff;}
.twp-bar .zm,.twp-bar .cl{background:transparent;border:1px solid var(--graphite);color:var(--silver);}
.twp-bar .zm:hover,.twp-bar .cl:hover{color:#fff;border-color:var(--silver);}
.twp-view{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:12px;background:#2A2A2A;}
.twp-fit{margin:0 auto;}
.twp-sheet{transform-origin:top left;width:1122px;}
.twp-page{width:1122px;height:793px;background:#fff;color:#111;padding:30px 34px 24px;margin-bottom:16px;box-shadow:0 18px 50px rgba(0,0,0,0.55);overflow:hidden;display:flex;flex-direction:column;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
.twp-page:last-child{margin-bottom:0;}
.twp-mast{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:3px solid #0A0A0A;padding-bottom:13px;margin-bottom:16px;}
.twp-brand{font-family:var(--font-cond);font-weight:900;font-size:33px;letter-spacing:0.02em;text-transform:uppercase;color:#0A0A0A;line-height:0.86;}
.twp-brand span{display:block;font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.3em;color:#075DC6;margin-top:7px;}
.twp-id{text-align:right;}
.twp-id .t{font-family:var(--font-cond);font-weight:900;font-size:23px;letter-spacing:0.05em;text-transform:uppercase;color:#0A0A0A;line-height:1;}
.twp-id .s{font-family:var(--font-mono);font-size:10.5px;color:#666;margin-top:7px;line-height:1.65;}
.twp-id .s b{color:#0A0A0A;font-weight:700;}
.twp-grid{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto 1fr;border-left:1px solid #C9C9C9;border-top:1px solid #C9C9C9;}
.twp-ch{border-right:1px solid #C9C9C9;border-bottom:2px solid #0A0A0A;padding:9px 10px 10px;}
.twp-ch .d{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.05em;text-transform:uppercase;color:#0A0A0A;line-height:1;}
.twp-ch .n{font-family:var(--font-mono);font-size:9.5px;color:#8a8f95;margin-top:5px;}
.twp-ch.today{background:#F1F6FD;}
.twp-ch.today .d{color:#075DC6;}
.twp-cb{border-right:1px solid #C9C9C9;border-bottom:1px solid #C9C9C9;padding:9px;display:flex;flex-direction:column;gap:8px;}
.twp-cb.off{background:#FAFAFA;}
.twp-t{position:relative;border-radius:4px;padding:10px 9px 9px;color:#fff;}
.twp-t .tk{position:absolute;top:9px;right:8px;width:13px;height:13px;border:1.5px solid rgba(255,255,255,0.72);border-radius:2px;}
.twp-t .tn{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.03em;text-transform:uppercase;line-height:1.05;padding-right:19px;}
.twp-t .tm{font-family:var(--font-mono);font-size:9.5px;color:rgba(255,255,255,0.86);margin-top:6px;}
.twp-t.rest{background:#F1F2F4;border:1px dashed #C9CDD3;color:#9aa1aa;}
.twp-t.rest .tk{border-color:#C4CAD1;}
.twp-t.rest .tm{color:#a7abb1;}
.twp-tot{flex:0 0 auto;display:flex;align-items:stretch;border:1px solid #C9C9C9;border-top:none;}
.twp-tot .lab{flex:0 0 auto;display:flex;align-items:center;background:#0A0A0A;color:#fff;font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.14em;text-transform:uppercase;padding:11px 15px;}
.twp-tot .c{flex:1 1 0;display:flex;align-items:center;gap:9px;padding:10px 15px;border-left:1px solid #E4E4E4;}
.twp-tot .c .sw{flex:0 0 auto;width:11px;height:11px;border-radius:2px;}
.twp-tot .c .n{font-family:var(--font-cond);font-weight:900;font-size:22px;color:#0A0A0A;line-height:1;}
.twp-tot .c .l{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.06em;text-transform:uppercase;color:#8a8f95;}
.twp-foot{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #DDD;margin-top:13px;padding-top:10px;font-family:var(--font-mono);font-size:9.5px;color:#8a8f95;}
.twp-foot b{color:#0A0A0A;font-weight:700;}
.twp-cols{flex:1 1 auto;min-height:0;display:grid;gap:32px;}
.twp-sect{border-left:3px solid #075DC6;padding-left:16px;}
.twp-sect .st{font-family:var(--font-cond);font-weight:900;font-size:26px;letter-spacing:0.03em;text-transform:uppercase;color:#0A0A0A;line-height:1;}
.twp-sect .ss{font-family:var(--font-mono);font-size:10.5px;color:#666;margin-top:8px;}
.twp-sect .sl{font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:#0A0A0A;border-bottom:1px solid #DDD;padding-bottom:5px;margin:18px 0 8px;}
.twp-sect table{width:100%;border-collapse:collapse;}
.twp-sect td{padding:5px 0;border-bottom:1px solid #F0F0F0;font-size:12.5px;color:#111;}
.twp-sect td.r{text-align:right;font-family:var(--font-mono);font-size:11px;color:#666;white-space:nowrap;padding-left:10px;}
.twp-sect ul{list-style:none;margin:0;padding:0;}
.twp-sect li{display:grid;grid-template-columns:16px 1fr;gap:8px;padding:5px 0;font-size:12.5px;line-height:1.45;color:#444;}
.twp-sect li::before{content:"";width:7px;height:7px;border-radius:2px;background:var(--bul,#075DC6);margin-top:6px;}
.twp-sect li b{display:block;font-family:var(--font-cond);font-weight:900;font-size:13.5px;letter-spacing:0.02em;text-transform:uppercase;color:#0A0A0A;}

/* ═══════════════ PRINT ═══════════════
   [21 Aug 2026 · Adam] Every print came out BLANK. Two reasons, both here:

   1. This block was written against the DESIGN bundle's phone-frame mock
      (.phonewrap / .phone / .phone .screen). None of those elements exist in
      the live app — it renders into #root — so nine of its twelve rules
      matched nothing at all.
   2. Nothing reset the page itself. The live shell is html,body{height:100%;
      overflow:hidden} + #root{height:100vh;overflow:hidden}, which is right for
      an app that must not scroll behind its own chrome and fatal for print: the
      printable area is clipped to one viewport of a box that hides its overflow,
      so the sheet — laid out below it — never makes it onto the paper.

   The shopping list was the control: assets/planner.js resets html/body in its
   own print CSS and that one printed fine. It is the same reset here.

   Two print modes, one shell:
     .tw-sheetprint   the training week, rendered by p1/training.js in this doc
     .ib-frameprint   a sheet rendered INSIDE the engine iframe. iOS Safari
                      prints the TOP document when a subframe calls print(), so
                      the frame asks us to do it (see p1/nutrition.js) and we
                      give the page over to it at its full content height. */
@media print{
  /* the page can be as long as the sheet is - ONLY for a print we are driving.
     Unscoped, this also reshaped any print we do NOT manage (a frame calling
     window.print() on its own): the app would lay out at its full natural
     height and spill across several pages instead of the one clipped viewport
     that used to come out. If IBPrint did not set this up, leave the page alone. */
  body.ib-printing,html:has(body.ib-printing){height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important;}
  /* GEOMETRY ONLY - NEVER display [23 Aug 2026]. This carried display:block,
     which out-specifies the >*{display:none} above and so kept the whole app on
     the paper beside the sheet. #root is shown by .ib-printpath when it is on the
     path to the target, and must stay hidden when it is not. */
  body.ib-printing #root{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;}

  /* ── the training week, in this document ── */
  /* the isolation is display:none on the untagged siblings above - a second,
     visibility-based pass here would only risk hiding part of the sheet */
  body.tw-sheetprint .twp-scrim{position:static!important;display:block!important;background:#fff!important;inset:auto!important;z-index:auto!important;}
  body.tw-sheetprint .twp-bar{display:none!important;}
  body.tw-sheetprint .twp-view{padding:0!important;overflow:visible!important;background:#fff!important;display:block!important;}
  body.tw-sheetprint .twp-fit{width:auto!important;height:auto!important;margin:0!important;}
  body.tw-sheetprint .twp-sheet{transform:none!important;width:auto!important;}
  body.tw-sheetprint .twp-page{margin:0!important;box-shadow:none!important;page-break-after:always;break-after:page;}
  body.tw-sheetprint .twp-page:last-child{page-break-after:auto;break-after:auto;}

  /* a print DOCUMENT built for the job (IBPrint.sheet): off-screen until the
     print, then it is the only thing on the page. */
  body.ib-printing .ib-sheetprint{display:block!important;}
  /* ── ONE ELEMENT GETS THE PAGE (p1/printing.js) ──
     display:none, not visibility:hidden — a hidden element still takes up its
     space, which is why the app used to print blank pages ahead of the sheet.
     The path classes are put on by JS because CSS cannot select an ancestor. */
  body.ib-printing>*{display:none!important;}
  body.ib-printing .ib-printpath{display:block!important;position:static!important;inset:auto!important;width:auto!important;max-width:none!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;transform:none!important;margin:0!important;padding:0!important;background:#fff!important;box-shadow:none!important;border:0!important;}
  body.ib-printing .ib-printpath>*:not(.ib-printpath):not(.ib-printtarget){display:none!important;}
  /* NOT height — an iframe is stood at its content height inline, and an
     !important here would override it and print one frame-sized box. */
  body.ib-printing .ib-printtarget{display:block!important;position:static!important;inset:auto!important;width:100%!important;max-width:none!important;min-height:0!important;max-height:none!important;overflow:visible!important;transform:none!important;margin:0!important;border:0!important;box-shadow:none!important;background:#fff!important;}
}

/* ═════ ROAD TO RX'D DASHBOARD (Today tab) ═════
   The Beyond Rx'd v3 dashboard vocabulary, namespaced `d-` so it can sit
   beside the app's existing card styles: section label, overall-progress hero,
   check-in countdown, body-comp streak, program dropdown + program hero. */
.d-lbl{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.1em;text-transform:uppercase;color:var(--iron);margin:24px 2px 11px;display:flex;align-items:center;gap:11px;}
.d-lbl:first-child{margin-top:4px;}
.d-lbl::after{content:"";flex:1;height:2px;background:var(--iron);opacity:0.12;}

/* ring (shared by the hero) */
.d-ring{position:relative;flex:0 0 auto;width:88px;height:88px;}
.d-ring svg{width:88px;height:88px;display:block;transform:rotate(-90deg);}
.d-ringc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--font-cond);line-height:1;}
.d-ringc b{font-size:25px;font-weight:900;color:#fff;letter-spacing:-0.01em;}
.d-ringc span{font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;color:var(--silver);margin-top:4px;}

/* 1 · overall progress */
.d-ov{background:var(--iron);border:1px solid var(--graphite);border-top:3px solid var(--electric);border-radius:10px;padding:17px 16px 15px;}
.d-ov-top{display:flex;align-items:center;gap:16px;}
.d-ov-r{flex:1 1 auto;min-width:0;}
.d-ov-pct{font-family:var(--font-cond);font-weight:900;font-size:36px;line-height:0.9;color:#1C77E0;}
.d-ov-pct em{display:block;font-family:var(--font-body);font-style:normal;font-weight:600;font-size:11px;line-height:1.35;color:var(--silver-2);margin-top:6px;}
.d-ov-next{margin-top:11px;display:flex;flex-direction:column;gap:3px;}
.d-ov-next .l{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--silver);}
.d-ov-next .v{font-family:var(--font-cond);font-weight:800;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.d-ov-cats{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-top:18px;}
.d-ov-cat{background:none;border:none;padding:0;text-align:left;cursor:pointer;display:block;}
.d-ov-cat:nth-child(3){grid-column:1/-1;}
.d-ov-cat .t{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:5px;gap:8px;}
.d-ov-cat .t span{font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);white-space:nowrap;}
.d-ov-cat .t b{font-family:var(--font-cond);font-weight:900;font-size:13px;color:#fff;}
.d-ov-cat .t b span{color:var(--silver);}
.d-ov-cat .bar{height:5px;background:rgba(255,255,255,0.1);border-radius:4px;overflow:hidden;}
.d-ov-cat .bar i{display:block;height:100%;background:var(--cc);border-radius:4px;transition:width .3s var(--ease,cubic-bezier(0.2,0.7,0.2,1));}
.d-ov-cat:hover .t b{color:var(--cc);}
.d-ov-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;border-top:1px solid var(--graphite);padding-top:13px;}
.d-ov-foot .x{font-size:10.5px;color:var(--silver);line-height:1.4;text-wrap:pretty;}
.d-ov-foot .c{display:flex;gap:11px;flex:0 0 auto;font-family:var(--font-mono);font-size:12px;font-weight:700;color:#fff;}
.d-ov-foot .c span{display:flex;align-items:center;gap:5px;}
.d-ov-foot .c i{width:9px;height:9px;border-radius:50%;}
.d-ov-foot .c .ow i{background:var(--turf);}
.d-ov-foot .c .ru i{background:var(--electric);}
.d-ov-foot .c .tg i{background:#4a4a4a;}

/* 2 · check-in countdown */
.d-ci{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--plate);border-top:3px solid var(--electric);border-radius:10px;padding:15px 15px 13px;margin-top:11px;cursor:pointer;transition:border-color 120ms cubic-bezier(0.2,0.7,0.2,1);}
.d-ci:hover{border-color:var(--electric);}
.d-ci.over{border-top-color:var(--iron);}
.d-ci-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.d-ci-top .e{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.06em;text-transform:uppercase;color:var(--iron);}
.d-ci-top .d{font-family:var(--font-mono);font-size:10px;color:#fff;font-weight:700;background:var(--electric);border-radius:3px;padding:4px 7px;}
.d-ci.over .d-ci-top .d{background:var(--iron);}
.d-ci-mid{display:flex;align-items:flex-end;gap:13px;margin-top:9px;}
.d-ci-mid .n{font-family:var(--font-cond);font-weight:900;font-size:58px;line-height:0.82;letter-spacing:-0.02em;color:var(--iron);}
.d-ci-mid .u{font-family:var(--font-cond);font-weight:900;font-size:13px;line-height:1.05;letter-spacing:0.06em;text-transform:uppercase;color:#8A93A0;padding-bottom:5px;}
.d-ci-mid .x{flex:1 1 auto;font-size:10.5px;line-height:1.45;color:#7a818c;text-wrap:pretty;padding-bottom:2px;}
.d-ci-ticks{display:flex;align-items:flex-end;gap:2px;height:16px;margin-top:14px;}
.d-ci-ticks i{flex:1 1 0;height:9px;background:#E7E9ED;border-radius:1px;}
.d-ci-ticks i.on{background:var(--electric);height:16px;}
.d-ci-ticks i.due{background:var(--iron);height:16px;}
.d-ci-foot{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;text-transform:uppercase;color:#a6acb4;}

/* 3 · body-comp streak (sits inside the continuum card) */
.d-strk{display:flex;align-items:center;gap:14px;margin-top:15px;border-top:1px solid #EFEFEF;padding-top:14px;}
.d-strk .n{flex:0 0 auto;font-family:var(--font-cond);font-weight:900;font-size:34px;line-height:0.85;color:var(--iron);text-align:center;}
.d-strk .n em{display:block;font-family:var(--font-mono);font-style:normal;font-size:8.5px;letter-spacing:0.1em;text-transform:uppercase;color:#a6acb4;margin-top:5px;}
.d-strk .b{flex:1 1 auto;min-width:0;}
.d-strk .t{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);}
.d-strk .d{font-size:10.5px;line-height:1.45;color:#7a818c;margin-top:3px;text-wrap:pretty;}
.d-strk .d b{color:var(--iron);font-weight:700;}
.d-strk .chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px;}
.d-strk .chips span{font-family:var(--font-mono);font-size:9.5px;font-weight:700;color:#16884a;background:#EAF7EF;border:1px solid #CDEBD9;border-radius:3px;padding:3px 6px;}
.d-strk .chips span.hold{color:#7a818c;background:var(--chalk);border-color:var(--plate);}

/* 4 · program dropdown */
.d-dd{position:relative;}
.d-dd-t{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid var(--plate);border-radius:5px;padding:10px 12px;min-height:52px;cursor:pointer;text-align:left;transition:border-color 120ms cubic-bezier(0.2,0.7,0.2,1);}
.d-dd-t:hover,.d-dd.open .d-dd-t{border-color:var(--electric);}
.d-dd-t .tx{display:flex;flex-direction:column;gap:4px;min-width:0;}
.d-dd-t .l{font-family:var(--font-body);font-weight:700;font-size:8px;letter-spacing:0.14em;text-transform:uppercase;color:#9a9a9a;}
.d-dd-t .v{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.d-dd-t .c{flex:0 0 auto;color:var(--silver);display:flex;}
.d-dd-t .c svg{transition:transform 160ms cubic-bezier(0.2,0.7,0.2,1);}
.d-dd.open .d-dd-t .c svg{transform:rotate(180deg);}
.d-dd-menu{display:none;position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:30;background:#fff;border:1px solid var(--plate);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,0.18);padding:5px;max-height:274px;overflow-y:auto;}
.d-dd.open .d-dd-menu{display:block;}
.d-dd-grp{font-family:var(--font-body);font-weight:800;font-size:8px;letter-spacing:0.14em;text-transform:uppercase;color:#a6acb4;padding:9px 9px 5px;}
.d-dd-opt{width:100%;display:flex;align-items:center;gap:9px;background:none;border:none;border-radius:4px;padding:8px 9px;min-height:44px;cursor:pointer;text-align:left;}
.d-dd-opt:hover{background:var(--chalk);}
.d-dd-opt i{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:#DDE0E4;}
.d-dd-opt.run i{background:var(--electric);}
.d-dd-opt.done i{background:var(--turf);}
.d-dd-opt .on2{flex:1 1 auto;min-width:0;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.d-dd-opt.sel .on2{color:var(--electric);}
.d-dd-opt .om{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;color:#9aa0a8;}

/* 4 · the selected program as a dark hero */
.d-hero{position:relative;overflow:hidden;border-radius:12px;background:var(--iron);color:#fff;margin-top:12px;isolation:isolate;}
.d-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--dac,var(--electric));}
.d-hero-in{padding:20px 18px 17px;}
.d-hero-eyebrow{font-family:var(--font-body);font-weight:700;font-size:9.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--silver);}
.d-hero-eyebrow b{color:#fff;}
.d-hero-name{font-family:var(--font-cond);font-weight:900;font-size:38px;letter-spacing:0.02em;text-transform:uppercase;line-height:0.92;margin:7px 0 9px;}
.d-hero-rx{font-family:var(--font-mono);font-size:11.5px;color:var(--silver-2);line-height:1.5;white-space:pre-wrap;max-width:300px;}
.d-hero-prog{margin-top:15px;}
.d-hero-progtop{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:7px;font-family:var(--font-body);font-weight:700;font-size:9.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--silver);}
.d-hero-progtop .f{font-family:var(--font-mono);color:#fff;letter-spacing:0;}
.d-bar{height:7px;background:rgba(255,255,255,0.14);border-radius:4px;overflow:hidden;}
.d-bar i{display:block;height:100%;background:var(--dac,var(--electric));border-radius:4px;}
.d-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--graphite);border-top:1px solid var(--graphite);}
.d-stat{background:rgba(20,20,20,0.9);padding:12px 8px;text-align:center;}
.d-stat .v{font-family:var(--font-cond);font-weight:900;font-size:20px;color:#fff;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.d-stat .l{font-family:var(--font-body);font-weight:700;font-size:8px;letter-spacing:0.14em;text-transform:uppercase;color:var(--silver);margin-top:5px;}
.d-hero-foot{padding:14px 18px 16px;}
.d-hero-cta{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--dac,var(--electric));color:#fff;border:0;border-radius:6px;font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;padding:14px 16px;min-height:46px;cursor:pointer;transition:filter .12s,transform .08s;}
.d-hero-cta:hover{filter:brightness(1.12);}
.d-hero-cta:active{transform:translateY(1px);}
.d-hero-link{display:block;width:100%;margin-top:12px;background:none;border:none;padding:0;font-family:var(--font-body);font-weight:800;font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--silver-2);cursor:pointer;text-align:center;}
.d-hero-link:hover{color:#fff;}


/* ═══════════════════════════════════════════════════════════════════════════
   THE ON-RAMP (rebuilt Jul 2026) — video talking points, the 8-week Program
   tab (.wkm-*), the Saturday Wrap (.wrap-*), and the week-hero lock chips
   (.d-lockchip*). Appended; reuses the dashboard .d-* system.
   ═══════════════════════════════════════════════════════════════════════════ */
.m-vidpts{list-style:none;margin:0;padding:0;counter-reset:vp;}
.m-vidpts li{counter-increment:vp;display:grid;grid-template-columns:22px 1fr;gap:11px;align-items:start;padding:9px 0;border-top:1px solid #ececec;font-size:13px;line-height:1.5;color:#3a3a3a;}
.m-vidpts li:first-child{border-top:none;}
.m-vidpts li::before{content:counter(vp,decimal-leading-zero);font-family:ui-monospace,Menlo,monospace;font-weight:700;font-size:11px;color:var(--electric);padding-top:2px;}


/* ============================================================================
   THE ON-RAMP — Program tab (window.IBOnRampWeekMap): the 8 weeks, ticked off.
   Reuses the dashboard's .d-* system; only the week rows are new.
   ============================================================================ */
.wkm-hero{background:var(--iron);border:1px solid var(--graphite);border-top:3px solid var(--electric);border-radius:10px;padding:17px 16px 15px;}
.wkm-eb{font-family:var(--font-mono);font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--electric);margin-bottom:9px;}
.wkm-t{font-family:var(--font-cond);font-weight:900;font-size:28px;line-height:0.95;letter-spacing:0.02em;text-transform:uppercase;color:#fff;margin:0 0 13px;}
.wkm-bar{height:6px;background:rgba(255,255,255,0.1);border-radius:4px;overflow:hidden;}
.wkm-bar i{display:block;height:100%;background:var(--electric);border-radius:4px;transition:width .3s cubic-bezier(0.2,0.7,0.2,1);}
.wkm-d{font-size:11px;line-height:1.5;color:var(--silver);margin-top:11px;text-wrap:pretty;}
.wkm-phase{margin-top:4px;}
.wkm-blurb{font-size:11px;color:#77808c;margin:-6px 2px 10px;}
.wkm-list{display:flex;flex-direction:column;gap:8px;}
.wkm-row{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid var(--plate);border-left:3px solid var(--plate);border-radius:8px;padding:13px 13px 12px;cursor:pointer;font-family:inherit;transition:border-color .12s,background .12s;}
.wkm-row:hover{border-color:var(--electric);}
.wkm-row.done{border-left-color:var(--turf);}
.wkm-row.now{border-left-color:var(--electric);background:#f2f7fe;border-color:#bbd3f2;}
.wkm-row.locked{opacity:0.62;}
.wkm-row.ci{border-left-style:dashed;}
.wkm-n{flex:0 0 auto;width:34px;height:34px;border-radius:6px;background:var(--chalk);border:1px solid var(--plate);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:12px;color:#77808c;}
.wkm-row.done .wkm-n{background:var(--turf);border-color:var(--turf);color:#fff;}
.wkm-row.now .wkm-n{background:var(--electric);border-color:var(--electric);color:#fff;}
.wkm-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px;}
.wkm-h{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;line-height:1.05;color:var(--iron);}
.wkm-s{font-size:11.5px;line-height:1.45;color:#5c646f;text-wrap:pretty;}
.wkm-m{display:flex;gap:8px;align-items:center;margin-top:3px;flex-wrap:wrap;}
.wkm-m em{font-family:var(--font-mono);font-style:normal;font-size:8.5px;letter-spacing:0.09em;text-transform:uppercase;color:#8b939d;border:1px solid var(--plate);border-radius:999px;padding:3px 8px;}
.wkm-m em.st{color:var(--electric);border-color:#bbd3f2;background:#eaf1fc;}
.wkm-row.done .wkm-m em.st{color:#0f7a45;border-color:#bde3ce;background:#eefaf3;}
.wkm-row.locked .wkm-m em.st{color:#8b939d;border-color:var(--plate);background:var(--chalk);}.wkm-go{flex:0 0 auto;display:flex;align-items:center;color:#b6bcc4;align-self:center;}
/* phase tapped from the dashboard's phase bar — mark where they landed */
.wkm-phase.focus{position:relative;padding-left:12px;margin-left:-2px;}
.wkm-phase.focus::before{content:"";position:absolute;left:0;top:2px;bottom:6px;width:3px;border-radius:2px;background:var(--electric);}
.wkm-phase.focus .d-lbl{color:var(--electric);}
.wkm-phase.focus .d-lbl::after{background:var(--electric);opacity:0.3;}
.wkm-phase.focus .wkm-blurb{color:var(--electric);}
.wkm-row:hover .wkm-go{color:var(--electric);}


/* ============================================================================
   THE SATURDAY WRAP (window.IBSaturdayWrap) — end-of-week review inside the
   notification popup: the lock-in verdict read off real state, then this week's
   goals, tickable now that the week is done.
   ============================================================================ */
.m-pop-av.app{background:var(--iron);border:1px solid var(--graphite);}
.m-pop-card.wrap{border-top-color:var(--electric);}
.wrap-eb{font-family:var(--font-mono);font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--electric);margin-bottom:8px;}
.wrap-t{font-family:var(--font-cond);font-weight:900;font-size:24px;line-height:1;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);margin-bottom:8px;text-wrap:balance;}
.wrap-d{font-size:12.8px;line-height:1.55;color:#444;text-wrap:pretty;}
.wrap-sec{font-family:var(--font-cond);font-weight:900;font-size:11.5px;letter-spacing:0.12em;text-transform:uppercase;color:#8b939d;margin:17px 0 9px;display:flex;align-items:center;gap:9px;}
.wrap-sec::after{content:"";flex:1;height:1px;background:var(--plate);}
.wrap-rows{display:flex;flex-direction:column;gap:7px;}
.wrap-row{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:#fff;border:1px solid var(--plate);border-left:3px solid var(--rust);border-radius:8px;padding:11px 12px;cursor:pointer;font-family:inherit;transition:border-color .12s;}
.wrap-row:hover{border-color:var(--electric);}
.wrap-row.on{border-left-color:var(--turf);background:rgba(22,196,106,0.06);border-color:var(--turf);}
.wrap-row .wr-ic{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:rgba(178,59,59,0.1);color:var(--rust);display:flex;align-items:center;justify-content:center;}
.wrap-row.on .wr-ic{background:var(--turf);color:#fff;}
.wrap-row .wr-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px;}
.wrap-row .wr-t{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1.1;}
.wrap-row .wr-d{font-size:11px;line-height:1.45;color:#666;}
.wrap-row .wr-v{flex:0 0 auto;font-family:var(--font-mono);font-weight:700;font-size:11px;color:var(--rust);}
.wrap-row.on .wr-v{color:var(--turf);}
.wrap-note{font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:#9a9a9a;margin-top:9px;padding-top:8px;border-top:1px dashed #e2e2e2;}
.wrap-note.good{color:var(--turf);}
.wrap-goals{display:flex;flex-direction:column;gap:7px;}
.wrap-goal{display:flex;align-items:flex-start;gap:11px;width:100%;text-align:left;background:var(--chalk);border:1px solid var(--plate);border-radius:8px;padding:11px 12px;cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s;}
.wrap-goal:hover{border-color:var(--electric);}
.wrap-goal.on{background:rgba(22,196,106,0.06);border-color:var(--turf);}
.wrap-goal .box{flex:0 0 auto;width:22px;height:22px;border-radius:5px;border:2px solid #c3c8cf;background:#fff;display:flex;align-items:center;justify-content:center;color:#fff;margin-top:1px;}
.wrap-goal.on .box{background:var(--turf);border-color:var(--turf);}
.wrap-goal .wg-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px;}
.wrap-goal .wg-t{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1.1;}
.wrap-goal.on .wg-t{color:var(--turf);}
.wrap-goal .wg-d{font-size:11px;line-height:1.45;color:#666;}
.wrap-hint{font-size:11px;line-height:1.45;color:#8b939d;margin-top:9px;text-wrap:pretty;}

/* week hero — the two lock-in halves as tap-through chips */
.d-hero-lock{margin-top:14px;}
.d-lockchips{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px;}
.d-lockchip{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.18);border-radius:7px;padding:9px 10px;cursor:pointer;font-family:inherit;text-align:left;transition:border-color .12s,background .12s;}
.d-lockchip:hover{border-color:#fff;}
.d-lockchip i{flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:1.5px solid rgba(255,255,255,0.35);display:flex;align-items:center;justify-content:center;color:#fff;}
.d-lockchip.on{background:rgba(22,196,106,0.14);border-color:rgba(22,196,106,0.5);}
.d-lockchip.on i{background:var(--turf);border-color:var(--turf);}
.d-lockchip b{font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.04em;text-transform:uppercase;color:#fff;line-height:1;}
.d-lockchip em{font-family:var(--font-mono);font-style:normal;font-size:9px;letter-spacing:0.04em;color:var(--silver);margin-left:auto;white-space:nowrap;}
.d-lockchip.on em{color:var(--turf);}

/* ═════ BEYOND RX'D (Goals tab · unlocked after Road to Rx'd) ═════
   Ported from mockups/beyond-rxd/Beyond Rxd v4.html. Every selector is
   namespaced `by-` so nothing here can touch an existing app class
   (.contbar, .ov, .note, .med and .rc all already mean something else).
   Medal colours are the only new tokens. */
:root{--gold:#C9A227;--silvermed:#AFB4BB;--bronze:#A2703F;}
.by-wk-dd{position:relative;margin-top:16px;}
.by-wk-dd-t{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid var(--plate);border-radius:5px;padding:10px 12px;min-height:52px;cursor:pointer;text-align:left;transition:border-color 120ms var(--ease);}
.by-wk-dd-t:hover,.by-wk-dd.by-open .by-wk-dd-t{border-color:var(--electric);}
.by-wk-dd-t .by-tx{display:flex;flex-direction:column;gap:4px;min-width:0;}
.by-wk-dd-t .by-l{font-weight:700;font-size:8px;letter-spacing:0.14em;text-transform:uppercase;color:#9a9a9a;}
.by-wk-dd-t .by-v{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.by-wk-dd-t .by-c{flex:0 0 auto;color:var(--silver);display:flex;}
.by-wk-dd-t .by-c svg{width:16px;height:16px;transition:transform 160ms var(--ease);}
.by-wk-dd.by-open .by-wk-dd-t .by-c svg{transform:rotate(180deg);}
.by-wk-dd-menu{display:none;position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:30;background:#fff;border:1px solid var(--plate);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,0.18);padding:5px;max-height:274px;overflow-y:auto;}
.by-wk-dd.by-open .by-wk-dd-menu{display:block;}
.by-wk-dd-grp{font-weight:800;font-size:8px;letter-spacing:0.14em;text-transform:uppercase;color:#a6acb4;padding:9px 9px 5px;}
.by-wk-dd-opt{width:100%;display:flex;align-items:center;gap:9px;background:none;border:none;border-radius:4px;padding:8px 9px;min-height:40px;cursor:pointer;text-align:left;}
.by-wk-dd-opt:hover{background:var(--chalk);}
.by-wk-dd-opt i{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:#DDE0E4;}
.by-wk-dd-opt.by-run i{background:var(--electric);}
.by-wk-dd-opt.by-done i{background:var(--turf);}
.by-wk-dd-opt .by-on2{flex:1 1 auto;min-width:0;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.by-wk-dd-opt.by-sel .by-on2{color:var(--electric);}
.by-wk-dd-opt .by-om{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;color:#9aa0a8;}
.by-gb-hero-link{display:block;margin-top:12px;background:none;border:none;padding:0;font-weight:800;font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--silver-2);cursor:pointer;}
.by-gb-hero-link:hover{color:#fff;}
.by-med{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 8px 3px 6px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.09em;text-transform:uppercase;font-weight:700;white-space:nowrap;}
.by-med i{width:8px;height:8px;border-radius:50%;flex:0 0 auto;}
.by-med.by-g{background:rgba(201,162,39,0.14);color:#8a6d10;}
.by-med.by-g i{background:var(--gold);}
.by-med.by-s{background:rgba(120,130,140,0.14);color:#5d6672;}
.by-med.by-s i{background:var(--silvermed);}
.by-med.by-b{background:rgba(162,112,63,0.14);color:#7d5227;}
.by-med.by-b i{background:var(--bronze);}
.by-med.by-n{background:#EFEFEF;color:#9aa0a8;}
.by-med.by-n i{background:#c9ced4;}
.by-med.by-dk.by-g{background:rgba(201,162,39,0.2);color:#E3C158;}
.by-med.by-dk.by-s{background:rgba(175,180,187,0.18);color:#D3D8DE;}
.by-med.by-dk.by-b{background:rgba(162,112,63,0.22);color:#D2955C;}
.by-gb-hero{position:relative;overflow:hidden;border-radius:12px;background:var(--iron);color:#fff;margin-bottom:16px;isolation:isolate;}
.by-gb-hero-in{padding:20px 18px 17px;}
.by-gb-hero-foot{padding:14px 18px 16px;}
.by-a-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--graphite);border-top:1px solid var(--graphite);}
.by-a-stat{background:rgba(20,20,20,.9);padding:12px 8px;text-align:center;}
.by-a-stat .by-v{font-family:var(--font-cond);font-weight:900;font-size:20px;color:#fff;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.by-a-stat .by-v span{color:var(--dac);font-size:13px;}
.by-a-stat .by-l{font-weight:700;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--silver);margin-top:5px;}
.by-gb-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--dac);}
.by-gb-hero-eyebrow{font-weight:700;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--silver);}
.by-gb-hero-eyebrow b{color:#fff;}
.by-gb-hero-name{font-family:var(--font-cond);font-weight:900;font-size:38px;letter-spacing:.02em;text-transform:uppercase;line-height:.92;margin:7px 0 9px;}
.by-gb-hero-name .by-blue{color:var(--dac);}
.by-gb-hero-rx{font-family:var(--font-mono);font-size:12px;color:var(--silver-2);line-height:1.5;white-space:pre-wrap;max-width:300px;}
.by-gb-hero-rx b{color:#fff;}
.by-gb-hero-prog{margin-top:15px;}
.by-gb-hero-progtop{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:7px;font-weight:700;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--silver);}
.by-gb-hero-progtop .by-f{font-family:var(--font-mono);color:#fff;letter-spacing:0;}
.by-gb-bar{height:7px;background:rgba(255,255,255,.14);border-radius:4px;overflow:hidden;}
.by-gb-bar i{display:block;height:100%;background:var(--dac);border-radius:4px;}
.by-gb-hero-cta{display:inline-flex;align-items:center;gap:8px;background:var(--dac);color:#fff;border:0;border-radius:6px;font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:.05em;text-transform:uppercase;padding:11px 16px;cursor:pointer;transition:filter .12s,transform .08s;}
.by-gb-hero-cta svg{width:15px;height:15px;}
.by-gb-hero-cta:hover{filter:brightness(1.12);}
.by-gb-hero-cta:active{transform:translateY(1px);}
.by-gb-hero.by-done::before{opacity:.5;}
.by-gb-boardlab{display:flex;align-items:baseline;justify-content:space-between;margin:0 2px 11px;}
.by-gb-boardlab .by-l{font-weight:800;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#999;}
.by-gb-boardlab .by-c{font-family:var(--font-mono);font-size:10px;color:#aaa;}
.by-gb-boardlab.by-pad{margin-top:22px;}
.by-sk-mvrow{display:flex;align-items:stretch;gap:10px;margin-bottom:9px;}
.by-sk-med{flex:0 0 auto;align-self:center;width:38px;height:38px;border:1.5px solid var(--plate);background:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;color:transparent;}
.by-sk-med svg{width:17px;height:17px;}
.by-sk-med.by-g{background:var(--gold);border-color:var(--gold);color:#fff;}
.by-sk-med.by-s{background:var(--silvermed);border-color:var(--silvermed);color:#fff;}
.by-sk-med.by-b{background:var(--bronze);border-color:var(--bronze);color:#fff;}
.by-sk-med.by-n{color:#cfd3d8;}
.by-sk-row2{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid var(--plate);border-radius:9px;padding:12px 14px;cursor:pointer;text-align:left;transition:border-color .14s,transform .08s;}
.by-sk-row2:hover{border-color:var(--dac);}
.by-sk-row2:active{transform:translateY(1px);}
.by-sk-row2-ic{flex:0 0 auto;width:34px;height:34px;border-radius:8px;background:var(--chalk);border:1px solid var(--plate);display:flex;align-items:center;justify-content:center;color:var(--dac);}
.by-sk-row2-ic svg{width:19px;height:19px;}
.by-sk-row2-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px;}
.by-sk-row2-n .by-nw{display:inline-block;vertical-align:2px;margin-left:7px;background:var(--electric);color:#fff;border-radius:2px;padding:2px 4px;font-family:var(--font-mono);font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;}
.by-gb-sum{margin-top:12px;border-top:1px solid var(--graphite);padding-top:11px;font-size:11px;line-height:1.5;color:var(--silver-2);}
.by-gb-sum b{color:#fff;font-family:var(--font-mono);}
.by-sk-row2-n{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.by-sk-row2-meta{font-family:var(--font-mono);font-size:10px;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.by-sk-pick-arr{flex:0 0 auto;color:#c4c4c4;display:flex;align-items:center;}
.by-sk-pick-arr svg{width:18px;height:18px;}
.by-sk-run{flex:0 0 auto;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dac);border:1px solid currentColor;border-radius:3px;padding:2px 5px;}
.by-grp{margin:22px 2px 11px;}
.by-grp .by-gl{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.by-grp .by-l{font-weight:800;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#999;}
.by-grp .by-c{flex:0 0 auto;font-family:var(--font-mono);font-size:10px;color:#aaa;}
.by-grp .by-s{font-size:10.5px;line-height:1.45;color:#8a9099;margin-top:5px;text-wrap:pretty;}
.by-gb-hero-tag{display:inline-flex;align-items:center;gap:6px;margin-top:13px;background:rgba(255,255,255,.06);border:1px solid var(--graphite);border-radius:999px;padding:4px 10px;font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--silver-2);}
.by-gb-hero-tag b{color:#fff;}
.by-note{display:flex;gap:8px;align-items:flex-start;background:#fff;border:1px solid var(--plate);border-left:3px solid var(--dac);border-radius:5px;padding:11px 12px;font-size:11.5px;line-height:1.45;color:#5c6270;margin-bottom:14px;}
.by-note svg{width:14px;height:14px;flex:0 0 auto;color:var(--dac);margin-top:1px;}
.by-note b{color:var(--iron);font-weight:700;}
.by-ov .by-gb-hero-cta{width:100%;justify-content:center;margin-top:15px;}
.by-ov-eyebrow{font-weight:700;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--silver);margin-bottom:13px;}
.by-ov-eyebrow b{color:#fff;}
.by-ov{background:var(--iron);border:1px solid var(--graphite);border-top:3px solid var(--electric);border-radius:10px;padding:17px 16px 15px;margin-top:16px;}
.by-ov-top{display:flex;align-items:center;gap:16px;}
.by-ov-ring{position:relative;flex:0 0 auto;width:88px;height:88px;}
.by-ov-ring svg{width:88px;height:88px;display:block;transform:rotate(-90deg);}
.by-ov-ringc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--font-cond);line-height:1;}
.by-ov-ringc b{font-size:25px;font-weight:900;color:#fff;letter-spacing:-0.01em;}
.by-ov-ringc span{font-family:var(--font-mono);font-size:9px;letter-spacing:.04em;color:var(--silver);margin-top:4px;}
.by-ov-r{flex:1 1 auto;min-width:0;}
.by-ov-pct{font-family:var(--font-cond);font-weight:900;font-size:36px;line-height:.9;color:var(--ovc,#1C77E0);}
.by-ov-pct em{display:block;font-family:var(--font-body);font-style:normal;font-weight:600;font-size:11px;line-height:1.35;color:var(--silver-2);margin-top:6px;}
.by-ov-next{margin-top:11px;display:flex;flex-direction:column;gap:3px;}
.by-ov-next .by-l{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--silver);}
.by-ov-next .by-v{font-family:var(--font-cond);font-weight:800;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.by-ov-cats{display:grid;grid-template-columns:1fr 1fr;gap:11px 16px;margin-top:18px;}
.by-ov-cat .by-t{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:5px;}
.by-ov-cat .by-t span{font-family:var(--font-mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--silver);}
.by-ov-cat .by-t b{font-family:var(--font-cond);font-weight:900;font-size:13px;color:#fff;}
.by-ov-cat .by-bar{height:5px;background:rgba(255,255,255,.1);border-radius:4px;overflow:hidden;}
.by-ov-cat .by-bar i{display:block;height:100%;background:var(--cc);}
.by-ov-med{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;border-top:1px solid var(--graphite);padding-top:13px;}
.by-ov-med .by-x{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--silver);line-height:1.4;}
.by-ov-med .by-c{display:flex;gap:11px;flex:0 0 auto;font-family:var(--font-mono);font-size:12px;font-weight:700;color:#fff;}
.by-ov-med .by-c span{display:flex;align-items:center;gap:5px;}
.by-ov-med .by-c i{width:9px;height:9px;border-radius:50%;}
.by-ov-med .by-c .by-g i{background:var(--gold);}
.by-ov-med .by-c .by-s i{background:var(--silvermed);}
.by-ov-med .by-c .by-b i{background:var(--bronze);}
.by-lbl{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.1em;text-transform:uppercase;color:var(--iron);margin:24px 2px 11px;display:flex;align-items:center;gap:11px;}
.by-lbl::after{content:"";flex:1;height:2px;background:var(--iron);opacity:.12;}
.by-rc{background:#fff;border:1px solid var(--plate);border-top:3px solid var(--plate);border-radius:9px;padding:15px 14px 16px;}
.by-rc.by-won{border-top-color:var(--dac);}
.by-rc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:34px;}
.by-rc-now b{display:block;font-family:var(--font-mono);font-weight:700;font-size:27px;line-height:1;letter-spacing:-0.03em;color:var(--iron);}
.by-rc-now b.by-none{font-size:17px;color:#c4c9cf;}
.by-rc-now span{display:block;font-weight:700;font-size:8.5px;letter-spacing:0.13em;text-transform:uppercase;color:#a6acb4;margin-top:7px;}
.by-rc-tag{flex:0 0 auto;font-weight:800;font-size:8.5px;letter-spacing:0.12em;text-transform:uppercase;border-radius:999px;padding:5px 10px;color:#6b7280;background:#F1F2F4;white-space:nowrap;}
.by-rc-tag.by-b1{color:#7d5227;background:rgba(162,112,63,0.16);}
.by-rc-tag.by-b2{color:#5d6672;background:rgba(120,130,140,0.18);}
.by-rc-tag.by-b3{color:#8a6d10;background:rgba(201,162,39,0.18);}
.by-rc-ladder{position:relative;display:flex;gap:3px;}
.by-rc-seg{height:30px;display:flex;align-items:center;justify-content:center;border-radius:3px;overflow:hidden;opacity:0.38;}
.by-rc-seg span{font-weight:800;font-size:8px;letter-spacing:0.08em;text-transform:uppercase;color:#fff;white-space:nowrap;padding:0 4px;}
.by-rc-seg.by-s0{background:#5F6670;}
.by-rc-seg.by-s1{background:var(--bronze);}
.by-rc-seg.by-s2{background:#8b9096;}
.by-rc-seg.by-s3{background:var(--gold);}
.by-rc-seg.by-on{opacity:1;}
.by-rc-tick{position:absolute;top:6px;bottom:6px;width:2px;background:rgba(255,255,255,0.85);transform:translateX(-50%);}
.by-rc-tick.by-pre{background:rgba(255,255,255,0.5);}
.by-rc-mark{position:absolute;top:-5px;bottom:-5px;width:3px;background:var(--iron);border-radius:2px;transform:translateX(-50%);box-shadow:0 0 0 2px #fff;}
.by-rc-mark em{position:absolute;top:-27px;font-family:var(--font-mono);font-style:normal;font-weight:700;font-size:10px;color:#fff;background:var(--iron);border-radius:3px;padding:3px 5px;white-space:nowrap;}
.by-rc-edges{position:relative;height:14px;margin-top:8px;}
.by-rc-e{position:absolute;top:0;transform:translateX(-50%);font-family:var(--font-mono);font-size:9.5px;color:#8a9099;white-space:nowrap;}
.by-rc-e.by-st{transform:none;}
.by-rc-e::before{content:"";position:absolute;left:50%;top:-8px;width:1px;height:5px;background:#c4c9cf;}
.by-rc-e.by-st::before{left:1px;}
.by-rs-gap{font-size:11.5px;line-height:1.45;color:#5c6270;margin-top:14px;text-wrap:pretty;}
.by-rs-gap b{color:var(--iron);font-weight:700;}
.by-rs-gap.by-live{margin-top:10px;border-top:1px solid #EFEFEF;padding-top:10px;color:#8a9099;font-size:11px;}
.by-prov{display:flex;gap:9px;align-items:flex-start;border-radius:8px;padding:11px 12px;margin-bottom:10px;font-size:11px;line-height:1.45;text-wrap:pretty;}
.by-prov svg{width:15px;height:15px;flex:0 0 auto;margin-top:1px;}
.by-prov span>b:first-child{display:block;font-family:var(--font-cond);font-weight:900;font-size:13.5px;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:3px;}
.by-prov b{color:var(--iron);font-weight:700;}
.by-prov.by-carried{background:rgba(7,93,198,0.06);border:1px solid rgba(7,93,198,0.3);color:#4c5d75;}
.by-prov.by-carried svg,.by-prov.by-carried span>b:first-child{color:var(--electric);}
.by-prov.by-newt{background:#FAFAFA;border:1px solid var(--plate);color:#6b7280;}
.by-prov.by-newt svg,.by-prov.by-newt span>b:first-child{color:var(--iron);}
.by-lb{background:#fff;border:1px solid var(--plate);border-radius:10px;overflow:hidden;}
.by-lbr{display:flex;align-items:center;gap:10px;padding:11px 12px;border-top:1px solid #EDEEF0;}
.by-lbr:first-child{border-top:none;}
.by-lbr.by-you{background:rgba(7,93,198,0.05);box-shadow:inset 3px 0 0 var(--electric);}
.by-lbr .by-rk{flex:0 0 auto;width:20px;text-align:center;font-family:var(--font-mono);font-weight:700;font-size:12px;color:#a6acb4;}
.by-lbr .by-rk.by-m1{color:var(--gold);}
.by-lbr .by-rk.by-m2{color:#8b9096;}
.by-lbr .by-rk.by-m3{color:var(--bronze);}
.by-lbr .by-av{flex:0 0 auto;width:29px;height:29px;border-radius:50%;background:var(--chalk);border:1px solid var(--plate);display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-weight:900;font-size:12px;color:#6b7280;}
.by-lbr.by-you .by-av{background:var(--electric);border-color:var(--electric);color:#fff;}
.by-lbr .by-id{flex:1 1 auto;min-width:0;}
.by-lbr .by-nm{font-weight:700;font-size:12.5px;color:var(--iron);display:flex;align-items:center;gap:6px;}
.by-lbr .by-youtag{font-family:var(--font-mono);font-size:7.5px;letter-spacing:0.1em;background:var(--electric);color:#fff;border-radius:3px;padding:2px 4px;}
.by-lbr .by-sub{font-size:10px;color:#9aa0a8;margin-top:3px;}
.by-lbr .by-val{flex:0 0 auto;font-family:var(--font-mono);font-weight:700;font-size:14px;color:var(--iron);}
.by-lb-h{display:flex;align-items:center;gap:8px;background:var(--iron);color:#fff;padding:10px 12px;font-weight:800;font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;}
.by-lb-h svg{width:14px;height:14px;flex:0 0 auto;color:var(--dac);}
.by-lb-h .by-c{margin-left:auto;font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;color:var(--silver);text-transform:none;font-weight:400;}
.by-lb-h+.by-lbr{border-top:none;}
.by-lb-x{font-size:11px;line-height:1.45;color:#6b7280;margin:10px 2px 0;text-wrap:pretty;}
.by-lb-x b{color:var(--iron);font-weight:700;}
.by-hgrp{font-weight:800;font-size:8.5px;letter-spacing:0.14em;text-transform:uppercase;color:#a6acb4;margin:14px 2px 7px;}
.by-lb-gap{padding:7px 12px;background:#FAFAFA;border-top:1px solid #EDEEF0;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.12em;text-transform:uppercase;color:#a6acb4;text-align:center;}
.by-lb-more{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;background:#FAFAFA;border:none;border-top:1px solid #EDEEF0;padding:11px;font-weight:800;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--electric);cursor:pointer;}
.by-lb-more:hover{background:#F2F5FA;}
.by-lb-more svg{width:14px;height:14px;}
.by-div{display:flex;gap:6px;margin:0 0 11px;}
.by-div button{flex:1 1 0;background:#fff;border:1px solid var(--plate);color:#7b828c;border-radius:5px;padding:9px 6px;font-weight:800;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;transition:all 120ms var(--ease);}
.by-div button.by-on{background:var(--iron);border-color:var(--iron);color:#fff;}
.by-hist{background:#fff;border:1px solid var(--plate);border-radius:10px;overflow:hidden;}
.by-hr{display:flex;align-items:center;gap:10px;padding:11px 12px;border-top:1px solid #EDEEF0;}
.by-hr:first-child{border-top:none;}
.by-hr .by-hd{flex:0 0 auto;font-family:var(--font-mono);font-size:10px;color:#9aa0a8;width:50px;}
.by-hr .by-hv{flex:1 1 auto;font-family:var(--font-mono);font-weight:700;font-size:13px;color:var(--iron);}
.by-hr .by-hpr{font-family:var(--font-mono);font-size:8px;letter-spacing:0.1em;text-transform:uppercase;color:var(--electric);border:1px solid rgba(7,93,198,0.35);border-radius:3px;padding:2px 5px;}
.by-pw{font-family:var(--font-cond);font-weight:900;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:#8A93A0;margin:16px 2px 9px;}
.by-ps-row{display:flex;align-items:stretch;gap:10px;margin-bottom:8px;}
.by-ps-tick{flex:0 0 auto;align-self:center;width:34px;height:34px;border:1.5px solid var(--plate);background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:transparent;cursor:pointer;}
.by-ps-tick svg{width:15px;height:15px;}
.by-ps-tick.by-on{background:var(--turf);border-color:var(--turf);color:#fff;}
.by-ps-card{flex:1 1 auto;min-width:0;background:#fff;border:1px solid var(--plate);border-radius:9px;overflow:hidden;}
.by-ps-card.by-now{border-color:var(--dac);box-shadow:inset 0 0 0 1px var(--dac);}
.by-ps-head{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;padding:12px 13px;cursor:pointer;}
.by-ps-head .by-pb{flex:1 1 auto;min-width:0;}
.by-ps-head .by-pn{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.by-ps-head .by-pt{display:block;font-family:var(--font-mono);font-size:9.5px;color:#9aa0a8;margin-top:5px;}
.by-ps-head .by-pchev{flex:0 0 auto;color:#c4c4c4;display:flex;transition:transform 160ms var(--ease);}
.by-ps-head .by-pchev svg{width:16px;height:16px;}
.by-ps-card.by-open .by-pchev{transform:rotate(90deg);}
.by-ps-body{display:none;padding:0 13px 13px;}
.by-ps-card.by-open .by-ps-body{display:block;}
.by-ps-line{display:flex;gap:9px;padding:9px 0;border-top:1px solid #EDEEF0;}
.by-ps-line .by-k{flex:0 0 auto;width:56px;font-weight:800;font-size:8.5px;letter-spacing:0.12em;text-transform:uppercase;color:#a6acb4;padding-top:2px;}
.by-ps-line .by-v{flex:1 1 auto;font-family:var(--font-mono);font-size:11px;line-height:1.5;color:#4c525c;}
.by-ps-done{width:100%;margin-top:11px;background:var(--dac);border:none;color:#fff;border-radius:5px;padding:11px;font-weight:800;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;}
.by-ps-done.by-off{background:#fff;border:1px solid var(--plate);color:#7b828c;}
.by-ctabar{position:sticky;bottom:0;z-index:34;margin:14px -18px -18px;padding:11px 18px 16px;background:linear-gradient(180deg,rgba(245,245,245,0),var(--chalk) 42%);display:flex;gap:8px;}
.by-ctabar button{flex:1 1 0;background:var(--electric);border:none;color:#fff;border-radius:5px;padding:14px 10px;font-weight:800;font-size:11.5px;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;transition:background 120ms var(--ease);}
.by-ctabar button:hover{background:var(--electric-hover);}
.by-ctabar button:active{transform:translateY(1px);}
.by-ctabar button svg{width:15px;height:15px;}
.by-ctabar button.by-alt{background:#fff;border:1px solid var(--iron);color:var(--iron);}
.by-ctabar button.by-alt:hover{background:var(--iron);color:#fff;}
.by-sheet{position:absolute;inset:0;z-index:60;pointer-events:none;}
.by-sheet.by-open{pointer-events:auto;}
.by-sheet .by-scrim{position:absolute;inset:0;background:rgba(0,0,0,0.5);opacity:0;transition:opacity 200ms var(--ease);}
.by-sheet.by-open .by-scrim{opacity:1;}
.by-sheet .by-pan{position:absolute;left:0;right:0;bottom:0;background:#fff;border-top:3px solid var(--dac);border-radius:14px 14px 0 0;transform:translateY(102%);transition:transform 240ms var(--ease);max-height:86%;overflow-y:auto;}
.by-sheet.by-open .by-pan{transform:translateY(0);}
.by-sh-h{display:flex;align-items:center;gap:11px;padding:16px 16px 13px;border-bottom:1px solid var(--plate);}
.by-sh-h .by-she{font-weight:800;font-size:8.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--dac);}
.by-sh-h .by-shn{font-family:var(--font-cond);font-weight:900;font-size:21px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;margin-top:5px;}
.by-sh-x{margin-left:auto;width:32px;height:32px;background:#fff;border:1px solid var(--plate);border-radius:6px;color:var(--iron);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;}
.by-sh-x svg{width:15px;height:15px;}
.by-sh-b{padding:15px 16px 18px;}
.by-fl{font-weight:800;font-size:8.5px;letter-spacing:0.16em;text-transform:uppercase;color:#a6acb4;margin-bottom:7px;}
.by-fg{margin-bottom:15px;}
.by-scorebox{display:flex;align-items:center;gap:8px;}
.by-scorebox input{width:100%;font-family:var(--font-mono);font-weight:700;font-size:26px;text-align:center;color:var(--iron);background:var(--chalk);border:1px solid var(--plate);border-radius:6px;padding:12px 6px;}
.by-scorebox input:focus{outline:none;border-color:var(--dac);background:#fff;}
.by-scorebox .by-cln{font-family:var(--font-mono);font-weight:700;font-size:22px;color:#c4c9cf;}
.by-scorebox .by-un{font-family:var(--font-mono);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:#a6acb4;flex:0 0 auto;}
.by-fg input.by-txt,.by-fg textarea{width:100%;font-family:var(--font-body);font-size:13px;color:var(--iron);background:var(--chalk);border:1px solid var(--plate);border-radius:6px;padding:11px 12px;}
.by-fg textarea{min-height:60px;resize:vertical;}
.by-fg input.by-txt:focus,.by-fg textarea:focus{outline:none;border-color:var(--dac);background:#fff;}
.by-pred{display:flex;align-items:center;gap:9px;background:var(--chalk);border:1px solid var(--plate);border-radius:6px;padding:11px 12px;font-size:11.5px;color:#5c6270;margin-bottom:15px;}
.by-pred svg{width:16px;height:16px;flex:0 0 auto;color:var(--dac);}
.by-pred b{color:var(--iron);}
.by-sh-save{width:100%;background:var(--dac);border:none;color:#fff;border-radius:5px;padding:15px;font-weight:800;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;}
.by-sh-save:hover{filter:brightness(1.12);}
.by-honour{margin-top:11px;font-size:10.5px;line-height:1.45;color:#9aa0a8;text-align:center;}
.by-toast{position:absolute;left:14px;right:14px;bottom:78px;z-index:55;background:var(--iron);color:#fff;border-radius:9px;padding:13px 14px;display:flex;align-items:center;gap:11px;opacity:0;transform:translateY(12px);transition:all 260ms var(--ease);pointer-events:none;}
.by-toast.by-show{opacity:1;transform:translateY(0);}
.by-toast .by-tic{width:32px;height:32px;border-radius:50%;background:var(--dac);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.by-toast .by-tic svg{width:17px;height:17px;}
.by-toast .by-tb b{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.04em;text-transform:uppercase;line-height:1;}
.by-toast .by-tb span{display:block;font-size:11px;color:var(--silver-2);margin-top:4px;}
.by-unlock{position:relative;flex:1 1 auto;background:var(--iron);color:#fff;overflow-y:auto;display:flex;flex-direction:column;}
.by-unlock::before{content:"";position:absolute;inset:0;background:radial-gradient(100% 60% at 50% 8%,rgba(7,93,198,0.4),transparent 64%);}
.by-ub{position:relative;padding:44px 22px 26px;text-align:center;flex:1 1 auto;display:flex;flex-direction:column;}
.by-ub .by-ring{width:118px;height:118px;margin:0 auto;position:relative;}
.by-ub .by-ring svg{width:100%;height:100%;}
.by-ub .by-ring .by-ringc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.by-ub .by-ring .by-ringc b{font-family:var(--font-cond);font-weight:900;font-size:29px;letter-spacing:0.02em;line-height:1;}
.by-ub .by-ring .by-ringc span{font-family:var(--font-mono);font-size:7.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--silver);margin-top:5px;}
.by-ub .by-ue{font-weight:800;font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:#6AA4F4;margin-top:22px;}
.by-ub .by-uh{font-family:var(--font-disp);font-weight:700;font-size:46px;letter-spacing:0.05em;line-height:0.95;text-transform:uppercase;margin-top:12px;}
.by-ub .by-up{font-size:12.5px;line-height:1.55;color:var(--silver-2);margin-top:12px;max-width:290px;margin-left:auto;margin-right:auto;}
.by-ub .by-ulist{margin-top:22px;text-align:left;display:flex;flex-direction:column;gap:9px;}
.by-ub .by-uli{display:flex;gap:11px;align-items:flex-start;background:rgba(255,255,255,0.04);border:1px solid var(--graphite);border-radius:8px;padding:12px 13px;}
.by-ub .by-uli .by-uic{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:#fff;}
.by-ub .by-uli .by-uic svg{width:15px;height:15px;}
.by-ub .by-uli b{display:block;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;line-height:1;}
.by-ub .by-uli span{display:block;font-size:11px;color:var(--silver-2);margin-top:5px;line-height:1.4;}
.by-ub .by-ucoach{display:flex;gap:10px;align-items:center;margin-top:18px;background:rgba(7,93,198,0.12);border:1px solid rgba(7,93,198,0.5);border-radius:8px;padding:12px 13px;text-align:left;}
.by-ub .by-ucoach .by-cav{width:30px;height:30px;border-radius:50%;background:var(--electric);display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-weight:900;font-size:12px;flex:0 0 auto;}
.by-ub .by-ucoach p{font-size:11.5px;line-height:1.45;color:#DCE7F6;}
.by-ub .by-ucoach p b{color:#fff;}
.by-ub .by-ubtn{margin-top:auto;padding-top:24px;}
.by-ub .by-ubtn button{width:100%;background:var(--electric);border:none;color:#fff;border-radius:5px;padding:16px;font-weight:800;font-size:12.5px;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;}
.by-ub .by-ubtn button:hover{background:var(--electric-hover);}
.by-ub .by-ubtn .by-skip{background:none;color:var(--silver);font-weight:700;letter-spacing:0.1em;font-size:10px;padding:12px;margin-top:2px;}
.by-ub .by-ubtn .by-skip:hover{background:none;color:#fff;}
/* Beyond Rx'd runs FIVE keys on the morphing bar (Home + four categories) */
.m-navrow.disc.five .m-tab svg{width:18px;height:18px;}
.m-navrow.disc.five .m-tab .tl{font-size:8px;letter-spacing:0.02em;}
.m-navrow.disc.five .m-tab .tbadge{right:calc(50% - 19px);}
.by-back{display:inline-flex;align-items:center;gap:7px;background:none;border:none;padding:0 0 12px;font-weight:800;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:#8a9099;cursor:pointer;}
.by-back:hover{color:var(--iron);}
.by-back svg{width:14px;height:14px;}
.by-ov-cats button.by-ov-cat{background:none;border:none;padding:0;text-align:left;cursor:pointer;font:inherit;}
.by-ov-cats button.by-ov-cat:active{transform:translateY(1px);}
.by-sh-save[disabled]{opacity:.45;cursor:not-allowed;}
.by-root{display:block;}
.by-root .d-lbl:first-child{margin-top:0;}
.by-root>div>.by-gb-hero:first-child,.by-root>div>.by-ov:first-child{margin-top:0;}
/* Progress tab · Beyond achievement board */
.by-ach-tally{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--plate);border:1px solid var(--plate);border-radius:8px;overflow:hidden;margin-bottom:4px;}
.by-ach-t{background:#fff;padding:11px 6px;text-align:center;}
.by-ach-t b{display:block;font-family:var(--font-cond);font-weight:900;font-size:24px;line-height:1;color:var(--iron);}
.by-ach-t span{display:block;font-family:var(--font-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#a6acb4;margin-top:5px;}
.by-ach-t.by-g b{color:#8a6d10;}.by-ach-t.by-s b{color:#5d6672;}.by-ach-t.by-b b{color:#7d5227;}
.m-card .by-hgrp{display:flex;align-items:center;gap:8px;margin:16px 0 7px;}
.m-card .by-hgrp span{font-family:var(--font-mono);font-size:9px;color:#c4c9cf;letter-spacing:0;}
.by-ach-list{border:1px solid var(--plate);border-radius:9px;overflow:hidden;}
.by-ach-row{display:flex;align-items:center;gap:11px;padding:10px 12px;border-top:1px solid #EDEEF0;}
.by-ach-row:first-child{border-top:none;}
.by-ach-row .by-sk-med{width:30px;height:30px;flex:0 0 auto;}
.by-ach-row .by-sk-med svg{width:14px;height:14px;}
.by-ach-b{flex:1 1 auto;min-width:0;}
.by-ach-n{display:block;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.by-ach-meta{display:block;font-family:var(--font-mono);font-size:9.5px;color:#9aa0a8;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.by-ach-v{flex:0 0 auto;font-family:var(--font-mono);font-weight:700;font-size:13px;color:var(--iron);}

/* ===== Road to Rx'd · this cycle (checkin-progression.jsx) =====
   ONE block, two surfaces: the client's check-in step 5 and the coach's
   review. Namespaced .rxp-* so it carries its own look into either shell. */
.rxp{display:block;}
.rxp-dh{display:flex;align-items:center;gap:8px;margin:18px 0 9px;font-family:var(--font-cond);font-weight:900;font-size:12.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--iron);}
.rxp-dh:first-child{margin-top:0;}
.rxp-dh .ct{font-family:var(--font-mono);font-weight:400;font-size:11px;letter-spacing:0;text-transform:none;color:var(--electric);white-space:nowrap;}
.rxp-dh::after{content:"";flex:1 1 auto;height:1px;background:var(--plate);}
.rxp-rows{display:flex;flex-direction:column;gap:8px;}
.rxp-won{background:var(--iron);border-radius:9px;padding:12px 13px;position:relative;overflow:hidden;}
.rxp-won::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--electric);}
.rxp-won-top{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.rxp-won-nm{font-family:var(--font-cond);font-weight:900;font-size:19px;line-height:1;letter-spacing:0.02em;text-transform:uppercase;color:#fff;}
.rxp-chip{flex:0 0 auto;font-family:var(--font-cond);font-weight:900;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:#fff;background:var(--electric);border-radius:999px;padding:4px 10px;}
.rxp-won-sc{font-family:var(--font-mono);font-size:11.5px;line-height:1.5;color:#8FB8EC;margin-top:6px;}
.rxp-won-sc b{color:#fff;font-weight:700;}
.rxp-pr{background:var(--chalk);border:1px solid var(--plate);border-radius:9px;padding:12px 13px;}
.rxp-pr-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.rxp-pr-nm{font-family:var(--font-cond);font-weight:900;font-size:19px;line-height:1;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);}
.rxp-pr-dl{flex:0 0 auto;font-family:var(--font-mono);font-weight:700;font-size:12px;color:var(--electric);white-space:nowrap;}
.rxp-pr-sc{font-family:var(--font-mono);font-size:12px;color:#6a6a6a;margin-top:5px;}
.rxp-pr-sc b{color:var(--iron);font-weight:700;}
.rxp-bar{height:6px;background:#E2E2E2;border-radius:3px;margin-top:9px;overflow:hidden;position:relative;}
.rxp-bar i{position:absolute;left:0;top:0;bottom:0;background:var(--electric);border-radius:3px;}
.rxp-pr-ft{display:flex;justify-content:space-between;gap:10px;margin-top:6px;font-family:var(--font-mono);font-size:10.5px;color:#8a8a8a;}
.rxp-pr-ft b{color:var(--iron);font-weight:700;}
.rxp-bp{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:10px 13px;}
.rxp-bp-nm{flex:1 1 auto;min-width:0;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.rxp-bp-sc{flex:0 0 auto;font-family:var(--font-mono);font-size:11px;color:#8a8a8a;}
.rxp-bp-sc b{color:var(--iron);font-weight:700;}
.rxp-bp-dl{flex:0 0 auto;font-family:var(--font-mono);font-weight:700;font-size:11px;color:var(--electric);white-space:nowrap;}
.rxp-held{font-family:var(--font-mono);font-size:10.5px;line-height:1.5;color:#9aa0a8;margin-top:12px;}
.rxp-note{display:flex;gap:9px;align-items:flex-start;background:rgba(7,93,198,0.08);border:1px solid rgba(7,93,198,0.3);border-left:3px solid var(--electric);border-radius:9px;padding:11px 12px;margin-top:16px;}
.rxp-note svg{flex:0 0 auto;width:16px;height:16px;stroke:var(--electric);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;margin-top:1px;}
.rxp-note p{font-size:12px;line-height:1.5;color:#333;text-wrap:pretty;}
.rxp-empty{background:var(--chalk);border:1px dashed var(--plate);border-radius:9px;padding:15px 14px;}
.rxp-empty-t{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1;}
.rxp-empty-d{font-size:12px;line-height:1.5;color:#6a6a6a;margin-top:8px;text-wrap:pretty;}

/* ═══════════════ ROLLOUT ONBOARDING — window.ROLLOUT (Road to Rx'd) ═══════════════
   Extra .ob-* blocks used by the six-video rollout flow (and the On-Ramp accordion).
   PATCH-styles ops + the classes the flow needs that weren't yet in live. */

/* odd tile out spans the row so no empty plate cell shows (On-Ramp mini tiles) */
.ob-tile:last-child:nth-child(odd){grid-column:1 / -1;}

/* the module screenshot — same shots the videos use */
.ob-shot{margin:0 0 14px;border:1px solid var(--plate);border-radius:7px;overflow:hidden;background:var(--chalk);}
.ob-shot img{display:block;width:100%;height:auto;}
.ob-shot figcaption{font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:#8A93A0;padding:8px 11px;border-top:1px solid var(--plate);background:#fff;}
.ob-shot.in-takes{margin:18px 0 0;}

/* dashboard-style overview hero (rollout) — ring + % + what's next, blurb under */
.ob-ov{background:var(--iron);border:1px solid var(--graphite);border-top:3px solid var(--electric);border-radius:10px;padding:18px 16px 16px;margin:2px 0 13px;}
.ob-ov.done{border-top-color:var(--turf);}
.ob-ov-eb{font-family:var(--font-body);font-weight:700;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--electric);margin-bottom:9px;display:flex;align-items:center;gap:10px;}
.ob-ov-eb::before{content:"";width:22px;height:2px;background:var(--electric);flex:0 0 auto;}
.ob-ov-h{font-family:var(--font-cond);font-weight:900;font-size:31px;line-height:0.94;letter-spacing:0.02em;text-transform:uppercase;color:#fff;margin:0 0 16px;}
.ob-ov-h .bl{color:var(--electric);}
.ob-ov-top{display:flex;align-items:center;gap:16px;}
.ob-ov-sub{font-size:12.5px;line-height:1.55;color:var(--silver-2);margin:16px 0 0;padding-top:14px;border-top:1px solid var(--graphite);text-wrap:pretty;}
.ob-ov-sub strong{color:#fff;font-weight:600;}

/* TAKE-AWAYS — the rollout module body: big, few, arrow-led */
.ob-takes{margin-top:16px;}
.ob-takes-l{font-family:var(--font-body);font-weight:800;font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--electric);margin-bottom:14px;display:flex;align-items:center;gap:10px;}
.ob-takes-l::after{content:"";flex:1;height:1px;background:var(--plate);}
.ob-take{display:grid;grid-template-columns:26px 1fr;gap:13px;align-items:start;padding:16px 0;border-top:1px solid var(--plate);}
.ob-take:first-of-type{border-top:none;padding-top:2px;}
.ob-take-ar{color:var(--electric);display:flex;margin-top:3px;}
.ob-take-ar svg{width:24px;height:24px;}
.ob-take-b{min-width:0;display:flex;flex-direction:column;gap:6px;}
.ob-take-t{font-family:var(--font-cond);font-weight:900;font-size:25px;line-height:0.98;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);text-wrap:balance;}
.ob-take-d{font-size:13.5px;line-height:1.5;color:#5a6069;text-wrap:pretty;}

/* collapsible content cards (On-Ramp onboarding accordion). ob-ccard padding reset
   MUST come after the base .ob-ccard rule above — it does (later in source). */
.ob-ccard{padding:0;overflow:hidden;}
.ob-chd{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;background:none;border:none;padding:16px 16px;text-align:left;cursor:pointer;font-family:inherit;}
.ob-chd-b{min-width:0;display:flex;flex-direction:column;gap:5px;}
.ob-ccard .ob-ch{display:block;font-size:19px;line-height:1.05;margin:0;}
.ob-ccard.open .ob-ch{color:var(--electric);}
.ob-cx{flex:0 0 auto;color:#9aa3ad;display:flex;transition:transform .18s var(--ease,cubic-bezier(0.2,0.7,0.2,1));}
.ob-ccard.open .ob-cx{transform:rotate(180deg);color:var(--electric);}
.ob-chd:hover .ob-ch{color:var(--electric);}
.ob-cbody{padding:2px 16px 18px;}
.ob-cbody .ob-steps,.ob-cbody .ob-tiles{margin-top:0;}
.ob-cbody .ob-cp + .ob-steps,.ob-cbody .ob-cp + .ob-tiles,.ob-cbody .ob-cp + .ob-points{margin-top:13px;}

/* big start / continue button (rollout) */
.ob-start{width:100%;display:flex;align-items:center;gap:12px;background:var(--electric);color:#fff;border:none;border-radius:10px;padding:15px 16px;margin:0 0 13px;cursor:pointer;font-family:inherit;text-align:left;transition:filter .12s var(--ease);}
.ob-start:hover{filter:brightness(1.09);}
.ob-start.done{background:var(--iron);}
.ob-start-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px;}
.ob-start-t{font-family:var(--font-cond);font-weight:900;font-size:18px;letter-spacing:0.04em;text-transform:uppercase;line-height:1;}
.ob-start-d{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.04em;color:rgba(255,255,255,0.78);}
.ob-start svg{flex:0 0 auto;}

/* gate strip — Nutrition/Training/Goals locked until all six done */
.ob-gate{display:flex;align-items:flex-start;gap:11px;background:var(--chalk);border:1px solid var(--plate);border-radius:9px;padding:12px 13px;margin:0 0 13px;color:#6a6a6a;}
.ob-gate svg{flex:0 0 auto;color:#9aa3ad;margin-top:1px;}
.ob-gate-t{font-size:12px;line-height:1.5;}
.ob-gate-t b{color:var(--iron);font-weight:700;}
.ob-gate.open{background:rgba(22,196,106,0.08);border-color:rgba(22,196,106,0.35);color:#2f6b46;}
.ob-gate.open svg{color:var(--turf);}
.ob-gate.open .ob-gate-t b{color:#1f5a37;}

/* the standard the coach holds you to (rollout modules carry one) */
.ob-std{display:flex;align-items:flex-start;gap:12px;background:var(--iron);border-radius:9px;padding:13px 14px;margin:16px 0 0;color:#fff;}
.ob-std svg{flex:0 0 auto;color:var(--electric);margin-top:1px;}
.ob-std-eb{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:#6AA4F4;margin-bottom:5px;}
.ob-std-t{font-size:13px;line-height:1.5;color:var(--silver-2);}

/* keystone chip on a module row */
.ob-kchip{flex:0 0 auto;align-self:center;font-family:var(--font-mono);font-size:8px;letter-spacing:0.1em;text-transform:uppercase;color:#fff;background:var(--electric);border-radius:999px;padding:4px 8px;}

/* first jobs — inside the (light) cleared card once the gate opens */
.ob-jobs{margin-top:16px;text-align:left;}
.ob-jobs-l{font-family:var(--font-body);font-weight:800;font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--electric);margin-bottom:11px;}
.ob-job{display:grid;grid-template-columns:22px 1fr;gap:11px;align-items:start;padding:11px 0;border-top:1px solid var(--plate);}
.ob-job:first-of-type{border-top:none;padding-top:0;}
.ob-job .bx{width:22px;height:22px;border-radius:50%;background:var(--electric);display:flex;align-items:center;justify-content:center;color:#fff;flex:0 0 auto;}
.ob-job .bx svg{width:13px;height:13px;stroke:currentColor;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.ob-job .jb{min-width:0;display:flex;flex-direction:column;gap:3px;}
.ob-job .jt{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.ob-job .jd{font-size:12.5px;line-height:1.45;color:#5a6069;}
.ob-job .jtag{align-self:flex-start;margin-top:2px;font-family:var(--font-mono);font-size:8px;letter-spacing:0.08em;text-transform:uppercase;color:var(--electric);background:rgba(7,93,198,0.1);border-radius:4px;padding:3px 7px;}

/* tighter bottom bar for the 7-tab rollout flow at 392px */
.m-tabbar.tight{padding-left:0;padding-right:0;}
.m-tabbar.tight .m-tab{padding:6px 1px;gap:4px;}
.m-tabbar.tight .m-tab .tl{font-size:8px;letter-spacing:-0.02em;}

/* Rollout welcome popup (NotifPopup kind:'welcome') — icon rows in the brief-style card */
.m-pop-wlist{display:flex;flex-direction:column;gap:2px;margin-top:6px;}
.m-pop-wrow{display:grid;grid-template-columns:34px 1fr;gap:11px;align-items:start;padding:12px 0;border-top:1px solid var(--plate);}
.m-pop-wrow:first-child{border-top:none;}
.m-pop-wic{width:34px;height:34px;border-radius:8px;background:var(--chalk);border:1px solid var(--plate);display:flex;align-items:center;justify-content:center;color:var(--electric);}
.m-pop-wb{min-width:0;display:flex;flex-direction:column;gap:3px;}
.m-pop-wt{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.m-pop-wdsc{font-size:12.5px;line-height:1.45;color:#5a6069;}

/* ============================================================================
   THE SATURDAY WRAP · WINS + STREAK (window.IBSaturdayWrap, p1/week-wrap.jsx)
   The richer wrap shared by Road to Rx'd, Beyond Rx'd and the On-Ramp. All
   namespaced `rw-` so nothing here can restyle the older `.wrap-*` blocks
   above (the goals ticklist is still `.wrap-goal` and is reused as-is).
   ============================================================================ */
.rw-eb{font-family:var(--font-mono);font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--electric);margin-bottom:8px;}
.rw-t{font-family:var(--font-cond);font-weight:900;font-size:28px;line-height:0.96;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);margin-bottom:9px;text-wrap:balance;}
.rw-d{font-size:12.8px;line-height:1.55;color:#4b5158;text-wrap:pretty;}
.rw-d b{color:var(--iron);font-weight:600;}
.rw-sec{font-family:var(--font-cond);font-weight:900;font-size:11.5px;letter-spacing:0.12em;text-transform:uppercase;color:#8b939d;margin:20px 0 10px;display:flex;align-items:center;gap:9px;}
.rw-sec::after{content:"";flex:1;height:1px;background:var(--plate);}
.rw-sec em{font-style:normal;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.06em;color:#adb4bc;order:3;}

/* hero win — a standard taken off the board / a medal won / the week locked */
.rw-hero{background:var(--iron);border-radius:10px;border-top:3px solid var(--turf);padding:16px 15px 15px;color:#fff;}
.rw-hero .eb{display:flex;align-items:center;gap:8px;font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--turf);}
.rw-hero .eb i{width:18px;height:18px;border-radius:50%;background:var(--turf);color:#08210f;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.rw-hero.m-b{border-top-color:var(--bronze);}.rw-hero.m-b .eb{color:var(--bronze);}.rw-hero.m-b .eb i{background:var(--bronze);color:#241605;}.rw-hero.m-b .v{color:var(--bronze);}
.rw-hero.m-s{border-top-color:var(--silvermed);}.rw-hero.m-s .eb{color:var(--silvermed);}.rw-hero.m-s .eb i{background:var(--silvermed);color:#1c1f23;}.rw-hero.m-s .v{color:var(--silvermed);}
.rw-hero.m-g{border-top-color:var(--gold);}.rw-hero.m-g .eb{color:var(--gold);}.rw-hero.m-g .eb i{background:var(--gold);color:#241d05;}.rw-hero.m-g .v{color:var(--gold);}
.rw-hero .nm{font-family:var(--font-cond);font-weight:900;font-size:30px;line-height:0.94;letter-spacing:0.02em;text-transform:uppercase;margin:11px 0 0;text-wrap:balance;}
.rw-hero .row{display:flex;align-items:baseline;gap:10px;margin-top:9px;padding-top:11px;border-top:1px solid var(--graphite);}
.rw-hero .v{font-family:var(--font-cond);font-weight:900;font-size:26px;line-height:1;color:var(--turf);}
.rw-hero .was{font-family:var(--font-mono);font-size:10px;letter-spacing:0.05em;color:var(--silver);}
.rw-hero .dt{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.05em;color:var(--silver);}
.rw-hero .ft{font-size:12px;line-height:1.5;color:#c8c8c8;margin-top:10px;text-wrap:pretty;}
.rw-hero .ft b{color:#fff;font-weight:600;}
.rw-hero.good .nm{margin-top:8px;font-size:26px;}

/* the rest of the wins */
.rw-wins{display:flex;flex-direction:column;gap:8px;}
.rw-win{display:flex;gap:12px;background:#fff;border:1px solid var(--plate);border-left:3px solid var(--electric);border-radius:8px;padding:12px 13px;text-align:left;width:100%;cursor:pointer;font-family:inherit;transition:border-color .12s;}
.rw-win:hover{border-color:var(--electric);}
.rw-win.prog{border-left-color:#8b939d;}
.rw-win.miss{border-left-color:var(--rust);}
.rw-win.flat{cursor:default;}
.rw-win.flat:hover{border-color:var(--plate);}
.rw-win .ic{flex:0 0 auto;width:26px;height:26px;border-radius:7px;background:rgba(7,93,198,0.1);color:var(--electric);display:flex;align-items:center;justify-content:center;margin-top:1px;}
.rw-win.prog .ic{background:#eef0f2;color:#68717b;}
.rw-win.miss .ic{background:rgba(178,59,59,0.1);color:var(--rust);}
.rw-win .b{flex:1 1 auto;min-width:0;}
.rw-win .top{display:flex;align-items:baseline;gap:8px;}
.rw-win .nm{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1.05;min-width:0;}
.rw-win .chip{margin-left:auto;white-space:nowrap;flex:0 0 auto;font-family:var(--font-mono);font-size:8.5px;font-weight:700;letter-spacing:0.09em;text-transform:uppercase;color:var(--electric);border:1px solid rgba(7,93,198,0.35);border-radius:999px;padding:3px 7px;line-height:1;}
.rw-win.prog .chip{color:#68717b;border-color:#d5d9dd;}
.rw-win.miss .chip{color:var(--rust);border-color:rgba(178,59,59,0.35);}
.rw-win .vr{display:flex;align-items:baseline;gap:9px;margin-top:6px;flex-wrap:wrap;row-gap:3px;}
.rw-win .v{font-family:var(--font-cond);font-weight:900;font-size:19px;line-height:1;color:var(--iron);}
.rw-win .dl{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:0.04em;color:var(--turf);}
.rw-win .dt{font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;color:#a8afb7;white-space:nowrap;}
.rw-win .d{display:block;font-size:11.5px;line-height:1.45;color:#666;margin-top:6px;text-wrap:pretty;}
.rw-win .bar{display:block;height:5px;background:var(--chalk);border:1px solid var(--plate);border-radius:4px;overflow:hidden;margin-top:8px;}
.rw-win .bar i{display:block;height:100%;background:var(--electric);}
.rw-win .gap{display:flex;justify-content:space-between;gap:10px;font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;color:#8b939d;margin-top:5px;white-space:nowrap;}
.rw-win .gap b{color:var(--electric);font-weight:700;}
/* On-Ramp: the seven days, planned or not */
.rw-days{display:flex;gap:3px;margin-top:8px;}
.rw-days i{flex:1 1 0;height:19px;border-radius:2px;background:#e7eaed;color:#a8afb7;font-style:normal;font-family:var(--font-mono);font-size:8.5px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.rw-days i.on{background:var(--turf);color:#fff;}

/* nothing-logged — a real state, said plainly */
.rw-none{background:var(--chalk);border:1px dashed #c9ced4;border-radius:9px;padding:15px 14px;}
.rw-none .t{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.rw-none .d{font-size:12px;line-height:1.5;color:#5a6069;margin-top:7px;text-wrap:pretty;}
.rw-none .d b{color:var(--iron);font-weight:600;}
.rw-none .cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;background:#fff;border:1px solid var(--plate);border-radius:6px;padding:11px;cursor:pointer;font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;color:var(--iron);transition:border-color .12s,color .12s;}
.rw-none .cta:hover{border-color:var(--electric);color:var(--electric);}
.rw-log{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.05em;text-transform:uppercase;color:#9aa3ad;margin-top:10px;display:flex;gap:6px;flex-wrap:wrap;}
.rw-log .dot{color:#d5d9dd;}

/* the streak — weeks in a row with both halves of the Lock-In in */
.rw-streak{background:#fff;border:1px solid var(--plate);border-radius:9px;padding:15px 14px 13px;}
.rw-streak.broke{border-left:3px solid var(--rust);}
.rw-streak.on{border-left:3px solid var(--turf);}
.rw-streak .hd{display:flex;align-items:center;gap:13px;}
.rw-streak .n{flex:0 0 auto;font-family:var(--font-cond);font-weight:900;font-size:56px;line-height:0.78;letter-spacing:0.01em;color:var(--turf);}
.rw-streak.broke .n{color:var(--rust);}
.rw-streak .hb{min-width:0;}
.rw-streak .ht{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.rw-streak .hd2{font-size:11.5px;line-height:1.45;color:#666;margin-top:4px;text-wrap:pretty;}
.rw-blocks{display:flex;gap:3px;margin-top:14px;}
.rw-blocks i{flex:1 1 0;height:22px;border-radius:2px;background:#e7eaed;}
.rw-blocks i.hit{background:var(--turf);}
.rw-blocks i.half{background:linear-gradient(180deg,var(--turf) 50%,#e7eaed 50%);}
.rw-blocks i.miss{background:#dfe3e7;}
.rw-blocks i.now{outline:2px solid var(--iron);outline-offset:2px;}
.rw-blocks-l{display:flex;justify-content:space-between;padding:0 1px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.06em;text-transform:uppercase;color:#a8afb7;margin-top:7px;}
.rw-halves{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;padding-top:13px;border-top:1px dashed #e2e5e8;}
.rw-half{display:flex;align-items:center;gap:9px;background:var(--chalk);border:1px solid var(--plate);border-radius:7px;padding:9px 10px;cursor:pointer;text-align:left;font-family:inherit;transition:border-color .12s;}
.rw-half:hover{border-color:var(--electric);}
.rw-half.on{background:rgba(22,196,106,0.07);border-color:rgba(22,196,106,0.45);}
.rw-half i{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:#e7eaed;color:#98a0a8;display:flex;align-items:center;justify-content:center;}
.rw-half.on i{background:var(--turf);color:#fff;}
.rw-half b{font-family:var(--font-cond);font-weight:900;font-size:12.5px;letter-spacing:0.04em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.rw-half em{display:block;font-style:normal;font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;color:#8b939d;margin-top:3px;}
.rw-half.on em{color:var(--turf);}


/* ============================================================================
   THE CYCLE REVIEW — window.IBCoachReview (p1/coach-review.jsx)
   Chaptered coach review: dark hero + contents strip, numbered chapter dividers
   each carrying its own one-line verdict, chapter 04 inverted, the coach's long
   note last. Renders inside .m-body AND inside .m-pop-card — both pad 18px, so
   the chapter dividers full-bleed with a -18px inline margin.
   Namespaced .crv-* so nothing here can touch the rest of the app.
   ============================================================================ */
.crv{text-align:left;}
.crv .crv-eb{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;color:#9a9a9a;margin-bottom:4px;}
.crv .crv-cap{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.02em;color:#9a9a9a;text-align:center;margin-top:9px;line-height:1.5;}
.crv .crv-cap.left{text-align:left;margin-top:7px;}

/* hero */
.crv .crv-hero{background:var(--iron);color:#fff;border-radius:9px;padding:17px 16px 15px;}
.crv .crv-hero .eb{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--silver);margin-bottom:10px;}
.crv .crv-hero .hook{font-family:var(--font-cond);font-weight:900;font-size:31px;line-height:0.95;letter-spacing:0.01em;text-transform:uppercase;text-wrap:balance;}
.crv .crv-hero .q{display:flex;gap:11px;margin-top:14px;padding-top:13px;border-top:1px solid rgba(255,255,255,0.15);}
.crv .crv-hero .q .av{width:32px;height:32px;flex:0 0 auto;border-radius:4px;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-weight:900;font-size:12.5px;}
.crv .crv-hero .q .tx{font-size:13px;line-height:1.55;color:#E2E2E2;text-wrap:pretty;}
.crv .crv-hero .q .tx.ink{font-family:"Caveat","Bradley Hand","Segoe Print",cursive;font-weight:600;font-size:20px;line-height:1.35;color:#fff;}
.crv .crv-hero .q .tx.ink b{font-weight:700;color:#fff;}
.crv .crv-hero .q .tx b{color:#fff;font-weight:700;}
.crv .crv-hero .map{display:flex;gap:7px;margin-top:16px;}
.crv .crv-hero .map button{background:none;border:none;font:inherit;cursor:pointer;text-align:left;flex:1;min-width:0;border-top:2px solid rgba(255,255,255,0.2);padding-top:7px;font-family:var(--font-mono);font-size:8px;letter-spacing:0.06em;text-transform:uppercase;color:var(--silver);line-height:1.3;}
.crv .crv-hero .map button.on{border-top-color:var(--electric);color:#fff;}
.crv .crv-hero .map b{display:block;font-family:var(--font-cond);font-weight:900;font-size:14px;color:var(--electric);margin-bottom:3px;letter-spacing:0.02em;}

/* chapter divider */
.crv .crv-chap{margin:0 -18px;}
.crv .crv-hero+.crv-chap{margin-top:20px;}
.crv .crv-chap.on{margin-bottom:20px;}
.crv .crv-chap+.crv-chap>.crv-ch{border-top:1px solid rgba(255,255,255,0.16);}
.crv .crv-cbody{padding:14px 18px 0;}
.crv .crv-ch{display:flex;gap:14px;align-items:stretch;width:100%;text-align:left;font:inherit;border:none;padding:15px 18px;background:var(--iron);cursor:pointer;}
.crv .crv-ch:active{background:var(--steel);}
.crv .crv-ch.dark:active{background:var(--electric-deep);}
.crv .crv-ch .cv{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:7px;color:var(--silver);}
.crv .crv-ch.dark .cv{color:rgba(255,255,255,0.75);}
.crv .crv-ch .n{flex:0 0 auto;font-family:var(--font-cond);font-weight:900;font-size:33px;line-height:0.78;color:var(--silver);letter-spacing:0.01em;}
.crv .crv-ch .b{flex:1;min-width:0;padding-left:14px;border-left:1px solid rgba(255,255,255,0.2);}
.crv .crv-ch .t{display:block;font-family:var(--font-cond);font-weight:900;font-size:23px;letter-spacing:0.06em;text-transform:uppercase;color:#fff;line-height:0.95;}
.crv .crv-ch .k{display:block;font-size:12.4px;line-height:1.5;color:#D0D0D0;margin-top:7px;text-wrap:pretty;}
.crv .crv-ch .k b{color:#fff;font-weight:700;}
.crv .crv-ch .of{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;color:#6E6E6E;}
.crv .crv-ch.dark{background:var(--electric);}
.crv .crv-ch.dark .n{color:rgba(255,255,255,0.55);}
.crv .crv-ch.dark .b{border-left-color:rgba(255,255,255,0.35);}
.crv .crv-ch.dark .k{color:rgba(255,255,255,0.92);}
.crv .crv-ch.dark .of{color:rgba(255,255,255,0.7);}

/* 01 — stats */
.crv .crv-stats{display:flex;flex-direction:column;gap:14px;border:1px solid var(--plate);border-radius:8px;padding:15px;}
.crv .crv-stat .l{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.crv .crv-stat .lab{font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.07em;text-transform:uppercase;color:#666;}
.crv .crv-stat .chip{font-weight:800;font-size:12px;}
.crv .crv-stat .v{display:flex;align-items:baseline;gap:7px;margin-top:3px;}
.crv .crv-stat .from{font-size:13px;color:#B0B0B0;font-weight:600;}
.crv .crv-stat .arw{color:#ccc;font-size:12px;}
.crv .crv-stat .to{font-family:var(--font-cond);font-weight:900;font-size:26px;line-height:1;color:var(--iron);}
.crv .crv-stat .bars{margin-top:8px;display:flex;flex-direction:column;gap:3px;}
.crv .crv-stat .bars i{display:block;height:5px;border-radius:3px;background:#E0E0E0;}

/* 01 — continuum */
.crv .crv-cont{border:1px solid var(--plate);border-radius:8px;padding:14px 15px 13px;}
.crv .crv-cont .h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:25px;}
.crv .crv-cont .zn{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);}
.crv .crv-cont .zn em{font-style:normal;font-family:var(--font-mono);font-size:9.5px;text-transform:none;color:#a0a0a0;margin-left:7px;font-weight:400;}
.crv .crv-cont .to{font-family:var(--font-mono);font-size:10px;letter-spacing:0.04em;color:#8a8a8a;flex:0 0 auto;}
.crv .crv-cont .to b{color:var(--electric);}
.crv .crv-track{position:relative;height:11px;display:flex;gap:2px;margin-bottom:7px;}
.crv .crv-track .b{flex:1;height:100%;border-radius:2px;opacity:0.85;}
.crv .crv-track .b.sickness{background:var(--rust);}
.crv .crv-track .b.wellness{background:var(--forge);}
.crv .crv-track .b.fitness{background:var(--turf);}
.crv .crv-track .b.athletic{background:var(--z-ath);}
.crv .crv-mk{position:absolute;top:-6px;bottom:-6px;width:3px;background:var(--iron);transform:translateX(-50%);border-radius:2px;}
.crv .crv-mk.ghost{background:#c9c9c9;width:2px;}
.crv .crv-mk .tag{position:absolute;top:-19px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:9.5px;color:var(--iron);white-space:nowrap;font-weight:700;}
.crv .crv-zl{display:flex;gap:2px;}
.crv .crv-zl span{flex:1;min-width:0;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.04em;text-transform:uppercase;color:#a8a8a8;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.crv .crv-zl span.on{color:var(--iron);font-weight:700;}

/* 02 — the board */
.crv .crv-meter{border:1px solid var(--plate);border-radius:8px;padding:13px 14px;}
.crv .crv-meter .hd{display:flex;align-items:baseline;gap:9px;margin-bottom:11px;}
.crv .crv-meter .v{font-family:var(--font-cond);font-weight:900;font-size:26px;line-height:1;color:var(--iron);flex:0 0 auto;}
.crv .crv-meter .v small{font-size:13px;color:#9a9a9a;font-weight:900;}
.crv .crv-meter .l{font-family:var(--font-cond);font-weight:900;font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;color:#8a8a8a;}
.crv .crv-meter .gain{margin-left:auto;flex:0 0 auto;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.04em;color:var(--electric);font-weight:700;text-transform:uppercase;}
.crv .crv-meter .ticks{display:flex;gap:3px;}
.crv .crv-meter .ticks i{flex:1;height:10px;border-radius:2px;background:#E6E6E6;}
.crv .crv-meter .ticks i.on{background:var(--iron);}
.crv .crv-meter .ticks i.new{background:var(--electric);}
.crv .crv-lad{border:1px solid var(--plate);border-radius:8px;overflow:hidden;margin-top:10px;}
.crv .crv-lrow{border-bottom:1px solid #EDEDED;}
.crv .crv-lrow:last-child{border-bottom:none;}
.crv .crv-lrow.on{background:var(--chalk);}
.crv .crv-lhd{display:flex;flex-direction:column;gap:7px;width:100%;text-align:left;font:inherit;background:none;border:none;padding:11px 12px 11px;cursor:pointer;}
.crv .crv-lhd .r1{display:flex;align-items:center;gap:9px;}
.crv .crv-lhd .r2{display:flex;align-items:center;gap:9px;}
.crv .crv-lhd .mk{flex:0 0 auto;min-width:34px;height:25px;padding:0 5px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:0.01em;}
.crv .crv-lhd .nm{flex:1;min-width:0;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.crv .crv-lhd .rs{flex:0 0 auto;font-family:var(--font-mono);font-size:11px;color:var(--iron);font-weight:700;}
.crv .crv-lhd .dl{flex:0 0 auto;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.06em;text-transform:uppercase;border-radius:20px;padding:2px 7px;}
.crv .crv-lhd .cv{flex:0 0 auto;display:flex;color:#B4B4B4;}
.crv .crv-lhd .bar{flex:1;min-width:0;position:relative;height:6px;border-radius:3px;background:#EAEAEA;}
.crv .crv-lhd .bar.hide{background:none;}
.crv .crv-lhd .bar i{position:absolute;top:0;bottom:0;border-radius:3px;}
.crv .crv-lhd .bar .held{left:0;}
.crv .crv-lrow[data-t=own] .mk{background:var(--electric);color:#fff;}
.crv .crv-lrow[data-t=own] .bar .held{background:var(--electric);}
.crv .crv-lrow[data-t=own] .dl{color:var(--electric);border:1px solid #BFD6F1;}
.crv .crv-lrow[data-t=near] .mk{background:#E1EDFB;color:#0B57B8;border:1px solid #BCD7F4;}
.crv .crv-lrow[data-t=near] .bar .held{background:#8FB9E7;}
.crv .crv-lrow[data-t=near] .bar .gain{background:#1C77E0;}
.crv .crv-lrow[data-t=near] .dl{color:#1C77E0;border:1px solid #BFD6F1;}
.crv .crv-lrow[data-t=mid] .mk{background:#EBF2FA;color:#2C6DAE;border:1px solid #CFDFF1;}
.crv .crv-lrow[data-t=mid] .bar .held{background:#B7D2EE;}
.crv .crv-lrow[data-t=mid] .bar .gain{background:#5B9BE0;}
.crv .crv-lrow[data-t=mid] .dl{color:#3C7CBE;border:1px solid #CDDFF2;}
.crv .crv-lrow[data-t=far] .mk{background:#F0F3F7;color:#5E7C9C;border:1px solid #DCE5EE;}
.crv .crv-lrow[data-t=far] .bar .held{background:#D6E4F3;}
.crv .crv-lrow[data-t=far] .bar .gain{background:#9DBFE4;}
.crv .crv-lrow[data-t=far] .dl{color:#5E7C9C;border:1px solid #DCE6F0;}
.crv .crv-lx{padding:0 12px 13px;}
.crv .crv-lx .jl{display:flex;gap:1px;background:var(--plate);border:1px solid var(--plate);border-radius:6px;overflow:hidden;}
.crv .crv-lx .jl span{flex:1;min-width:0;background:#fff;padding:8px 6px;text-align:center;}
.crv .crv-lx .jl .now{background:var(--iron);}
.crv .crv-lx .jl em{display:block;font-style:normal;font-family:var(--font-mono);font-size:8px;letter-spacing:0.09em;text-transform:uppercase;color:#9a9a9a;}
.crv .crv-lx .jl b{display:block;font-family:var(--font-cond);font-weight:900;font-size:17px;line-height:1;color:var(--iron);margin-top:4px;}
.crv .crv-lx .jl .now em{color:var(--silver);}
.crv .crv-lx .jl .now b{color:#fff;}
.crv .crv-lx .nt{font-size:12px;line-height:1.5;color:#3a3a3a;margin-top:9px;}
.crv .crv-lx .mt{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.02em;color:#9a9a9a;margin-top:6px;}
.crv .crv-wins{display:flex;flex-direction:column;gap:9px;margin-top:10px;}
.crv .crv-wins:empty{display:none;}
.crv .crv-win{display:flex;gap:11px;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:12px;}
.crv .crv-win.won{border-left:3px solid var(--electric);padding-left:10px;}
.crv .crv-win .ic{width:28px;height:28px;flex:0 0 auto;border-radius:4px;background:#fff;border:1px solid var(--plate);color:#9a9a9a;display:flex;align-items:center;justify-content:center;}
.crv .crv-win.won .ic{background:var(--iron);border-color:var(--iron);color:#fff;}
.crv .crv-win .b{flex:1;min-width:0;}
.crv .crv-win .top{display:flex;align-items:center;gap:8px;}
.crv .crv-win .nm{flex:1;min-width:0;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.crv .crv-win .pill{flex:0 0 auto;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.09em;text-transform:uppercase;color:#fff;background:var(--iron);border-radius:20px;padding:3px 8px;}
.crv .crv-win .pill.up{background:#fff;color:var(--electric);border:1px solid var(--electric);padding:2px 7px;}
.crv .crv-win .sc{display:block;font-size:11.5px;line-height:1.45;color:#5a5a5a;margin-top:6px;}
.crv .crv-win .sc b{color:var(--iron);font-weight:700;}
.crv .crv-jr{position:relative;display:block;height:7px;border-radius:4px;background:#E2E2E2;margin-top:10px;}
.crv .crv-jr i{position:absolute;top:0;bottom:0;display:block;border-radius:4px;}
.crv .crv-jr .done{left:0;background:#C2C2C2;}
.crv .crv-win.won .crv-jr .done{background:var(--electric);}
.crv .crv-jr .gain{background:var(--electric);}
.crv .crv-jrl{display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-family:var(--font-mono);font-size:9.5px;color:#8a8a8a;align-items:baseline;}
.crv .crv-jrl b{color:var(--electric);font-weight:700;flex:0 0 auto;white-space:nowrap;}
.crv .crv-jrl span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;}

/* 03 — how the month ran */
.crv .crv-two{display:flex;gap:9px;}
.crv .crv-mini{flex:1;min-width:0;border:1px solid var(--plate);border-radius:8px;padding:12px 13px;}
.crv .crv-mini .l{display:flex;align-items:center;gap:6px;font-family:var(--font-cond);font-weight:900;font-size:11.5px;letter-spacing:0.07em;text-transform:uppercase;color:#8a8a8a;}
.crv .crv-mini .val{font-family:var(--font-cond);font-weight:900;font-size:25px;line-height:1;color:var(--iron);margin-top:6px;}
.crv .crv-mini .val small{font-size:13px;color:#9a9a9a;}
.crv .crv-mini .d{font-size:11px;color:#7a7a7a;margin-top:5px;line-height:1.4;}
.crv .crv-mini .track{margin-top:8px;height:4px;border-radius:2px;background:#E8E8E8;overflow:hidden;}
.crv .crv-mini .track i{display:block;height:100%;background:var(--electric);}
.crv .crv-macro{display:flex;gap:1px;background:var(--plate);border:1px solid var(--plate);border-radius:8px;overflow:hidden;margin-top:9px;}
.crv .crv-macro .m{flex:1;background:#fff;padding:10px 6px;text-align:center;}
.crv .crv-macro .m.hl{position:relative;box-shadow:inset 0 3px 0 0 var(--electric);padding-top:13px;}
.crv .crv-macro .k{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.08em;text-transform:uppercase;color:#9a9a9a;}
.crv .crv-macro .n{font-family:var(--font-cond);font-weight:900;font-size:19px;color:var(--iron);margin-top:4px;line-height:1;}
.crv .crv-macro .m.hl .n{color:var(--electric);}

/* 04 — what's next */
.crv .crv-focus{display:block;width:100%;text-align:left;font:inherit;border:none;background:var(--iron);color:#fff;border-radius:9px;padding:16px 16px 15px;}
button.crv-focus{cursor:pointer;transition:background 120ms var(--ease);}
button.crv-focus:active{background:var(--steel);}
.crv .crv-focus .eb{display:flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--electric);margin-bottom:9px;}
.crv .crv-focus .t{font-family:var(--font-cond);font-weight:900;font-size:25px;line-height:1.02;letter-spacing:0.02em;text-transform:uppercase;text-wrap:balance;}
.crv .crv-focus .d{font-size:12.5px;line-height:1.55;color:rgba(255,255,255,0.92);margin-top:9px;}
.crv .crv-focus .tar{display:flex;align-items:flex-start;gap:8px;margin-top:13px;background:var(--electric);border:none;border-radius:6px;padding:8px 11px;font-family:var(--font-mono);font-size:9.5px;line-height:1.45;letter-spacing:0.05em;text-transform:uppercase;color:#fff;}
.crv .crv-focus .tar svg{flex:0 0 auto;margin-top:2px;}
.crv .crv-jobs{display:flex;flex-direction:column;gap:9px;margin-top:10px;}
.crv .crv-job{display:flex;gap:11px;width:100%;text-align:left;font:inherit;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:12px;}
button.crv-job{cursor:pointer;}
button.crv-job:active{background:var(--chalk);}
.crv .crv-job .num{width:23px;height:23px;flex:0 0 auto;border-radius:50%;background:var(--iron);color:#fff;font-family:var(--font-cond);font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center;line-height:1;}
.crv .crv-job .b{flex:1;min-width:0;}
.crv .crv-job .t{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.08;}
.crv .crv-job .d{display:block;font-size:12.3px;line-height:1.5;color:#4a4a4a;margin-top:6px;}
.crv .crv-job .cap{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;margin-top:10px;flex-wrap:wrap;}
.crv .crv-job .tg{display:flex;align-items:flex-start;gap:6px;flex:1 1 100%;font-family:var(--font-mono);font-size:9px;line-height:1.45;letter-spacing:0.05em;text-transform:uppercase;color:#8a8a8a;border:1px solid var(--plate);border-radius:6px;padding:6px 9px;}
.crv .crv-job .tg svg{flex:0 0 auto;margin-top:1px;}
.crv .crv-job .tg:empty{display:none;}
.crv .crv-job .go{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:9px;letter-spacing:0.07em;text-transform:uppercase;color:var(--electric);flex:0 0 auto;}

/* 05 — the coach's long note */
.crv .crv-note p{font-size:12.8px;line-height:1.62;color:#3a3a3a;margin:0 0 10px;}
.crv .crv-note p:first-child{color:var(--iron);font-weight:600;font-size:13.4px;}
.crv .crv-note p:last-child{margin-bottom:0;}
.crv .crv-note p b{color:var(--iron);font-weight:700;}

/* sign-off + countdown */
.crv .crv-tie{display:flex;gap:12px;background:var(--iron);color:#fff;border-radius:9px;padding:15px 16px;margin-top:18px;}
.crv .crv-tie .av{width:34px;height:34px;flex:0 0 auto;border-radius:4px;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-cond);font-weight:900;font-size:13px;}
.crv .crv-tie .t{font-family:var(--font-cond);font-weight:900;font-size:21px;letter-spacing:0.02em;text-transform:uppercase;line-height:1.05;}
.crv .crv-tie .d{font-size:12.6px;line-height:1.55;color:#DCDCDC;margin-top:8px;text-wrap:pretty;}
.crv .crv-tie .sg{font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--silver);margin-top:11px;}
.crv .crv-next{display:flex;align-items:center;gap:11px;background:var(--steel);color:#fff;border-radius:8px;padding:12px 14px;margin-top:10px;}
.crv .crv-next .ic{width:28px;height:28px;flex:0 0 auto;border-radius:4px;background:rgba(255,255,255,0.09);display:flex;align-items:center;justify-content:center;color:#fff;}
.crv .crv-next .l{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--silver);}
.crv .crv-next .t{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;margin-top:3px;}
.crv .crv-next .n{margin-left:auto;text-align:right;flex:0 0 auto;}
.crv .crv-next .n b{font-family:var(--font-cond);font-weight:900;font-size:26px;line-height:1;display:block;}
.crv .crv-next .n span{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:var(--silver);}

/* the cycle switcher above the review — every review the client has had */
.crv-cycles{display:flex;gap:7px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:3px;margin-bottom:14px;scrollbar-width:none;}
.crv-cycles::-webkit-scrollbar{display:none;}
.crv-cyc{flex:0 0 auto;background:#fff;border:1px solid var(--plate);border-radius:20px;padding:7px 13px;cursor:pointer;font:inherit;display:flex;align-items:baseline;gap:7px;}
.crv-cyc .l{font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.04em;text-transform:uppercase;color:var(--iron);line-height:1;}
.crv-cyc .d{font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;color:#9a9a9a;}
.crv-cyc.on{background:var(--iron);border-color:var(--iron);}
.crv-cyc.on .l{color:#fff;}
.crv-cyc.on .d{color:var(--silver);}
.crv-empty{border:1px dashed var(--plate);border-radius:8px;padding:26px 20px;text-align:center;}
.crv-empty .t{font-family:var(--font-cond);font-weight:900;font-size:18px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);}
.crv-empty .d{font-size:12.5px;line-height:1.55;color:#7a7a7a;margin-top:8px;}

/* ── 02 · the Rx'd continuum inside an open ladder row — the same rungs the
   client reads on the log-a-score screen: on the way to Rx'd, then beyond it ── */
.crv .crv-lx .rxc{margin-bottom:11px;}
.crv .crv-lx .rxc .trk{position:relative;display:flex;gap:1px;height:10px;margin-bottom:22px;}
.crv .crv-lx .rxc .trk .b{height:100%;border-radius:2px;}
.crv .crv-lx .rxc .trk .b.start{background:#D6E4F3;}
.crv .crv-lx .rxc .trk .b.work{background:#9DBFE4;}
.crv .crv-lx .rxc .trk .b.close{background:#4C90DC;}
.crv .crv-lx .rxc .trk .b.rxd{background:var(--electric);}
.crv .crv-lx .rxc .trk .b.beyond{background:var(--iron);}
.crv .crv-lx .rxc .mk{position:absolute;top:-5px;bottom:-5px;width:3px;background:var(--iron);transform:translateX(-50%);border-radius:2px;}
.crv .crv-lx .rxc .mk.ghost{width:2px;background:#BDBDBD;}
.crv .crv-lx .rxc .mk .tag{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:0.04em;color:var(--iron);white-space:nowrap;}
.crv .crv-lx .rxc .std{position:absolute;top:-7px;bottom:-7px;left:82%;width:2px;background:var(--iron);opacity:0.5;}
.crv .crv-lx .rxc .zl{display:flex;gap:1px;}
.crv .crv-lx .rxc .zl span{min-width:0;font-family:var(--font-mono);font-size:8px;letter-spacing:0.04em;text-transform:uppercase;color:#a8a8a8;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.crv .crv-lx .rxc .zl span.on{color:var(--iron);font-weight:700;}
.crv .crv-lx .rxc .zl .bey{color:#7a7a7a;}

/* ── 03 · planned vs done — the coaching read lives in the gap ── */
.crv .crv-pvx{border:1px solid var(--plate);border-radius:8px;overflow:hidden;}
.crv .crv-pvx>.hd{display:flex;align-items:baseline;gap:8px;background:var(--chalk);border-bottom:1px solid var(--plate);padding:10px 13px;font-family:var(--font-cond);font-weight:900;font-size:12.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--iron);}
.crv .crv-pvx>.hd em{margin-left:auto;font-style:normal;font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:none;color:#9a9a9a;}
.crv .crv-pvx .pv{padding:12px 13px;border-bottom:1px solid #EDEDED;}
.crv .crv-pvx .pv:last-child{border-bottom:none;}
.crv .crv-pvx .pv[data-flag]{background:#FFFDF7;}
.crv .crv-pvx .pv .l{display:flex;align-items:center;gap:7px;font-family:var(--font-cond);font-weight:900;font-size:13.5px;letter-spacing:0.05em;text-transform:uppercase;color:var(--iron);}
.crv .crv-pvx .pv .g{display:flex;flex-direction:column;gap:6px;margin-top:9px;}
.crv .crv-pvx .pv .b{display:flex;align-items:center;gap:8px;}
.crv .crv-pvx .pv .x{flex:0 0 48px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.07em;text-transform:uppercase;color:#9a9a9a;}
.crv .crv-pvx .pv .t{flex:1;min-width:0;height:8px;border-radius:4px;background:#EDEDED;overflow:hidden;}
.crv .crv-pvx .pv .t i{display:block;height:100%;border-radius:4px;}
.crv .crv-pvx .pv .t.plan i{background:#B7C4D2;}
.crv .crv-pvx .pv .t.done i{background:var(--electric);}
.crv .crv-pvx .pv .v{flex:0 0 auto;font-family:var(--font-mono);font-size:10px;color:var(--iron);font-weight:700;min-width:66px;text-align:right;}
.crv .crv-pvx .pv .one{display:flex;align-items:baseline;gap:8px;margin-top:8px;}
.crv .crv-pvx .pv .one b{font-family:var(--font-cond);font-weight:900;font-size:21px;color:var(--iron);line-height:1;}
.crv .crv-pvx .pv .one span{font-family:var(--font-mono);font-size:9.5px;color:#9a9a9a;}
.crv .crv-pvx .pv .r{font-size:11.8px;line-height:1.5;color:#4a4a4a;margin-top:9px;padding-left:11px;border-left:2px solid var(--electric);}
.crv .crv-pvx .pv[data-flag] .r{border-left-color:#B0730C;}
.crv .crv-days{border:1px solid var(--plate);border-radius:8px;padding:12px 13px;margin-top:9px;}
.crv .crv-days .hd{font-family:var(--font-cond);font-weight:900;font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;color:#8a8a8a;}
.crv .crv-days .ds{display:flex;gap:5px;margin-top:10px;}
.crv .crv-days .ds span{flex:1;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--plate);border-radius:4px;font-family:var(--font-cond);font-weight:900;font-size:13px;color:#B4B4B4;background:#fff;}
.crv .crv-days .ds span.on{background:var(--electric);border-color:var(--electric);color:#fff;}
.crv .crv-rec{border:1px solid var(--plate);border-radius:8px;padding:12px 13px;margin-top:9px;}
.crv .crv-rec .hd{display:flex;align-items:center;gap:7px;font-family:var(--font-cond);font-weight:900;font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;color:#8a8a8a;}
.crv .crv-rec .gs{display:flex;gap:1px;background:var(--plate);border:1px solid var(--plate);border-radius:6px;overflow:hidden;margin-top:10px;}
.crv .crv-rec .g{flex:1;min-width:0;background:#fff;padding:9px 4px;text-align:center;}
.crv .crv-rec .k{display:block;font-family:var(--font-mono);font-size:8px;letter-spacing:0.06em;text-transform:uppercase;color:#9a9a9a;}
.crv .crv-rec .v{display:block;font-family:var(--font-cond);font-weight:900;font-size:18px;color:var(--iron);margin-top:4px;line-height:1;}
.crv .crv-rec .v small{font-size:10px;color:#9a9a9a;}

/* ── what I asked last time ── */
.crv .crv-last{display:flex;flex-direction:column;gap:8px;}
.crv .crv-last .gl{display:flex;gap:11px;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:12px;}
.crv .crv-last .gl.won{border-left:3px solid var(--electric);padding-left:10px;}
.crv .crv-last .ic{width:24px;height:24px;flex:0 0 auto;border-radius:4px;display:flex;align-items:center;justify-content:center;background:#F1F3F6;border:1px solid var(--plate);color:#9a9a9a;}
.crv .crv-last .gl.won .ic{background:var(--electric);border-color:var(--electric);color:#fff;}
.crv .crv-last .b{flex:1;min-width:0;}
.crv .crv-last .t{display:block;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.08;}
.crv .crv-last .d{display:block;font-size:11.8px;line-height:1.5;color:#5a5a5a;margin-top:5px;}
.crv .crv-last .st{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.09em;text-transform:uppercase;color:#9a9a9a;margin-top:8px;}
.crv .crv-last .gl.won .st{color:var(--electric);font-weight:700;}

/* ═══════════════════════════════════════════════════════════════════════════
   THE COACH REVIEW (window.IBCoachReviewV2) — the coach side of the cycle
   review, in the same chapter shape the client reads. Reuses the .crv-* blocks
   for every shared visual; .cr2-* is only what the coach has and the client
   doesn't: the AI reads, the tick controls, the job composer, publish.
   =========================================================================== */
.crv .cr2-hero{background:var(--iron);color:#fff;border-radius:9px;padding:17px 16px 15px;}
.crv .cr2-hero .eb{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--silver);}
.crv .cr2-hero .nm{font-family:var(--font-cond);font-weight:900;font-size:30px;line-height:0.95;letter-spacing:0.02em;text-transform:uppercase;margin-top:9px;}
.crv .cr2-hero .sub{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.04em;text-transform:uppercase;color:var(--silver);margin-top:7px;}
.crv .cr2-hero .pr{display:flex;align-items:center;gap:10px;margin-top:15px;}
.crv .cr2-hero .pr .bar{flex:1;min-width:0;height:5px;border-radius:3px;background:rgba(255,255,255,0.18);overflow:hidden;}
.crv .cr2-hero .pr .bar i{display:block;height:100%;background:var(--electric);border-radius:3px;transition:width 220ms var(--ease);}
.crv .cr2-hero .pr span{flex:0 0 auto;font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver);}
.crv .cr2-hero .hk{margin-top:15px;padding-top:13px;border-top:1px solid rgba(255,255,255,0.15);}
.crv .cr2-hero .hk .l{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--electric);}
.crv .cr2-hero .hk b{display:block;font-family:var(--font-cond);font-weight:900;font-size:19px;line-height:1.05;letter-spacing:0.02em;text-transform:uppercase;margin-top:6px;}
.crv .cr2-flag{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:8px;letter-spacing:0.09em;text-transform:uppercase;border:1px solid rgba(255,255,255,0.28);border-radius:20px;padding:2px 7px;color:var(--silver);}
.crv .cr2-flag.on{background:var(--electric);border-color:var(--electric);color:#fff;}
.crv .crv-ch.dark .cr2-flag{border-color:rgba(255,255,255,0.5);color:#fff;}
.crv .crv-ch.dark .cr2-flag.on{background:#fff;color:var(--electric);border-color:#fff;}

/* the AI read */
.crv .cr2-read{border:1px solid var(--plate);border-left:3px solid var(--electric);border-radius:6px;background:var(--chalk);padding:12px 13px;margin-top:12px;}
.crv .cr2-read .hd{display:flex;align-items:center;gap:8px;margin-bottom:9px;}
.crv .cr2-read .ic{width:22px;height:22px;flex:0 0 auto;border-radius:4px;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;}
.crv .cr2-read .eb{flex:1;min-width:0;font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:#8a8a8a;}
.crv .cr2-read .a{flex:0 0 auto;width:24px;height:24px;border:1px solid var(--plate);background:#fff;border-radius:5px;color:#8a8a8a;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.crv .cr2-read .a:hover{color:var(--electric);border-color:var(--electric);}
.crv .cr2-read .tx{font-size:12.6px;line-height:1.6;color:var(--iron);}
.crv .cr2-read .gen{display:flex;align-items:center;gap:8px;width:100%;justify-content:center;background:#fff;border:1px dashed var(--plate);border-radius:5px;padding:11px;font-family:var(--font-body);font-weight:700;font-size:11.5px;letter-spacing:0.07em;text-transform:uppercase;color:var(--electric);cursor:pointer;}
.crv .cr2-read .gen:hover{border-color:var(--electric);}
.crv .cr2-dots{display:inline-flex;gap:4px;align-items:center;height:19px;}
.crv .cr2-dots i{width:5px;height:5px;border-radius:50%;background:var(--electric);opacity:0.35;animation:cr2b 900ms infinite;}
.crv .cr2-dots i:nth-child(2){animation-delay:150ms;}
.crv .cr2-dots i:nth-child(3){animation-delay:300ms;}
@keyframes cr2b{0%,100%{opacity:0.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}
.crv .cr2-inp{width:100%;box-sizing:border-box;font-family:var(--font-body);font-size:12.6px;line-height:1.55;color:var(--iron);background:#fff;border:1px solid var(--plate);border-radius:5px;padding:9px 10px;resize:vertical;}
.crv .cr2-inp:focus{outline:none;border-color:var(--electric);}
.crv .cr2-inp.big{font-size:12.8px;line-height:1.6;}
.crv .cr2-inp+.cr2-inp{margin-top:6px;}
.crv .cr2-note{font-size:12px;line-height:1.55;color:#4a4a4a;background:var(--chalk);border:1px solid var(--plate);border-radius:6px;padding:10px 12px;margin-top:9px;}
.crv .cr2-note b{color:var(--iron);}
.crv .cr2-hint{font-size:11.8px;line-height:1.5;color:#7a7a7a;margin-bottom:10px;}

/* the board, coach-compact */
.crv .cr2-board{border:1px solid var(--plate);border-radius:8px;overflow:hidden;}
.crv .cr2-board .r{display:flex;align-items:center;gap:9px;padding:10px 12px;border-bottom:1px solid #EDEDED;}
.crv .cr2-board .r:last-child{border-bottom:none;}
.crv .cr2-board .mk{flex:0 0 auto;min-width:32px;height:22px;padding:0 5px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-family:var(--font-mono);font-size:9.5px;font-weight:700;background:#EBF2FA;color:#2C6DAE;border:1px solid #CFDFF1;}
.crv .cr2-board .r.won .mk{background:var(--electric);border-color:var(--electric);color:#fff;}
.crv .cr2-board .nm{flex:1;min-width:0;font-family:var(--font-cond);font-weight:900;font-size:14.5px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.crv .cr2-board .vv{flex:0 0 auto;font-family:var(--font-mono);font-size:10px;color:#8a8a8a;}
.crv .cr2-board .vv b{color:var(--iron);}
.crv .cr2-board .st{flex:0 0 auto;width:64px;text-align:right;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.06em;text-transform:uppercase;color:#9a9a9a;}
.crv .cr2-board .r.won .st{color:var(--electric);font-weight:700;}

/* ranked diagnosis + the client's own words */
.crv .cr2-diag{border:1px solid var(--plate);border-radius:8px;overflow:hidden;margin-top:9px;}
.crv .cr2-diag .hd{display:flex;align-items:baseline;gap:8px;background:var(--chalk);border-bottom:1px solid var(--plate);padding:10px 13px;font-family:var(--font-cond);font-weight:900;font-size:12.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--iron);}
.crv .cr2-diag .hd em{margin-left:auto;font-style:normal;font-family:var(--font-mono);font-size:8px;letter-spacing:0.05em;text-transform:none;color:#9a9a9a;}
.crv .cr2-diag .r{display:flex;gap:10px;align-items:baseline;padding:9px 13px;border-bottom:1px solid #EDEDED;font-size:12px;line-height:1.45;color:#5a5a5a;}
.crv .cr2-diag .r:last-child{border-bottom:none;}
.crv .cr2-diag .r.pick{background:#F7FAFE;color:var(--iron);}
.crv .cr2-diag .rk{flex:0 0 26px;font-family:var(--font-mono);font-size:9.5px;font-weight:700;color:#B4B4B4;}
.crv .cr2-diag .r.pick .rk{color:var(--electric);}
.crv .cr2-quotes{display:flex;flex-direction:column;gap:8px;margin-top:9px;}
.crv .cr2-quotes .q{border:1px solid var(--plate);border-left:3px solid #B7C4D2;border-radius:6px;padding:10px 12px;}
.crv .cr2-quotes .l{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.09em;text-transform:uppercase;color:#9a9a9a;}
.crv .cr2-quotes p{margin:6px 0 0;font-size:12.6px;line-height:1.55;color:var(--iron);font-style:italic;}

/* the tick on a prior goal — the coach's only input in chapter 04 */
.crv .cr2-tick{width:26px;height:26px;flex:0 0 auto;border:1px solid var(--plate);background:#fff;border-radius:5px;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.crv .cr2-tick.on{background:var(--electric);border-color:var(--electric);}
.crv .cr2-tick:hover{border-color:var(--electric);}

/* the three jobs */
.crv .cr2-jobs .j{border:1px solid var(--plate);border-radius:7px;padding:11px 12px;margin-bottom:9px;background:#fff;}
.crv .cr2-jobs .j.one{border-top:3px solid var(--electric);background:#FBFCFE;}
.crv .cr2-jobs .j:last-child{margin-bottom:0;}
.crv .cr2-jobs .jh{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.crv .cr2-jobs .jh .l{font-family:var(--font-body);font-weight:700;font-size:9.5px;letter-spacing:0.1em;text-transform:uppercase;color:#9a9a9a;}
.crv .cr2-jobs .j.one .jh .l{color:var(--electric);}
.crv .cr2-jobs .jh .x{width:24px;height:24px;border:1px solid var(--plate);background:#fff;border-radius:5px;color:#9a9a9a;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;}
.crv .cr2-jobs .jh .x:hover{color:var(--rust);border-color:var(--rust);}

/* publish */
.crv .cr2-pub{background:var(--iron);color:#fff;border-radius:9px;padding:16px;margin-top:20px;}
.crv .cr2-pub .l{font-family:var(--font-cond);font-weight:900;font-size:21px;letter-spacing:0.02em;text-transform:uppercase;line-height:1.05;}
.crv .cr2-pub .d{font-size:12.4px;line-height:1.55;color:#D2D2D2;margin-top:8px;}
.crv .cr2-pub .go,.crv .cr2-pub .gh{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:12px;border:none;border-radius:5px;padding:14px;font-family:var(--font-body);font-weight:700;font-size:12.5px;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;transition:background 120ms var(--ease);}
.crv .cr2-pub .go{background:var(--electric);color:#fff;}
.crv .cr2-pub .go:hover{background:var(--electric-hover);}
.crv .cr2-pub .go:disabled{background:var(--gunmetal);color:#7a7a7a;cursor:not-allowed;}
.crv .cr2-pub .gh{background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.3);}
.crv .cr2-pub .gh:hover{background:rgba(255,255,255,0.08);}
.crv .cr2-pub .ok{display:flex;align-items:center;gap:10px;font-size:12.8px;line-height:1.5;color:#fff;}
.crv .cr2-pub .ok svg{flex:0 0 auto;color:var(--electric);}
.crv .cr2-scaffold{font-size:10.5px;line-height:1.5;color:#a06a1a;background:#FBF4E6;border:1px dashed #E3C98F;border-radius:6px;padding:10px 12px;margin-top:12px;}
.crv .cr2-scaffold b{color:#8A5A10;}

/* ── behaviour goals: the measured reading, and the badge that says it's automatic ── */
.crv .crv-auto,.crv .cr2-auto{display:flex;align-items:flex-start;gap:7px;font-family:var(--font-mono);font-size:9.5px;line-height:1.5;letter-spacing:0.03em;color:#5E7C9C;background:#F2F7FD;border:1px solid #D5E4F5;border-radius:6px;padding:8px 10px;margin-bottom:10px;}
.crv .crv-auto svg,.crv .cr2-auto svg{flex:0 0 auto;color:var(--electric);margin-top:1px;}
.crv .crv-mm,.crv .cr2-mm{display:flex;align-items:center;gap:8px;margin-top:7px;}
.crv .crv-mm .k,.crv .cr2-mm .k{flex:0 1 auto;font-family:var(--font-mono);font-size:8px;line-height:1.3;letter-spacing:0.06em;text-transform:uppercase;color:#9a9a9a;}
.crv .crv-mm .bar,.crv .cr2-mm .bar{flex:1;min-width:24px;height:5px;border-radius:3px;background:#E6E6E6;overflow:hidden;}
.crv .crv-mm .bar i,.crv .cr2-mm .bar i{display:block;height:100%;background:#9DBFE4;border-radius:3px;}
.crv .crv-last .gl.won .crv-mm .bar i{background:var(--electric);}
.crv .crv-mm .v,.crv .cr2-mm .v{flex:0 0 auto;font-family:var(--font-mono);font-size:9.5px;font-weight:700;color:var(--iron);}
.crv .cr2-jobs .cr2-mm{margin:10px 0 0;}
.crv .cr2-jobs .cr2-mm .bar i{background:var(--electric);}
/* coach: keep-or-scrap job cards */
.crv .cr2-jobs .jt{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.crv .cr2-jobs .jd{font-size:12.3px;line-height:1.5;color:#4a4a4a;margin-top:6px;}
.crv .cr2-jobs .jw{display:flex;align-items:flex-start;gap:6px;font-family:var(--font-mono);font-size:9px;line-height:1.45;letter-spacing:0.05em;text-transform:uppercase;color:#8a8a8a;border-top:1px solid var(--plate);margin-top:11px;padding-top:9px;}
.crv .cr2-jobs .jw svg{flex:0 0 auto;margin-top:1px;color:var(--electric);}
.crv .cr2-jobs .jw b{color:var(--iron);}
.crv .cr2-jobs .jh .sx{display:flex;align-items:center;gap:5px;border:1px solid var(--plate);background:#fff;border-radius:20px;padding:3px 9px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.08em;text-transform:uppercase;color:#9a9a9a;cursor:pointer;flex:0 0 auto;}
.crv .cr2-jobs .jh .sx:hover{color:var(--rust);border-color:var(--rust);}
.crv .cr2-bench{border:1px dashed var(--plate);border-radius:8px;padding:11px 12px;margin-top:11px;}
.crv .cr2-bench .bh{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.09em;text-transform:uppercase;color:#9a9a9a;margin-bottom:9px;}
.crv .cr2-bench .bi{display:flex;align-items:center;gap:9px;width:100%;text-align:left;font:inherit;background:#fff;border:1px solid var(--plate);border-radius:6px;padding:9px 11px;margin-bottom:7px;cursor:pointer;}
.crv .cr2-bench .bi:last-child{margin-bottom:0;}
.crv .cr2-bench .bi:hover{border-color:var(--electric);}
.crv .cr2-bench .bi>.b{flex:1;min-width:0;}
.crv .cr2-bench .bi .n{display:block;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.1;}
.crv .cr2-bench .bi .r{display:block;font-family:var(--font-mono);font-size:9.5px;color:#9a9a9a;margin-top:4px;}
.crv .cr2-bench .bi.flat{cursor:default;background:var(--chalk);}
.crv .cr2-bench .bi.flat:hover{border-color:var(--plate);}
.crv .cr2-bench.queue .bh{color:#a8a8a8;}
.crv .cr2-bench .bi .a{display:flex;align-items:center;gap:4px;flex:0 0 auto;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--electric);}

/* ── the coach's note: handwriting on the report card. Blue biro on white — the
   one place in the app where type leaves the industrial stack, because a note in
   the coach's own hand is the whole point of it. ── */
.crv .cr2-pen{position:relative;background:#fff;border:1px solid var(--plate);border-radius:6px;padding:20px 13px 11px;margin-top:13px;}
.crv .cr2-pen .tab{position:absolute;top:-1px;left:11px;display:inline-flex;align-items:center;gap:5px;background:var(--iron);color:#fff;border-radius:0 0 5px 5px;padding:3px 9px 4px;font-family:var(--font-mono);font-size:8px;letter-spacing:0.09em;text-transform:uppercase;}
.crv .cr2-pen .ink{display:block;width:100%;box-sizing:border-box;border:none;background:transparent;resize:vertical;font-family:"Caveat","Bradley Hand","Segoe Print",cursive;font-weight:600;font-size:20px;line-height:1.5;color:#1B47A0;padding:0;}
.crv .cr2-pen .ink:focus{outline:none;}
.crv .cr2-pen .ink::placeholder{color:#9FB4D6;font-weight:500;}
.crv .cr2-pen-add{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:13px;background:#fff;border:1px dashed var(--plate);border-radius:6px;padding:11px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.07em;text-transform:uppercase;color:#9a9a9a;cursor:pointer;}
.crv .cr2-pen-add:hover{border-color:var(--electric);color:var(--electric);}
/* the same note, read-only, on the client's card */
.crv .crv-pen{position:relative;background:#fff;border:1px solid var(--plate);border-radius:6px;padding:21px 14px 14px;margin-top:12px;}
.crv .crv-pen .tab{position:absolute;top:-1px;left:12px;display:inline-flex;align-items:center;gap:5px;background:var(--iron);color:#fff;border-radius:0 0 5px 5px;padding:3px 9px 4px;font-family:var(--font-mono);font-size:8px;letter-spacing:0.09em;text-transform:uppercase;}
.crv .crv-pen p{margin:0;font-family:"Caveat","Bradley Hand","Segoe Print",cursive;font-weight:600;font-size:20px;line-height:1.5;color:#1B47A0;}

/* ── the summary: the one generated thing in the review ── */
.crv .cr2-sum-h{display:flex;gap:11px;align-items:flex-start;background:var(--iron);color:#fff;border-radius:8px;padding:13px;margin-bottom:11px;}
.crv .cr2-sum-h .ic{width:26px;height:26px;flex:0 0 auto;border-radius:5px;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;}
.crv .cr2-sum-h .b{flex:1;min-width:0;}
.crv .cr2-sum-h .l{display:block;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;line-height:1;}
.crv .cr2-sum-h .d{display:block;font-size:11.8px;line-height:1.5;color:#D0D0D0;margin-top:6px;}
.crv .cr2-sum-h .a{flex:0 0 auto;width:26px;height:26px;border:1px solid rgba(255,255,255,0.28);background:transparent;border-radius:5px;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.crv .cr2-sum-h .a:hover{background:rgba(255,255,255,0.1);}
.crv .cr2-sum-go{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;background:var(--electric);color:#fff;border:none;border-radius:5px;padding:14px;font-family:var(--font-body);font-weight:700;font-size:12.5px;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;transition:background 120ms var(--ease);}
.crv .cr2-sum-go:hover{background:var(--electric-hover);}
.crv .cr2-sum-busy{display:flex;align-items:center;gap:10px;border:1px dashed var(--plate);border-radius:6px;padding:16px;font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:#9a9a9a;}

.crv .crv-hero .ttl,.crv .cr2-hero .ttl{display:inline-block;font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:#fff;border:1px solid rgba(255,255,255,0.3);border-radius:3px;padding:3px 8px 2px;margin-bottom:11px;}

.crv .cr2-hero+.crv-chap{margin-top:20px;}

.crv .cr2-hero .hk .x{display:block;font-family:var(--font-mono);font-size:8.5px;line-height:1.5;letter-spacing:0.04em;color:#7A7A7A;margin-top:8px;text-transform:none;}

/* ── PAGED (props.paged): the chapters ARE the app's bottom bar, one chapter per
   screen. Page one is the glance — the hero plus the dashboard tiles; every other
   page is headed by its own chapter band, and the stepper walks the card without
   going near the bar. ── */
.crv .crv-ch.stat{cursor:default;}
.crv .cr2-step{display:flex;align-items:center;gap:10px;margin-top:18px;}
.crv .cr2-step>span{flex:1;}
.crv .cr2-step button{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--plate);border-radius:5px;padding:11px 13px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.07em;text-transform:uppercase;color:#6a6a6a;cursor:pointer;transition:border-color 120ms var(--ease),color 120ms var(--ease);}
.crv .cr2-step button:hover{border-color:var(--electric);color:var(--electric);}
.crv .cr2-step button b{color:var(--iron);margin-right:6px;}
.crv .cr2-step button:hover b{color:var(--electric);}
.crv .cr2-step .n{margin-left:auto;}

/* the glance page: stat tiles + the band line + the coach-facing read */
.crv .cr2-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.crv .cr2-tile{border:1px solid var(--plate);border-radius:8px;padding:11px 10px;background:#fff;min-width:0;}
.crv .cr2-tile .k{font-family:var(--font-mono);font-size:8px;letter-spacing:0.08em;text-transform:uppercase;color:#9a9a9a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.crv .cr2-tile .v{font-family:var(--font-cond);font-weight:900;font-size:24px;line-height:1;color:var(--iron);margin-top:8px;}
.crv .cr2-tile .v small{font-size:11.5px;color:#9a9a9a;}
.crv .cr2-tile .d{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.02em;margin-top:6px;line-height:1.35;}
.crv .cr2-tile .d.good{color:var(--electric);}
.crv .cr2-tile .d.bad{color:#B0730C;}
.crv .cr2-tile .d.flat{color:#9a9a9a;}
.crv .cr2-band{display:flex;align-items:center;gap:10px;border:1px solid var(--plate);border-radius:8px;padding:10px 12px;margin-top:9px;}
.crv .cr2-band .z{flex:0 0 auto;font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:0.09em;text-transform:uppercase;color:#fff;background:var(--gunmetal);border-radius:20px;padding:4px 11px 3px;}
.crv .cr2-band .z.z-sickness{background:var(--rust);}
.crv .cr2-band .z.z-wellness{background:var(--forge);color:var(--iron);}
.crv .cr2-band .z.z-fitness{background:var(--turf);color:var(--iron);}
.crv .cr2-band .z.z-athletic{background:var(--electric);}
.crv .cr2-band .x{font-family:var(--font-mono);font-size:10px;letter-spacing:0.03em;color:#8a8a8a;}
.crv .cr2-band .x b{color:var(--iron);}
.crv .cr2-read{margin-top:11px;}
/* colour carries the verdict: blue holds, amber slips, red is the one to fix */
.crv .crv-pvx .pv[data-flag] .t.done i{background:var(--forge);}
.crv .crv-pvx .pv[data-tone=short] .t.done i{background:var(--forge);}
.crv .crv-pvx .pv[data-tone=short]{background:#FFFDF7;}
.crv .crv-rec .g.flag{background:#FFFDF7;}
.crv .crv-rec .g.flag .v{color:#B0730C;}
.crv .crv-rec .v.sm{font-family:var(--font-body);font-weight:700;font-size:11.5px;letter-spacing:0.01em;line-height:1.3;}
.crv .cr2-sum-re{display:flex;align-items:flex-start;gap:10px;margin-top:10px;}
.crv .cr2-sum-re button{display:flex;align-items:center;gap:6px;flex:0 0 auto;background:#fff;border:1px solid var(--plate);border-radius:5px;padding:7px 10px;font-family:var(--font-mono);font-size:9px;letter-spacing:0.07em;text-transform:uppercase;color:#6a6a6a;cursor:pointer;}
.crv .cr2-sum-re button:hover{border-color:var(--electric);color:var(--electric);}
.crv .cr2-sum-re span{font-size:11.5px;line-height:1.45;color:#7a7a7a;}

/* the record filed with the lever it belongs to — how the food was measured sits
   under nutrition, skill work + Zone 2 under training */
.crv .cr2-sub{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.crv .cr2-sub .s{display:inline-flex;align-items:baseline;gap:6px;border:1px solid var(--plate);border-radius:20px;padding:4px 10px;font-family:var(--font-body);font-weight:700;font-size:10.5px;color:var(--iron);}
.crv .cr2-sub .s em{font-style:normal;font-family:var(--font-mono);font-size:8px;letter-spacing:0.08em;text-transform:uppercase;color:#9a9a9a;font-weight:400;}
.crv .cr2-sub .s.flag{border-color:#E3C98F;background:#FFFDF7;color:#8A5A10;}
.crv .cr2-sub .s.flag em{color:#B0730C;}
/* the chapter band IS the page header: nothing between it and the card underneath,
   and room above it so it reads as a heading rather than a stripe */
.crv .crv-cbody{padding-top:6px;}
.crv.paged .crv-chap{margin-top:0;}
.crv.paged .crv-chap.on{margin-bottom:14px;}
.crv.paged .cr2-hero+.crv-chap,.crv.paged .cr2-mini+.crv-chap{margin-top:0;}

/* planned-vs-done colour code: red = the one to fix, amber = watch it, blue = holding */
.crv .crv-pvx .pv[data-tone=bad] .t.done i{background:var(--rust);}
.crv .crv-pvx .pv[data-tone=watch] .t.done i{background:var(--forge);}
.crv .crv-pvx .pv[data-tone=good] .t.done i{background:var(--electric);}
.crv .crv-pvx .pv[data-tone=bad] .t.plan i{background:#D9B4B4;}
.crv .crv-pvx .pv[data-tone=watch] .t.plan i{background:#DCCB9C;}
.crv .crv-pvx .pv[data-tone=bad]{background:#FDF7F7;}
.crv .crv-pvx .pv[data-tone=watch]{background:#FFFDF7;}
.crv .crv-pvx .pv[data-tone=bad] .r{border-left-color:var(--rust);}
.crv .crv-pvx .pv[data-tone=bad] .v,.crv .crv-pvx .pv[data-tone=bad] .one b{color:#8E3232;}

/* the client's card opens on a FORMAL report header — which check-in, and when */
.crv .crv-hero .hd{font-family:var(--font-cond);font-weight:900;font-size:34px;line-height:0.95;letter-spacing:0.03em;text-transform:uppercase;color:#fff;}
.crv .crv-hero .sub{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.09em;text-transform:uppercase;color:var(--silver);margin-top:9px;}
.crv .crv-hero .sub+.q{margin-top:15px;}

/* ALL REVIEWS — the latest is the screen; the record sits behind one button */
.crv-all{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:14px 15px;margin-top:20px;cursor:pointer;font:inherit;transition:border-color 120ms var(--ease);}
.crv-all:hover{border-color:var(--electric);}
.crv-all>svg:first-child{flex:0 0 auto;color:var(--electric);}
.crv-all>span{flex:1;min-width:0;}
.crv-all b{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.05em;text-transform:uppercase;color:var(--iron);line-height:1;}
.crv-all span span,.crv-all>span{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.04em;color:#9a9a9a;}
.crv-all>span b+*{margin-top:5px;}
.crv-all>svg:last-child{flex:0 0 auto;color:#c4c4c4;}
.crv-back{display:flex;align-items:center;gap:6px;background:none;border:none;padding:0 0 14px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--electric);cursor:pointer;}
.crv-arch{border:1px solid var(--plate);border-radius:8px;overflow:hidden;}
.crv-arch>.hd{display:flex;align-items:baseline;gap:8px;background:var(--iron);color:#fff;padding:12px 14px;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.09em;text-transform:uppercase;}
.crv-arch>.hd em{margin-left:auto;font-style:normal;font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:none;color:var(--silver);}
.crv-arch .ar{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#fff;border:none;border-bottom:1px solid #EDEDED;padding:13px 14px;cursor:pointer;font:inherit;}
.crv-arch .ar:last-child{border-bottom:none;}
.crv-arch .ar:hover{background:var(--chalk);}
.crv-arch .ar.on{background:#F7FAFE;box-shadow:inset 3px 0 0 var(--electric);}
.crv-arch .ar>.b{flex:1;min-width:0;}
.crv-arch .ar .l{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1;}
.crv-arch .ar .d{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.03em;color:#9a9a9a;margin-top:5px;}
.crv-arch .ar>.r{flex:0 0 auto;text-align:right;}
.crv-arch .ar .bf{display:block;font-family:var(--font-cond);font-weight:900;font-size:17px;color:var(--iron);line-height:1;}
.crv-arch .ar .dl{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:0.04em;color:#B0730C;margin-top:5px;}
.crv-arch .ar .dl.good{color:var(--electric);}
.crv-arch .ar>svg{flex:0 0 auto;color:#c4c4c4;}

/* ===== ONBOARDING — GUIDED MODE (O.wizard · road-onboarding) =====
   No bottom tabs: the flow is a sequence. Intro brief → one video at a time with
   a sticky back·progress·primary bar → complete-pop → completion takeover. */
.m-body.obw{display:flex;flex-direction:column;min-height:100%;}
.m-body.obw>*{flex:0 0 auto;}
.obw-hero{padding:6px 2px 2px;}
.obw-eb{font-weight:800;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--electric);margin-bottom:9px;}
.obw-eb::before{content:"";display:inline-block;width:20px;height:2px;background:var(--electric);vertical-align:middle;margin-right:9px;transform:translateY(-3px);}
.obw-h{font-family:var(--font-cond);font-weight:900;font-size:34px;line-height:0.94;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);margin:0 0 10px;}
.obw-h .bl{color:var(--electric);}
.obw-sub{font-size:12.5px;line-height:1.55;color:#555;margin:0;text-wrap:pretty;}
.obw-sub strong{color:var(--iron);font-weight:600;}
.obw-prog{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;align-items:center;background:var(--iron);border-radius:10px;padding:14px 16px 13px;margin-top:15px;position:relative;overflow:hidden;}
.obw-prog::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--electric);}
.obw-ring{position:relative;width:56px;height:56px;flex:0 0 auto;}
.obw-ring svg{width:100%;height:100%;display:block;}
.obw-ring-c{position:absolute;inset:0;display:flex;align-items:baseline;justify-content:center;padding-top:20px;font-family:var(--font-mono,ui-monospace);font-size:9.5px;color:var(--silver);}
.obw-ring-c b{color:#fff;font-family:var(--font-cond);font-weight:900;font-size:17px;line-height:1;margin-right:1px;}
.obw-prog-b{display:flex;flex-direction:column;gap:4px;min-width:0;}
.obw-prog-eb{font-weight:800;font-size:8.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--electric);}
.obw-prog-t{font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:0.03em;text-transform:uppercase;color:#fff;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.obw-prog-m{font-family:var(--font-mono,ui-monospace);font-size:10px;color:var(--silver);}
.obw-prog .obw-segs{grid-column:1/-1;margin-top:7px;}
.obw-prog .obw-segs i{background:rgba(255,255,255,0.16);}
.obw-prog .obw-segs i.done{background:var(--electric);}
.obw-prog .obw-segs i.cur{background:transparent;box-shadow:inset 0 0 0 1.5px var(--electric);}
.obw-segs{flex:1 1 auto;display:flex;gap:4px;min-width:0;}
.obw-segs i{flex:1 1 auto;height:5px;border-radius:3px;background:#E3E6EA;}
.obw-segs i.done{background:var(--electric);}
.obw-segs i.cur{background:#fff;box-shadow:inset 0 0 0 1.5px var(--electric);}
.obw-steps{display:flex;flex-direction:column;gap:8px;margin-top:15px;}
.obw-step{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:11px 13px;cursor:pointer;position:relative;overflow:hidden;font-family:inherit;transition:border-color 120ms;}
.obw-step::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--electric);transform:scaleY(0);transition:transform 200ms var(--ease,cubic-bezier(0.2,0.7,0.2,1));}
.obw-step.cur{border-color:rgba(7,93,198,0.5);}
.obw-step.cur::before{transform:scaleY(1);}
.obw-step:disabled{cursor:default;opacity:0.55;}
.obw-step:not(:disabled):hover{border-color:var(--electric);}
.obw-step .n{flex:0 0 auto;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--plate);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono,ui-monospace);font-size:11px;font-weight:700;color:#8a93a0;}
.obw-step.cur .n{border-color:var(--electric);color:var(--electric);}
.obw-step.done .n{background:var(--electric);border-color:var(--electric);}
.obw-step.done .n svg{width:14px;height:14px;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.obw-step .b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px;}
.obw-step .t{font-weight:800;font-size:13px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);line-height:1.15;}
.obw-step.done .t{color:#7d8792;}
.obw-step .d{font-family:var(--font-mono,ui-monospace);font-size:9.5px;color:#9aa3ad;}
.obw-step .go{flex:0 0 auto;color:var(--electric);display:flex;}
.obw-bar{position:sticky;bottom:0;z-index:8;display:flex;align-items:stretch;gap:9px;margin:18px -18px 0;margin-top:auto;padding:11px 14px calc(11px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--plate);}
.m-body.obw .ob-gate{margin-bottom:18px;}
.obw-back{flex:0 0 auto;width:47px;border:1px solid var(--plate);border-radius:7px;background:#fff;color:var(--iron);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color 120ms,color 120ms;}
.obw-back:hover{border-color:var(--electric);color:var(--electric);}
.obw-back:active{transform:translateY(1px);}
.obw-mid{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0 2px;}
.obw-mid-l{font-family:var(--font-mono,ui-monospace);font-size:9.5px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:#8a93a0;}
.obw-cta{flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:8px;min-width:47%;padding:12px 16px;border:none;border-radius:7px;background:var(--electric);color:#fff;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.05em;text-transform:uppercase;cursor:pointer;transition:background 120ms,transform 80ms;}
.obw-cta:hover{background:var(--electric-h,#1C77E0);}
.obw-cta:active{background:#044399;transform:translateY(1px);}
.obw-cta .bx{display:flex;}
.obw-cta .bx svg,.obw-cta svg{width:16px;height:16px;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.obw-cta.full{flex:1 1 auto;min-width:0;justify-content:space-between;text-align:left;padding:13px 17px;}
.obw-cta-b{display:flex;flex-direction:column;gap:3px;min-width:0;}
.obw-cta-b .t{font-size:16px;line-height:1;}
.obw-cta-b .d{font-family:var(--font-mono,ui-monospace);font-weight:500;font-size:9px;letter-spacing:0.04em;text-transform:none;color:rgba(255,255,255,0.75);}
.obw-pop{position:absolute;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:26px 22px;background:rgba(5,5,5,0.78);}
.obw-pop-card{width:100%;max-width:320px;background:#fff;border-radius:10px;border-top:4px solid var(--electric);padding:26px 20px 20px;text-align:center;animation:obwRise 220ms var(--ease,cubic-bezier(0.2,0.7,0.2,1));}
@keyframes obwRise{from{transform:translateY(12px);opacity:0;}to{transform:none;opacity:1;}}
@media (prefers-reduced-motion:reduce){.obw-pop-card{animation:none;}}
.obw-pop-ck{width:54px;height:54px;border-radius:50%;background:var(--electric);display:flex;align-items:center;justify-content:center;margin:0 auto 13px;}
.obw-pop-ck svg{width:26px;height:26px;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.obw-pop-eb{font-family:var(--font-mono,ui-monospace);font-size:9.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--electric);margin-bottom:6px;}
.obw-pop-h{font-family:var(--font-cond);font-weight:900;font-size:24px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;}
.obw-pop-d{font-size:12px;line-height:1.5;color:#555;margin:8px 0 0;}
.obw-pop-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:16px;padding:13px 16px;border:none;border-radius:7px;background:var(--electric);color:#fff;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.05em;text-transform:uppercase;cursor:pointer;transition:background 120ms,transform 80ms;}
.obw-pop-btn:hover{background:var(--electric-h,#1C77E0);}
.obw-pop-btn:active{background:#044399;transform:translateY(1px);}
.obw-pop-btn svg{width:16px;height:16px;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.obw-pop-skip{display:block;width:100%;margin-top:9px;padding:8px;border:none;background:none;font-family:inherit;font-weight:600;font-size:11px;color:#8a93a0;cursor:pointer;}
.obw-pop-skip:hover{color:var(--iron);text-decoration:underline;}
.obw-rewatch{display:block;width:100%;margin-top:14px;padding:10px;border:none;background:none;font-family:inherit;font-weight:600;font-size:11.5px;color:#8a93a0;cursor:pointer;}
.obw-rewatch:hover{color:var(--electric);text-decoration:underline;}
.m-body.obw .ob-cleared{margin-top:4px;}

/* ── guided mode: completion takeover (compact) + notifications job ── */
.obw-done{text-align:center;padding:16px 6px 4px;}
.obw-done .obw-pop-ck{margin-bottom:14px;}
.obw-done-eb{font-family:var(--font-mono,ui-monospace);font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--electric);margin-bottom:7px;}
.obw-done-h{font-family:var(--font-cond);font-weight:900;font-size:36px;line-height:0.94;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);margin:0 0 9px;}
.obw-done-d{font-size:12.5px;line-height:1.55;color:#555;margin:0 auto;max-width:300px;text-wrap:pretty;}
.obw-notifjob{position:relative;display:flex;gap:13px;align-items:flex-start;background:var(--iron);border-radius:10px;padding:17px 16px;margin:20px 0 0;border:1px solid rgba(7,93,198,0.55);box-shadow:0 0 0 0 rgba(7,93,198,0.45);animation:obwGlow 2s ease-out infinite;}
@keyframes obwGlow{0%{box-shadow:0 0 0 0 rgba(7,93,198,0.45);}70%{box-shadow:0 0 0 11px rgba(7,93,198,0);}100%{box-shadow:0 0 0 0 rgba(7,93,198,0);}}
@media (prefers-reduced-motion:reduce){.obw-notifjob{animation:none;}}
.obw-nj-arrow{position:absolute;top:-58px;right:8px;width:40px;height:56px;color:var(--electric);animation:obwNudge 1.6s var(--ease,cubic-bezier(0.2,0.7,0.2,1)) infinite;}
.obw-nj-arrow svg{width:100%;height:100%;}
@keyframes obwNudge{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}
@media (prefers-reduced-motion:reduce){.obw-nj-arrow{animation:none;}}
.obw-nj-ic{flex:0 0 auto;width:44px;height:44px;border-radius:9px;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;}
.obw-nj-b{flex:1 1 auto;min-width:0;text-align:left;}
.obw-nj-t{display:block;font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:0.03em;text-transform:uppercase;color:#fff;line-height:1.05;}
.obw-nj-d{display:block;font-size:11.5px;line-height:1.5;color:var(--silver-2,#C8C8C8);margin-top:6px;}
.obw-nj-d b{color:#fff;font-weight:600;}
.m-body.obw .obw-notifjob{margin-top:44px;}
.obw-open{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:14px;padding:16px 18px;border:none;border-radius:8px;background:var(--electric);color:#fff;font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.05em;text-transform:uppercase;cursor:pointer;transition:background 120ms,transform 80ms;}
.obw-open:hover{background:var(--electric-h,#1C77E0);}
.obw-open:active{background:#044399;transform:translateY(1px);}
.obw-open svg{width:18px;height:18px;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.obw-done-foot{font-size:11px;line-height:1.55;color:#8a93a0;text-align:center;margin:13px auto 0;max-width:300px;}
.obw-done-foot b{color:#5c646d;font-weight:600;}
/* bell halo — pulses while the completion screen asks for notifications */
.m-bell.pulse{border-color:var(--electric);}
.m-bell-halo{position:absolute;inset:-1px;border-radius:7px;pointer-events:none;animation:obwGlow 2s ease-out infinite;}
@media (prefers-reduced-motion:reduce){.m-bell-halo{animation:none;}}
/* welcome/setup notification card */
.m-pop-setup-lead{font-size:12.5px;line-height:1.6;color:#555;margin:0 0 4px;}
.m-pop-setup-lead strong{color:var(--iron);font-weight:600;}
.m-pop-setup .m-brief-job{width:100%;}
/* ── in-app full-screen sheet (setup videos / partner software) ──
   Covers the whole phone screen instead of firing window.open. */
.m-sheet{position:absolute;inset:0;z-index:70;display:flex;flex-direction:column;background:var(--iron);animation:sheetUp 240ms var(--ease,cubic-bezier(0.2,0.7,0.2,1)) both;}
@keyframes sheetUp{from{transform:translateY(16px);opacity:0;}to{transform:none;opacity:1;}}
@media (prefers-reduced-motion:reduce){.m-sheet{animation:none;}}
.m-sheet-bar{flex:0 0 auto;display:flex;align-items:center;gap:11px;padding:calc(13px + env(safe-area-inset-top)) 14px 13px;background:var(--iron);border-bottom:1px solid var(--graphite);color:#fff;}
.m-sheet-x,.m-sheet-ext{flex:0 0 auto;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,0.18);border-radius:6px;background:none;color:#fff;cursor:pointer;}
.m-sheet-x:hover,.m-sheet-ext:hover{border-color:var(--electric);color:#6AA4F4;}
.m-sheet-x svg,.m-sheet-ext svg{stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.m-sheet-id{flex:1 1 auto;min-width:0;}
.m-sheet-t{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.03em;text-transform:uppercase;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.m-sheet-u{font-family:var(--font-mono,ui-monospace);font-size:9.5px;letter-spacing:0.06em;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-top:4px;}
.m-sheet-body{flex:1 1 auto;overflow-y:auto;background:var(--chalk);}
.m-sheet-video{position:relative;width:100%;aspect-ratio:16/9;background:#000;}
.m-sheet-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.m-sheet-doc{padding:18px;}
.m-sheet-lead{font-size:13px;line-height:1.6;color:#444;margin:0;text-wrap:pretty;}
.m-sheet-lead strong{color:var(--iron);font-weight:700;}
.m-sheet-pts{list-style:none;margin:15px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;}
.m-sheet-pts li{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.5;color:#444;}
.m-sheet-pts svg{flex:0 0 15px;width:15px;height:15px;margin-top:2px;color:var(--electric);}
.m-sheet-cta{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:18px;padding:14px 16px;border:none;border-radius:7px;background:var(--electric);color:#fff;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;cursor:pointer;}
.m-sheet-cta:hover{background:var(--electric-h,#1C77E0);}
.m-sheet-cta:active{background:#044399;transform:translateY(1px);}
.m-sheet-cta svg{stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.m-sheet-foot{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;padding:11px 14px calc(11px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--plate);}
.m-sheet-mark{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:14px 16px;border:none;border-radius:7px;background:var(--electric);color:#fff;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;cursor:pointer;}
.m-sheet-mark:hover{background:var(--electric-h,#1C77E0);}
.m-sheet-mark:active{background:#044399;transform:translateY(1px);}
.m-sheet-mark .bx{width:19px;height:19px;flex:0 0 auto;border:2px solid rgba(255,255,255,0.55);border-radius:4px;display:flex;align-items:center;justify-content:center;}
.m-sheet-mark .bx svg{width:13px;height:13px;stroke:#fff;fill:none;}
.m-sheet-mark.on{background:var(--iron);}
.m-sheet-mark.on .bx{border-color:var(--electric);background:var(--electric);}
.m-sheet-done{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 16px;border:1px solid var(--plate);border-radius:7px;background:#fff;color:var(--iron);font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;cursor:pointer;}
.m-sheet-done:hover{border-color:var(--electric);color:var(--electric);}
.m-sheet-done svg{stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;fill:none;}
/* the guide page's video poster — tap to open the sheet */
.ob-poster{position:relative;display:block;width:100%;aspect-ratio:16/9;margin:0 0 16px;border:1px solid var(--plate);border-radius:8px;background:var(--iron) center/cover no-repeat;cursor:pointer;overflow:hidden;padding:0;}
.ob-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.25) 0%,rgba(0,0,0,0.15) 45%,rgba(0,0,0,0.8) 100%);}
.ob-poster-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;width:56px;height:56px;border-radius:50%;background:var(--electric);display:flex;align-items:center;justify-content:center;transition:background 120ms var(--ease,cubic-bezier(0.2,0.7,0.2,1));}
.ob-poster:hover .ob-poster-play{background:var(--electric-h,#1C77E0);}
.ob-poster-play svg{stroke:#fff;fill:#fff;stroke-width:1.5;margin-left:2px;}
.ob-poster-tag{position:absolute;left:12px;bottom:11px;z-index:2;font-family:var(--font-mono,ui-monospace);font-size:9.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:#fff;}
.ob-poster.seen .ob-poster-tag{color:#6AA4F4;}

/* ── guided onboarding: WELCOME takeover (first entry — both doors) ──
   Full-bleed dark over the whole screen (absolute against .phone .screen, so it
   covers the app bar too): badge under one blue highlight, the three jobs, one
   button in. Namespaced .obw-w-*. */
.obw-welcome{position:absolute;inset:0;z-index:58;display:flex;flex-direction:column;padding:34px 24px calc(24px + env(safe-area-inset-bottom));background:var(--iron);color:#fff;overflow-y:auto;animation:obwWIn 240ms var(--ease,cubic-bezier(0.2,0.7,0.2,1)) both;}
@keyframes obwWIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.obw-w-glow{position:absolute;top:-140px;left:50%;width:440px;height:440px;margin-left:-220px;border-radius:50%;background:radial-gradient(circle,rgba(7,93,198,0.5) 0%,rgba(7,93,198,0.16) 42%,rgba(7,93,198,0) 70%);pointer-events:none;}
.obw-w-top{position:relative;flex:0 0 auto;text-align:center;padding-top:calc(4px + env(safe-area-inset-top));}
.obw-w-badge{display:block;width:80px;height:80px;object-fit:contain;margin:0 auto 15px;}
.obw-w-eb{font-family:var(--font-body);font-weight:800;font-size:9.5px;letter-spacing:0.22em;text-transform:uppercase;color:#6AA4F4;margin-bottom:10px;}
.obw-w-h{font-family:var(--font-cond);font-weight:900;font-size:40px;line-height:0.92;letter-spacing:0.02em;text-transform:uppercase;margin:0 0 11px;}
.obw-w-h .bl{color:#4C93F0;}
.obw-w-sub{font-size:12.5px;line-height:1.6;color:rgba(255,255,255,0.72);margin:0 auto;max-width:292px;text-wrap:pretty;}
.obw-w-sub strong{color:#fff;font-weight:600;}
.obw-w-steps{position:relative;flex:0 0 auto;display:flex;flex-direction:column;margin-top:22px;border-top:1px solid rgba(255,255,255,0.13);border-bottom:1px solid rgba(255,255,255,0.13);}
.obw-w-step{display:flex;gap:13px;align-items:flex-start;padding:13px 2px;}
.obw-w-step+.obw-w-step{border-top:1px solid rgba(255,255,255,0.09);}
.obw-w-step .n{flex:0 0 18px;padding-top:2px;font-family:var(--font-mono,ui-monospace);font-size:10px;font-weight:700;letter-spacing:0.06em;color:#4C93F0;}
.obw-w-step .b{display:flex;flex-direction:column;gap:5px;min-width:0;}
.obw-w-step .t{font-family:var(--font-cond);font-weight:900;font-size:16px;line-height:1;letter-spacing:0.02em;text-transform:uppercase;}
.obw-w-step .d{font-size:11.5px;line-height:1.5;color:rgba(255,255,255,0.6);}
.obw-w-std{position:relative;flex:0 0 auto;margin-top:15px;font-family:var(--font-mono,ui-monospace);font-size:9.5px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.46);text-align:center;}
.obw-w-foot{position:relative;flex:0 0 auto;margin-top:auto;padding-top:22px;}
.obw-w-cta{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:15px 18px;border:none;border-radius:7px;background:var(--electric);color:#fff;font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.04em;text-transform:uppercase;cursor:pointer;animation:obwGlow 2.8s ease-out 900ms infinite;}
.obw-w-cta:hover{background:var(--electric-h,#1C77E0);}
.obw-w-cta:active{background:#044399;transform:translateY(1px);}
.obw-w-cta svg{width:18px;height:18px;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.obw-w-meta{margin-top:11px;font-family:var(--font-mono,ui-monospace);font-size:9.5px;letter-spacing:0.06em;text-transform:uppercase;color:rgba(255,255,255,0.4);text-align:center;}
@media (prefers-reduced-motion:reduce){.obw-welcome{animation:none;}.obw-w-cta{animation:none;}}
/* real-phone chrome: keep the app bar + sheets clear of the notch / dynamic island.
   LIVE MERGE NOTE: live styles.css already has a (max-width:540px) block — merge these
   rules into it, do not duplicate the file. */
@media (max-width:540px){
  .phone .m-bar,.m-bar{padding-top:calc(14px + env(safe-area-inset-top));}
  .m-notifs-panel{padding-top:calc(6px + env(safe-area-inset-top));}
  .m-pop{padding-top:calc(14px + env(safe-area-inset-top));}
  /* v5.4 — the welcome takeover starts under the notch, never behind it */
  .obw-welcome{padding-top:calc(26px + env(safe-area-inset-top,0px));}
}

/* guided completion: dim → grant → highlight sequence */
.obw-dim{opacity:0.32;filter:grayscale(0.5);pointer-events:none;transition:opacity 220ms,filter 220ms;}
button.obw-notifjob{width:100%;font-family:inherit;cursor:pointer;text-align:left;}
button.obw-notifjob:active{transform:translateY(1px);}
.obw-nj-cap{display:inline-flex;align-items:center;gap:6px;margin-top:9px;font-weight:800;font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:#fff;background:var(--electric);border-radius:999px;padding:5px 10px;}
.obw-notifjob.done{animation:none;border-color:rgba(255,255,255,0.16);box-shadow:none;}
.obw-notifjob.done .obw-nj-ic{background:var(--turf);}
.obw-notifjob.done .obw-nj-ic svg{width:20px;height:20px;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.m-body.obw .obw-notifjob.done{margin-top:20px;}
.obw-open.lit{animation:obwGlow 2s ease-out infinite;}
@media (prefers-reduced-motion:reduce){.obw-open.lit{animation:none;}}
.obw-open:disabled{cursor:default;}
/* mock OS notification-permission sheet (LIVE: real requestPermission) */
.obw-pop.perm{align-items:center;background:rgba(5,5,5,0.55);backdrop-filter:blur(2px);}
.obw-perm-card{width:100%;max-width:270px;background:rgba(250,250,250,0.97);border-radius:14px;padding:20px 18px 14px;text-align:center;animation:obwRise 220ms var(--ease,cubic-bezier(0.2,0.7,0.2,1));}
.obw-perm-av{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:10px;background:var(--iron);color:#fff;font-family:var(--font-cond);font-weight:900;font-size:18px;margin:0 auto 11px;}
.obw-perm-t{font-weight:700;font-size:14px;line-height:1.35;color:#111;}
.obw-perm-d{font-size:11.5px;line-height:1.45;color:#666;margin:7px 0 0;}
.obw-perm-btns{display:flex;gap:8px;margin-top:15px;border-top:1px solid #e2e2e2;padding-top:11px;}
.obw-perm-btns button{flex:1 1 0;padding:10px 8px;border:none;border-radius:8px;font-family:inherit;font-weight:600;font-size:13.5px;cursor:pointer;}
.obw-perm-no{background:#ECECEC;color:#333;}
.obw-perm-no:hover{background:#e2e2e2;}
.obw-perm-yes{background:var(--electric);color:#fff;font-weight:700;}
.obw-perm-yes:hover{background:var(--electric-h,#1C77E0);}

/* badge logo placements — onboarding surfaces */
.obw-badge{display:block;width:74px;height:74px;object-fit:contain;margin:0 auto 12px;}
.obw-badge.sm{width:46px;height:46px;margin:0 0 12px;}
.obw-perm-av{overflow:hidden;background:var(--iron);}
.obw-perm-av img{width:72%;height:72%;object-fit:contain;}
.m-pop-av-img{width:78%;height:78%;object-fit:contain;display:block;margin:auto;}
.m-pop-av.app{display:flex;align-items:center;justify-content:center;}

/* brand badge in the app bar (onboarding stages) */
.m-bar-badge{width:32px;height:32px;object-fit:contain;flex:0 0 auto;}

/* complete-pop: badge + check chip replaces the plain check disc */
.obw-pop-badge{position:relative;display:block;width:64px;height:64px;margin:0 auto 13px;}
.obw-pop-badge img{width:100%;height:100%;object-fit:contain;display:block;}
.obw-pop-badge .ck{position:absolute;right:-7px;bottom:-5px;width:26px;height:26px;border-radius:50%;background:var(--turf);border:2.5px solid #fff;display:flex;align-items:center;justify-content:center;}
.obw-pop-badge .ck svg{width:13px;height:13px;stroke:#fff;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;fill:none;}

/* ============================================================================
   PROGRESS TAB (Aug 2026) — Progress · Body · Achievements.
   Namespaced .pr-*. Components: p1/progress-board.js + p1/progress-wall.js,
   derivation in p1/progress-engine.js.

   COLOUR, per the design system's three tiers:
     Tier 3 app ladder for every surface (--app-*) — NOT --chalk/--plate,
     which are the marketing light. Cool neutrals, because they sit
     under the blue.
     Tier 1 electric for progress and ownership; --electric-bright is the
     PEAK tone, used only at the Beyond end of a scale.
     Tier 2 turf for "earned" — a standard that has met its mark. Nothing
     in this tab uses forge or rust: falling short of a standard is a
     starting line, never a fault.
   ========================================================================== */
.pr-tri{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--app-border);border:1px solid var(--app-border);border-radius:6px;overflow:hidden;margin-top:16px}
.pr-tri>div{background:var(--app-surface);padding:10px 6px;text-align:center}
.pr-tri b{display:block;font-family:var(--font-cond);font-weight:900;font-size:22px;color:var(--app-fg);line-height:1}
.pr-tri span{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--app-fg-muted);margin-top:5px}
/* the continuum: developing ── RX'D ── beyond. The fill is steel until the
   standard falls, then it is brand blue — you fill into the colour. */
.pr-track{position:relative;height:8px;background:var(--app-surface-sunk);border:1px solid var(--app-border);border-radius:5px}
.pr-fill{position:absolute;left:0;top:0;bottom:0;background:var(--app-border-strong);border-radius:4px 0 0 4px}
.pr-fill.past{background:var(--electric)}
.pr-notch{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--app-fg);transform:translateX(-1px)}
.pr-mark{position:absolute;top:-4px;bottom:-4px;width:3px;border-radius:2px;background:var(--app-fg-muted);transform:translateX(-1.5px);box-shadow:0 0 0 2px var(--app-surface)}
.pr-mark.on{background:var(--electric)}
.pr-mark.peak{background:var(--electric-bright)}
.pr-mv.open .pr-mvbar{display:none}
.pr-cont.big .pr-track{height:12px}
.pr-bands{display:flex;margin-bottom:7px}
.pr-bands span{font-family:var(--font-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--app-fg-subtle)}
.pr-bands span:last-child{text-align:right;color:var(--electric)}
.pr-ticks{position:relative;height:13px;margin-top:8px}
.pr-ticks span{position:absolute;left:0;font-family:var(--font-mono);font-size:7.5px;letter-spacing:.06em;color:var(--app-fg-subtle);white-space:nowrap}
.pr-ticks span:nth-child(2){transform:translateX(-50%);color:var(--app-fg);font-weight:700}
.pr-ticks span.r{left:auto;right:0}
.pr-chip{flex:0 0 auto;font-family:var(--font-body);font-weight:800;font-size:8.5px;letter-spacing:.09em;text-transform:uppercase;padding:3px 6px;border-radius:3px;border:1px solid var(--app-border);color:var(--app-fg-muted);background:var(--app-surface);white-space:nowrap}
.pr-chip.pr-closing{border-color:var(--electric);color:var(--electric)}
.pr-chip.pr-pending{background:var(--turf);border-color:var(--turf);color:#fff}
.pr-chip.pr-rxd{background:var(--electric);border-color:var(--electric);color:#fff}
.pr-chip.pr-beyond{background:var(--electric-bright);border-color:var(--electric-bright);color:#0B1F3C}
.pr-chip.pr-open{border-style:dashed;color:var(--app-fg-subtle)}
/* categories → movements → the movement's own read */
.pr-cats{display:flex;flex-direction:column;gap:8px}
.pr-cat{border:1px solid var(--app-border);border-radius:7px;padding:12px;background:var(--app-surface)}
.pr-cat.open{border-color:var(--app-border-strong)}
.pr-cath{width:100%;display:flex;align-items:center;gap:9px;background:none;border:none;padding:0;cursor:pointer;font-family:inherit}
.pr-catn{flex:1 1 auto;text-align:left;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:.03em;text-transform:uppercase;color:var(--app-fg)}
.pr-catc{font-family:var(--font-mono);font-size:10px;color:var(--app-fg-muted)}
.pr-catbar{display:flex;gap:2px;height:5px;margin-top:9px;background:var(--app-surface-sunk);border-radius:3px;overflow:hidden}
.pr-catbar i{display:block;height:100%}
.pr-catbar i.own{background:var(--electric)}
.pr-catbar i.mov{background:var(--app-border-strong)}
.pr-catl{margin-top:10px;border-top:1px solid var(--app-border);padding-top:2px}
.pr-none{font-size:11.5px;color:var(--app-fg-muted);padding:10px 0;line-height:1.5}
.pr-toward{width:100%;display:flex;align-items:center;gap:7px;background:var(--app-surface-sunk);border:1px solid var(--app-border);border-radius:5px;padding:9px 10px;margin-top:10px;cursor:pointer;font-family:var(--font-body);font-weight:700;font-size:10.5px;letter-spacing:.03em;color:var(--app-fg);text-align:left}
.pr-toward svg:first-child{color:var(--electric)}
.pr-toward svg:last-child{margin-left:auto;color:var(--app-fg-subtle)}
.pr-mv{border-top:1px solid var(--app-border);padding:10px 0 8px}
.pr-mv:first-child{border-top:none}
.pr-mvh{width:100%;display:flex;align-items:center;gap:8px;background:none;border:none;padding:0 0 8px;cursor:pointer;font-family:inherit;text-align:left}
.pr-mvn{flex:1 1 auto;min-width:0;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}
.pr-mv .pr-mvv{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--app-fg)}
.pr-mvd{padding:16px 0 4px}
.pr-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0 14px}
.pr-stats b{display:block;font-family:var(--font-cond);font-weight:900;font-size:17px;color:var(--app-fg);line-height:1.05}
.pr-stats span{display:block;font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:4px;line-height:1.3}
.pr-gap{border-left:3px solid var(--app-border-strong);padding:2px 0 2px 11px;margin-bottom:13px}
.pr-gap b{display:block;font-family:var(--font-cond);font-weight:900;font-size:18px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}
.pr-gap span{display:block;font-size:11.5px;color:var(--app-fg-muted);line-height:1.45;margin-top:3px}
.pr-gap.hot{border-left-color:var(--turf)}
.pr-gap.hot b{color:var(--turf-deep)}
.pr-prog{background:var(--app-surface-sunk);border:1px solid var(--app-border);border-radius:6px;padding:11px 12px;margin-bottom:13px}
.pr-progt{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.pr-progt span{font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--app-fg-muted)}
.pr-progt b{font-family:var(--font-cond);font-weight:900;font-size:13px;color:var(--app-fg);white-space:nowrap}
.pr-progb{height:5px;background:var(--app-surface);border:1px solid var(--app-border);border-radius:3px;margin-top:8px;overflow:hidden}
.pr-progb i{display:block;height:100%;background:var(--electric)}
.pr-open{margin-top:11px;display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--app-fg);border-radius:4px;padding:7px 11px;font-family:var(--font-body);font-weight:800;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--app-fg);cursor:pointer;transition:background var(--dur-fast,120ms) var(--ease),color var(--dur-fast,120ms) var(--ease)}
.pr-open:hover{background:var(--app-fg);color:#fff}
.pr-log{border-top:1px solid var(--app-border);padding-top:11px}
.pr-logh{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--app-fg-subtle);margin-bottom:6px}
.pr-logr{display:flex;align-items:baseline;gap:10px;padding:4px 0}
.pr-logr span{flex:0 0 auto;width:54px;font-family:var(--font-mono);font-size:10px;color:var(--app-fg-muted)}
.pr-logr b{font-family:var(--font-cond);font-weight:900;font-size:14px;color:var(--app-fg)}
.pr-logr i{font-style:normal;font-family:var(--font-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--electric)}
/* "these bank at your check-in" — earned, so turf, on the dark rail */
.pr-pend{width:100%;display:flex;align-items:center;gap:11px;background:var(--iron);border:none;border-radius:8px;padding:13px 14px;margin-bottom:15px;cursor:pointer;text-align:left;color:#fff;font-family:inherit}
.pr-pic{flex:0 0 auto;width:28px;height:28px;border-radius:50%;background:var(--turf);display:grid;place-items:center;color:#fff}
.pr-pb{flex:1 1 auto;min-width:0}
.pr-pb b{display:block;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:var(--turf-bright)}
.pr-pb span{display:block;font-size:11px;color:var(--silver);margin-top:2px;line-height:1.4}
.pr-pend>svg:last-child{flex:0 0 auto;color:var(--silver)}
/* owned standards, still climbing toward the beyond mark */
.pr-bylist{display:flex;flex-direction:column;gap:15px}
.pr-byh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:7px}
.pr-byh span{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}
.pr-byh b{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--electric);white-space:nowrap}
.pr-byf{display:flex;justify-content:space-between;margin-top:7px}
.pr-byf span{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--app-fg-subtle)}
/* body composition */
.pr-bnow{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.pr-bbig{font-family:var(--font-cond);font-weight:900;font-size:46px;line-height:.85;color:var(--app-fg)}
.pr-bbig i{font-style:normal;font-size:20px;color:var(--app-fg-subtle);margin-left:2px}
.pr-zt{display:inline-block;padding:3px 8px;border-radius:3px;color:#fff;font-family:var(--font-body);font-weight:800;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase}
.pr-bsub{display:block;font-size:11.5px;color:var(--app-fg-muted);margin-top:7px}
.pr-zbar{position:relative;display:flex;height:10px;border:1px solid var(--app-border);border-radius:5px}
.pr-zseg{display:block;height:100%}
.pr-zseg:first-child{border-radius:4px 0 0 4px}
.pr-zseg:last-child{border-radius:0 4px 4px 0}
.pr-zmark{position:absolute;top:-4px;bottom:-4px;width:3px;background:var(--app-fg);border-radius:2px;transform:translateX(-1px);box-shadow:0 0 0 2px var(--app-surface)}
.pr-zlab{display:flex;margin-top:7px}
.pr-zlab span{font-family:var(--font-mono);font-size:8px;letter-spacing:.05em;text-transform:uppercase;color:var(--app-fg-subtle);text-align:center}
.pr-bnext{margin-top:16px;border-left:3px solid var(--electric);padding-left:11px}
.pr-bnext b{display:block;font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}
.pr-bnext span{display:block;font-size:11.5px;color:var(--app-fg-muted);margin-top:3px;line-height:1.45}
.pr-zlist{display:flex;flex-direction:column;gap:1px;background:var(--app-border);border:1px solid var(--app-border);border-radius:7px;overflow:hidden}
.pr-zrow{display:flex;align-items:center;gap:11px;background:var(--app-surface);padding:11px 12px}
.pr-zic{flex:0 0 auto;width:26px;height:26px;border-radius:4px;border:1px solid var(--app-border);background:var(--app-surface-sunk);display:grid;place-items:center;color:var(--app-fg-subtle)}
.pr-zrow.got .pr-zic{color:#fff}
.pr-zb{flex:1 1 auto;min-width:0}
.pr-zb b{display:block;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}
.pr-zrow:not(.got) .pr-zb b{color:var(--app-fg-subtle)}
.pr-zb span{display:block;font-size:11px;color:var(--app-fg-muted);margin-top:1px}
.pr-zd{font-family:var(--font-cond);font-weight:900;font-size:16px;color:var(--app-fg)}
.pr-zp{font-family:var(--font-mono);font-size:10px;color:var(--app-fg-subtle)}
/* the wall */
.pr-wall4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--app-border);border:1px solid var(--app-border);border-radius:6px;overflow:hidden}
.pr-wall4>div{background:var(--app-surface);padding:11px 4px;text-align:center}
.pr-wall4 b{display:block;font-family:var(--font-cond);font-weight:900;font-size:24px;color:var(--electric);line-height:1}
.pr-wall4 span{display:block;font-family:var(--font-mono);font-size:8px;letter-spacing:.07em;text-transform:uppercase;color:var(--app-fg-muted);margin-top:5px}
.pr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 10px}
.pr-plate{display:flex;flex-direction:column;align-items:center;gap:7px;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:center}
.pr-pl{position:relative;width:100%;max-width:76px;aspect-ratio:1/1;display:grid;place-items:center;background:var(--app-surface-sunk);border:1px solid var(--app-border);color:var(--app-fg-subtle);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.pr-plate.got .pr-pl{background:var(--electric);color:#fff}
.pr-plate.on .pr-pl{background:var(--app-fg);color:#fff}
.pr-plp{position:absolute;bottom:11px;font-family:var(--font-mono);font-size:8px;letter-spacing:.04em;color:var(--app-fg-subtle)}
.pr-plate.on .pr-plp{color:var(--app-border-strong)}
.pr-pn{font-family:var(--font-cond);font-weight:900;font-size:11px;line-height:1.1;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}
.pr-plate:not(.got) .pr-pn{color:var(--app-fg-subtle)}
.pr-pd{font-family:var(--font-mono);font-size:7.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--app-fg-subtle)}
.pr-bdet{margin-top:16px;border-top:1px solid var(--app-border);padding-top:13px}
.pr-bdet b{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}
.pr-bdet span{display:block;font-size:12px;color:var(--app-fg-muted);line-height:1.45;margin-top:3px}
.pr-bdet i{display:block;font-style:normal;font-family:var(--font-mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:8px}
.pr-bdet.got i{color:var(--electric)}
.m-card.pr-grp{padding:0;overflow:hidden}
.pr-grph{width:100%;display:flex;align-items:center;gap:11px;background:none;border:none;padding:15px 16px;cursor:pointer;font-family:inherit;text-align:left}
.pr-gi{flex:0 0 auto;width:28px;height:28px;border-radius:4px;background:var(--app-fg);color:#fff;display:grid;place-items:center}
.pr-gt{flex:1 1 auto;min-width:0}
.pr-gt b{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:.03em;text-transform:uppercase;color:var(--app-fg)}
.pr-gt span{display:block;font-size:11px;color:var(--app-fg-muted);margin-top:1px}
.pr-gn{font-family:var(--font-cond);font-weight:900;font-size:20px;color:var(--electric)}
.pr-grpb{padding:2px 16px 16px;border-top:1px solid var(--app-border)}
.pr-std{border-bottom:1px solid var(--app-border)}
.pr-std:last-child{border-bottom:none}
.pr-stdh{width:100%;display:flex;align-items:center;gap:9px;background:none;border:none;padding:12px 0;cursor:pointer;font-family:inherit;text-align:left}
.pr-stdi{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:var(--electric);color:#fff;display:grid;place-items:center}
.pr-stdn{flex:1 1 auto;min-width:0;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}
.pr-stdc{font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--app-fg-subtle)}
.pr-stdd{flex:0 0 auto;font-family:var(--font-mono);font-size:9.5px;color:var(--app-fg-muted)}
.pr-stdd2{padding:0 0 16px}
.pr-stdnote{font-size:11.5px;color:var(--app-fg-muted);line-height:1.45;margin-top:13px}
.pr-prg{border:1px solid var(--app-border);border-radius:7px;margin-top:12px;overflow:hidden}
.pr-prgh{width:100%;display:flex;align-items:center;gap:10px;background:none;border:none;padding:12px;cursor:pointer;font-family:inherit;text-align:left}
.pr-prgi{flex:0 0 auto;width:26px;height:26px;border-radius:4px;background:var(--electric);color:#fff;display:grid;place-items:center}
.pr-prg.live .pr-prgi{background:var(--app-surface-sunk);border:1px solid var(--app-border);color:var(--app-fg-subtle)}
.pr-prgt{flex:1 1 auto;min-width:0}
.pr-prgt b{display:block;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}
.pr-prgt span{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:2px}
.pr-prgs{flex:0 0 auto;font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--electric)}
.pr-prg.live .pr-prgs{color:var(--app-fg-subtle)}
.pr-prgb{padding:0 12px 14px;border-top:1px solid var(--app-border)}
.pr-prgline{font-size:11.5px;color:var(--app-fg-muted);line-height:1.45;margin:12px 0}
.pr-prgstats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.pr-prgstats>div{background:var(--app-surface-sunk);border:1px solid var(--app-border);border-radius:5px;padding:9px 10px}
.pr-prgstats b{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;color:var(--app-fg);line-height:1}
.pr-prgstats span{display:block;font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:4px}
.pr-prgstats i{display:block;font-style:normal;font-size:10px;font-weight:700;color:var(--turf-deep);margin-top:2px}
.pr-prghab{margin-top:13px;border-left:3px solid var(--electric);padding-left:11px}
.pr-prghab b{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--app-fg-subtle)}
.pr-prghab span{display:block;font-size:12px;color:var(--app-fg);margin-top:3px;line-height:1.45}
.pr-lifet{display:flex;flex-direction:column;gap:1px;background:var(--app-border);border:1px solid var(--app-border);border-radius:7px;overflow:hidden;margin:12px 0 15px}
.pr-lifet>div{display:flex;align-items:baseline;gap:10px;background:var(--app-surface);padding:10px 12px}
.pr-lifet b{flex:0 0 auto;min-width:76px;font-family:var(--font-cond);font-weight:900;font-size:20px;color:var(--electric)}
.pr-lifet span{flex:1 1 auto;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--app-fg-muted)}
.pr-lifet i{flex:0 0 auto;font-style:normal;font-family:var(--font-mono);font-size:9.5px;color:var(--app-fg-subtle)}
@media (max-width:540px){.pr-grid{gap:10px 8px}.pr-pn{font-size:10px}.pr-stats b{font-size:15px}}

/* ── SETUP JOB 01 · STARTING NUMBERS (window.IBBaselineSheet) ──
   Rides inside the same full-screen .m-sheet as the setup videos: dark bar,
   chalk body, white foot. Everything below is namespaced .sn-*. */
.sn-track{flex:0 0 auto;height:3px;background:var(--gunmetal,#2A2A2A);}
.sn-track span{display:block;height:100%;background:var(--electric);transition:width 220ms cubic-bezier(0.2,0.7,0.2,1);}
.sn-body{background:var(--chalk);}
.sn-pad{padding:16px 18px 14px;}
.sn-eb{font-family:var(--font-mono,ui-monospace);font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--electric);}
.sn-h1{font-family:var(--font-cond);font-weight:900;font-size:38px;line-height:0.92;letter-spacing:0.01em;text-transform:uppercase;color:var(--iron);margin:9px 0 0;}
.sn-h1 .bl{color:var(--electric);}
.sn-h1.mid,.sn-lead.mid,.sn-meta.mid{text-align:center;}
.sn-lead{font-size:13px;line-height:1.62;color:#555;margin:12px 0 0;text-wrap:pretty;}
.sn-lead strong{color:var(--iron);font-weight:600;}
.sn-glist{display:flex;flex-direction:column;gap:8px;margin-top:18px;}
.sn-grow{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:12px;}
.sn-grow-ic{flex:0 0 auto;width:34px;height:34px;border-radius:7px;background:rgba(7,93,198,0.1);color:var(--electric);display:flex;align-items:center;justify-content:center;}
.sn-grow-b{flex:1 1 auto;min-width:0;}
.sn-grow-t{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.sn-grow-d{font-size:11.5px;color:#666;line-height:1.4;margin-top:3px;}
.sn-grow-n{flex:0 0 auto;font-family:var(--font-mono,ui-monospace);font-size:13px;color:var(--iron);}
.sn-note{display:flex;gap:10px;align-items:flex-start;margin-top:16px;background:#fff;border:1px solid var(--plate);border-left:3px solid var(--electric);border-radius:8px;padding:11px 12px;font-size:11.5px;line-height:1.55;color:#555;}
.sn-note b{color:var(--iron);font-weight:600;}
.sn-note-ic{flex:0 0 auto;color:var(--electric);margin-top:1px;}
.sn-meta{margin-top:16px;font-family:var(--font-mono,ui-monospace);font-size:9.5px;letter-spacing:0.07em;text-transform:uppercase;color:#8b8b8b;}
/* one movement */
.sn-mvtop{padding-bottom:4px;}
.sn-mvgrp{display:flex;align-items:center;gap:6px;font-family:var(--font-mono,ui-monospace);font-size:9.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--electric);}
.sn-mvgrp span{color:#a5a5a5;}
.sn-mvgrp svg{stroke:currentColor;stroke-width:2;fill:none;}
.sn-mvname{font-family:var(--font-cond);font-weight:900;font-size:28px;line-height:0.95;letter-spacing:0.01em;text-transform:uppercase;color:var(--iron);margin-top:6px;}
.sn-mvq{font-size:12px;line-height:1.5;color:#666;margin-top:7px;text-wrap:pretty;}
.sn-entry{margin-top:11px;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:12px 13px 13px;}
.sn-single,.sn-time{display:flex;align-items:baseline;justify-content:center;gap:8px;}
.sn-in{width:120px;border:none;border-bottom:2px solid var(--plate);background:none;font-family:var(--font-cond);font-weight:900;font-size:40px;line-height:1;letter-spacing:0.01em;color:var(--iron);text-align:center;padding:0 4px 6px;outline:none;}
.sn-in:focus{border-bottom-color:var(--electric);}
.sn-in::placeholder{color:#d2d2d2;}
.sn-in.mm,.sn-in.ss{width:88px;}
.sn-colon{font-family:var(--font-cond);font-weight:900;font-size:34px;color:var(--iron);line-height:1;}
.sn-un{font-family:var(--font-mono,ui-monospace);font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:#8b8b8b;}
.sn-rx{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:10px;font-size:11.5px;color:#555;text-align:center;}
.sn-rx-k{font-family:var(--font-mono,ui-monospace);font-size:8.5px;letter-spacing:0.09em;text-transform:uppercase;color:#fff;background:var(--iron);border-radius:999px;padding:3px 7px;}
/* review */
.sn-tally{display:flex;gap:9px;margin-top:18px;}
.sn-tally-c{flex:1 1 0;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:13px;text-align:center;}
.sn-tally-n{font-family:var(--font-cond);font-weight:900;font-size:34px;line-height:1;color:var(--electric);}
.sn-tally-n.dim{color:#b4b4b4;}
.sn-tally-l{font-family:var(--font-mono,ui-monospace);font-size:9px;letter-spacing:0.07em;text-transform:uppercase;color:#8b8b8b;margin-top:6px;}
.sn-rvg{margin-top:18px;}
.sn-rvg-h{font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.06em;text-transform:uppercase;color:#8b8b8b;padding-bottom:7px;border-bottom:1px solid var(--plate);}
.sn-rvr{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:none;border:none;border-bottom:1px solid var(--plate);padding:11px 2px;cursor:pointer;font-family:inherit;text-align:left;}
.sn-rvr:hover .sn-rvr-n{color:var(--electric);}
.sn-rvr-n{font-family:var(--font-cond);font-weight:800;font-size:14.5px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);}
.sn-rvr-v{display:flex;align-items:center;gap:6px;font-family:var(--font-mono,ui-monospace);font-size:12.5px;color:#555;}
.sn-rvr.met .sn-rvr-v{color:var(--electric);}
.sn-rvr-v svg{stroke:currentColor;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;}
/* done */
.sn-doneb{display:flex;flex-direction:column;align-items:center;padding-top:46px;}
.sn-done-ic{width:64px;height:64px;border-radius:50%;background:var(--electric);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:20px;}
.sn-done-ic svg{stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.sn-cont .pr-bands{margin-bottom:5px;}
.sn-cont .pr-ticks{margin-top:6px;height:12px;}
@media (max-width:540px){.sn-h1{font-size:34px;}.sn-in{font-size:44px;}.sn-vid{max-height:none;}}
.m-brief-job.done{border-color:rgba(7,93,198,0.35);background:rgba(7,93,198,0.04);}
.m-brief-job.done .m-brief-job-ic{background:var(--electric);color:#fff;}
.m-brief-job.done .m-brief-job-ic svg{stroke:#fff;stroke-width:3;}
/* demo clip */
.sn-vid{position:relative;display:block;width:100%;aspect-ratio:16/9;max-height:150px;margin-top:11px;border:1px solid var(--plate);border-radius:8px;overflow:hidden;background:#0A0A0A center/cover no-repeat;padding:0;cursor:pointer;}
.sn-vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.sn-vid-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:var(--electric);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,0.35);}
.sn-vid-play svg{fill:#fff;stroke:#fff;margin-left:2px;}
.sn-vid:hover .sn-vid-play{background:var(--electric-h,#1C77E0);}
.sn-vid-tag{position:absolute;left:10px;bottom:9px;font-family:var(--font-mono,ui-monospace);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,0.8);}
.sn-vid.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:var(--iron);cursor:default;}
.sn-vid.ph svg{stroke:rgba(255,255,255,0.34);fill:rgba(255,255,255,0.34);}
.sn-vid.ph span{font-family:var(--font-mono,ui-monospace);font-size:9.5px;letter-spacing:0.07em;text-transform:uppercase;color:rgba(255,255,255,0.4);}
/* the continuum sits in its own slot — the bar itself is the Progress tab's
   .pr-cont asset, reused as-is (never restyled) */
.sn-cont{margin-top:11px;padding-top:11px;border-top:1px solid var(--plate);}
.sn-cont-cap{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;font-size:11px;color:#8b8b8b;text-align:center;}
.sn-cont-cap.on{color:var(--electric);font-weight:600;}
.sn-cont-cap svg{stroke:currentColor;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;}
/* review: the whole board at a glance */
.sn-board{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin-top:18px;}
.sn-board.mid{width:100%;margin-top:22px;}
.sn-cell{aspect-ratio:1;border-radius:2px;background:#DDE3E9;}
.sn-cell.on{background:#9EC3F0;}
.sn-cell.met{background:var(--electric);}
.sn-key{display:flex;gap:14px;margin-top:9px;font-family:var(--font-mono,ui-monospace);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:#8b8b8b;}
.sn-key span{display:flex;align-items:center;gap:5px;}
.sn-key i{width:8px;height:8px;border-radius:2px;background:#DDE3E9;}
.sn-key i.on{background:#9EC3F0;}
.sn-key i.met{background:var(--electric);}
.sn-rvg-h{display:flex;justify-content:space-between;gap:10px;}
.sn-rvg-h span{color:#b4b4b4;}
.sn-rvr{display:block;padding:12px 2px 13px;}
.sn-rvr-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.sn-rvr-bar{display:block;position:relative;height:4px;margin-top:8px;background:#E8ECEF;border-radius:2px;overflow:hidden;}
.sn-rvr-bar i{position:absolute;left:0;top:0;bottom:0;background:#9EC3F0;border-radius:2px;}
.sn-rvr.met .sn-rvr-bar i{background:var(--electric);}
.sn-tally-c{padding:12px 6px;}
.sn-tally-n{font-size:30px;}
.sn-tally-n.on{color:var(--electric);}
/* ── the setup card's GUIDED ORDER: one job lit, the done ones greyed back ── */
.m-setup-step{margin-top:14px;}
.m-setup-h{display:flex;align-items:center;gap:8px;font-family:var(--font-mono,ui-monospace);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:#a5a5a5;margin-bottom:7px;}
.m-setup-step.now .m-setup-h{color:var(--electric);}
.m-setup-n{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--plate);background:#fff;font-size:8.5px;letter-spacing:0;color:#8b8b8b;}
.m-setup-step.now .m-setup-n{background:var(--electric);border-color:var(--electric);color:#fff;}
.m-setup-step.done .m-setup-n{background:var(--iron);border-color:var(--iron);color:#fff;}
.m-setup-n svg{stroke:#fff;stroke-width:3.4;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.m-brief-job.step.now,.m-brief-job.sw.now{border-color:var(--electric);box-shadow:inset 3px 0 0 var(--electric);}
.m-brief-job.step.wait,.m-brief-job.sw.wait{opacity:0.5;}
.m-brief-job.step.done,.m-brief-job.sw.done{background:var(--chalk);border-color:var(--plate);}
.m-brief-job.step.done .m-brief-job-t,.m-brief-job.sw.done .m-brief-job-t{color:#7b7b7b;}
.m-brief-job.step.done .m-brief-job-d,.m-brief-job.sw.done .m-brief-job-d{color:#8f8f8f;}
.m-brief-job.step.done .m-brief-job-ic,.m-brief-job.sw.done .m-brief-job-ic{background:var(--electric);color:#fff;}
.m-brief-job.step.done .m-brief-job-ic svg,.m-brief-job.sw.done .m-brief-job-ic svg{stroke:#fff;stroke-width:3;}
.m-setup-subs{display:flex;flex-direction:column;gap:8px;}
.m-setup-subh{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:0.03em;text-transform:uppercase;color:var(--iron);}
.m-setup-step.wait .m-setup-subh{color:#a5a5a5;}

/* ═════════════════════════════════════════════════════════════════
   PROGRAMS TAB + reworked Today dashboard [Aug 2026]
   d-go = the ONE continue card on Today · d-bline = tap-through summary line
   d-ppr = %-to-Rx'd program rows · d-pc-line = continuum caption
   perfbar = the performance continuum (Beginner/Intermediate/Rx'd/Beyond)
   pt-* = the Programs hub + the gym leaderboard
   ═════════════════════════════════════════════════════════════════ */
/* 1 · the continue card */
.d-go{background:var(--iron);border:1px solid var(--graphite);border-radius:12px;overflow:hidden;position:relative;isolation:isolate;}
.d-go::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--dac,var(--electric));z-index:1;}
.d-go-main{display:block;width:100%;text-align:left;background:none;border:0;padding:16px 16px 15px;cursor:pointer;color:#fff;font-family:inherit;}
.d-go-top{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.d-go-top .e{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.15em;text-transform:uppercase;color:var(--silver-2);}
.d-go-top .e .pulse{width:7px;height:7px;border-radius:50%;background:var(--dac,var(--electric));animation:goPulse 2.2s infinite;}
@keyframes goPulse{0%{box-shadow:0 0 0 0 rgba(79,168,255,0.45);}70%{box-shadow:0 0 0 7px rgba(79,168,255,0);}100%{box-shadow:0 0 0 0 rgba(79,168,255,0);}}
.d-go-top .b{font-family:var(--font-mono);font-size:9px;letter-spacing:0.05em;text-transform:uppercase;color:var(--silver-2);border:1px solid var(--graphite);border-radius:999px;padding:4px 9px;white-space:nowrap;}
.d-go-mid{display:flex;align-items:center;gap:13px;margin-top:13px;}
.d-go-mid .ic{flex:0 0 auto;width:46px;height:46px;border-radius:9px;background:color-mix(in srgb,var(--dac,#075DC6) 22%,#141414);border:1px solid color-mix(in srgb,var(--dac,#075DC6) 45%,#3A3A3A);display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--dac,#075DC6) 55%,#fff);}
.d-go-mid .tx{flex:1 1 auto;min-width:0;}
.d-go-mid .nm{font-family:var(--font-cond);font-weight:900;font-size:29px;line-height:0.92;letter-spacing:0.02em;text-transform:uppercase;color:#fff;}
.d-go-mid .sb{font-size:10.5px;color:var(--silver-2);margin-top:5px;}
.d-go-meter{display:flex;align-items:center;gap:10px;margin-top:14px;}
.d-go-meter .bar{flex:1;height:7px;background:rgba(255,255,255,0.12);border-radius:4px;overflow:hidden;}
.d-go-meter .bar i{display:block;height:100%;background:var(--dac,var(--electric));border-radius:4px;transition:width .3s cubic-bezier(0.2,0.7,0.2,1);}
.d-go-meter .lab{font-family:var(--font-mono);font-size:10.5px;font-weight:700;color:#fff;}
.d-go-cta{display:flex;width:100%;align-items:center;justify-content:center;gap:8px;margin-top:13px;background:var(--dac,var(--electric));color:#fff;border-radius:6px;font-family:var(--font-cond);font-weight:900;font-size:13.5px;letter-spacing:0.05em;text-transform:uppercase;padding:13px 16px;min-height:46px;}
.d-go-main:hover .d-go-cta{filter:brightness(1.12);}
.d-go-all{display:flex;width:100%;align-items:center;justify-content:center;gap:6px;background:rgba(255,255,255,0.04);border:0;border-top:1px solid var(--graphite);color:var(--silver-2);font-family:var(--font-body);font-weight:800;font-size:9.5px;letter-spacing:0.13em;text-transform:uppercase;padding:12px;min-height:40px;cursor:pointer;}
.d-go-all:hover{color:#fff;}
/* 2 · tap-through summary line (body comp + performance cards) */
.d-bline{display:flex;width:100%;align-items:center;gap:10px;margin-top:13px;border:0;border-top:1px solid #EFEFEF;background:none;padding:12px 0 0;text-align:left;font-family:inherit;color:#7a818c;}
button.d-bline{cursor:pointer;}
.d-bline .ic{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--chalk);color:#7a818c;}
.d-bline .ic.turf{background:#EAF7EF;color:#16884a;}
.d-bline .ic.blue{background:#EAF1FC;color:var(--electric);}
.d-bline .tx{flex:1 1 auto;min-width:0;font-size:11px;line-height:1.5;color:#7a818c;text-wrap:pretty;}
.d-bline .tx b{color:var(--iron);font-weight:700;}
.d-bline>svg{color:#b6bdc6;flex:0 0 auto;}
button.d-bline:hover .tx b{color:var(--electric);}
/* 3 · the one Road-to-Rx'd % bar */
.d-rx{margin-top:2px;}
.d-rx .top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.d-rx .pc{font-family:var(--font-cond);font-weight:900;font-size:44px;line-height:0.9;letter-spacing:0.01em;color:var(--iron);}
.d-rx .pc em{font-style:normal;font-size:22px;color:var(--electric);margin-left:1px;}
.d-rx .ct{font-size:11px;color:#7a818c;}
.d-rx .ct b{color:var(--iron);font-weight:700;}
.d-rx .bar{height:10px;background:#EEF0F3;border-radius:5px;overflow:hidden;margin-top:11px;}
.d-rx .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--electric-deep,#044399),var(--electric));border-radius:5px;transition:width .3s cubic-bezier(0.2,0.7,0.2,1);}
.d-rx .sc{display:flex;justify-content:space-between;margin-top:6px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.07em;text-transform:uppercase;color:#a6acb4;}
/* wins of the week */
.d-wins{margin-top:14px;border-top:1px solid #EFEFEF;padding-top:11px;}
.d-wins .hd{font-family:var(--font-body);font-weight:800;font-size:8.5px;letter-spacing:0.12em;text-transform:uppercase;color:#9aa0a8;margin-bottom:8px;}
.d-wins .r{display:flex;align-items:center;gap:10px;padding:6px 0;}
.d-wins .r .ic{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.d-wins .r.std .ic{background:#EAF1FC;color:var(--electric);}
.d-wins .r.pr .ic{background:#EAF7EF;color:#16884a;}
.d-wins .r.closer .ic{background:var(--chalk);color:#7a818c;}
.d-wins .b{flex:1 1 auto;min-width:0;}
.d-wins .nm{font-family:var(--font-cond);font-weight:900;font-size:14.5px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.d-wins .sb{font-size:10px;color:#8b939d;margin-top:1px;}
.d-wins .e{flex:0 0 auto;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px;}
.d-wins .chip{font-family:var(--font-body);font-weight:800;font-size:8px;letter-spacing:0.1em;text-transform:uppercase;color:var(--electric-deep,#044399);background:#EAF1FC;border-radius:999px;padding:2px 7px;}
.d-wins .r.pr .chip{color:#16884a;background:#EAF7EF;}
.d-wins .r.closer .chip{color:#7a818c;background:var(--chalk);}
.d-wins .v{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--iron);}
.d-wins .none{font-size:11px;line-height:1.5;color:#8b939d;text-wrap:pretty;}
/* the log-a-score sheet (anchors to .screen — the phone, not the page) */
.d-sheet-wrap{position:absolute;inset:0;z-index:60;background:rgba(5,5,5,0.55);display:flex;flex-direction:column;justify-content:flex-end;animation:shFade .18s cubic-bezier(0.2,0.7,0.2,1);}
@keyframes shFade{from{opacity:0;}to{opacity:1;}}
.d-sheet{background:#fff;border-radius:14px 14px 0 0;max-height:78%;display:flex;flex-direction:column;animation:shUp .22s cubic-bezier(0.2,0.7,0.2,1);}
@keyframes shUp{from{transform:translateY(40px);opacity:0.4;}to{transform:none;opacity:1;}}
.d-sheet-grab{flex:0 0 auto;width:38px;height:4px;border-radius:2px;background:var(--plate);margin:9px auto 2px;}
.d-sheet-hd{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:8px 16px 2px;}
.d-sheet-hd .t{font-family:var(--font-cond);font-weight:900;font-size:21px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);}
.d-sheet-hd .x{background:var(--chalk);border:0;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:#7a818c;cursor:pointer;}
.d-sheet-search{flex:0 0 auto;display:flex;align-items:center;gap:9px;margin:10px 16px 4px;border:1px solid var(--plate);border-radius:7px;padding:0 12px;background:var(--chalk);color:#8b939d;}
.d-sheet-search input{flex:1;border:0;background:none;font-family:var(--font-body);font-size:13px;color:var(--iron);padding:12px 0;min-height:44px;outline:none;}
.d-sheet-search:focus-within{border-color:var(--electric);background:#fff;}
.d-sheet-list{flex:1 1 auto;overflow-y:auto;padding:6px 10px 14px;}
.d-sheet-list .r{display:flex;width:100%;align-items:center;gap:11px;text-align:left;background:none;border:0;border-top:1px solid #F1F2F4;padding:10px 6px;cursor:pointer;font-family:inherit;min-height:52px;}
.d-sheet-list .r:first-child{border-top:0;}
.d-sheet-list .nm{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.d-sheet-list .sb{font-size:10px;color:#8b939d;margin-top:2px;}
.d-sheet-list .b{flex:1 1 auto;min-width:0;}
.d-sheet-list .r:hover .nm{color:var(--electric);}
.d-sheet-list .none{padding:18px 8px;font-size:11.5px;color:#8b939d;}
.pt-mi.sm{width:32px;height:32px;border-radius:7px;}
/* 4 · the performance continuum (inline band colours; shares .contbar) */
.d-pc-line{margin-top:12px;font-size:11px;line-height:1.5;color:#7a818c;text-wrap:pretty;}
.d-pc-line b{color:var(--iron);font-weight:700;}
.perfbar .band{font-size:9px;letter-spacing:0.03em;}
.cont-light .contbar.perfbar{margin-top:24px;}
/* 5 · the Programs hub */
.pt-row{display:flex;width:100%;align-items:center;gap:12px;text-align:left;background:#fff;border:1px solid var(--plate);border-left:3px solid var(--cat,var(--plate));border-radius:8px;padding:12px 13px;margin-bottom:8px;cursor:pointer;font-family:inherit;transition:border-color .12s;}
.pt-row:hover{border-color:var(--electric);}
.pt-row.still{cursor:default;}
.pt-row.still:hover{border-color:var(--plate);}
.pt-row .tx{flex:1 1 auto;min-width:0;}
.pt-row .nm{font-family:var(--font-cond);font-weight:900;font-size:17px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.pt-row .sb{font-size:10.5px;color:#77808c;margin-top:3px;}
.pt-row .tail{display:flex;align-items:center;gap:8px;flex:0 0 auto;}
.pt-mi{flex:0 0 auto;width:38px;height:38px;border-radius:8px;background:color-mix(in srgb,var(--cat,#5c646f) 12%,#fff);border:1px solid color-mix(in srgb,var(--cat,#5c646f) 30%,#fff);display:flex;align-items:center;justify-content:center;color:var(--cat,#5c646f);}
.pt-row.still .pt-mi{color:#8b939d;}
.pt-badge{font-family:var(--font-mono);font-size:9.5px;font-weight:700;letter-spacing:0.04em;border-radius:3px;padding:4px 7px;white-space:nowrap;}
.pt-badge.blue{color:var(--electric);background:#EAF1FC;border:1px solid #bbd3f2;}
.pt-badge.forge{color:#8a5a09;background:#FBF3E4;border:1px solid #EDD9B0;}
.pt-cat{display:flex;width:100%;align-items:center;gap:13px;text-align:left;background:var(--iron);border:1px solid var(--graphite);border-radius:10px;padding:15px 14px;margin-bottom:9px;cursor:pointer;color:#fff;font-family:inherit;transition:border-color .12s;}
.pt-cat:hover{border-color:var(--electric);}
.pt-cat .ic{flex:0 0 auto;width:44px;height:44px;border-radius:9px;background:rgba(255,255,255,0.07);border:1px solid var(--graphite);display:flex;align-items:center;justify-content:center;color:var(--electric-hover,#4FA8FF);}
.pt-cat .tx{flex:1 1 auto;min-width:0;}
.pt-cat .nm{font-family:var(--font-cond);font-weight:900;font-size:20px;letter-spacing:0.02em;text-transform:uppercase;line-height:1;}
.pt-cat .sb{font-size:10.5px;line-height:1.45;color:var(--silver-2);margin-top:5px;text-wrap:pretty;}
.pt-cat .ct{font-family:var(--font-mono);font-size:9px;letter-spacing:0.07em;text-transform:uppercase;color:var(--electric-hover,#4FA8FF);margin-top:7px;}
.pt-cat .ct.forge{color:#E2B45A;}
.pt-cat.rehab .ic{color:var(--silver-2);}
.pt-note{font-size:10.5px;line-height:1.5;color:#8b939d;margin:14px 4px 0;text-wrap:pretty;}
.pt-note b{color:var(--iron);font-weight:700;}
/* 6 · the gym leaderboard */
.pt-board .d-dd{margin-bottom:11px;}
.pt-bcard{--catc:var(--cat,var(--electric));}
.pt-bh{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px;}
.pt-bh .e{font-family:var(--font-body);font-weight:700;font-size:8.5px;letter-spacing:0.13em;text-transform:uppercase;color:#9aa0a8;}
.pt-bh .n{font-family:var(--font-cond);font-weight:900;font-size:22px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1;margin-top:4px;white-space:nowrap;}
.pt-bh .r{text-align:right;flex:0 0 auto;}
.pt-seg{display:flex;gap:6px;margin:13px 0 9px;}
.pt-seg button{flex:1;background:#fff;border:1px solid var(--plate);border-radius:5px;font-family:var(--font-cond);font-weight:900;font-size:12.5px;letter-spacing:0.05em;text-transform:uppercase;color:#77808c;padding:9px 4px;min-height:38px;cursor:pointer;}
.pt-seg button.on{background:var(--electric);border-color:var(--electric);color:#fff;}
.pt-lb{padding:4px 0;}
.pt-lb .r{display:flex;align-items:center;gap:11px;padding:9px 14px;border-top:1px solid #F1F2F4;}
.pt-lb .r:first-child{border-top:0;}
.pt-lb .rk{flex:0 0 22px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;color:#9aa0a8;text-align:center;}
.pt-lb .r.top .rk{color:var(--iron);}
.pt-lb .b{flex:1 1 auto;min-width:0;}
.pt-lb .nm{font-family:var(--font-cond);font-weight:800;font-size:15px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.pt-lb .dt{font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.05em;text-transform:uppercase;color:#a6acb4;margin-top:2px;}
.pt-lb .sc{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--iron);flex:0 0 auto;}
.pt-lb .r.me{background:#EAF1FC;border-top-color:#dbe7f8;box-shadow:inset 3px 0 0 var(--electric);}
.pt-lb .r.me .nm,.pt-lb .r.me .sc{color:var(--electric);}
.pt-cta{display:flex;width:100%;align-items:center;justify-content:center;gap:8px;margin-top:12px;background:var(--electric);border:0;border-radius:6px;color:#fff;font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;padding:13px;min-height:46px;cursor:pointer;font-family:var(--font-cond);}
.pt-cta:hover{filter:brightness(1.12);}
@media (max-width:540px){.d-go-mid .nm{font-size:25px;}.d-ppr .n{flex-basis:96px;}.pt-bh .n{white-space:normal;}}

/* log panel + saved note on the gym board */
.pt-log{background:#fff;border:1px solid var(--plate);border-left:3px solid var(--electric);border-radius:8px;padding:13px 14px;margin-top:12px;}
.pt-log .hd{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);margin-bottom:9px;}
.pt-log .row{display:flex;gap:8px;}
.pt-log input{flex:1 1 auto;min-width:0;border:1px solid var(--plate);border-radius:6px;background:var(--chalk);font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--iron);padding:11px 12px;min-height:46px;outline:none;}
.pt-log input:focus{border-color:var(--electric);background:#fff;}
.pt-log .go{flex:0 0 auto;background:var(--electric);border:0;border-radius:6px;color:#fff;font-family:var(--font-cond);font-weight:900;font-size:13.5px;letter-spacing:0.05em;text-transform:uppercase;padding:0 20px;min-height:46px;cursor:pointer;}
.pt-log .go:disabled{background:var(--plate);color:#9aa0a8;cursor:default;}
.pt-log .ft{font-size:10px;color:#8b939d;margin-top:8px;}
.pt-saved{display:flex;align-items:center;gap:8px;background:#EAF7EF;border:1px solid #cfe9d9;border-radius:7px;color:#16884a;font-size:11px;padding:10px 12px;margin-top:12px;}
.pt-saved b{font-weight:800;}

/* condensed continue card + the standalone log-a-score button [12 Aug] */
.d-go.slim .d-go-mid{margin-top:0;}
.d-go.slim .d-go-main{padding:15px 16px 14px;}
.d-logbtn{display:flex;width:100%;align-items:center;gap:13px;margin:0 0 12px;text-align:left;background:#fff;border:1px solid var(--plate);border-radius:9px;padding:13px 15px;cursor:pointer;color:var(--iron);font-family:inherit;position:relative;overflow:hidden;transition:border-color .12s;}
.d-logbtn::before{content:"";position:absolute;top:0;bottom:0;left:0;width:3px;background:var(--electric);}
.d-logbtn:hover{border-color:var(--electric);}
.d-logbtn:active{transform:translateY(1px);}
.d-logbtn .ic{flex:0 0 auto;width:40px;height:40px;border-radius:8px;background:var(--electric);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 6px 18px rgba(7,93,198,0.35);}
.d-logbtn .tx{flex:1 1 auto;min-width:0;}
.d-logbtn .nm{display:block;font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:0.05em;text-transform:uppercase;line-height:1;color:var(--iron);}
.d-logbtn .sb{display:block;font-size:11px;color:#8b939d;margin-top:4px;}
.d-logbtn>svg{margin-left:auto;flex:0 0 auto;color:var(--electric)!important;animation:logArrow 1.6s cubic-bezier(0.2,0.7,0.2,1) infinite;}
@keyframes logArrow{0%,100%{transform:translateX(0);}50%{transform:translateX(4px);}}
@media (prefers-reduced-motion:reduce){.d-logbtn>svg{animation:none;}}

/* log-a-score full-screen sheet (Starting Numbers shell over the dashboard) */
.d-logwrap{position:absolute;inset:0;z-index:70;display:flex;flex-direction:column;background:rgba(5,5,5,0.45);animation:shFade .18s cubic-bezier(0.2,0.7,0.2,1);}
.d-logwrap .m-sheet{flex:1 1 auto;min-height:0;margin-top:26px;animation:shUp .22s cubic-bezier(0.2,0.7,0.2,1);}
.lg-pick .d-sheet-search{margin:14px 0 10px;}
.lg-grp{font-family:var(--font-body);font-weight:800;font-size:8.5px;letter-spacing:0.13em;text-transform:uppercase;color:#9aa0a8;margin:14px 2px 4px;}
.d-sheet-list-r{display:flex;width:100%;align-items:center;gap:11px;text-align:left;background:#fff;border:1px solid var(--plate);border-radius:8px;padding:9px 11px;margin-bottom:7px;cursor:pointer;font-family:inherit;min-height:52px;}
.d-sheet-list-r:hover{border-color:var(--electric);}
.d-sheet-list-r .b{flex:1 1 auto;min-width:0;}
.d-sheet-list-r .nm{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.02em;text-transform:uppercase;color:var(--iron);line-height:1.05;}
.d-sheet-list-r .sb{font-size:10px;color:#8b939d;margin-top:2px;}
.lg-donecont{width:100%;text-align:left;margin-top:16px;}
.lg-sheet .m-sheet-mark:disabled{background:var(--plate);color:#9aa0a8;cursor:default;}
.lg-sheet .m-sheet-mark.ghost{background:none;border:1px solid var(--plate);color:#7a818c;}

/* CHASE A STANDARD — the Road to Rx'd catalogue page (mock's List screen) */
.pt-head{margin:4px 2px 12px;}
.pt-head .eb{font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.15em;text-transform:uppercase;color:var(--electric-deep,#044399);}
.pt-head .t{font-family:var(--font-cond);font-weight:900;font-size:34px;letter-spacing:0.01em;text-transform:uppercase;color:var(--iron);line-height:0.95;margin-top:5px;}
.pt-head .lede{font-size:11.5px;line-height:1.55;color:#7a818c;margin-top:7px;text-wrap:pretty;}
.pt-search{margin:0 0 10px;background:#fff;}
.pt-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.pt-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--plate);border-radius:999px;font-family:var(--font-body);font-weight:700;font-size:10.5px;color:#5c646f;padding:7px 12px;min-height:32px;cursor:pointer;}
.pt-chip i{width:8px;height:8px;border-radius:50%;}
.pt-chip.on{background:var(--iron);border-color:var(--iron);color:#fff;}
.pt-sectlbl{display:flex;align-items:center;gap:7px;font-family:var(--font-body);font-weight:800;font-size:8.5px;letter-spacing:0.13em;text-transform:uppercase;color:#9aa0a8;margin:14px 2px 7px;}
.pt-sectlbl span{font-family:var(--font-mono);font-size:9px;color:#b3bac2;}
.pt-row.cat .ct{font-family:var(--font-mono);font-size:9px;letter-spacing:0.06em;text-transform:uppercase;color:var(--cat,var(--electric));margin-top:5px;}
.pt-row.cat .ct.turf{color:#16884a;}
.pt-row.done{opacity:0.82;}
.pt-row.done .nm{color:#666;}
.pt-badge.turf{color:#16884a;background:#EAF7EF;border:1px solid #cfe9d9;}

/* PROGRESS reworked [12 Aug]: big simple hero + wins/cycle cards + icon rows */
.pr-hero{background:var(--iron);border:1px solid var(--graphite);border-top:3px solid var(--electric);border-radius:10px;padding:17px 16px 15px;color:#fff;margin-bottom:12px;}
.pr-hero .eb{font-family:var(--font-body);font-weight:700;font-size:9px;letter-spacing:0.15em;text-transform:uppercase;color:var(--silver-2,#9A9A9A);}
.pr-hero .row{display:flex;align-items:baseline;gap:13px;margin-top:8px;}
.pr-hero .pc{font-family:var(--font-cond);font-weight:900;font-size:66px;line-height:0.82;letter-spacing:0.01em;}
.pr-hero .pc em{font-style:normal;font-size:30px;color:var(--electric-bright,#4FA8FF);margin-left:1px;}
.pr-hero .ct{font-size:11px;line-height:1.5;color:#9A9A9A;}
.pr-hero .ct b{color:#fff;font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:0.03em;text-transform:uppercase;}
.pr-segs{display:flex;gap:3px;margin-top:16px;}
.pr-segs i{flex:1 1 0;height:13px;border-radius:2px;background:rgba(255,255,255,0.14);}
.pr-segs i.on{background:var(--electric);}
.pr-segs i.nx{box-shadow:inset 0 0 0 1.5px var(--electric);animation:segPulse 2.2s infinite;}
@keyframes segPulse{0%,100%{background:rgba(255,255,255,0.14);}50%{background:rgba(7,93,198,0.45);}}
.pr-hero .sc{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:0.07em;text-transform:uppercase;color:#8a8f96;}
.pr-hero .sc span:nth-child(2){color:var(--electric-bright,#4FA8FF);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.d-wins.flat{margin-top:0;border-top:0;padding-top:0;}
.pr-cyfoot{margin-top:10px;padding-top:10px;border-top:1px solid #EFEFEF;font-size:10px;line-height:1.5;color:#9aa0a8;text-wrap:pretty;}
.pr-cath .pr-catdot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;}
.pr-mvh .pt-mi.xs{width:28px;height:28px;border-radius:6px;}
@media (max-width:540px){.pr-hero .pc{font-size:56px;}}

/* ═══════════════════════════════════════════════════════════════════════
   v3.1 · MY MEMBERSHIP (.pf-*) + THE SIGN-OFF (.so-*)
   Lifted from the v3.1 export. The client Profile (p1/profile.js) and the
   versioned document reader (p1/signoff.js) are the only users. The drawer
   drawer foot doubles as the way in (.m-drawer-acct .ac-go, further down).
   ═══════════════════════════════════════════════════════════════════════ */
.pf .pf-sec{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:#8794A1;margin:18px 2px 8px}
.pf-hero{background:#0F1215;border-radius:12px;padding:16px 16px 13px;color:#fff;margin-bottom:12px}
.pf-hero .eb{font-family:var(--font-mono,monospace);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:#4FA8FF;margin-bottom:7px}
.pf-hero .big{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:30px;line-height:1;letter-spacing:.02em;text-transform:uppercase}
.pf-hero .big small{font-family:var(--font-body,Inter,sans-serif);font-weight:600;font-size:12px;letter-spacing:0;text-transform:none;color:#9A9A9A;margin-left:7px}
.pf-hero .sub{font-size:11.5px;line-height:1.55;color:#B9C2CC;margin-top:8px;text-wrap:pretty}
.pf-hero .rule{height:1px;background:#262B31;margin:12px 0 3px}
.pf-hero .pf-kv .k{color:#8794A1}.pf-hero .pf-kv .v{color:#fff}.pf-hero .pf-kv{border-color:#20252B}
.pf-kv{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border-bottom:1px dashed #E4E9EE;font-size:12px}
.pf-kv.last{border-bottom:none;padding-bottom:2px}
.pf-kv .k{color:#5B6672}.pf-kv .v{font-weight:600;color:#12161A;text-align:right}
.pf-card{background:#fff;border:1px solid var(--app-border,#DDE3E9);border-radius:11px;padding:13px 14px;margin-bottom:8px}
.pf-card .ct{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:14.5px;letter-spacing:.03em;text-transform:uppercase;color:#12161A;margin-bottom:3px}
.pf-card .cd{font-size:12px;line-height:1.55;color:#5B6672;text-wrap:pretty}
.pf-row{display:flex;align-items:center;gap:10px;width:100%;background:#fff;border:1px solid var(--app-border,#DDE3E9);border-radius:11px;padding:12px 13px;cursor:pointer;text-align:left;font-family:inherit}
.pf-row .rb{flex:1;min-width:0}.pf-row .rn{display:block;font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:14.5px;letter-spacing:.03em;text-transform:uppercase;color:#12161A}
.pf-row .rs{display:block;font-size:11.5px;color:#8794A1;margin-top:2px}
.pf-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:none;border-radius:9px;background:var(--electric,#075DC6);color:#fff;font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:15px;letter-spacing:.05em;text-transform:uppercase;padding:13px 14px;cursor:pointer;margin-bottom:8px}
.pf-btn:hover{background:#1C77E0}.pf-btn:disabled{opacity:.45;cursor:default}
.pf-btn.ghost{background:#fff;color:#12161A;border:1px solid var(--app-border-strong,#C3CCD6)}
.pf-btn.ghost:hover{border-color:var(--electric,#075DC6);color:var(--electric-deep,#044399);background:#fff}
.pf-btn.danger{background:#fff;color:#A33329;border:1px solid #EFC2BD}.pf-btn.danger:hover{background:#FDF3F2}
.pf-btn.between{justify-content:space-between;text-align:left}
.pf-btn.off{background:#EAEEF2;color:#8794A1}
.pf-fine{font-size:10.5px;line-height:1.5;color:#8794A1;text-wrap:pretty}
.pf-back{display:inline-flex;align-items:center;gap:5px;border:none;background:none;padding:0 0 12px;font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:#5B6672;cursor:pointer}
.pf-back:hover{color:var(--electric,#075DC6)}
.pf-step{font-family:var(--font-mono,monospace);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#8794A1;margin:0 2px 12px}
.pf-lead{font-size:12.5px;line-height:1.6;color:#5B6672;margin-bottom:14px;text-wrap:pretty}
.pf-bn{display:flex;gap:10px;border-radius:10px;padding:11px 12px;margin-bottom:10px;border:1px solid;align-items:flex-start}
.pf-bn .ic{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;margin-top:1px}
.pf-bn .bt{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:13.5px;letter-spacing:.03em;text-transform:uppercase}
.pf-bn .bd{font-size:11.5px;line-height:1.5;margin-top:2px;text-wrap:pretty}
.pf-bn.a{background:#FBF4E4;border-color:#EDD9A4}.pf-bn.a .ic{background:#D9A21B}.pf-bn.a .bt{color:#7a5a0e}.pf-bn.a .bd{color:#8a6d29}
.pf-bn.b{background:#E7F0FC;border-color:#BBD3F2}.pf-bn.b .ic{background:#075DC6}.pf-bn.b .bt{color:#0d3d7d}.pf-bn.b .bd{color:#2a4a72}
.pf-bn.g{background:#E8F6EE;border-color:#BCE3CD}.pf-bn.g .ic{background:#1E9E62}.pf-bn.g .bt{color:#14603d}.pf-bn.g .bd{color:#2e6d4d}
.pf-chip{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.pf-chip.a{background:#FBF4E4;color:#8a6510}.pf-chip.b{background:#E7F0FC;color:#044399}.pf-chip.g{background:#E8F6EE;color:#14603d}
.pf-opt{display:flex;gap:12px;width:100%;background:#fff;border:1px solid var(--app-border,#DDE3E9);border-radius:11px;padding:13px;margin-bottom:8px;cursor:pointer;text-align:left;font-family:inherit}
.pf-opt.slim{padding:11px 13px}
.pf-opt.on{border-color:var(--electric,#075DC6);box-shadow:inset 0 0 0 1px var(--electric,#075DC6)}
.pf-opt .rd{flex:0 0 auto;width:19px;height:19px;border-radius:50%;border:2px solid var(--app-border-strong,#C3CCD6);margin-top:2px}
.pf-opt.on .rd{border-color:var(--electric,#075DC6);background:radial-gradient(circle,var(--electric,#075DC6) 0 42%,#fff 45%)}
.pf-opt .ob{flex:1;min-width:0;display:flex;flex-direction:column}
.pf-opt .ot{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:16px;letter-spacing:.03em;text-transform:uppercase;color:#12161A}
.pf-opt .ot.sm{font-size:14px}
.pf-opt .od{font-size:11.5px;line-height:1.5;color:#5B6672;margin-top:3px;text-wrap:pretty}
.pf-fld{margin-bottom:14px}
.pf-fld .lb{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.pf-fld .lb span{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:#12161A}
.pf-fld .lb em{font-style:normal;font-family:var(--font-mono,monospace);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:#B0730C}
.pf-fld .lb em.soft{color:#8794A1}
.pf-inp{width:100%;border:1px solid var(--app-border-strong,#C3CCD6);border-radius:9px;background:#fff;padding:11px 12px;font-family:var(--font-body,Inter,sans-serif);font-size:13px;font-weight:600;color:#12161A}
.pf-inp:focus{outline:none;border-color:var(--electric,#075DC6)}
.pf-inp.area{font-weight:500;resize:vertical;line-height:1.5}
.pf-inp.attach{display:flex;align-items:center;gap:9px;cursor:pointer;color:#5B6672;font-weight:500;text-align:left}
.pf-inp.attach.on{border-color:#1E9E62;color:#14603d;background:#F4FBF7}
.pf-seg{display:flex;border:1px solid var(--app-border-strong,#C3CCD6);border-radius:9px;overflow:hidden}
.pf-seg button{flex:1;border:none;background:#fff;padding:10px 8px;font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:#5B6672;cursor:pointer;border-right:1px solid var(--app-border,#DDE3E9)}
.pf-seg button:last-child{border-right:none}
.pf-seg button.on{background:var(--electric,#075DC6);color:#fff}
.pf-tick{display:flex;gap:11px;width:100%;background:#fff;border:1px solid var(--app-border,#DDE3E9);border-radius:10px;padding:12px 13px;cursor:pointer;text-align:left;margin-top:4px;font-family:inherit}
.pf-tick .bx{flex:0 0 auto;width:20px;height:20px;border-radius:6px;border:2px solid var(--app-border-strong,#C3CCD6);display:flex;align-items:center;justify-content:center;color:#fff}
.pf-tick.on .bx{background:var(--electric,#075DC6);border-color:var(--electric,#075DC6)}
.pf-tick .tx{font-size:11.5px;line-height:1.5;color:#5B6672}.pf-tick .tx b{color:#12161A}
.pf-chk{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed #E4E9EE}
.pf-chk:last-child{border-bottom:none;padding-bottom:2px}
.pf-chk .ci{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:#C3CCD6;display:flex;align-items:center;justify-content:center;color:#fff;margin-top:1px}
.pf-chk.y .ci{background:#1E9E62}
.pf-chk .cn{display:block;font-weight:600;font-size:12.5px;color:#12161A}
.pf-chk .cs{display:block;font-size:11.5px;color:#8794A1;margin-top:1px;line-height:1.45}
.pf-big.blue{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:18px;color:var(--electric,#075DC6)}
.pf-acct{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:22px;padding:11px 13px;border:1px solid var(--app-border,#DDE3E9);border-radius:10px;background:#F4F6F8}
.pf-acct .al{font-family:var(--font-mono,monospace);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:#8794A1}
.pf-acct .ae{font-size:12px;font-weight:600;color:#12161A}
.pf-out{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--app-border-strong,#C3CCD6);border-radius:7px;background:#fff;padding:8px 11px;font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:#5B6672;cursor:pointer}
.pf-out:hover{border-color:#C4392E;color:#A33329}
/* ===== sign-off: list + IBAppSheet reader additions ===== */
.so-lead{font-size:12.5px;line-height:1.6;color:#5B6672;margin-bottom:12px;text-wrap:pretty}
.so-doc{display:flex;gap:11px;align-items:flex-start;width:100%;background:#fff;border:1px solid var(--app-border,#DDE3E9);border-radius:10px;padding:12px 13px;margin-bottom:7px;cursor:pointer;text-align:left;font-family:inherit}
.so-doc:hover{border-color:var(--electric,#075DC6)}
.so-doc .dx{flex:0 0 auto;width:20px;height:20px;border-radius:6px;border:2px solid var(--app-border-strong,#C3CCD6);display:flex;align-items:center;justify-content:center;color:#fff;margin-top:1px}
.so-doc.on .dx{background:#1E9E62;border-color:#1E9E62}
.so-doc .db{flex:1;min-width:0}
.so-doc .dn{display:block;font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:14.5px;letter-spacing:.03em;text-transform:uppercase;color:#12161A}
.so-doc .dd{display:block;font-size:11.5px;color:#8794A1;margin-top:3px;line-height:1.45}
.so-chip{flex:0 0 auto;border-radius:999px;padding:3px 9px;background:#FBF4E4;color:#8a6510;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-top:2px}
.so-sig{background:#fff;border:1px dashed var(--app-border-strong,#C3CCD6);border-radius:10px;height:92px;display:flex;align-items:flex-end;justify-content:center;padding:12px;opacity:.5}
.so-sig.on{opacity:1;border-color:var(--electric,#075DC6)}
.so-sig span{font-family:'Barlow Condensed',cursive;font-weight:700;font-size:32px;color:#12161A;transform:rotate(-3deg)}
.so-pg{display:flex;gap:5px;padding:12px 18px 0}
.so-pg i{flex:1;height:3px;border-radius:2px;background:#E4E9EE}
.so-pg i.done{background:#1E9E62}.so-pg i.on{background:var(--electric,#075DC6)}
.so-nav{display:flex;justify-content:space-between;gap:10px;padding:4px 0 10px}
.so-nb{border:1px solid var(--app-border-strong,#C3CCD6);border-radius:8px;background:#fff;padding:9px 14px;font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;color:#5B6672;cursor:pointer}
.so-nb.next{background:var(--electric,#075DC6);border-color:var(--electric,#075DC6);color:#fff}
.m-sheet-h{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:21px;letter-spacing:.02em;text-transform:uppercase;color:#12161A;margin:2px 0 8px}


/* v3.1 · the drawer foot's account block doubles as the way into My Membership.
   The whole signed-in-as side is the button; Log Out stays separate so the two
   can't be mistaken for each other. NOTE the drawer foot is LIGHT (--chalk on
   white) — an earlier version of this styled a row for a dark foot and rendered
   white text on a white card, i.e. an empty box. Inherit the block's colours. */
.m-drawer-acct.tap{padding:0;overflow:hidden;align-items:stretch;}
.m-drawer-acct .ac-go{flex:1 1 auto;min-width:0;display:block;text-align:left;background:none;border:none;font-family:inherit;color:var(--iron);padding:10px 12px;cursor:pointer;position:relative;transition:background 120ms var(--ease);}
.m-drawer-acct .ac-go:hover,.m-drawer-acct .ac-go.on{background:rgba(7,93,198,0.06);}
.m-drawer-acct .ac-go .ac-lbl{color:var(--electric);}
.m-drawer-acct .ac-go .ac-sub{font-family:var(--font-body);font-size:10px;color:#8794A1;margin-top:3px;}
.m-drawer-acct .ac-cv{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#b6bdc6;display:flex;}
.m-drawer-acct.tap .ac-out{margin:10px 12px 10px 0;align-self:center;}

/* PATCH · append-only — p1/styles.css
   Everything below is NEW in the 16 Aug sign-off release. If live’s styles.css has
   diverged, append this block instead of dropping the whole file in. It also
   OVERRIDES two existing rules on purpose:
     .so-nav      — gains horizontal padding (it sat flush to the sheet edges)
     .m-sheet-mark.off — new state: the mark button when the page’s gate is unmet
   Nothing else in styles.css changed. */

/* ===== the sign-off document body (window.IB_DOC_PAGES blocks) =====
   Rendered by p1/signoff.jsx inside the IBAppSheet reader. One rule set per
   block type: p · pts · grid · clauses · rows · note · ack · choice · sign. */
.sd{margin-top:16px;max-width:100%}
.sd-b{margin-bottom:15px;min-width:0}
.sd-b:last-child{margin-bottom:0}
.sd-p{margin:0;font-size:13.5px;line-height:1.6;color:#3A4149;text-wrap:pretty}
.sd-p b{color:var(--iron);font-weight:700}
.sd-pts{list-style:none;margin:0;padding:12px 0 0;display:flex;flex-direction:column;gap:9px;border-top:2px solid var(--electric)}
.sd-pts li{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5;color:#3A4149;min-width:0;overflow-wrap:anywhere}
.sd-pts li b{color:var(--iron);font-weight:700}
.sd-pts svg{flex:0 0 15px;width:15px;height:15px;margin-top:2px;color:var(--electric)}
.sd-grid{display:grid;gap:9px}
.sd-gcard{background:#fff;border:1px solid var(--app-border);border-radius:8px;padding:13px 14px;min-width:0;overflow-wrap:anywhere}
.sd-gcard .gh{font-family:var(--font-cond);font-weight:900;font-size:16px;line-height:1;letter-spacing:.03em;text-transform:uppercase;color:var(--iron)}
.sd-gcard .gp{font-size:12.5px;line-height:1.5;color:var(--app-fg-muted);margin-top:6px}
.sd-gcard .gp b{color:var(--iron);font-weight:700}
.sd-cl{border-top:2px solid var(--electric)}
.sd-clrow{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;padding:13px 0;border-bottom:1px solid var(--app-border);align-items:start}
.sd-clrow .n{font-family:var(--font-cond);font-weight:900;font-size:19px;line-height:1;color:var(--electric)}
.sd-clrow .ch{display:block;font-family:var(--font-cond);font-weight:900;font-size:16px;line-height:1.05;letter-spacing:.03em;text-transform:uppercase;color:var(--iron);margin-bottom:5px}
.sd-clrow .cp{display:block;font-size:12.5px;line-height:1.55;color:var(--app-fg-muted)}
.sd-clrow .cp b{color:var(--iron);font-weight:700}
.sd-rows{background:#fff;border:1px solid var(--app-border);border-radius:8px;overflow:hidden}
.sd-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:11px 13px;border-bottom:1px solid #EFF2F5}
.sd-row:last-child{border-bottom:none}
.sd-row .k{flex:1 1 auto;min-width:0;font-size:12.5px;line-height:1.4;color:var(--app-fg-muted)}
.sd-row .v{flex:0 1 auto;font-size:13px;font-weight:700;line-height:1.4;color:var(--iron);text-align:right}
.sd-row .v.hi{font-family:var(--font-cond);font-weight:900;font-size:18px;letter-spacing:.01em;text-transform:none;color:var(--electric)}
/* defs — a definition, not a number: the label IS a heading, the sentence sits beneath */
.sd-defs{background:#fff;border:1px solid var(--app-border);border-radius:8px;overflow:hidden}
.sd-def{padding:13px 14px;border-bottom:1px solid #EFF2F5}
.sd-def:last-child{border-bottom:none}
.sd-def .k{display:block;font-family:var(--font-cond);font-weight:900;font-size:17px;line-height:1.05;letter-spacing:.03em;text-transform:uppercase;color:var(--iron)}
.sd-def .v{display:block;font-size:13px;line-height:1.55;color:var(--app-fg-muted);margin-top:6px;text-wrap:pretty}
.sd-def .v b{color:var(--iron);font-weight:700}
.sd-def .v.hi{font-family:var(--font-cond);font-weight:900;font-size:21px;line-height:1;letter-spacing:.03em;text-transform:uppercase;color:var(--electric);margin-top:7px}
.sd-note{background:#EAF1FC;border:1px solid #BBD3F2;border-left:3px solid var(--electric);border-radius:4px;padding:12px 14px;font-size:12.5px;line-height:1.55;color:#26303A}
.sd-note b{color:var(--iron);font-weight:700}
.sd-note.warn{background:var(--rust-tint);border-color:#EBC7C1;border-left-color:var(--rust)}
.sd-signbox{background:var(--app-surface-sunk);border:1px solid var(--app-border-strong);border-radius:8px;padding:13px 14px}
.sd-signbox .sh{font-family:var(--font-body);font-weight:800;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--electric);margin-bottom:7px}
.sd-signbox p{margin:0;font-size:12.5px;line-height:1.55;color:#26303A}
.sd-signbox p b{color:var(--iron);font-weight:700}
.sd-acks{display:grid;gap:8px}
.sd-ack{display:grid;grid-template-columns:22px minmax(0,1fr);gap:11px;align-items:start;width:100%;text-align:left;background:#fff;border:1px solid var(--app-border);border-radius:8px;padding:12px 13px;cursor:pointer;font-family:inherit}
.sd-ack:hover{border-color:var(--electric)}
.sd-ack .bx{width:22px;height:22px;flex:0 0 auto;border:1.6px solid var(--app-border-strong);border-radius:5px;display:flex;align-items:center;justify-content:center;color:#fff;margin-top:1px}
.sd-ack.on{border-color:var(--electric);background:#F5F9FF}
.sd-ack.on .bx{background:var(--electric);border-color:var(--electric)}
.sd-ack .tx{font-size:12.5px;line-height:1.5;color:#3A4149}
.sd-ack .tx b{color:var(--iron);font-weight:700}
.sd-choice{display:grid;gap:9px}
.sd-choice .cl{font-family:var(--font-body);font-weight:800;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--app-fg-subtle)}
.sd-opt{display:grid;grid-template-columns:20px minmax(0,1fr);gap:11px;align-items:start;width:100%;text-align:left;background:#fff;border:1px solid var(--app-border);border-radius:8px;padding:13px 14px;cursor:pointer;font-family:inherit}
.sd-opt:hover{border-color:var(--electric)}
.sd-opt .rd{width:20px;height:20px;flex:0 0 auto;border:1.6px solid var(--app-border-strong);border-radius:50%;margin-top:1px}
.sd-opt.on{border-color:var(--electric);background:#F5F9FF}
.sd-opt.on .rd{border-color:var(--electric);border-width:6px}
.sd-opt .tx{font-size:12.5px;line-height:1.5;color:#3A4149}
.sd-opt .tx b{color:var(--iron);font-weight:700}
.sd-fine{font-size:11px;line-height:1.5;color:var(--app-fg-subtle)}
.sd-fine.warn{color:var(--forge-deep)}
.so-nav{padding:0 18px 16px}
.m-sheet-mark.off{background:var(--app-surface-sunk);color:var(--app-fg-subtle);cursor:default}
.m-sheet-mark.off .bx{border-color:var(--app-border-strong)}


/* ============================================================================
   v5.4 — THE MEMBER'S APP IS THE MASTER DESIGN  (21 Aug 2026)
   ---------------------------------------------------------------------------
   Everything below is NEW in this rollout — appended, never merged over a live
   block, so nothing that shipped before v5.4 changes weight or order:
     .ef-*    Effectiveness (p1/effect.js + effect-card.js) — Progress > Body
              and the check-in's PULLED panel.
     .op-*    the one-page report (p1/coach-onepage.js) — what the member
              actually reads when a review is published.
     .cr2-app the phone frame the coach's review mounts the MEMBER'S OWN
              components inside (+ .cr2-pull / .cr2-cust / .cr2-gsep).
     .daypick / .ci-* / .dsg-* / .pr-steps   the four-step check-in.
     .pt-bx   the Leaderboard's "Where you sit" fold.
     .cm-mini / .m-prof / .m-bar-tag        the trimmed headers + bar tag.
   The board's own melamine (.wb-*/.bw-*/.ex-*) lives in p1/board.css.
   ============================================================================ */


#root{min-height:100vh;}

/* the drawn notch overlays the bar — pad the bezel's app bar below it so long
   eyebrows (onboarding stages) never run underneath. Real phones use the
   safe-area rule in the max-width block instead. */
.phone .m-bar{padding-top:32px;}


/* ===== CHECK-IN REFRESH — shared client + coach visual language ===== */
/* days-on-plan PATTERN picker (read the shape, not just the count) */
.daypick{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}


/* ═══════════════════════════════════════════════════════════════════════
   ONBOARDING (Ava) — reference-matched. Blue = actions / pills / done-icon /
   completion medallion. Turf green (--turf) = filled progress bars + "watched".
   ═══════════════════════════════════════════════════════════════════════ */
/* overview hero */
.ob-hero{margin:2px 0 18px;}

/* CHALLENGES group — its own treatment so it reads as a different KIND of thing
   from the plan rows above it. Same palette (iron + the one electric blue), but a
   dark card with a series lockup and a left accent stripe, where the active-program
   hero is a flat iron card with a top stripe. */
.m-drawer-lbl.chal{color:var(--electric);}

.dp-chal .cchev{flex:0 0 auto;color:var(--silver);display:flex;}

.dp-next{display:flex;align-items:center;gap:9px;font-size:11px;color:#9aa1aa;line-height:1.4;margin-bottom:12px;}

.dp-next .lk{flex:0 0 auto;width:24px;height:24px;border-radius:50%;border:1px solid var(--plate);display:flex;align-items:center;justify-content:center;color:#bbb;}

.dp-next b{color:#6a6a6a;font-weight:700;}


/* Sunday-brief origin banner */
.tw-brief{display:flex;align-items:center;gap:12px;background:var(--iron);color:#fff;border-radius:9px;padding:13px 14px;margin-bottom:16px;position:relative;overflow:hidden;}



/* ===== On-Ramp · The Sunday Lock-In card + video talking points ===== */
.m-goalscard.lockcard.locked{border-color:var(--electric);}

.m-wgoal.lockrow{align-items:center;}

.m-wgoal.lockrow .lk-go{margin-left:auto;flex:0 0 auto;display:flex;color:#a3a3a3;}

.m-wgoal.lockrow.on .lk-go{color:var(--turf);}

.lk-note{margin-top:12px;padding-top:11px;border-top:1px dashed #e2e2e2;font-size:11.5px;line-height:1.5;color:#6a6a6a;}

.m-vidpts{list-style:none;margin:0;padding:0;counter-reset:vp;}


/* ═════════════════════════════════════════════════════════════════
   ROLLOUT ONBOARDING — extra content blocks used by window.ROLLOUT
   (the same .ob-* card system: lead line, numbered steps, two-up tiles,
   the hard-gate strip, the standard block, keystone chip, first jobs)
   ═════════════════════════════════════════════════════════════════ */
.ob-cp{font-size:13.5px;line-height:1.6;color:#555;margin:0 0 4px;text-wrap:pretty;}

.ob-cp strong{color:var(--iron);font-weight:600;}

.ob-steps{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:12px;}

.ob-steps li{display:grid;grid-template-columns:26px 1fr;gap:11px;align-items:start;}

.ob-steps .n{font-family:var(--font-cond);font-weight:900;font-size:15px;color:var(--electric);line-height:1.3;}

.ob-steps .b{min-width:0;display:flex;flex-direction:column;}

.ob-steps .t{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;color:var(--iron);line-height:1.15;}

.ob-steps .d{font-size:13px;line-height:1.55;color:#555;margin-top:3px;}

.ob-steps .d strong{color:var(--iron);font-weight:600;}

.ob-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--plate);border:1px solid var(--plate);border-radius:7px;overflow:hidden;margin-top:14px;}

@media (max-width:400px){.ob-tiles{grid-template-columns:1fr;}}

.ob-tile{background:#fff;padding:14px 13px 15px;}

.ob-tile .th{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;color:var(--iron);line-height:1;display:flex;align-items:center;gap:8px;}

.ob-tile .th i{width:9px;height:9px;border-radius:2px;background:var(--electric);flex:0 0 auto;}

.ob-tile .tn{font-family:var(--font-mono);font-size:9.5px;letter-spacing:0.04em;color:#9aa3ad;margin:6px 0 7px;}

.ob-tile p{font-size:12.5px;line-height:1.5;color:#555;margin:0;}

/* odd tile out spans the row so no empty plate cell shows */
.ob-tile:last-child:nth-child(odd){grid-column:1 / -1;}

.ob-tiles + .ob-points{margin-top:14px;}

/* the real app screen a card walks through — same shots the videos use */
.ob-shot{margin:0 0 14px;border:1px solid var(--plate);border-radius:7px;overflow:hidden;background:var(--chalk);}

/* the loop the whole system runs on (overview, under the hero) */
.ob-loop{background:#fff;border:1px solid var(--plate);border-top:3px solid var(--electric);border-radius:9px;padding:16px 16px 15px;margin:0 0 13px;}

.ob-loop-l{font-family:var(--font-body);font-weight:800;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--electric);margin-bottom:12px;}

.ob-loop-r{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--plate);border:1px solid var(--plate);border-radius:7px;overflow:hidden;}

.ob-loop-s{background:#fff;padding:12px 12px 13px;}

.ob-loop-s .n{display:block;font-family:var(--font-mono);font-weight:700;font-size:10px;letter-spacing:0.06em;color:var(--electric);}

.ob-loop-s .t{display:block;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:0.04em;text-transform:uppercase;color:var(--iron);line-height:1;margin:6px 0 5px;}

.ob-loop-s .d{display:block;font-size:11.5px;line-height:1.45;color:#666;}

/* TAKE-AWAYS — the rollout module body. The video explains it; these are the
   lines you walk out with, so they are big, few, and arrow-led. */
.ob-takes{margin-top:16px;}

/* collapsible content cards — title row, tap to expand */
.ob-ccard{padding:0;overflow:hidden;}

/* the hard gate strip (overview) */
.ob-gate{margin-top:9px;display:flex;gap:12px;align-items:flex-start;background:var(--iron);border-radius:9px;padding:15px 16px;color:var(--electric);}

.ob-gate > svg{flex:0 0 auto;margin-top:2px;}

.ob-gate.open .ob-gate-t{color:#2b6b45;}

/* what the coach expects (inside a module) */
.ob-std{margin-top:14px;background:var(--iron);border-radius:9px;padding:16px 17px;display:flex;gap:12px;align-items:flex-start;color:var(--electric);}

.ob-std > svg{flex:0 0 auto;margin-top:2px;}

/* first jobs (gate just opened) */
.ob-jobs{margin-top:15px;padding-top:15px;border-top:1px solid var(--plate);display:flex;flex-direction:column;gap:8px;}

.ob-ab-side.next.unlock{flex:1 1 auto;justify-content:center;background:var(--turf);border-color:var(--turf);color:#fff;}

.ob-ab-side.next.unlock:hover{background:#1a9c57;border-color:#1a9c57;color:#fff;}

/* bottom tab: red until that module is done, green tick once it is (.tdone) */
.m-tab.todo:not(.on){color:var(--rust);}

.m-tab.todo:not(.on) .tl{color:var(--rust);}

/* big start / continue button (rollout overview) */
.ob-start{display:flex;align-items:center;gap:14px;width:100%;text-align:left;margin:16px 0 4px;padding:17px 18px;border:none;border-radius:9px;background:var(--electric);color:#fff;cursor:pointer;font-family:inherit;transition:background 120ms var(--ease),transform 80ms var(--ease);}

.ob-start:active{background:var(--electric-deep);transform:translateY(1px);}

.ob-start > svg{flex:0 0 auto;}

/* Workspace appbar: the demo toolbars must never shrink-clip each other (the role
   switch has overflow:hidden, so a squeezed row cut the Coach label off). */
.appbar{flex-wrap:wrap;row-gap:8px;}

.appbar .roletoggle{flex:0 0 auto;white-space:nowrap;}

/* 6+ bottom tabs (rollout: Home + six modules) — tighten the labels so nothing wraps */
.m-tabbar.tight .tl{font-size:8.5px;letter-spacing:0;}


.m-bar-tag{margin-left:8px;flex:0 0 auto;font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:#fff;background:var(--electric);border-radius:999px;padding:4px 9px;}


/* chapter divider */
/* [5.1] the full-bleed matches the container’s REAL padding (.cbody is 16px), so a
   chapter — and a member screen mounted in one — never runs wider than the phone */
.crv .crv-chap{margin:0 -16px;}


/* [4.9] the coach's side of the one-page report: what the member can already see
   (so he writes off the same numbers), the picked-goal list, and the off-list one */
.crv .cr2-pull{background:var(--iron);border-radius:8px;padding:13px 14px 6px;margin-bottom:13px}

.crv .cr2-pull .hd{display:flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.09em;text-transform:uppercase;color:#8E9AA8}

.crv .cr2-pull .rows{margin-top:9px}

.crv .cr2-pull .r{display:flex;align-items:baseline;gap:9px;padding:8px 0;border-top:1px solid rgba(255,255,255,.09)}

.crv .cr2-pull .r:first-child{border-top:none}

.crv .cr2-pull .r .k{flex:1 1 auto;min-width:0;font-family:var(--font-mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:#8E9AA8}

.crv .cr2-pull .r .v{flex:0 0 auto;font-family:var(--font-cond);font-weight:900;font-size:17px;color:#fff;line-height:1}

.crv .cr2-pull .r .d{flex:0 0 auto;width:132px;text-align:right;font-size:10.5px;line-height:1.35;color:#9AA3AD}

.crv .cr2-bench .bi.on{border-color:var(--electric);background:rgba(7,93,198,.10)}

.crv .cr2-bench .bi.on .n{color:var(--electric)}

.crv .cr2-cust{margin-top:10px;padding-top:11px;border-top:1px dashed var(--plate)}

/* [5.0] the seam inside the one Goals chapter: what landed, then what's next */
.crv .cr2-gsep{display:flex;align-items:center;gap:9px;margin:16px 0 11px;font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--iron)}

.crv .cr2-gsep::after{content:"";flex:1 1 auto;height:2px;background:var(--plate)}

.crv .cr2-cust .l{display:block;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a;margin-bottom:7px}


/* ── guided onboarding: WELCOME takeover (first entry — both doors) ──
   Full-bleed BLACK over the whole screen (absolute against .phone .screen, so it
   covers the app bar too): badge, the name in electric, the jobs as a ruled list,
   one button in — no glow, no gradient, and it FITS the phone without scrolling.
   Namespaced .obw-w-*. */
.obw-welcome{position:absolute;inset:0;z-index:58;display:flex;flex-direction:column;padding:20px 24px calc(18px + env(safe-area-inset-bottom));background:#050607;color:#fff;overflow-y:auto;animation:obwWIn 240ms var(--ease,cubic-bezier(0.2,0.7,0.2,1)) both;}



/* ============================================================================
   PROGRESS TAB (Aug 2026) — Progress · Body · Achievements.
   Namespaced .pr-*. Components: p1/progress-board.jsx + p1/progress-wall.jsx,
   derivation in p1/progress-engine.js.

   COLOUR, per the design system's three tiers:
     Tier 3 app ladder for every surface (--app-*) — NOT --chalk/--plate,
     which are the marketing light. Cool neutrals, because they sit
     under the blue.
     Tier 1 electric for progress and ownership; --electric-bright is the
     PEAK tone, used only at the Beyond end of a scale.
     Tier 2 turf for "earned" — a standard that has met its mark. Nothing
     in this tab uses forge or rust: falling short of a standard is a
     starting line, never a fault.
   ========================================================================== */
.pr-tri{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--app-border);border:1px solid var(--app-border);border-radius:6px;overflow:hidden;margin-top:16px}



/* ── SETUP JOB 02 · STARTING NUMBERS (window.IBBaselineSheet) ──
   Rides inside the same full-screen .m-sheet as the setup videos: dark bar,
   chalk body, white foot. Everything below is namespaced .sn-*. */
.sn-track{flex:0 0 auto;height:3px;background:var(--gunmetal,#2A2A2A);}

/* 5 · the Programs hub */
.pt-bx{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;background:none;border:0;border-top:1px solid var(--app-border,#DDE3E9);margin-top:12px;padding:10px 0 2px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--app-fg-subtle);cursor:pointer}

.pt-bx svg{width:13px;height:13px;flex:0 0 auto}

.pt-bx:hover{color:var(--app-fg-muted)}

.pt-row{display:flex;width:100%;align-items:center;gap:12px;text-align:left;background:#fff;border:1px solid var(--plate);border-left:3px solid var(--cat,var(--plate));border-radius:8px;padding:12px 13px;margin-bottom:8px;cursor:pointer;font-family:inherit;transition:border-color .12s;}


/* ---- CM mini header (heroes retired on the list screens) ---- */
.cm-mini{padding:4px 2px 12px;border-bottom:1px solid var(--app-border);margin-bottom:14px}

.cm-mini .mm-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}

.cm-mini .mm-t{font-family:var(--font-cond);font-weight:900;text-transform:uppercase;font-size:19px;letter-spacing:.02em;color:var(--app-fg)}

.cm-mini .mm-m{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--app-fg-subtle)}

.cm-mini .mm-s{font-size:12.5px;color:var(--app-fg-muted);margin-top:3px}


/* ---- design-only reference blocks (stripped for live) ---- */
.dsg-note{border:1px dashed var(--app-border-strong);border-radius:10px;padding:10px;margin:14px 0;background:repeating-linear-gradient(135deg,transparent,transparent 9px,rgba(0,0,0,.014) 9px,rgba(0,0,0,.014) 18px)}

.dsg-note .dsg-t{display:flex;align-items:baseline;gap:8px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--app-fg-subtle);margin-bottom:8px}

.dsg-note .dsg-t em{font-style:normal;letter-spacing:.04em;opacity:.75}

.dsg-note>.prio{margin-top:0}


/* the small section label inside the light CM cards — it was inheriting the
   marketing eyebrow colour and vanishing on white */
.coach-app-root .eyebrow.sp{display:block;color:var(--app-fg-subtle);font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.1em;margin:12px 0 6px}


/* CM Events styling lives in p1/cm2.css — it must be scoped to
   `.coach-app-root`, which the coach-app reset would otherwise flatten. */

/* ===== PROFILE · membership, holds & cancellations [Aug 2026] ===== */
.m-prof{display:flex;align-items:center;gap:11px;width:100%;background:#fff;border:1px solid var(--plate,#D9D9D9);border-radius:8px;padding:10px 12px;cursor:pointer;text-align:left;margin-bottom:12px;font-family:inherit}

.m-prof:hover{border-color:var(--electric,#075DC6)}

.m-prof .av{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:#0A0A0A;color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:15px;letter-spacing:.04em}

.m-prof .pb{flex:1;min-width:0;display:flex;flex-direction:column}

.m-prof .pn{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:15.5px;letter-spacing:.03em;text-transform:uppercase;color:#111;line-height:1.15}

.m-prof .pe{font-size:11px;color:#8794A1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.pf .pf-sec{font-family:var(--font-cond,'Barlow Condensed',sans-serif);font-weight:900;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:#8794A1;margin:18px 2px 8px}

/* ===== the sign-off document body (window.IB_DOC_PAGES blocks) =====
   Rendered by p1/signoff.jsx inside the IBAppSheet reader. One rule set per
   block type: p · pts · grid · clauses · rows · note · ack · choice · sign. */
.sd{margin-top:16px;max-width:100%}


/* ============================================================================
   EFFECTIVENESS [4.8] — p1/effect.js + p1/effect-card.jsx
   Progress > Body's execution block, and the check-in's PULLED panel.
   Tier 3 app surfaces throughout; Tier 2 turf/forge/rust only for the score's
   own band and the lever — this is the one card in the client app where
   falling short IS a fault, because it is entirely inside their control.
   ========================================================================== */
.ef-hero{display:flex;align-items:center;gap:15px;background:var(--app-surface-sunk);border:1px solid var(--app-border);border-left:3px solid var(--app-border-strong);border-radius:8px;padding:13px 15px}

.ef-hero[data-tone=turf]{border-left-color:var(--turf)}

.ef-hero[data-tone=blue]{border-left-color:var(--electric)}

.ef-hero[data-tone=forge]{border-left-color:var(--forge)}

.ef-hero[data-tone=rust]{border-left-color:var(--rust)}

.ef-big{flex:0 0 auto;font-family:var(--font-cond);font-weight:900;font-size:50px;line-height:.82;color:var(--app-fg)}

.ef-big i{font-style:normal;font-size:21px;color:var(--app-fg-subtle);margin-left:1px}

.ef-hb{min-width:0}

.ef-tier{font-family:var(--font-cond);font-weight:900;font-size:19px;letter-spacing:.03em;text-transform:uppercase;color:var(--app-fg);line-height:1}

.ef-line{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--app-fg-muted);margin-top:6px;line-height:1.55}

.ef-read{font-size:12.5px;line-height:1.55;color:var(--app-fg-muted);margin-top:12px;text-wrap:pretty}

/* THE REACH LINE [6.3] — which weeks the Effectiveness read actually covered.
   Sits directly above the card so the number is never read without its window. */
.ci-span{font-family:var(--font-mono);font-size:10px;line-height:1.5;letter-spacing:.03em;color:var(--app-fg-subtle);margin:-4px 0 12px;text-wrap:pretty}

/* the one-page report's reach note — only rendered when the execution window is
   shorter than the gap it reports on */
.op-reach{font-size:11.5px;line-height:1.55;color:var(--app-fg-muted);margin:12px 0 0;padding:11px 13px;border-radius:10px;background:var(--app-bg-subtle,rgba(0,0,0,.03));border:1px solid var(--app-border);text-wrap:pretty}

.ef-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:17px 0 10px;padding-top:13px;border-top:1px solid var(--app-border)}

.ef-h span{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--app-fg-subtle)}

.ef-h em{font-style:normal;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--app-fg-muted)}

.ef-graph{display:flex;align-items:flex-end;gap:8px;height:104px}

.ef-wk{flex:1 1 0;display:flex;flex-direction:column;align-items:center;height:100%;min-width:0}

.ef-wk .cols{flex:1 1 auto;display:flex;align-items:flex-end;justify-content:center;gap:3px;width:100%;min-height:0}

.ef-wk .cols i{display:block;width:14px;border-radius:2px 2px 0 0}

.ef-wk .cols i.pl{background:var(--app-surface-sunk);border:1px solid var(--app-border-strong);border-bottom:none}

.ef-wk .cols i.dn{background:var(--electric)}

.ef-wk .vv{font-family:var(--font-mono);font-size:9.5px;font-weight:700;color:var(--app-fg);margin-top:7px}

.ef-wk .lb{font-family:var(--font-mono);font-size:8px;letter-spacing:.05em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:3px;white-space:nowrap}

.ef-wk.cur .lb{color:var(--electric)}

.ef-key{display:flex;flex-wrap:wrap;gap:12px;margin-top:11px}

.ef-key .k{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--app-fg-muted)}

.ef-key .k::before{content:"";width:9px;height:9px;border-radius:2px;background:var(--app-border-strong)}

.ef-key .k.pl::before{background:var(--app-surface-sunk);border:1px solid var(--app-border-strong)}

.ef-key .k.dn::before{background:var(--electric)}

.ef-key .k.no{color:var(--rust-deep)}

.ef-key .k.no::before{background:var(--rust)}

.ef-mbar{display:flex;height:12px;gap:1px;background:var(--app-border);border-radius:3px;overflow:hidden}

.ef-mbar i{display:block;height:100%;min-width:2px}

.ef-mrows{display:flex;flex-direction:column;gap:1px;margin-top:10px;background:var(--app-border);border:1px solid var(--app-border);border-radius:6px;overflow:hidden}

.ef-mrow{display:flex;align-items:center;gap:9px;background:var(--app-surface);padding:8px 10px}

.ef-mrow>i{flex:0 0 auto;width:9px;height:9px;border-radius:2px}

.ef-mrow .n{flex:1 1 auto;min-width:0;font-size:12px;color:var(--app-fg)}

.ef-mrow .v{font-family:var(--font-cond);font-weight:900;font-size:14px;color:var(--app-fg)}

.ef-mrow .p{font-family:var(--font-mono);font-size:9.5px;color:var(--app-fg-subtle);width:36px;text-align:right}

.ef-parts{display:flex;flex-direction:column;gap:12px}

.ef-part{border-left:3px solid var(--app-border);padding-left:11px}

.ef-part.lever{border-left-color:var(--forge)}

.ef-part .r1{display:flex;align-items:baseline;gap:8px}

.ef-part .r1 .n{flex:1 1 auto;min-width:0;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}

.ef-part .r1 .g{font-family:var(--font-mono);font-size:9.5px;color:var(--app-fg-muted);white-space:nowrap}

.ef-part .r1 .p{flex:0 0 auto;font-family:var(--font-cond);font-weight:900;font-size:15px;color:var(--app-fg);width:40px;text-align:right}

.ef-part .bar{height:5px;background:var(--app-surface-sunk);border:1px solid var(--app-border);border-radius:3px;margin-top:6px;overflow:hidden}

.ef-part .bar i{display:block;height:100%;background:var(--app-border-strong)}

.ef-part.lever .bar i{background:var(--forge)}

.ef-part .r2{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:5px}

.ef-foot{margin-top:16px;padding-top:12px;border-top:1px solid var(--app-border);font-size:11px;line-height:1.55;color:var(--app-fg-subtle);text-wrap:pretty}

.ef-foot b{color:var(--app-fg-muted)}

.ef-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--app-border);border:1px solid var(--app-border);border-radius:7px;overflow:hidden}

.ef-s{background:var(--app-surface);padding:11px 10px;min-width:0}

.ef-s .l{display:block;font-family:var(--font-mono);font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:var(--app-fg-subtle)}

.ef-s .v{display:block;font-family:var(--font-cond);font-weight:900;font-size:25px;line-height:1;color:var(--app-fg);margin-top:6px}

.ef-s .d{display:block;font-size:10px;line-height:1.4;color:var(--app-fg-muted);margin-top:4px}

.ef-s.hero[data-tone=turf] .v{color:var(--turf-deep)}

.ef-s.hero[data-tone=blue] .v{color:var(--electric)}

.ef-s.hero[data-tone=forge] .v{color:var(--forge-deep)}

.ef-s.hero[data-tone=rust] .v{color:var(--rust-deep)}

.ef-pull{margin-top:2px}

.ef-pt{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--turf);border-radius:999px;padding:4px 9px;margin-bottom:12px}

.ef-prows{display:flex;flex-direction:column;gap:1px;margin-top:13px;background:var(--app-border);border:1px solid var(--app-border);border-radius:6px;overflow:hidden}

.ef-prow{display:flex;align-items:baseline;justify-content:space-between;gap:12px;background:var(--app-surface);padding:9px 11px}

.ef-prow .k{font-family:var(--font-mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--app-fg-subtle)}

.ef-prow .v{font-size:12.5px;font-weight:600;color:var(--app-fg);text-align:right}

.ef-days{margin-top:14px}

.ef-days .hd{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--app-fg-subtle);margin-bottom:8px}

.ef-days .ds{display:flex;gap:5px}

.ef-days .ds span{flex:1 1 0;text-align:center;padding:8px 0;border:1px solid var(--app-border);border-radius:4px;background:var(--app-surface);font-family:var(--font-cond);font-weight:900;font-size:13px;color:var(--app-fg-subtle)}

.ef-days .ds span.on{background:var(--turf);border-color:var(--turf);color:#fff}

.ef-days .sl{font-size:11.5px;color:var(--forge-deep);margin-top:8px}

.ef-flag{margin-top:14px;padding-top:12px;border-top:1px solid var(--app-border)}

.ef-fbtn{display:inline-flex;align-items:center;gap:7px;background:none;border:1px solid var(--app-border-strong);border-radius:5px;padding:8px 11px;font-family:var(--font-body);font-weight:800;font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--app-fg-muted);cursor:pointer}

.ef-fbtn:hover,.ef-fbtn.on{border-color:var(--electric);color:var(--electric)}

.ef-fnote{font-size:11.5px;line-height:1.55;color:var(--app-fg-muted);margin:10px 0 8px;text-wrap:pretty}

/* the check-in's own two stamps: pulled vs yours */
.m-card.ci-in{border-color:var(--electric);box-shadow:inset 3px 0 0 var(--electric)}

.ci-tag{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--electric);border-radius:999px;padding:3px 8px;margin-left:8px;vertical-align:2px}

.ci-tag.pull{background:var(--turf)}


/* ============================================================================
   THE ONE-PAGE REPORT [4.8] — p1/coach-onepage.jsx
   What the member reads when a review is published. The chaptered review is now
   a COACH tool only; this is one page: his verdict, three numbers, one thing to
   do, two smaller jobs, and links to the detail they already own.
   ========================================================================== */
.op{padding-bottom:4px}

.op-hd{background:var(--iron);border-top:3px solid var(--electric);border-radius:9px 9px 0 0;padding:15px 16px 14px;color:#fff}

.op-hd .eb{font-family:var(--font-body);font-weight:800;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:#6AA4F4}

.op-hd .ttl{font-family:var(--font-cond);font-weight:900;font-size:31px;line-height:.95;letter-spacing:.02em;text-transform:uppercase;margin-top:7px}

.op-hd .sub{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--silver);margin-top:7px}

.op-verdict{background:var(--app-surface);border:1px solid var(--app-border);border-top:none;border-radius:0 0 9px 9px;padding:15px 16px 16px}

.op-verdict .who{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--app-border)}

.op-verdict .av{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--iron);color:#fff;display:grid;place-items:center;font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:.04em}

.op-verdict .who .b{display:flex;flex-direction:column;min-width:0}

.op-verdict .who .n{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:.03em;text-transform:uppercase;color:var(--app-fg);line-height:1.05}

.op-verdict .who .r{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:3px}

.op-verdict .lead{font-family:var(--font-cond);font-weight:900;font-size:21px;line-height:1.15;letter-spacing:.01em;color:var(--app-fg);margin-top:13px;text-wrap:pretty}

.op-verdict .lead b{color:var(--electric)}

.op-verdict .tx{margin-top:11px}

.op-verdict .tx p{margin:0 0 10px;font-size:13px;line-height:1.62;color:#3A4149;text-wrap:pretty}

.op-verdict .tx p:last-child{margin-bottom:0}

.op-verdict .tx b{color:var(--app-fg);font-weight:700}

/* [4.9] HIS HAND. The write-up is the point of the page — blue biro on white,
   the same ink the coach writes his chapter notes in, so the member can see a
   person wrote it. The only place in the app where type leaves the stack. */
.op-verdict .who .hn{margin-left:auto;flex:0 0 auto;font-family:var(--font-mono);font-size:8px;letter-spacing:.09em;text-transform:uppercase;color:var(--app-fg-subtle);border:1px solid var(--app-border);border-radius:999px;padding:3px 8px}

.op-ink{margin-top:14px}

.op-ink p{margin:0 0 12px;font-family:"Caveat","Bradley Hand","Segoe Print",cursive;font-weight:600;font-size:21px;line-height:1.45;color:#1B47A0;text-wrap:pretty}

.op-ink p:last-child{margin-bottom:0}

.op-ink.empty p{font-family:var(--font-body);font-size:12.5px;line-height:1.6;color:var(--app-fg-muted)}

.op-verdict .chg{display:flex;align-items:center;gap:9px;width:100%;margin-top:15px;background:#EAF1FC;border:1px solid #BBD3F2;border-radius:7px;padding:10px 11px;text-align:left;font-family:inherit;font-size:12px;line-height:1.45;color:#1B47A0;cursor:pointer}

.op-verdict .chg:disabled{cursor:default}

.op-verdict .chg b{font-weight:800}

.op-verdict .chg > svg:last-child{margin-left:auto;flex:0 0 auto}

.op-nums{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}

.op-n{display:grid;grid-template-columns:1fr auto;gap:2px 6px;align-items:baseline;background:var(--app-surface);border:1px solid var(--app-border);border-left:3px solid var(--app-border-strong);border-radius:8px;padding:11px 12px;text-align:left;min-width:0;cursor:default}

button.op-n{cursor:pointer}

.op-n{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:baseline;background:var(--app-surface);border:none;border-left:3px solid var(--app-border-strong);padding:12px 13px;text-align:left;font-family:inherit;cursor:pointer;position:relative}

button.op-n:hover{background:#FAFCFE}

.op-n[data-tone=turf]{border-left-color:var(--turf)}

.op-n[data-tone=blue]{border-left-color:var(--electric)}

.op-n[data-tone=forge]{border-left-color:var(--forge)}

.op-n .l{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--app-fg-subtle)}

.op-n .v{grid-row:2;font-family:var(--font-cond);font-weight:900;font-size:20px;line-height:1;color:var(--app-fg);display:flex;align-items:baseline;gap:7px;margin-top:6px}

.op-n .v em{font-style:normal;font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--app-fg-muted)}

.op-n .d{grid-row:3;grid-column:1/3;font-size:10.5px;line-height:1.4;color:var(--app-fg-muted);margin-top:5px}

.op-n .cv{grid-row:2;grid-column:2;color:var(--app-border-strong);display:flex}

.op-change{display:flex;align-items:flex-start;gap:11px;margin-top:10px;background:var(--app-surface);border:1px solid var(--app-border);border-radius:8px;padding:12px 13px}

.op-change.on{border-color:#BBD3F2;background:#EAF1FC}

.op-change .ic{flex:0 0 auto;width:26px;height:26px;border-radius:5px;background:var(--app-surface-sunk);color:var(--app-fg-muted);display:grid;place-items:center}

.op-change.on .ic{background:var(--electric);color:#fff}

.op-change .t{display:block;font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}

.op-change .d{display:block;font-size:11.5px;line-height:1.5;color:var(--app-fg-muted);margin-top:3px}

.op-one{background:var(--iron);border-radius:10px;padding:17px 16px 16px;margin-top:14px;color:#fff;position:relative;overflow:hidden}

.op-one::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--electric)}

.op-one .eb{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-weight:800;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:#6AA4F4}

.op-one .t{font-family:var(--font-cond);font-weight:900;font-size:30px;line-height:.98;letter-spacing:.02em;text-transform:uppercase;margin-top:10px;text-wrap:pretty}

.op-one .d{font-size:12.5px;line-height:1.6;color:var(--silver-2,#C8C8C8);margin-top:9px;text-wrap:pretty}

.op-one .tar{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:#fff;border:1px solid var(--graphite);border-radius:999px;padding:5px 11px}

.op-one .go{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:14px;border:none;border-radius:6px;background:var(--electric);color:#fff;font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:.05em;text-transform:uppercase;padding:13px;cursor:pointer}

.op-one .go:hover{background:var(--electric-hover)}

.op-one .go:active{background:var(--electric-deep);transform:translateY(1px)}

/* [4.9] the measurable half of the one job: what the app reads, where they are
   on it now, and what he is asking for — which is what lets it mark itself. */
.op-one .mm{display:flex;flex-wrap:wrap;align-items:center;gap:7px 9px;margin-top:13px;padding-top:12px;border-top:1px solid var(--graphite);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase}

.op-one .mm .k{flex:0 0 100%;color:#8E9AA8}

.op-one .mm .kx{display:flex;align-items:center;gap:7px;color:#8E9AA8}

.op-one .mm .now{color:#fff;font-weight:700}

.op-one .mm .ar{color:var(--electric-bright,#4E93EE);display:flex}

.op-one .mm .want{color:var(--electric-bright,#4E93EE);font-weight:700}

.op-last.ok .ic{background:var(--turf)}

.op-last:not(.ok) .ic{background:var(--forge)}

.op-sg{margin-top:16px;padding-top:13px;border-top:2px solid var(--app-fg);font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--app-fg-subtle)}

.op-jobs{margin-top:12px}

.op-jobs .hd{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--app-fg-subtle);margin-bottom:8px}

.op-j{display:flex;align-items:flex-start;gap:11px;width:100%;background:var(--app-surface);border:1px solid var(--app-border);border-radius:8px;padding:12px 13px;margin-bottom:7px;text-align:left;font-family:inherit;cursor:pointer}

button.op-j:hover{border-color:var(--electric)}

.op-j .num{flex:0 0 auto;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--electric);padding-top:2px}

.op-j .b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}

.op-j .t{font-family:var(--font-cond);font-weight:900;font-size:16px;line-height:1.05;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg)}

.op-j .d{font-size:11.5px;line-height:1.5;color:var(--app-fg-muted);margin-top:4px}

.op-j .tg{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--electric);margin-top:7px}

.op-j .cv{flex:0 0 auto;color:var(--app-border-strong);display:flex;align-self:center}

.op-last{display:flex;align-items:flex-start;gap:10px;margin-top:12px;background:var(--app-surface-sunk);border:1px solid var(--app-border);border-radius:8px;padding:12px 13px;font-size:12.5px;line-height:1.55;color:var(--app-fg)}

.op-last .ic{flex:0 0 auto;width:22px;height:22px;border-radius:50%;color:#fff;display:grid;place-items:center;margin-top:1px}

.op-last em{display:block;font-style:normal;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:6px}

.op-sign{margin-top:16px;padding-top:14px;border-top:2px solid var(--app-fg)}

.op-sign .q{font-family:var(--font-cond);font-weight:900;font-size:20px;line-height:1.1;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg);text-wrap:pretty}

.op-sign .d{font-size:12.5px;line-height:1.6;color:var(--app-fg-muted);margin-top:7px;text-wrap:pretty}

.op-sign .sg{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:11px}

.op-next{display:flex;align-items:center;gap:11px;margin-top:14px;background:var(--app-surface);border:1px solid var(--app-border);border-radius:8px;padding:11px 13px}

.op-next .ic{flex:0 0 auto;color:var(--app-fg-muted);display:flex}

.op-next .b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}

.op-next .l{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--app-fg-subtle)}

.op-next .t{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:var(--app-fg);margin-top:2px}

.op-next .n{flex:0 0 auto;text-align:right}

.op-next .n b{display:block;font-family:var(--font-cond);font-weight:900;font-size:19px;color:var(--electric);line-height:1}

.op-next .n span{display:block;font-family:var(--font-mono);font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:2px}

.op-where{margin-top:16px;padding-top:14px;border-top:1px solid var(--app-border)}

.op-where .hd{font-family:var(--font-body);font-weight:800;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--app-fg-subtle);margin-bottom:9px}

.op-where .w{display:flex;align-items:center;gap:11px;width:100%;background:none;border:none;border-bottom:1px solid var(--app-border);padding:11px 2px;text-align:left;font-family:inherit;cursor:pointer;color:var(--app-fg)}

.op-where .w:hover .t{color:var(--electric)}

.op-where .w .b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}

.op-where .w .t{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:.02em;text-transform:uppercase}

.op-where .w .d{font-size:11px;color:var(--app-fg-muted);margin-top:2px}

.op-where .w svg{flex:0 0 auto;color:var(--app-border-strong)}


/* ── [5.0] THE CHAPTER HEADER IS A LABEL. Number + title, small, at the top: the
   verdict sentence and the n/of counter came off (the bar already counts). ── */
.crv.cr2 .crv-ch.stat{display:flex;align-items:center;gap:10px;padding:13px 16px 11px;border-bottom:2px solid var(--plate);background:none;min-height:0}

.crv.cr2 .crv-ch.stat .n{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--electric);opacity:1}

.crv.cr2 .crv-ch.stat .b{display:block;flex:1 1 auto;min-width:0}

.crv.cr2 .crv-ch.stat .t{display:block;font-family:var(--font-cond);font-weight:900;font-size:15px;line-height:1.1;letter-spacing:.07em;text-transform:uppercase;color:var(--iron)}

.crv.cr2 .crv-ch.stat .cv{margin-left:auto;flex:0 0 auto}

/* [5.0] steps on the member's Body screen — the number the coach reads, where the
   member can see it, in the same card family as the scan it sits under */
.pr-steps{display:flex;align-items:center;gap:14px;padding:12px 0 2px}

.pr-steps .a{font-family:var(--font-cond);font-weight:900;font-size:30px;line-height:1;letter-spacing:-.01em;color:var(--turf)}

.pr-steps .a i{font-style:normal;font-size:13px;letter-spacing:.06em;color:#888;margin-left:3px}

.pr-steps.under .a{color:var(--forge)}

.pr-steps .b{display:grid;gap:3px;min-width:0}

.pr-steps .b b{font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--iron)}

.pr-steps .b span{font-size:12px;line-height:1.45;color:#888;text-wrap:pretty}


/* ── [5.0] A CHAPTER USES THE WHOLE FRAME. The member's own cards mount inside a
   chapter, so they sit flush and the sections between them get real air and a
   header that reads as a header. ── */
.crv.cr2 .crv-cbody>*+*,.crv.cr2 .crv-cbody>div>*+*{margin-top:18px}

.crv.cr2 .crv-cbody .m-body{display:flex;flex-direction:column;gap:18px;padding:0}

.crv.cr2 .cr2-app .m-body{padding:18px}

.crv.cr2 .crv-cbody .m-body>*+*{margin-top:0}

.crv.cr2 .crv-cbody .m-card{margin:0;width:auto}

.crv.cr2 .crv-sec{display:block}

.crv.cr2 .crv-sec>.hd,.crv.cr2 .crv-pvx>.hd,.crv.cr2 .crv-days>.hd,.crv.cr2 .crv-rec>.hd,.crv.cr2 .cr2-diag>.hd{display:flex;align-items:baseline;gap:8px;margin:0 0 10px;padding:0 0 7px;border-bottom:2px solid var(--plate);font-family:var(--font-cond);font-weight:900;font-size:12px;letter-spacing:.11em;text-transform:uppercase;color:var(--iron)}

.crv.cr2 .crv-sec>.hd em,.crv.cr2 .crv-pvx>.hd em,.crv.cr2 .cr2-diag>.hd em{margin-left:auto;font-style:normal;font-family:var(--font-body);font-weight:400;font-size:11px;letter-spacing:0;text-transform:none;color:#8a8a8a}

.crv.cr2 .crv-sec .pr-steps{padding:2px 0 0}


/* [5.0] a member screen mounted in a chapter sits in the app's own frame — chalk
   behind it, pulled to the edges, so its white cards read as cards */
.crv.cr2 .cr2-app{margin:0 -18px;max-width:calc(100% + 36px);background:var(--chalk);border-top:1px solid var(--plate);border-bottom:1px solid var(--plate)}

.crv.cr2 .cr2-app>.m-card{margin:18px;width:auto}

/* the day pattern is a HIT RATE: colour says how often, the number says how much */
.crv.cr2 .crv-days .ds.pct{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}

.crv.cr2 .crv-days .ds.pct span{display:grid;justify-items:center;gap:3px;padding:7px 0 6px;border-radius:6px;background:var(--chalk);border:1px solid var(--plate)}

.crv.cr2 .crv-days .ds.pct span b{font-family:var(--font-cond);font-weight:900;font-size:13px;letter-spacing:.06em;color:var(--iron)}

.crv.cr2 .crv-days .ds.pct span i{font-family:var(--font-mono);font-style:normal;font-size:9.5px;letter-spacing:.02em;color:#8a8a8a}

.crv.cr2 .crv-days .ds.pct span[data-band="hi"]{background:var(--turf);border-color:var(--turf)}

.crv.cr2 .crv-days .ds.pct span[data-band="hi"] b,.crv.cr2 .crv-days .ds.pct span[data-band="hi"] i{color:#fff}

.crv.cr2 .crv-days .ds.pct span[data-band="mid"]{background:var(--electric);border-color:var(--electric)}

.crv.cr2 .crv-days .ds.pct span[data-band="mid"] b,.crv.cr2 .crv-days .ds.pct span[data-band="mid"] i{color:#fff}

.crv.cr2 .crv-days .ds.pct span[data-band="lo"]{background:var(--forge);border-color:var(--forge)}

.crv.cr2 .crv-days .ds.pct span[data-band="lo"] b,.crv.cr2 .crv-days .ds.pct span[data-band="lo"] i{color:#fff}


/* [5.1] WHAT THE COACH ASKED FOR — top of the Goals tab, marked off its own record */
.d-asked{border-left:3px solid var(--electric)}

.d-asked.done{border-left-color:var(--turf)}

.d-asked .e{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--electric)}

.d-asked.done .e{color:var(--turf)}

.d-asked .t{font-family:var(--font-cond);font-weight:900;font-size:19px;line-height:1.1;letter-spacing:.02em;text-transform:uppercase;color:var(--iron);margin:6px 0 11px;text-wrap:pretty}

.d-asked .r{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:12.5px}

.d-asked .r .k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a}

.d-asked .r .v{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:.03em;text-transform:uppercase;color:var(--iron)}

.d-asked .r .v em{font-style:normal;font-weight:700;color:#8a8a8a}

.d-asked .bar{height:5px;border-radius:3px;background:var(--plate);margin-top:10px;overflow:hidden}

.d-asked .bar i{display:block;height:100%;border-radius:3px;background:var(--electric)}

.d-asked.done .bar i{background:var(--turf)}


/* [5.1] the ask, and the program's preset week — one visual for both */
.d-asked .wy{font-size:12.5px;line-height:1.5;color:#666;margin:-4px 0 12px;text-wrap:pretty}

.d-asked .cells{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--plate);border:1px solid var(--plate);border-radius:6px;overflow:hidden}

.d-asked .cells .c{display:grid;gap:3px;padding:10px 12px;background:#fff}

.d-asked .cells .c .k{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#8a8a8a}

.d-asked .cells .c .v{font-family:var(--font-cond);font-weight:900;font-size:16px;letter-spacing:.02em;text-transform:uppercase;color:var(--iron);line-height:1.05}

.d-asked .cells .c.ask .v{color:var(--electric)}

.d-asked.done .cells .c.ask .v{color:var(--turf)}

.d-asked .st{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a;margin-top:9px}

.d-asked.done .st{color:var(--turf)}

.d-asked .cust{font-size:12.5px;line-height:1.5;color:#666}

.d-preset{border-left:3px solid var(--iron)}

.d-preset .e{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:#8a8a8a;margin-bottom:11px}

.d-preset .gl{display:grid;gap:11px}

.d-preset .gl .g{display:flex;gap:11px;align-items:baseline}

.d-preset .gl .g .n{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--electric);flex:0 0 auto}

.d-preset .gl .g .b{display:grid;gap:3px;min-width:0}

.d-preset .gl .g .b b{font-family:var(--font-cond);font-weight:900;font-size:14px;letter-spacing:.03em;text-transform:uppercase;color:var(--iron);line-height:1.15}

.d-preset .gl .g .b span{font-size:12px;line-height:1.45;color:#777;text-wrap:pretty}

.d-preset .st{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a;margin-top:13px;padding-top:11px;border-top:1px solid var(--plate)}


/* [5.1] the week's lesson is one of the week's jobs, so it sits in the goals card */
.d-preset .d-vid{display:flex;align-items:center;gap:11px;width:100%;margin:14px 0 0;padding:11px 12px;background:var(--iron);border:0;border-radius:6px;color:#fff;text-align:left;cursor:pointer}

.d-preset .d-vid .ic{display:grid;place-items:center;width:26px;height:26px;flex:0 0 auto;background:var(--electric);border-radius:50%;color:#fff}

.d-preset .d-vid .tx{display:grid;gap:2px;flex:1;min-width:0}

.d-preset .d-vid .tx b{font-family:var(--font-cond);font-weight:900;font-size:13.5px;letter-spacing:.04em;text-transform:uppercase}

.d-preset .d-vid .tx span{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.62);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.d-preset .d-vid svg:last-child{color:rgba(255,255,255,.5);flex:0 0 auto}

.d-preset .gl .g.done .n{color:var(--turf)}

.d-preset .gl .g.done .b b{color:#8a8a8a;text-decoration:line-through;text-decoration-thickness:1.5px}

.d-preset .gl .g .b b em{display:block;font-family:var(--font-mono);font-style:normal;font-size:9px;letter-spacing:.08em;text-transform:uppercase;margin-top:3px;text-decoration:none}

.d-preset .gl .g .b b em.ad{color:var(--turf)}

.d-preset .gl .g .b b em.aw{color:#a8a8a8}

.d-allwk{display:flex;align-items:center;gap:10px;width:100%;padding:14px 15px;background:#fff;border:1px solid var(--plate);border-radius:8px;text-align:left;cursor:pointer}

.d-allwk .tx{display:grid;gap:3px;flex:1}

.d-allwk .tx b{font-family:var(--font-cond);font-weight:900;font-size:15px;letter-spacing:.04em;text-transform:uppercase;color:var(--iron)}

.d-allwk .tx span{font-size:12px;color:#777}

.d-allwk svg{color:var(--electric)}

/* v5.4 — the two new blocks on a small phone. Their own @media so nothing
   merges into a live one (the appended rules above are outside any query). */
@media (max-width:540px){
  .ef-big{font-size:44px}
  .ef-wk .cols i{width:11px}
  .op-hd .ttl{font-size:27px}
  .op-one .t{font-size:26px}
}

/* v5.4 fix — THE ACCOUNT ROW STACKS, IT DOES NOT SIT BESIDE LOG OUT.
   `.m-drawer-acct` is a flex ROW with space-between, which was right when the
   account block was a compact two-line label. The v5.4 block (.m-prof: avatar +
   name + email, width:100%) plus a Log out button on the same row overflowed the
   drawer and pushed Log out off screen. When the profile door is present the
   wrapper becomes a plain column: the account button, then Log out full width
   under it. Same shape the coach drawer already uses (coachapp.css). */
.m-drawer-acct.me{display:block;padding:0;border:none;background:none;border-radius:0;}
.m-drawer-acct.me .m-prof{margin-bottom:8px;}
.m-drawer-acct.me .ac-out{width:100%;justify-content:center;}


/* v5.4 — THE ASK, WAITING. A member who has never checked in has no ask yet, and
   rendering nothing left their stage tab opening on Goal 01 with no explanation
   of where the coaching point went. Same card, one muted state: no cells, no bar,
   no colour rail — it is not a goal, it is the absence of one, said plainly. */
.d-asked.waiting{border-left-color:var(--plate,#D9D9D9);background:var(--chalk,#F4F6F8);}
.d-asked.waiting .e{color:#8794A1;}
.d-asked.waiting .t{color:#5B6672;}
.d-asked.waiting .st{color:#8794A1;border-top-color:rgba(0,0,0,0.07);}

/* a print document waits off-screen until IBPrint.sheet() prints it */
.ib-sheetprint{display:none;}

/* ── PULL TO REFRESH [6.8e · 30 Aug 2026] ─────────────────────────────────
   The indicator p1/pull-refresh.js drops into `.screen`. It sits ABOVE the
   app bar in z-order but starts translated to 0, so it is invisible until a
   finger drags it down — no pixels are charged to any screen for it. */
.ib-pull{position:absolute;top:0;left:0;right:0;height:0;z-index:60;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;}
.ib-pull .ib-pull-d{position:absolute;top:6px;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--iron-deep);border:1px solid var(--graphite);color:var(--silver);box-shadow:0 4px 14px rgba(0,0,0,.45);}
.ib-pull .ib-pull-d svg{width:16px;height:16px;}
.ib-pull.ready .ib-pull-d{border-color:var(--electric);color:var(--electric-bright);}
.ib-pull.go .ib-pull-d{border-color:var(--electric);color:var(--electric-bright);animation:ibPullSpin .8s linear infinite;}
@keyframes ibPullSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ib-pull.go .ib-pull-d{animation:none}}

/* v7.0 · THE WAY HOME — the home key on every other section’s bar (lifted from the v7.0 design bundle styles.css) */
/* [6.57] THE WAY HOME, FIRST CELL OF EVERY OTHER SECTION'S BAR - set apart from the
   section's own keys by the same hairline the discipline row uses */
.m-tabbar .m-tab.home-key::after{content:"";position:absolute;top:13px;bottom:13px;right:-1px;width:1px;background:var(--graphite);}
/* a screen with no keys of its own keeps ONE, and it reads as a return, not a tab */
.m-tabbar.solo .m-tab{flex-direction:row;justify-content:center;gap:9px;}
.m-tabbar.solo .m-tab .tl{font-size:11px;letter-spacing:0.03em;}
.m-tabbar.solo .m-tab.home-key::after{display:none;}

/* v7.0 · DRAWER LABEL — the drawer label caption (kept, styling nothing) (lifted from the v7.0 design bundle styles.css) */
.m-drawer-lbl .lad{margin-left:auto;font-family:var(--font-mono);font-size:9px;font-weight:400;letter-spacing:0.02em;text-transform:none;color:#9A9A9A;white-space:nowrap;}
.m-drawer-lbl .lad b{color:var(--iron);font-weight:700;}

/* v7.0 · THE GOALS CARD — the Goals card (.gk) (lifted from the v7.0 design bundle styles.css) */
/* [6.78d · his call] THE CARD IS THE SCREEN. .m-body's 18px page padding against
   the rows' -14px full-bleed pulls left a 4px chalk sliver down both edges of the
   head and every row ("is that a small margin on the outside of this sort of
   stuff"), and the stack stopped wherever the wins ended instead of filling the
   phone. The page is a 14px grid now, so the pulls land exactly on the screen's
   edges, and the card is a column that fills the scroller — the last block takes
   whatever height is left over. */
.gk{padding:14px 14px 0;min-height:100%;display:flex;flex-direction:column}
.gk>*{flex:0 0 auto}
.gk>:last-child{flex:1 1 auto}
.gk-hd{background:var(--iron);color:#fff;margin:-14px -14px 0;padding:13px 15px 14px}
.gk-hd .k{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:#7d8895}
.gk-hd .t{font-family:var(--font-cond);font-weight:900;font-size:25px;letter-spacing:.03em;text-transform:uppercase;line-height:1;margin-top:6px}
.gk-hd .s{font-size:11.5px;line-height:1.4;color:#C9CDD2;margin-top:6px;text-wrap:pretty}
.gk-hd .s b{color:#fff;font-weight:600}
.gk-row{background:var(--app-surface);border:1px solid var(--app-border);border-top:0;margin:0 -14px;padding:9px 14px 10px}
.gk-row:first-of-type{border-top:1px solid var(--app-border)}
.gk-row .top{display:flex;align-items:flex-start;gap:12px}
.gk-row .ttl{min-width:0}
.gk-row .k{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--electric)}
.gk-row .t{font-family:var(--font-cond);font-weight:900;font-size:21px;letter-spacing:.02em;text-transform:uppercase;line-height:1.03;color:var(--iron);margin-top:4px;text-wrap:balance}
.gk-row .fig{margin-left:auto;text-align:right;flex:0 0 auto}
.gk-row .fig b{display:block;font-family:var(--font-cond);font-weight:900;font-size:29px;line-height:.9;color:var(--iron)}
.gk-row .fig b em{font-style:normal;font-size:14px;color:var(--electric)}
.gk-row .fig span{display:block;font-family:var(--font-mono);font-size:7.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--app-fg-subtle);margin-top:4px}
.gk-cl{font-size:11.5px;line-height:1.4;color:var(--app-fg-muted);margin-top:8px;text-wrap:pretty}
.gk-cl b{color:var(--iron)}
.gk-lab{display:flex;align-items:baseline;gap:7px;margin-top:9px}
.gk-lab .l{font-family:var(--font-mono);font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:var(--app-fg-subtle);flex:0 0 auto}
.gk-lab .r{margin-left:auto;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.05em;color:var(--app-fg-muted);text-align:right}
.gk-lab .r b{color:var(--iron);font-weight:700}
/* THE MACRO LAYER · four brackets, one lit, THE NEXT ONE FLAGGED AS THE GOAL.
   His call: "for wellness and moving towards fitness — that is the goal there."
   [6.78d · his call: "the colours for each segment need to be matched to what we
   have as a traditional continuum"] EVERY SEGMENT WEARS ITS OWN RUNG'S COLOUR,
   not just the lit one — the four bands are one ladder (sickness · wellness ·
   fitness · athletic on body comp; beginner · intermediate · Rx'd · beyond on the
   lifts, which has been the same four hexes since 4.6). A cleared band is a
   stronger wash of its own tone, the band you stand in is solid, the one you are
   chasing is white with its own ring. Nothing invents a hue: --z-* fills the
   cells, --z-*-deep writes on them. */
.gk-br4{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-top:9px}
.gk-br4 .s{--zc:var(--app-border-strong);--zd:var(--app-fg-muted);padding:5px 4px 6px;border-radius:2px;background:color-mix(in srgb,var(--zc) 11%,#fff);text-align:center;overflow:hidden}
.gk-br4 .s.z1{--zc:var(--z-sick);--zd:var(--z-sick-deep)}
.gk-br4 .s.z2{--zc:var(--z-well);--zd:var(--z-well-deep)}
.gk-br4 .s.z3{--zc:var(--z-fit);--zd:var(--z-fit-deep)}
.gk-br4 .s.z4{--zc:var(--z-ath);--zd:var(--z-ath-deep)}
.gk-br4 .s .n{display:block;font-family:var(--font-mono);font-size:7px;letter-spacing:.06em;text-transform:uppercase;color:var(--zd);opacity:.78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gk-br4 .s .c{display:block;font-family:var(--font-cond);font-weight:900;font-size:14px;line-height:1;color:var(--zd);margin-top:3px}
.gk-br4 .s.done{background:color-mix(in srgb,var(--zc) 24%,#fff)}
.gk-br4 .s.aim{background:color-mix(in srgb,var(--zc) 8%,#fff)}
.gk-br4 .s.aim .c{opacity:.55}
.gk-br4 .s.on{background:var(--zc)}
.gk-br4 .s.on .n{color:rgba(255,255,255,.82);opacity:1}
.gk-br4 .s.on .c{color:#fff}
/* the amber band is the one fill a white word cannot sit on */
.gk-br4 .s.z2.on .n{color:rgba(0,0,0,.62)}
.gk-br4 .s.z2.on .c{color:var(--iron)}
.gk-br4 .s.next{background:#fff;box-shadow:inset 0 0 0 2px var(--zc)}
.gk-br4 .s.next .n{opacity:1;font-weight:700}
/* THE MICRO LAYER · the notched meter. ONE SHAPE AT THREE GRAINS [6.77 round 4]:
   weeks for the ask, cycles for body comp, wins for performance — so a coach
   learns it once and reads three goals with it. THREE STATES, not two [round 5]:
   solid = hit (posts a win) · part = scanned, moved, under the number · hollow =
   NO SCAN, the cycle rolled and the target accrued. Nobody failed anything. */
.gk-wm{margin-top:6px}
.gk-wm .tr{display:flex;gap:2px;height:14px}
.gk-wm .tr i{flex:1 1 0;border-radius:1px;background:var(--app-surface-sunk);position:relative;overflow:hidden}
.gk-wm .tr i.on{background:var(--electric)}
.gk-wm .tr i.std{background:var(--turf)}
.gk-wm .tr i.part::after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--fill,45%);background:var(--turf)}
.gk-wm .tr i.roll{background:transparent;box-shadow:inset 0 0 0 1.5px var(--app-border-strong)}
.gk-wm .tr i.now{background:var(--electric);box-shadow:inset 0 0 0 2px var(--app-surface),0 0 0 1.5px var(--electric)}
.gk-wm .kinds{display:flex;flex-wrap:wrap;gap:4px 11px;margin-top:6px}
.gk-wm .kinds span{display:flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--app-fg-subtle)}
.gk-wm .kinds b{color:var(--iron);font-weight:700}
.gk-wm .kinds .sw{display:block;width:7px;height:7px;border-radius:1px;text-decoration:none;background:var(--app-border-strong)}
.gk-wm .kinds .sw.std{background:var(--turf)}
.gk-wm .kinds .sw.on{background:var(--electric)}
/* behaviour's supporting layer — the effectiveness score stands in for every
   other behaviour tracked. His words: "we don't have to display everything." */
.gk-eff{display:flex;align-items:baseline;gap:9px;margin-top:8px;padding-top:7px;border-top:1px solid var(--app-border)}
.gk-eff .sc{font-family:var(--font-cond);font-weight:900;font-size:18px;line-height:1;color:var(--iron);flex:0 0 auto}
.gk-eff .sc em{font-style:normal;font-size:10.5px;color:var(--electric)}
.gk-eff .lb{font-family:var(--font-mono);font-size:8px;letter-spacing:.09em;text-transform:uppercase;color:var(--app-fg-subtle);line-height:1.45}
.gk-eff .lb b{color:var(--app-fg-muted);font-weight:700}
/* [6.77e] NO INLINE DOORS — .gk-go is retired. The bottom bar already says Body
   and Performance, and the height a second door costs is height the third goal
   needs to stay above the fold. The rule is kept here in case a stage without a
   tab bar ever renders this card. */
.gk-go{display:block;width:100%;margin-top:9px;background:none;border:0;border-top:1px solid var(--app-border);padding:9px 0 1px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--electric-deep);text-align:left;cursor:pointer}
.gk-go:hover{color:var(--electric)}
/* the wins, in the app's own tagged rows — his call, round three */
.gk-wins{background:var(--app-surface);border:1px solid var(--app-border);border-top:0;margin:0 -14px;padding:11px 14px 12px;display:grid;gap:6px}
.gk-wins .hd{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--app-fg-subtle)}
.gk-wins .p{display:flex;align-items:baseline;gap:8px}
.gk-wins .p .nm{font-family:var(--font-cond);font-weight:900;font-size:13.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--app-fg)}
.gk-wins .p .v{margin-left:auto;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--app-fg)}
.gk-wins .p .t{font-family:var(--font-mono);font-size:8px;letter-spacing:.09em;text-transform:uppercase;padding:2px 5px;border-radius:2px;flex:0 0 auto}
.gk-wins .p .t.std{color:#fff;background:var(--turf)}
.gk-wins .p .t.pr{color:#fff;background:var(--electric)}
.gk-wins .p .t.bod{color:#fff;background:var(--forge-deep)}
.gk-wins .p .t.cl{color:var(--app-fg-muted);border:1px solid var(--app-border-strong)}
.gk-wins .all{background:none;border:0;padding:2px 0 0;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--electric-deep);text-align:left;cursor:pointer}
