/* ════════════════════════════════════════════════════════════════════════════
   IRON BARBELL — THE MEMBER DESKTOP (.cd-*)                    NEW · 10 Sep 2026

   The client's login on a computer. Owner's brief: *"get a client to log into the
   desktop and each week they're going to be asked to complete the next module,
   exactly like a course — keep the phone as the app where they actually do all
   the stuff."* So this surface READS and TEACHES; the phone still does.

   TOKENS. The bound `_ds/` snapshot carries the brand core (`--color-*`) but not
   the Tier 3 light app ladder, so the app values are declared here scoped under
   `.cd` — exactly how desk.css scopes `--dk-*`. Same hexes as p1/styles.css and
   the design system's Tier 3 table. Nothing is invented.

   THE CHROME IS DARK AND THE WORK IS LIGHT. The rail is iron because that is the
   brand's spine and it is what makes a member's login feel like the gym rather
   than a portal; the page is the cool light app surface, because it is a tool.
   ════════════════════════════════════════════════════════════════════════════ */
.cd.cdesk,.cd-signin{--bg:#F4F6F8;--srf:#FFFFFF;--sunk:#EAEEF2;--bd:#DDE3E9;--bd2:#C3CCD6;--fg:#12161A;--mut:#5B6672;--sub:#8794A1;--iron:#0A0A0A;--pitch:#050505;--steel:#1A1A1A;--gun:#2A2A2A;--graph:#3A3A3A;--silver:#9A9A9A;--el:#075DC6;--elh:#1C77E0;--eld:#044399;--elt:#E5EFFC;--elb:#4FA8FF;--turf:#1E9E62;--turfd:#0F6B45;--turft:#E7F5EE;--forge:#D9A21B;--forged:#8A6206;--forget:#FBF2DC;--rust:#C4392E;--rustd:#96261D;--zs:#8C3A31;--zw:#C08A2E;--zf:#075DC6;--za:#4FA8FF;--z-sick:#8C3A31;--z-well:#C08A2E;--z-fit:#075DC6;--z-ath:#4FA8FF;--fc:"Barlow Condensed","Oswald",sans-serif;--fb:"Inter",system-ui,sans-serif}
.cd.cdesk,.cd.cdesk *,.cd-signin,.cd-signin *{box-sizing:border-box}
.cd.cdesk{font-family:var(--fb);color:var(--fg);background:var(--bg);min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr);-webkit-font-smoothing:antialiased}
.cd.cdesk a{color:var(--eld);text-decoration:none}
.cd.cdesk a:hover{text-decoration:underline}
.cd-signin,.cd.cdesk{color:var(--fg)}
.cd.cdesk button{font-family:var(--fb);cursor:pointer;color:inherit}

/* ---------- the rail ---------- */
.cd-rail{background:var(--iron);color:#fff;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;border-right:1px solid var(--graph)}
.cd-brand{padding:22px 20px 18px;border-bottom:1px solid var(--graph);display:flex;gap:11px;align-items:center}
.cd-brand img{width:38px;height:38px;object-fit:contain}
.cd-brand b{display:block;font-family:var(--fc);font-weight:900;font-size:17px;letter-spacing:.04em;line-height:1;text-transform:uppercase}
.cd-brand em{display:block;font-style:normal;font-size:9.5px;letter-spacing:.16em;color:var(--silver);text-transform:uppercase;margin-top:4px}
.cd-who{padding:18px 20px;border-bottom:1px solid var(--graph)}
.cd-who b{display:block;font-family:var(--fc);font-weight:900;font-size:21px;letter-spacing:.03em;text-transform:uppercase;line-height:1.05}
.cd-who span{display:block;font-size:11.5px;color:var(--silver);margin-top:5px}
.cd-nav{padding:12px 10px;display:flex;flex-direction:column;gap:2px;flex:1}
.cd-nav button{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;border-left:3px solid transparent;color:var(--silver);padding:11px 12px;font-size:13px;font-weight:600;text-align:left;transition:color .12s,background .12s}
.cd-nav button:hover{color:#fff;background:var(--steel)}
.cd-nav button.on{color:#fff;background:var(--steel);border-left-color:var(--el)}
.cd-nav svg{width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8}
.cd-nav em{margin-left:auto;font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--el);background:rgba(7,93,198,.16);padding:2px 7px;border-radius:999px}
.cd-nav button.on em{color:#fff;background:var(--el)}
.cd-railft{padding:16px 20px 20px;border-top:1px solid var(--graph);font-size:11px;line-height:1.5;color:var(--silver)}
.cd-railft b{color:#fff;font-weight:600}
.cd-railft button{display:flex;align-items:center;gap:6px;margin-top:14px;background:none;border:1px solid var(--graph);color:var(--silver);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:7px 11px;border-radius:4px}
.cd-railft button:hover{color:#fff;border-color:var(--silver)}

/* ---------- page frame ---------- */
.cd-main{min-width:0;display:flex;flex-direction:column}
.cd-top{background:var(--srf);border-bottom:1px solid var(--bd);padding:26px 40px 22px;display:flex;flex-wrap:wrap;gap:20px;align-items:flex-end;justify-content:space-between}
.cd-eb{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--el)}
.cd-back{display:inline-flex;align-items:center;gap:7px;background:none;border:0;padding:0 0 10px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.cd-back:hover{color:var(--eld)}
.cd-back svg{stroke:currentColor;fill:none;stroke-width:2}
.cd-top h1{font-family:var(--fc);font-weight:900;font-size:38px;line-height:1;letter-spacing:.02em;text-transform:uppercase;margin:9px 0 0;text-wrap:balance}
.cd-top p{margin:9px 0 0;font-size:14px;color:var(--mut);max-width:62ch;line-height:1.55}
.cd-topr{display:flex;gap:26px;align-items:flex-end}
.cd-stat b{display:block;font-family:var(--fc);font-weight:900;font-size:30px;line-height:1;letter-spacing:.02em}
.cd-stat span{display:block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-top:6px}
.cd-page{padding:28px 40px 56px;max-width:1240px;width:100%}
.cd-grid{display:grid;gap:20px}
.cd-g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.cd-g3{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.cd-card{background:var(--srf);border:1px solid var(--bd);border-radius:8px;padding:22px 24px}
.cd-card.stripe{border-top:3px solid var(--el)}
.cd-card h3{font-family:var(--fc);font-weight:900;font-size:19px;letter-spacing:.04em;text-transform:uppercase;margin:0 0 12px}
.cd-lab{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.cd-card p{margin:0 0 10px;font-size:14px;line-height:1.6;color:var(--mut)}
.cd-card p:last-child{margin-bottom:0}
.cd-card p strong,.cd-card li strong,.cd-card p b,.cd-card li b{color:var(--fg);font-weight:700}
.cd-note{font-size:12.5px;color:var(--mut);line-height:1.55}

/* ---------- buttons, tags, bars ---------- */
.cd-btn{display:inline-flex;align-items:center;gap:8px;background:var(--el);color:#fff;border:0;border-radius:4px;padding:11px 17px;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;transition:background .12s}
/* the base `.cd button{color:inherit}` (0,1,1) outranks a single class, so every rule that
   sets a button's OWN colour has to carry the scope too. Found by shooting it: the primary
   key rendered ink-on-blue at 3:1. */
.cd.cdesk .cd-btn,.cd-signin .cd-btn{color:#fff}
.cd.cdesk .cd-btn.ghost,.cd-signin .cd-btn.ghost{color:var(--fg)}
.cd.cdesk .cd-btn[disabled]{color:var(--mut)}
.cd.cdesk .cd-tickb{color:var(--mut)}
.cd.cdesk .cd-tickb.on{color:#fff}
.cd.cdesk .cd-lcb{color:#fff}
.cd-btn:hover{background:var(--elh)}
.cd-btn:active{background:var(--eld);transform:translateY(1px)}
.cd-btn[disabled]{background:var(--sunk);color:var(--sub);cursor:not-allowed;transform:none}
.cd-btn.ghost{background:none;color:var(--fg);border:1px solid var(--bd2)}
.cd-btn.ghost:hover{background:var(--sunk)}
.cd-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.cd-tag{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;padding:4px 9px;border-radius:999px;background:var(--sunk);color:var(--mut)}
.cd-tag.ok{background:var(--turft);color:var(--turfd)}
.cd-tag.now{background:var(--elt);color:var(--eld)}
.cd-tag.wait{background:var(--forget);color:var(--forged)}
.cd-bar{display:block;height:6px;background:var(--sunk);border-radius:999px;overflow:hidden}
.cd-bar i{display:block;height:100%;background:var(--el);border-radius:999px}
.cd-bar i.ok{background:var(--turf)}

/* ---------- the 8-week ladder ---------- */
.cd-ladder{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-top:4px}
.cd-rung{background:var(--sunk);border:1px solid var(--bd);border-radius:6px;padding:11px 8px 12px;text-align:left;position:relative}
.cd-rung b{display:block;font-family:var(--fc);font-weight:900;font-size:15px;letter-spacing:.03em;color:var(--mut)}
.cd-rung span{display:block;font-size:10px;line-height:1.3;color:var(--mut);margin-top:4px;min-height:26px}
.cd-rung.done{background:var(--turft);border-color:#BEE3D0}
.cd-rung.done b,.cd-rung.done span{color:var(--turfd)}
.cd-rung.now{background:var(--el);border-color:var(--el)}
.cd-rung.now b,.cd-rung.now span{color:#fff}
.cd-rung:hover{border-color:var(--el)}
.cd-rung.lock{opacity:1}
.cd-rung.lock b,.cd-rung.lock span{color:var(--mut)}

/* ---------- the course: list + panel ---------- */
.cd-course{display:grid;grid-template-columns:312px minmax(0,1fr);gap:22px;align-items:start}
.cd-mods{background:var(--srf);border:1px solid var(--bd);border-radius:8px;overflow:hidden;position:sticky;top:20px}
.cd-phase{background:var(--sunk);border-bottom:1px solid var(--bd);padding:9px 16px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.cd-mod{display:flex;gap:12px;align-items:flex-start;width:100%;background:none;border:0;border-bottom:1px solid var(--bd);border-left:3px solid transparent;padding:13px 15px;text-align:left}
.cd-mod:hover{background:var(--sunk)}
.cd-mod.on{background:var(--elt);border-left-color:var(--el)}
.cd-mod:last-child{border-bottom:0}
.cd-mn{font-family:var(--fc);font-weight:900;font-size:15px;letter-spacing:.03em;color:var(--mut);width:22px;flex:none;padding-top:1px}
.cd-mod.on .cd-mn{color:var(--eld)}
.cd-mb{min-width:0;flex:1}
.cd-mb b{display:block;font-family:var(--fc);font-weight:900;font-size:15.5px;letter-spacing:.03em;text-transform:uppercase;line-height:1.1}
.cd-mb span{display:block;font-size:11px;color:var(--mut);margin-top:4px;line-height:1.4}
.cd-mtick{width:20px;height:20px;border-radius:999px;border:1.5px solid var(--bd2);flex:none;display:grid;place-items:center;margin-top:1px}
.cd-mtick svg{width:12px;height:12px;stroke:#fff;fill:none;stroke-width:3;opacity:0}
.cd-mtick.done{background:var(--turf);border-color:var(--turf)}
.cd-mtick.done svg{opacity:1}
.cd-mtick.lock{border-style:dashed}

/* ---------- the module panel ---------- */
.cd-pan{background:var(--srf);border:1px solid var(--bd);border-radius:8px;overflow:hidden}
.cd-panh{padding:24px 28px 22px;border-bottom:1px solid var(--bd)}
.cd-panh h2{font-family:var(--fc);font-weight:900;font-size:32px;line-height:1;letter-spacing:.02em;text-transform:uppercase;margin:9px 0 0}
.cd-panh .cd-note{margin-top:12px;max-width:70ch;font-size:14px;color:var(--mut);line-height:1.6}
.cd-panh .cd-note strong{color:var(--fg)}
.cd-sec{padding:24px 28px;border-bottom:1px solid var(--bd)}
.cd-sec:last-child{border-bottom:0}
.cd-sec h4{font-family:var(--fc);font-weight:900;font-size:16px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 14px;display:flex;align-items:center;gap:10px}
.cd-sec h4 em{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.07em;color:var(--mut);font-family:var(--fb)}
.cd-vid{background:var(--iron);border-radius:6px;padding:34px 28px;text-align:center;color:#fff}
.cd-vid .pl{width:52px;height:52px;border-radius:999px;background:var(--el);display:grid;place-items:center;margin:0 auto 14px}
.cd-vid .pl svg{width:20px;height:20px;fill:#fff;stroke:none;margin-left:2px}
.cd-vid b{display:block;font-family:var(--fc);font-weight:900;font-size:20px;letter-spacing:.04em;text-transform:uppercase}
.cd-vid span{display:block;font-size:12px;color:var(--silver);margin-top:7px}
.cd-vid iframe,.cd-vid video{width:100%;aspect-ratio:16/9;border:0;display:block}
.cd-ol{list-style:none;margin:0;padding:0;counter-reset:c;display:grid;gap:1px;background:var(--bd);border:1px solid var(--bd);border-radius:6px;overflow:hidden}
.cd-ol li{counter-increment:c;background:var(--srf);padding:12px 16px 12px 46px;font-size:13.5px;line-height:1.5;color:var(--mut);position:relative}
.cd-ol li::before{content:counter(c,decimal-leading-zero);position:absolute;left:16px;top:12px;font-family:var(--fc);font-weight:900;font-size:13px;color:var(--el);letter-spacing:.04em}
.cd-keys{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cd-keys li{padding-left:20px;position:relative;font-size:14px;line-height:1.55;color:var(--mut)}
.cd-keys li::before{content:"";position:absolute;left:0;top:7px;width:9px;height:9px;background:var(--el);border-radius:2px}
.cd-read{display:grid;gap:12px}
.cd-rp{border:1px solid var(--bd);border-radius:6px;padding:17px 19px;background:var(--srf)}
.cd-rp.done{background:var(--turft);border-color:#BEE3D0}
.cd-rp b{display:block;font-family:var(--fc);font-weight:900;font-size:17px;letter-spacing:.03em;text-transform:uppercase;margin-bottom:8px}
.cd-rp p{margin:0;font-size:14px;line-height:1.65;color:var(--mut)}
.cd-rp .cd-rpf{display:flex;align-items:center;gap:12px;margin-top:14px}
.cd-tickb{display:inline-flex;align-items:center;gap:8px;background:none;border:1px solid var(--bd2);border-radius:4px;padding:7px 13px;font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
.cd-tickb:hover{border-color:var(--el);color:var(--eld)}
.cd-tickb.on{background:var(--turf);border-color:var(--turf);color:#fff}
.cd-tickb svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.6}
.cd-jobs{display:grid;gap:10px}
.cd-job{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--bd);border-radius:6px;padding:15px 17px}
.cd-job.done{background:var(--turft);border-color:#BEE3D0}
.cd-job .jb{flex:1;min-width:0}
.cd-job b{display:block;font-size:14.5px;font-weight:700;color:var(--fg)}
.cd-job span{display:block;font-size:13px;color:var(--mut);margin-top:4px;line-height:1.5}
.cd-job .auto{display:flex;align-items:center;gap:7px;margin-top:9px;font-size:11.5px;font-weight:600;color:var(--eld)}
.cd-job.done .auto{color:var(--turfd)}
.cd-job .auto svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.cd-call{background:var(--sunk);border-left:3px solid var(--el);border-radius:0 6px 6px 0;padding:16px 20px}
.cd-call b{display:block;font-family:var(--fc);font-weight:900;font-size:15px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px}
.cd-call p{margin:0;font-size:13.5px;line-height:1.6;color:var(--mut)}
.cd-panf{padding:20px 28px;background:var(--sunk);border-top:1px solid var(--bd);display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.cd-panf .cd-note{max-width:52ch}
.cd-lockp{padding:40px 28px;text-align:center}
.cd-lockp b{display:block;font-family:var(--fc);font-weight:900;font-size:22px;letter-spacing:.04em;text-transform:uppercase}
.cd-lockp p{margin:10px auto 0;max-width:46ch;font-size:13.5px;color:var(--mut);line-height:1.6}

/* ---------- results ---------- */
.cd-tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.cd-tbl th{text-align:left;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);padding:0 14px 9px 0;border-bottom:1px solid var(--bd)}
.cd-tbl td{padding:12px 14px 12px 0;border-bottom:1px solid var(--bd);color:var(--mut)}
.cd-tbl tr:last-child td{border-bottom:0}
.cd-tbl td b{color:var(--fg);font-weight:700}
.cd-cont{margin-top:6px}
.cd-contb{display:flex;height:14px;border-radius:999px;overflow:hidden}
.cd-contb i{flex:1}
.cd-contl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.cd-contl span{text-align:center}
.cd-mark{position:relative;height:22px;margin-top:6px}
.cd-mark span{position:absolute;transform:translateX(-50%);font-size:11px;font-weight:800;color:var(--fg);white-space:nowrap}
.cd-mark span::before{content:"";position:absolute;left:50%;top:-9px;width:2px;height:7px;background:var(--fg);transform:translateX(-50%)}
.cd-std{display:flex;flex-wrap:wrap;gap:8px}
.cd-std span{font-size:11.5px;font-weight:700;padding:6px 11px;border-radius:999px;background:var(--turft);color:var(--turfd)}
.cd-std span.next{background:var(--elt);color:var(--eld)}

/* ---------- my week / the sheet ---------- */
.cd-wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.cd-day{border:1px solid var(--bd);border-radius:6px;padding:12px 10px 14px;background:var(--srf)}
.cd-day b{display:block;font-family:var(--fc);font-weight:900;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.cd-day u{display:block;text-decoration:none;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:3px 0 9px}
.cd-day em{display:block;font-style:normal;font-size:11.5px;font-weight:700;padding:5px 7px;border-radius:4px;margin-bottom:5px;color:#fff;background:var(--el)}
.cd-day em.z2{background:#2C7A88}
.cd-day em.ct{background:#5B5E8C}
.cd-day em.rest{background:var(--sunk);color:var(--sub)}
.cd-macro{display:flex;gap:26px;flex-wrap:wrap}
.cd-macro div b{display:block;font-family:var(--fc);font-weight:900;font-size:26px;line-height:1;letter-spacing:.02em}
.cd-macro div span{display:block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-top:5px}

/* ---------- sign-in ---------- */
.cd-signin{min-height:100vh;background:var(--iron);display:grid;place-items:center;padding:40px 20px;font-family:var(--fb)}
.cd-sibox{width:100%;max-width:392px;background:var(--srf);border-radius:8px;border-top:3px solid var(--el);padding:34px 34px 28px}
.cd-sibox img{width:46px;height:46px;object-fit:contain;margin-bottom:18px}
.cd-sibox h1{font-family:var(--fc);font-weight:900;font-size:30px;line-height:1;letter-spacing:.03em;text-transform:uppercase;margin:0}
.cd-sibox .cd-note{margin:10px 0 22px}
.cd-fld{margin-bottom:14px}
.cd-fld label{display:block;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--mut);margin-bottom:6px}
.cd-fld input{width:100%;border:1px solid var(--bd2);border-radius:4px;padding:11px 13px;font-size:14px;font-family:var(--fb);color:var(--fg);background:var(--srf)}
.cd-fld input:focus{outline:2px solid var(--elt);border-color:var(--el)}
.cd-sibox .cd-btn{width:100%;justify-content:center;margin-top:6px}
.cd-sift{margin-top:20px;padding-top:16px;border-top:1px solid var(--bd);font-size:11.5px;color:var(--mut);line-height:1.55}

/* ---------- the library: the coaches' card shape, on a light surface ---------- */
.cd-lib{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:20px;align-items:start}
.cd-lc{background:var(--srf);border:1px solid var(--bd);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}
.cd-lcb{display:block;width:100%;text-align:left;background:var(--iron);border:0;padding:22px 24px 20px;transition:background .12s}
.cd-lcb:hover{background:var(--steel)}
.cd-lcb.live{background:var(--el)}
.cd-lcb.live:hover{background:var(--elh)}
.cd-lcb.shut{background:var(--gun);cursor:not-allowed}
.cd-lcb .k{display:block;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.cd-lcb b{display:block;font-family:var(--fc);font-weight:900;font-size:34px;line-height:1;letter-spacing:.02em;text-transform:uppercase;margin:10px 0 7px;color:#fff}
.cd-lcb .m{display:block;font-size:12px;color:rgba(255,255,255,.78);margin-bottom:18px}
.cd-lcb .cd-bar{background:rgba(255,255,255,.24)}
.cd-lcb .cd-bar i{background:#fff}
.cd-lcb .p{display:block;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;margin-top:10px}
.cd-lcm{padding:20px 24px 22px;display:flex;flex-direction:column;gap:14px;flex:1}
.cd-lede{margin:0;font-size:14px;line-height:1.6;color:var(--mut)}
.cd-facts{display:flex;flex-wrap:wrap;gap:8px}
.cd-facts span{font-size:11px;font-weight:600;color:var(--mut);background:var(--sunk);border-radius:999px;padding:5px 11px}
.cd-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:auto}
.cd-libft{margin:22px 0 0;font-size:12.5px;color:var(--mut);max-width:76ch;line-height:1.6}

/* ---------- the report card ---------- */
.cd-rc{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--bd);border:1px solid var(--bd);border-radius:8px;overflow:hidden}
.cd-rct{background:var(--srf);padding:20px 22px 22px}
.cd-rct .k{font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--mut)}
.cd-rct b{display:block;font-family:var(--fc);font-weight:900;font-size:44px;line-height:1;letter-spacing:.01em;margin:12px 0 8px}
.cd-rct b.up{color:var(--turfd)}
.cd-rct b.el{color:var(--eld)}
.cd-rct span{display:block;font-size:12.5px;color:var(--mut);line-height:1.5}
.cd-cmp{display:grid;gap:18px}
.cd-cmpk{display:flex;align-items:baseline;gap:10px;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--fg);margin-bottom:8px}
.cd-dl{font-style:normal;font-size:11px;font-weight:800;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:var(--sunk);color:var(--mut)}
.cd-dl.up{background:var(--turft);color:var(--turfd)}
.cd-dl.dn{background:var(--forget);color:var(--forged)}
.cd-cmpb{display:grid;grid-template-columns:44px minmax(0,1fr) 66px;align-items:center;gap:10px;margin-top:5px}
.cd-cmpb .l{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
.cd-cmpb .t{display:block;height:12px;background:var(--sunk);border-radius:2px;overflow:hidden}
.cd-cmpb .t i{display:block;height:100%;background:var(--bd2)}
.cd-cmpb.now .t i{background:var(--el)}
.cd-cmpb .v{font-family:var(--fc);font-weight:900;font-size:16px;letter-spacing:.02em;text-align:right}
.cd-dev{margin-top:12px}
.cd-dev .t{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.cd-dev .t b{font-size:13px;font-weight:700}
.cd-dev .t em{font-style:normal;font-size:11.5px;font-weight:700;color:var(--mut)}

/* ---------- the module, ONE STEP AT A TIME (the coaches' CvMod shape) ---------- */
.cd-p{display:grid;grid-template-columns:292px minmax(0,1fr);gap:22px;align-items:start}
.cd-mrail{background:var(--srf);border:1px solid var(--bd);border-radius:8px;overflow:hidden;position:sticky;top:20px}
.cd-rhero{padding:16px 20px 20px;border-bottom:1px solid var(--bd);background:var(--sunk)}
.cd-rhero .k{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin-top:14px}
.cd-rhero h3{font-family:var(--fc);font-weight:900;font-size:14px;letter-spacing:.06em;text-transform:uppercase;margin:6px 0 14px;color:var(--eld)}
.cd-rhero h3 span{display:block;color:var(--fg);font-size:21px;line-height:1.1;margin-top:4px}
.cd-rhero .p{display:flex;justify-content:space-between;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin-top:9px}
.cd-rhero .p em{font-style:normal}
.cd-rwk{font-size:11px;color:var(--mut);margin-top:8px}
.cd-rlist{display:flex;flex-direction:column}
.cd-rr{display:flex;gap:10px;align-items:flex-start;text-align:left;background:none;border:0;border-bottom:1px solid var(--bd);border-left:3px solid transparent;padding:11px 14px}
.cd-rr:last-child{border-bottom:0}
.cd-rr:hover{background:var(--sunk)}
.cd-rr.on{background:var(--elt);border-left-color:var(--el)}
.cd-rr .t{min-width:0}
.cd-rr .t b{display:block;font-size:12.5px;font-weight:700;line-height:1.35}
.cd-rr .t i{display:block;font-style:normal;font-size:10.5px;color:var(--mut);margin-top:3px}
.cd-rmk{width:18px;height:18px;flex:none;border-radius:999px;border:1.5px solid var(--bd2);display:grid;place-items:center;margin-top:2px}
.cd-rmk svg{opacity:0;stroke:#fff}
.cd-rmk.done{background:var(--turf);border-color:var(--turf)}
.cd-rmk.done svg{opacity:1}
.cd-rmk.on{border-color:var(--el)}
.cd-pmain{background:var(--srf);border:1px solid var(--bd);border-radius:8px;overflow:hidden}
.cd-pw{padding:34px 40px 30px}
.cd-peb{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.cd-k{font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--sunk);color:var(--mut)}
.cd-k.read{background:var(--elt);color:var(--eld)}
.cd-k.watch{background:var(--iron);color:#fff}
.cd-k.job,.cd-k.auto{background:var(--turft);color:var(--turfd)}
.cd-ph{font-family:var(--fc);font-weight:900;font-size:34px;line-height:1.05;letter-spacing:.02em;text-transform:uppercase;margin:0;text-wrap:balance}
.cd-prule{width:64px;height:3px;background:var(--el);margin:16px 0 22px}
.cd-prose{max-width:70ch}
.cd-prose p{font-size:16px;line-height:1.75;color:var(--fg);margin:0 0 16px}
.cd-prose p.lede{font-size:17px;color:var(--mut)}
.cd-prose h4{font-family:var(--fc);font-weight:900;font-size:16px;letter-spacing:.06em;text-transform:uppercase;margin:26px 0 12px}
.cd-prose .cd-note{font-size:12.5px}
.cd-prose .cd-vid{margin-bottom:18px}
/* ── [7.20] READ-PAGE BLOCKS ────────────────────────────────────────────────
   A read page can now carry app screenshots, a diagram, a table, the member's own
   scan and its own video slot. Same vocabulary as the coach's course renderer
   (desk-codev.jsx CvRead) so a member's course and a coach's do not feel like two
   products. Nothing here is a new colour — all Tier 3 tokens + electric. */
.cd-blk{display:grid;gap:18px;margin:22px 0 6px}
.cd-shot{margin:0;background:var(--sunk);border:1px solid var(--bd);border-radius:8px;padding:20px;text-align:center}
.cd-shot img{max-width:100%;max-height:620px;width:auto;height:auto;display:block;margin:0 auto;border-radius:6px}
.cd-shot figcaption{margin:14px auto 0;font-size:12.5px;line-height:1.55;color:var(--mut);text-align:left;max-width:58ch}
.cd-shot figcaption b{color:var(--fg);font-weight:700}
.cd-shotr{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.cd-shotr .cd-shot{padding:16px}
.cd-shotr .cd-shot img{max-height:440px}
.cd-shotr figcaption{font-size:12px;margin-top:11px}
.cd-vslot{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:var(--iron);border-radius:8px;padding:19px 22px;color:#fff}
.cd-vslot .pl{flex:0 0 auto;width:44px;height:44px;border-radius:999px;background:var(--el);display:grid;place-items:center}
.cd-vslot .pl svg{width:17px;height:17px;fill:#fff;stroke:none;margin-left:2px}
.cd-vslot .vb{flex:1 1 220px;min-width:0}
.cd-vslot b{display:block;font-family:var(--fc);font-weight:900;font-size:17px;letter-spacing:.04em;text-transform:uppercase;color:#fff}
.cd-vslot span{display:block;font-size:12.5px;line-height:1.5;color:var(--silver);margin-top:5px}
.cd-vslot i{flex:0 0 auto;font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--silver);border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:5px 10px}
/* [7.27] FLEX, NOT AUTO-FIT GRID: three cards in a two-up row left a half-width orphan
   with dead space beside it. Flex-grow fills the last row. */
.cd-gridb{display:flex;flex-wrap:wrap;gap:12px}
.cd-gridb .c{flex:1 1 200px;border:1px solid var(--bd);border-top:3px solid var(--el);border-radius:6px;padding:16px 18px;background:var(--srf)}
.cd-gridb .c>b{display:block;font-family:var(--fc);font-weight:900;font-size:16px;letter-spacing:.05em;text-transform:uppercase;color:var(--fg);margin-bottom:7px}
.cd-gridb .c>span{display:block;font-size:13px;line-height:1.55;color:var(--mut)}
.cd-gridb .c>span b{color:var(--fg);font-weight:700}
.cd-stepsb{display:grid;gap:1px;background:var(--bd);border:1px solid var(--bd);border-radius:6px;overflow:hidden;counter-reset:s}
.cd-stepsb .r{counter-increment:s;background:var(--srf);padding:14px 18px 14px 52px;position:relative}
.cd-stepsb .r::before{content:counter(s,decimal-leading-zero);position:absolute;left:18px;top:15px;font-family:var(--fc);font-weight:900;font-size:14px;color:var(--el);letter-spacing:.04em}
.cd-stepsb .r>b{display:block;font-size:14px;font-weight:700;color:var(--fg)}
.cd-stepsb .r>span{display:block;font-size:13px;line-height:1.55;color:var(--mut);margin-top:4px}
.cd-stepsb .r>span b{color:var(--fg);font-weight:700}
/* ---------- [7.27] THREE DIAGRAM BLOCKS: a figure band, the road, the stack ----------
   His note: *"any graphics or visuals — they work really well on these page-style
   things people read."* Drawn from the brand's parts, not invented: the road is iron
   because the five stages are the brand's spine, and `--elb` is the design system's
   `--color-electric-bright` (Tier 1) — electric itself reads 3.4:1 on steel. */
.cd-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(124px,1fr));gap:1px;background:var(--bd);border:1px solid var(--bd);border-radius:6px;overflow:hidden}
.cd-nums>div{background:var(--sunk);padding:16px 18px 17px}
.cd-nums>div>b{display:block;font-family:var(--fc);font-weight:900;font-size:38px;line-height:.88;letter-spacing:.02em;color:var(--fg)}
.cd-nums>div>span{display:block;margin-top:8px;font-size:12px;line-height:1.45;font-weight:600;color:var(--mut)}
.cd-road{display:flex;flex-wrap:wrap;gap:1px;background:var(--graph);border-radius:8px;overflow:hidden}
.cd-road .st{flex:1 1 152px;background:var(--iron);border-top:3px solid var(--graph);padding:15px 16px 17px}
.cd-road .st.on{background:var(--steel);border-top-color:var(--el)}
.cd-road .n{display:block;font-family:var(--fc);font-weight:900;font-size:24px;line-height:1;letter-spacing:.03em;color:var(--silver)}
.cd-road .st.on .n{color:var(--elb)}
.cd-road .st>b{display:block;margin:7px 0 6px;font-family:var(--fc);font-weight:900;font-size:15px;letter-spacing:.05em;text-transform:uppercase;color:#fff}
.cd-road .d{display:block;font-size:12px;line-height:1.5;color:var(--silver)}
.cd-road .d b{color:#fff;font-weight:700}
.cd-road i{display:inline-block;margin-top:12px;font-style:normal;font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--el);border-radius:999px;padding:4px 10px}
.cd-stack{display:grid;gap:12px}
/* [7.27d] THE WRITE-IN BLOCK \u2014 a member fills this in on the page. Same card furniture
   as .cd-job so a job that asks for writing still looks like a job. */
.cd-write{border:1px solid var(--bd);border-top:3px solid var(--el);border-radius:6px;background:var(--srf);padding:16px 18px 18px}
.cd-write .wh{display:flex;gap:12px;align-items:baseline;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.cd-write .wh>b{font-family:var(--fc);font-weight:900;font-size:17px;letter-spacing:.05em;text-transform:uppercase;color:var(--fg)}
.cd-write .wh>i{font-style:normal;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);background:var(--sunk);border-radius:999px;padding:4px 10px}
.cd-write .wh>i.ok{color:#fff;background:var(--turfd)}
.cd-write .wf{display:block;margin-bottom:13px}
.cd-write .wf .l{display:block;font-size:13px;font-weight:700;color:var(--fg)}
.cd-write .wf .h{display:block;margin-top:2px;font-size:12px;line-height:1.45;color:var(--mut)}
.cd-write .wf .h b{color:var(--fg);font-weight:700}
.cd-write textarea{display:block;width:100%;margin-top:7px;padding:10px 12px;font-family:var(--fb);font-size:14px;line-height:1.5;color:var(--fg);background:var(--srf);border:1px solid var(--bd2);border-radius:4px;resize:vertical}
.cd-write textarea::placeholder{color:var(--sub)}
.cd-write textarea:focus{outline:none;border-color:var(--el);box-shadow:0 0 0 3px var(--elt)}
.cd-write .wn{margin:2px 0 0;font-size:12px;line-height:1.5;color:var(--mut)}
/* [7.27c] CROSSFIT'S THEORETICAL HIERARCHY, redrawn in our type rather than lifted as a
   figure \u2014 he has written permission for their material, and a 72dpi PDF crop would
   read as foreign next to Barlow. Base tier lit, because the base is the argument. */
.cd-pyr{display:flex;flex-direction:column;align-items:center;gap:5px;background:var(--iron);border-radius:8px;padding:20px 18px}
.cd-pyr .ti{min-width:0;background:var(--steel);border:1px solid var(--graph);border-radius:4px;padding:9px 14px 10px;text-align:center}
.cd-pyr .ti.on{background:var(--el);border-color:var(--el)}
.cd-pyr .ti>b{display:block;font-family:var(--fc);font-weight:900;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:#fff;line-height:1.15}
.cd-pyr .ti>span{display:block;margin-top:2px;font-size:11px;line-height:1.35;color:var(--silver)}
.cd-pyr .ti.on>span{color:rgba(255,255,255,.86)}
.cd-stack .pt{display:flex;flex-wrap:wrap;gap:12px}
.cd-stack .c{flex:1 1 200px;background:var(--srf);border:1px solid var(--bd);border-top:3px solid var(--el);border-radius:6px;padding:15px 18px 17px}
.cd-stack .n{display:block;font-family:var(--fc);font-weight:900;font-size:13px;letter-spacing:.12em;line-height:1;color:var(--el)}
.cd-stack .c>b{display:block;margin:7px 0 3px;font-family:var(--fc);font-weight:900;font-size:19px;letter-spacing:.04em;text-transform:uppercase;color:var(--fg)}
.cd-stack em{display:block;font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--mut);margin-bottom:9px}
.cd-stack .c>span{display:block;font-size:13px;line-height:1.55;color:var(--mut)}
.cd-stack .c>span b{color:var(--fg);font-weight:700}
.cd-stack .lv{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;background:var(--iron);border-top:3px solid var(--el);border-radius:6px;padding:18px 20px 19px}
.cd-stack .lv .k{flex:0 0 auto;padding-top:4px;font-family:var(--fc);font-weight:900;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--elb)}
.cd-stack .lb{flex:1 1 260px;min-width:0}
.cd-stack .lb>b{display:block;font-family:var(--fc);font-weight:900;font-size:20px;letter-spacing:.04em;text-transform:uppercase;color:#fff}
.cd-stack .lb>span{display:block;margin-top:5px;font-size:13px;line-height:1.55;color:var(--silver)}
.cd-stack .lb>span b{color:#fff;font-weight:700}
.cd-tbl{width:100%;border-collapse:collapse;border:1px solid var(--bd);border-radius:6px;overflow:hidden;font-size:13.5px}
.cd-tbl th{background:var(--sunk);text-align:left;padding:11px 14px;font-family:var(--fc);font-weight:900;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--fg);border-bottom:1px solid var(--bd)}
.cd-tbl td{padding:11px 14px;border-bottom:1px solid var(--bd);color:var(--mut)}
.cd-tbl tr:last-child td{border-bottom:none}
.cd-tbl td:first-child{color:var(--fg);font-weight:600}
.cd-tblc,.cd-prose p.cd-tblc{margin:10px 0 0;font-size:12px;line-height:1.55;color:var(--mut)}
.cd-scan{border:1px solid var(--bd);border-radius:8px;padding:20px 22px;background:var(--srf)}
.cd-scan .n{display:flex;gap:28px;flex-wrap:wrap;margin-bottom:20px}
.cd-scan .cd-cont{margin-bottom:16px}
.cd-scan .n div b{display:block;font-family:var(--fc);font-weight:900;font-size:30px;line-height:1;letter-spacing:.02em;color:var(--fg)}
.cd-scan .n div span{display:block;font-size:10.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--mut);margin-top:6px}
.cd-job.big{margin:6px 0 4px}
.cd-wrap{max-width:70ch;display:grid;gap:14px;margin-top:28px}
.cd-fin{display:flex;gap:14px;align-items:center;background:var(--turft);border:1px solid #BEE3D0;border-radius:8px;padding:16px 18px;flex-wrap:wrap}
.cd-fin .ck{width:30px;height:30px;flex:none;border-radius:999px;background:var(--turf);color:#fff;display:grid;place-items:center}
.cd-fin b{display:block;font-family:var(--fc);font-weight:900;font-size:16px;letter-spacing:.04em;text-transform:uppercase}
.cd-fin p{margin:3px 0 0;font-size:12.5px;color:var(--turfd)}
.cd-pnav{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:16px 40px;background:var(--sunk);border-top:1px solid var(--bd);flex-wrap:wrap}
.cd-pnav .h{font-size:12.5px;color:var(--mut);flex:1;text-align:center;min-width:180px}
.cd.cdesk .cd-btn.sm{padding:8px 13px;font-size:10.5px}
.cd-mods.wide{position:static}
.cd-mmeta{font-size:11px;font-weight:700;color:var(--mut);text-align:right;white-space:nowrap;padding-top:2px}
.cd-mmeta i{display:block;font-style:normal;font-weight:400;color:var(--mut);margin-top:3px}
.cd-mod.shut{opacity:.8;cursor:not-allowed}

@media (max-width:1080px){.cd-course{grid-template-columns:minmax(0,1fr)}.cd-p{grid-template-columns:minmax(0,1fr)}.cd-mrail{position:static}.cd-pw,.cd-pnav{padding-left:24px;padding-right:24px}.cd-mods{position:static}.cd-ladder{grid-template-columns:repeat(4,minmax(0,1fr))}.cd-wk{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:820px){.cd.cdesk{grid-template-columns:minmax(0,1fr)}.cd-rail{position:static;min-height:0}.cd-nav{flex-direction:row;overflow-x:auto;flex:none}.cd-nav button{border-left:0;border-bottom:3px solid transparent;white-space:nowrap}.cd-nav button.on{border-left-color:transparent;border-bottom-color:var(--el)}.cd-top,.cd-page{padding-left:22px;padding-right:22px}.cd-top h1{font-size:30px}}

/* ---------- print: the week, on paper (nothing else) ---------- */
@media print{
  .cd.cdesk{display:block;background:#fff}
  .cd-rail,.cd-top,.cd-nav,.cd-btn,.cd-tickb{display:none!important}
  .cd-page{padding:0;max-width:none}
  .cd-noprint{display:none!important}
  .cd-card{border:1px solid #bbb;break-inside:avoid;page-break-inside:avoid}
  .cd-print-h{display:block!important;margin:0 0 14px;font-family:var(--fc);font-weight:900;font-size:26px;letter-spacing:.03em;text-transform:uppercase}
}
.cd-print-h{display:none}

/* ---------- [7.26] THE SHELF — development courses a coach assigns, under the one
   onboarding course. Empty by default, and it says so in words: an empty grid reads as
   a bug, a sentence reads as a fact. ---------- */
.cd-shelf{margin:34px 0 0;padding:26px 0 0;border-top:1px solid var(--bd)}
.cd-shelf .cd-lab{display:block;margin:0 0 10px}
.cd-shelf .cd-lede{max-width:70ch}
.cd-shelf .cd-lib{margin-top:16px}

/* LIVE [v7.28 · G hotfix, 11 Sep]: EVERY root selector is `.cd.cdesk` — the bare `.cd` class also names the desk's
   five-signal chips (desk-clients) and the phone Profile cards (profile.js); the bare rule painted them as a
   100vh grid. The desktop root carries both classes (clientdesk-host.js). */
/* LIVE [v7.28]: app.html fixes #root to the viewport (overflow:hidden) for the phone frame — the desktop
   scrolls inside it, and the sticky rail sticks to that scroll box. */
#root .cd.cdesk{height:100vh;height:100dvh;overflow:auto}
.cd-phone{margin-top:8px}

/* LIVE [v7.48 · 18 Sep 2026]: the block below is the bundle's own (Version 7.48/handoffs/2026-09-18-v7.48/p1/clientdesk.css),
   lifted whole. One scoping change: the paragraph-size rule is on .cd-fm (the forms reader's root), not .cd-p, so the
   Development course's pages keep their 16px. */
/* ═══ [18 Sep 2026 · owner] THE FORMS COURSE ═══════════════════════════════════
   His second call: "see how we've developed the course-style approach in Development —
   for the forms we want the exact same thing… mirror what we've got for the development
   courses." So the forms render through the COURSE's own chassis (cd-lc / cd-lcb /
   cd-lcm / cd-mods / cd-mod / cd-p / cd-mrail / cd-rlist / cd-pmain / cd-pnav) and this
   block only styles what a course has no equivalent for: a legal document's own block
   types, and the signature. Anything a course already draws is NOT restyled here — a
   change to the chassis has to land on both screens. */
.cd-nav button em.due{background:var(--forge);color:#1A1A1A}
.cd-nav button em.ok{background:var(--turf);color:#fff}
/* the document's own block types, inside the course reader's prose column */
.fm-pts{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:9px}
.fm-pts li{display:grid;grid-template-columns:18px 1fr;gap:11px;align-items:start;font-size:15px;line-height:1.65;color:var(--fg)}
.fm-pts li svg{margin-top:5px;color:var(--el)}
.fm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:0 0 20px}
.fm-gc{background:var(--srf);border:1px solid var(--bd);border-top:2px solid var(--el);border-radius:6px;padding:15px 17px}
.fm-gc>b{display:block;font-family:var(--fc);font-weight:900;font-size:18px;letter-spacing:.03em;text-transform:uppercase;margin-bottom:7px}
.fm-gc span{font-size:14px;line-height:1.65;color:var(--mut)}
.fm-cl{display:grid;margin:0 0 20px;border-top:1px solid var(--bd)}
.fm-clr{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--bd);align-items:start}
.fm-clr .n{font-family:var(--fc);font-weight:900;font-size:19px;color:var(--el)}
.fm-clr .b>b{display:block;font-family:var(--fc);font-weight:900;font-size:18px;letter-spacing:.03em;text-transform:uppercase;margin-bottom:6px}
.fm-clr .b span{font-size:14.5px;line-height:1.7;color:var(--mut)}
.fm-rows,.fm-defs{display:grid;margin:0 0 20px;border-top:1px solid var(--bd)}
.fm-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--bd)}
.fm-row .k{font-size:14.5px;color:var(--mut)}
.fm-row .v{font-family:ui-monospace,SFMono-Regular,monospace;font-size:14.5px;color:var(--fg);text-align:right}
.fm-row .v.hi{font-family:var(--fc);font-weight:900;font-size:19px;color:var(--eld)}
.fm-def{padding:12px 0;border-bottom:1px solid var(--bd)}
.fm-def .k{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--sub);margin-bottom:5px}
.fm-def .v{font-size:14.5px;line-height:1.7;color:var(--fg)}
.fm-def .v.hi{font-weight:700}
.fm-signbox{border:1px solid var(--bd);background:var(--sunk);border-radius:6px;padding:15px 17px;margin:0 0 20px}
.fm-signbox>b{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--sub);margin-bottom:7px}
.fm-signbox p{margin:0;font-size:14.5px;line-height:1.7;color:var(--fg)}
/* the acknowledgements — one tap each, never pre-ticked, and read-only once signed */
.fm-acks{display:grid;gap:10px;margin:0 0 22px}
.fm-ack{display:grid;grid-template-columns:24px 1fr;gap:13px;align-items:start;width:100%;text-align:left;background:var(--srf);border:1px solid var(--bd);border-radius:6px;padding:14px 16px;font-family:inherit;cursor:pointer;transition:border-color .12s,background .12s}
.fm-ack:hover{border-color:var(--el)}
.fm-ack.on{border-color:var(--turf);background:var(--turft)}
.fm-ack.was{cursor:default}
.fm-ack .bx{display:grid;place-items:center;width:22px;height:22px;border:1.5px solid var(--bd2);border-radius:4px;background:#fff;color:#fff}
.fm-ack.on .bx{background:var(--turf);border-color:var(--turf)}
.fm-ack .tx{font-size:14.5px;line-height:1.65;color:var(--fg)}
.fm-choice{border:1px solid var(--bd);border-top:2px solid var(--el);border-radius:6px;background:var(--srf);padding:16px 18px;margin:0 0 22px}
.fm-choice>b{display:block;font-family:var(--fc);font-weight:900;font-size:19px;letter-spacing:.03em;text-transform:uppercase;margin-bottom:12px}
.fm-cbtns{display:flex;flex-wrap:wrap;gap:10px}
.fm-cbtns button{min-height:46px;background:#fff;border:1px solid var(--bd);border-radius:5px;padding:12px 16px;font-family:inherit;font-size:14.5px;color:var(--fg);cursor:pointer}
.fm-cbtns button:hover{border-color:var(--el)}
.fm-cbtns button.on{background:var(--el);border-color:var(--el);color:#fff;font-weight:700}
.fm-cnote{display:block;margin-top:11px;font-size:12.5px;color:var(--mut)}
/* the signature — the one thing a course has no equivalent for */
.fm-sign{margin:30px 0 0;padding:24px;border:1px solid var(--bd);border-top:3px solid var(--el);border-radius:8px;background:var(--srf)}
.fm-sh{font-family:var(--fc);font-weight:900;font-size:27px;line-height:1.05;letter-spacing:.02em;text-transform:uppercase;margin-bottom:10px}
.fm-sp{margin:0;font-size:15px;line-height:1.7;color:var(--mut)}
.fm-srow{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 0}
.fm-in{flex:1;min-width:220px;min-height:52px;font-family:inherit;font-size:17px;color:var(--fg);background:#fff;border:1px solid var(--bd2);border-radius:5px;padding:14px 16px}
.fm-in:focus{outline:none;border-color:var(--el);box-shadow:inset 0 0 0 1px var(--el)}
.fm-srow .cd-btn{min-height:52px}
.fm-srow .cd-btn:disabled{background:var(--bd2);border-color:var(--bd2);cursor:not-allowed}
.fm-hint{display:block;margin-top:12px;font-size:13px;line-height:1.6;color:var(--mut)}
.fm-hint.wait{color:var(--forged)}
.fm-sign .cd-fin{margin:0}
@media(max-width:700px){.fm-srow{flex-direction:column}.fm-srow .cd-btn{width:100%}}

/* ── [18 Sep 2026 · owner] "IT'S GOT ALL SORTS OF DIFFERENT FONTS ALL OVER THE PLACE,
   VERY HARD TO READ." He was looking at a real defect, and it was mine: the clause,
   card and sign-box heading rules were DESCENDANT selectors, so every inline <b> the
   legal copy uses for emphasis — and it uses a lot — was being rendered as a condensed
   uppercase heading MID-SENTENCE ("no joining fee and no annual fee", "I'm signing this
   document"). Those four rules are now direct-child only.

   AND EMPHASIS INSIDE A LEGAL DOCUMENT IS ONE TREATMENT, STATED ONCE: the body face,
   semibold, in ink. Not a second font, not caps, not a colour. A document a member is
   signing should read like one voice, and the only thing bold means is "this is the bit
   that matters". Type sizes step once (17 lede / 15.5 body / 14.5 small) instead of the
   six sizes that were in here. ── */
.cd-prose .fm-cl b,.cd-prose .fm-defs b,.cd-prose .fm-rows b,.cd-prose .fm-grid b,
.cd-prose .fm-acks b,.cd-prose .fm-signbox p b,.cd-prose p b,.cd-prose li b{
  font-family:var(--fb);font-weight:600;font-size:inherit;letter-spacing:0;text-transform:none;color:var(--fg)}
.cd-prose .fm-cl .b>b,.cd-prose .fm-gc>b,.cd-prose .fm-choice>b{font-family:var(--fc);font-weight:900;text-transform:uppercase}
/* one rhythm for the whole document, so nothing needs its own size */
.cd-prose .fm-clr .b>span,.cd-prose .fm-def .v,.cd-prose .fm-gc>span,
.cd-prose .fm-ack .tx,.cd-prose .fm-signbox p,.cd-prose .fm-pts li{font-size:15.5px;line-height:1.7}
.cd-prose .fm-row .k,.cd-prose .fm-row .v{font-size:15px}
.cd-prose .fm-cnote{font-size:13px}
/* and the emphasis a legal clause genuinely needs: a marked term, not a shout */
.cd-prose .fm-clr .b>span b,.cd-prose .fm-def .v b{box-shadow:inset 0 -0.42em 0 var(--elt)}

/* ── ONE RHYTHM, SET AT THE CONTAINER SO EVERYTHING INHERITS IT. The per-block sizes
   were still fighting each other — a 16px clause heading sitting under a 17px lede over
   14.5px body, which is the "all over the place" he was pointing at. Three sizes, and
   the heading is the biggest thing in its own block: lede 17 · body 15.5 · fine 13. ── */
.cd-prose .fm-cl,.cd-prose .fm-defs,.cd-prose .fm-rows,.cd-prose .fm-grid,
.cd-prose .fm-acks,.cd-prose .fm-signbox,.cd-prose .fm-choice{font-size:15.5px;line-height:1.7}
.cd-prose .fm-cl span,.cd-prose .fm-defs span,.cd-prose .fm-grid span,
.cd-prose .fm-acks .tx,.cd-prose .fm-signbox p{font-size:15.5px;line-height:1.7}
.cd-prose .fm-cl .b>b,.cd-prose .fm-gc>b{font-size:19px;line-height:1.15;letter-spacing:.03em}
.cd-prose .fm-clr .n{font-size:21px;line-height:1.1}
.cd-prose .fm-def .k{font-size:11.5px}
.cd-prose .fm-cnote,.cd-prose .fm-def .k{line-height:1.5}
/* and the document's own measure: a legal page reads at 66ch, not the full pane */
.cd-prose .fm-cl,.cd-prose .fm-defs,.cd-prose .fm-rows,.cd-prose .fm-acks,
.cd-prose .fm-signbox,.cd-prose .fm-choice{max-width:66ch}
.cd-prose .fm-cl+p,.cd-fm .cd-prose>p:not(.lede){font-size:15.5px;line-height:1.7}

/* [7.97 · v7.112] THE LIBRARY = Assigned to you · Completed (the finished card is greyed, still opens) */
.cd-libh{display:flex;align-items:baseline;gap:12px;margin:0 0 14px}.cd-libh em{font-style:normal;font-weight:600;letter-spacing:0;text-transform:none;color:var(--mut)}
.cd-lcb.fin{background:var(--sunk)}.cd-lcb.fin:hover{background:var(--bd)}
.cd-lcb.fin .k,.cd-lcb.fin .p,.cd-lcb.fin b{color:var(--mut)}.cd-lcb.fin b{font-size:28px}
.cd-lcb.fin .cd-bar{background:var(--bd);margin-top:14px}.cd-lcb.fin .cd-bar i{background:var(--mut)}
.cd-lc.fin .cd-lcm{padding:14px 24px 16px}
.cd-none{display:flex;gap:14px;align-items:flex-start;background:var(--srf);border:1px solid var(--bd);border-radius:8px;padding:20px 24px;max-width:640px}.cd-none b{display:block;font-size:15px;margin-bottom:4px}.cd-none span{font-size:14px;line-height:1.55;color:var(--mut)}
/* [7.97c–l · v7.112] A STEP A SLIDE (StepShots): text left, the phone shot right, ‹ › arrows, dots; stacks under 600px */
.cd-sts{display:grid;gap:12px}
.cd-stsn{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px}
.cd-stsn button{border:1px solid var(--bd);background:var(--srf);border-radius:4px;padding:9px 11px;text-align:left;font:600 12.5px/1.3 inherit;font-family:inherit;color:var(--mut);cursor:pointer;display:flex;gap:8px;align-items:baseline}
.cd-stsn button em{font-style:normal;font-family:var(--fc);font-weight:900;font-size:13px;color:var(--mut)}
.cd-stsn button.dn em{color:var(--el)}.cd-stsn button.on{border:2px solid var(--el);padding:8px 10px;color:var(--fg)}.cd-stsn button.on em{color:var(--el)}
.cd-sts .r{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:22px;align-items:start;background:var(--srf);border:1px solid var(--bd);border-radius:6px;padding:20px 22px;min-height:420px}
.cd-stsb{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:20px}
.cd-sts{display:grid;gap:12px;container-type:inline-size}
.cd-sts .r{grid-template-columns:minmax(220px,1fr) minmax(0,260px)!important}
@container (max-width:600px){.cd-sts .r{grid-template-columns:1fr!important}.cd-sts .r .cd-shot img{max-height:440px}}
.cd-stsw{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;gap:8px;align-items:center}
.cd-stsa{width:36px;height:36px;border-radius:999px;border:1px solid var(--bd);background:var(--srf);color:var(--fg);font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0 0 3px}
.cd-stsa:hover:not(:disabled){background:var(--el);border-color:var(--el);color:#fff}.cd-stsa:disabled{opacity:.3;cursor:default}
.cd-stsd{display:flex;gap:8px;justify-content:center;margin-top:4px}.cd-stsd button{width:9px;height:9px;border-radius:999px;border:0;padding:0;background:var(--bd);cursor:pointer}.cd-stsd button.on{background:var(--el);width:26px}
.cd-sts .t{display:flex;flex-direction:column}
.cd-stsph{aspect-ratio:1/2;border:1px dashed var(--bd);border-radius:6px;background:repeating-linear-gradient(135deg,var(--sunk) 0 8px,transparent 8px 16px);display:grid;place-items:center;padding:16px;text-align:center}.cd-stsph span{font:600 11px 'JetBrains Mono',monospace;color:var(--mut)}
.cd-sts .t em{display:block;font-style:normal;font-family:var(--fc);font-weight:900;font-size:15px;color:var(--el);letter-spacing:.04em;margin-bottom:6px}
.cd-sts .t b{display:block;font-size:17px;font-weight:700;color:var(--fg)}
.cd-sts .t span{display:block;font-size:14px;line-height:1.6;color:var(--mut);margin-top:6px}.cd-sts .t span b{display:inline;font-size:inherit}
.cd-sts .cd-shot{padding:12px}.cd-sts .cd-shot img{max-height:520px}
@media (max-width:760px){.cd-sts .r{grid-template-columns:1fr}}
.cd-sts .r.wide{grid-template-columns:1fr!important}.cd-sts .r.wide .cd-shot{padding:0;border:0;background:none}.cd-sts .r.wide .cd-shot img{width:100%;max-height:none;border-radius:6px}
