/* Siqwes members-area-v1.css (v1.3, 2026-10-20 founder 21:57 UTC: two-option offer (Class, Weekly) on glass v3 cards, 2 preview chips, account renew note; the four-plan grid, pill and highlight are retired. v1.2.1, 2026-10-20 v0.5 QA: plan head top-aligned, no CTA-row floor, prompt head Nunito; v1.2: v1.1 CLO edits + v1.2 design QA fixes, header icon, account/security, two-step, auth, plan offer, consent, thanks; see spec section 9).
   v1.1 (CLO edits 2026-10-20): login, My classes, course page, lesson page, locked preview.
   v1.1: Lesson M.N numbering (no Day labels in paid classes), Mark lesson done button (localStorage via members-progress-v1.js),
   focus ring inner #0A1838 sitewide, status icons switch by class.
   Spec: brand/specs/members-area-v1.md. DRAFT for Web (mockup due 23:00 UTC 2026-10-20). Not deployed.
   Load order: tokens.css > dark-tokens.css > dark-site.css > polish-v1.css > space-scroll-v2.css > members-area-v1.css (last).
   Pure CSS (style-src 'self'): no inline style attributes. The only script is members-progress-v1.js on members pages (Web decision, see spec 3.6).
   Expand/collapse = native <details>/<summary>. Progress = native <progress>. No dashed strokes, no joined stars. */

:root{
  /* Members titles: the niche accent lifted 12% toward white ("brightened for dark", founder 2026-10-20). Hue stays recognisable; all >=8:1 on glass. */
  --m-title-hub:#48D8F0;  /* accent #2FD3EE + 12% white -> 10.0:1 on glass #0E1B39, 8.7:1 over nebula */
  --m-title-business:#A7EBF7;  /* accent #9BE8F6 + 12% white -> 12.9:1 on glass #0E1B39, 11.2:1 over nebula */
  --m-title-education:#B4DDBF;  /* accent #AAD8B6 + 12% white -> 11.4:1 on glass #0E1B39, 9.9:1 over nebula */
  --m-title-realestate:#EEC6B6;  /* accent #ECBEAC + 12% white -> 10.8:1 on glass #0E1B39, 9.5:1 over nebula */
  --m-title-assistants:#CCC0E9;  /* accent #C5B7E6 + 12% white -> 10.0:1 on glass #0E1B39, 8.7:1 over nebula */
  --m-title-bookkeeping:#E7BED5;  /* accent #E4B5CF + 12% white -> 10.3:1 on glass #0E1B39, 9.0:1 over nebula */

  --m-glass:rgba(16,28,58,.72);            /* = --sp-float */
  --m-glass-hair:rgba(47,211,238,.16);     /* = --sp-float-hair */
  --m-float-shadow:0 18px 48px rgba(2,6,16,.55),0 2px 8px rgba(2,6,16,.35);
  --m-focus:0 0 0 2px #0A1838,0 0 0 5px #2FD3EE;  /* sitewide ring, inner = page navy #0A1838 (CLO/Creative 2026-10-20) */
  --m-ring-upcoming:#8A94A8;               /* 5.57:1 on glass (1.4.11 non-text >=3:1) */
  --m-radius-card:16px;
  --m-radius-row:12px;
  --m-thumb-w:72px;                        /* lesson thumbnail in lists, 16:9 */
  --m-ease:.18s ease;
}
@media (min-width:768px){:root{--m-thumb-w:112px}}

/* Niche + hub scoping on any wrapper (body, card, section). Extends dark-tokens [data-niche]. */
[data-niche="hub"]        {--niche-accent:#2FD3EE;--m-title:var(--m-title-hub)}
[data-niche="business"]   {--m-title:var(--m-title-business)}
[data-niche="education"]  {--m-title:var(--m-title-education)}
[data-niche="realestate"] {--m-title:var(--m-title-realestate)}
[data-niche="assistants"] {--m-title:var(--m-title-assistants)}
[data-niche="bookkeeping"]{--m-title:var(--m-title-bookkeeping)}

/* ---------- 0. Shared ---------- */
.m-page{padding:var(--space-6) 0 var(--space-8)}
@media (min-width:768px){.m-page{padding:var(--space-7) 0 var(--space-9)}}
.m-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.m-glass{background:var(--m-glass);-webkit-backdrop-filter:blur(10px) saturate(1.15);backdrop-filter:blur(10px) saturate(1.15);
  border-radius:var(--m-radius-card);box-shadow:var(--m-float-shadow),inset 0 0 0 1px var(--m-glass-hair)}
.m-eyebrow{font-family:var(--font-body);font-size:.875rem;line-height:1.35;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--niche-accent);margin:0 0 var(--space-2)}
.m-title{font-family:var(--font-heading);font-weight:800;color:var(--m-title,#FFFFFF);margin:0;text-wrap:balance;letter-spacing:-.01em}
.m-title--xl{font-size:2.25rem;line-height:1.1}            /* course/lesson h1: 36 mobile */
.m-title--lg{font-size:1.5rem;line-height:1.2}             /* card titles: 24 mobile */
.m-title--md{font-size:1.25rem;line-height:1.25;font-weight:700}  /* module titles: 20 mobile */
@media (min-width:768px){.m-title--xl{font-size:3rem}.m-title--lg{font-size:1.75rem}.m-title--md{font-size:1.375rem}}
@media (min-width:1280px){.m-title--xl{font-size:3.5rem}}
.m-meta{font-size:.9375rem;line-height:1.45;color:var(--dk-text-meta);margin:0}
.m-body{color:var(--dk-text-body);max-width:68ch}
.m-crumbs{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;margin:0 0 var(--space-5);padding:0;list-style:none;font-size:.9375rem}
.m-crumbs a{display:inline-flex;align-items:center;min-height:44px}
.m-crumbs li+li::before{content:"/";color:var(--dk-text-meta);margin-right:var(--space-2)}
a:focus-visible,summary:focus-visible,.btn:focus-visible,button:focus-visible,.m-prompt__text:focus-visible{outline:none;box-shadow:var(--m-focus);border-radius:6px}
.btn--primary:active{transform:translateY(1px);box-shadow:none;background:#2FD3EE}
.btn--secondary:active{background:rgba(47,211,238,.2)}

/* Account nav in the members header */
.m-acct{display:flex;gap:var(--space-1);align-items:center}
.m-acct a{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-3);border-radius:8px;color:var(--dk-text-strong);text-decoration:none;font-weight:600;transition:background-color var(--m-ease),color var(--m-ease)}
.m-acct a:hover{background:rgba(255,255,255,.06);color:#FFFFFF}
.m-acct a[aria-current="page"]{color:#FFFFFF;box-shadow:inset 0 -2px 0 #2FD3EE;border-radius:8px 8px 0 0}

/* Status icons (24px, inline SVG, currentColor): done, current, upcoming, locked */
.m-status{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:50%}
.m-status svg{width:16px;height:16px;display:none}
.m-status--done .i-done,.m-status--current .i-cur,.m-status--locked .i-lock{display:block}  /* each status span carries all its icons; the class picks one */
.m-status--done{background:var(--niche-accent);color:#0B1F45}
.m-status--current{background:color-mix(in srgb,var(--niche-accent) 18%,transparent);color:#2FD3EE;box-shadow:inset 0 0 0 2px var(--niche-accent)}
.m-status--todo,.m-status--upcoming{box-shadow:inset 0 0 0 2px var(--m-ring-upcoming);color:var(--m-ring-upcoming)}
.m-status--locked{background:rgba(255,255,255,.06);color:var(--niche-accent)}
.m-status--locked svg{opacity:.85}

/* Progress: native <progress value max>, labelled by visible text */
.m-progress{appearance:none;-webkit-appearance:none;display:block;width:100%;height:8px;border:0;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.10);color:var(--niche-accent)}
.m-progress::-webkit-progress-bar{background:rgba(255,255,255,.10);border-radius:999px}
.m-progress::-webkit-progress-value{background:var(--niche-accent);border-radius:999px}
.m-progress::-moz-progress-bar{background:var(--niche-accent);border-radius:999px}
.m-progress-row{display:grid;gap:var(--space-2)}
.m-progress-row__label{display:flex;justify-content:space-between;gap:var(--space-3);font-size:.9375rem;color:var(--dk-text-strong)}

/* Chip */
.m-chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 10px;border-radius:999px;font-size:.8125rem;font-weight:700;letter-spacing:.02em;
  color:var(--niche-accent);background:color-mix(in srgb,var(--niche-accent) 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--niche-accent) 35%,transparent)}

/* ---------- 1. Login ---------- */
.m-login{min-height:calc(100vh - 77px);display:grid;place-items:center;padding:var(--space-6) var(--layout-gutter-mobile)}
.m-login__panel{width:100%;max-width:440px;padding:var(--space-5)}
@media (min-width:768px){.m-login__panel{padding:var(--space-7)}}
.m-login__panel .m-title{font-size:2rem;line-height:1.15;color:#FFFFFF}
.m-login__panel > p{margin:var(--space-2) 0 var(--space-6)}
.m-login__row{display:flex;justify-content:flex-end;margin:calc(-1 * var(--space-3)) 0 var(--space-5)}
.m-login__row a,.m-login__alt a{display:inline-flex;align-items:center;min-height:44px}
.m-login__alt{margin:var(--space-5) 0 0;text-align:center;color:var(--dk-text-body)}
.m-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:0 var(--space-5);margin:var(--space-6) 0 0;padding:0;list-style:none;font-size:.875rem}
.m-legal a{display:inline-flex;align-items:center;min-height:44px;color:var(--dk-text-meta)}
.m-legal a:hover{color:#FFFFFF}
.m-notice{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:10px;margin:0 0 var(--space-5);
  background:rgba(255,165,155,.10);box-shadow:inset 0 0 0 1px rgba(255,165,155,.45);color:#FFFFFF;font-size:.9375rem}

/* ---------- 2. My classes dashboard ---------- */
.m-dash__head{display:grid;gap:var(--space-2);margin-bottom:var(--space-6)}
.m-dash__head .m-title{color:#FFFFFF;font-size:2rem;line-height:1.15}
@media (min-width:768px){.m-dash__head .m-title{font-size:2.5rem}}
.m-section-title{font-family:var(--font-heading);font-weight:800;font-size:1.375rem;line-height:1.25;color:#FFFFFF;margin:var(--space-7) 0 var(--space-5)}
.m-grid{display:grid;gap:var(--space-5);grid-template-columns:1fr;margin:0;padding:0;list-style:none}
@media (min-width:768px){.m-grid--courses{grid-template-columns:repeat(2,minmax(0,1fr))}.m-grid--next{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px){.m-grid--next{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Course card: the title link stretches over the card (opens the course page); the Continue button sits above it. */
.m-card{position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(150deg,color-mix(in srgb,var(--niche-accent) 11%,transparent) 0%,transparent 62%),var(--m-glass);
  -webkit-backdrop-filter:blur(10px) saturate(1.15);backdrop-filter:blur(10px) saturate(1.15);
  border-radius:var(--m-radius-card);
  box-shadow:var(--m-float-shadow),inset 0 0 0 1px color-mix(in srgb,var(--niche-accent) 24%,transparent);
  transition:transform var(--m-ease),box-shadow var(--m-ease)}
.m-card__thumb{aspect-ratio:16/9;width:100%;height:auto;object-fit:cover;border-bottom:1px solid color-mix(in srgb,var(--niche-accent) 20%,transparent)}
.m-card__body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);flex:1}
@media (min-width:768px){.m-card__body{padding:var(--space-6)}}
.m-card__head{display:grid;gap:var(--space-2)}
.m-card__head .m-title{min-height:2lh}   /* heading slot: bodies line up across a row (polish-v1 rule) */
@media (max-width:767px){.m-card__head .m-title{min-height:0}}
.m-card__link,.m-card__link:hover{color:var(--m-title,#FFFFFF);text-decoration:none}
.m-card__link::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.m-card__link:focus-visible{box-shadow:none}
.m-card:has(.m-card__link:focus-visible){box-shadow:var(--m-float-shadow),var(--m-focus)}
.m-card .btn{position:relative;z-index:2;margin-top:auto}
@media (hover:hover){
  .m-card:hover{transform:translateY(-3px);
    box-shadow:0 24px 60px rgba(2,6,16,.6),0 0 0 1px color-mix(in srgb,var(--niche-accent) 60%,transparent),0 0 28px color-mix(in srgb,var(--niche-accent) 20%,transparent)}
  .m-card:hover .m-card__link{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
}
.m-card:active{transform:translateY(-1px)}

/* Coming-next card: quieter, no button, no lift (not a link unless it has one) */
.m-next{display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);align-items:start;padding:var(--space-5);
  border-radius:var(--m-radius-card);background:rgba(16,28,58,.55);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--niche-accent) 22%,transparent)}
.m-next__icon{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;color:var(--niche-accent);background:color-mix(in srgb,var(--niche-accent) 12%,transparent)}
.m-next__icon svg{width:24px;height:24px}
.m-next .m-title{font-size:1.125rem;line-height:1.3;font-weight:700}
.m-next p{margin:var(--space-1) 0 0}

/* ---------- 3. Course page ---------- */
.m-hero{display:grid;gap:var(--space-5);margin-bottom:var(--space-7)}
.m-hero__text{display:grid;gap:var(--space-3)}
.m-hero__text .m-eyebrow{margin:0}
.m-hero__lead{font-size:1.1875rem;line-height:1.6;color:var(--dk-text-strong);max-width:60ch;margin:0}
.m-hero__art{border-radius:var(--m-radius-card);overflow:hidden;box-shadow:var(--m-float-shadow),inset 0 0 0 1px var(--m-glass-hair)}
.m-hero__art img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
@media (max-width:767px){.m-hero__art{display:none}}  /* decorative; keeps progress + Continue above the fold on phones */
@media (min-width:1024px){.m-hero{grid-template-columns:7fr 5fr;gap:var(--space-8);align-items:center}}
.m-course{display:grid;gap:var(--space-6)}
/* DOM order: aside (progress + Continue) first, so phones and screen readers get it first; from 1024 it moves to a right rail. */
@media (min-width:1024px){.m-course{grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-7);align-items:start}
  .m-course > .m-modules{grid-column:1;grid-row:1}
  .m-course__side{grid-column:2;grid-row:1;position:sticky;top:var(--space-5)}}
.m-side{padding:var(--space-5);display:grid;gap:var(--space-4)}
.m-side .m-title{font-size:1.25rem;line-height:1.3;color:#FFFFFF}
@media (min-width:768px){.m-side{padding:var(--space-6)}}

/* Modules: <details class="m-module" [open]> */
.m-modules{display:grid;gap:var(--space-4);margin:0;padding:0;list-style:none}
.m-module{background:var(--m-glass);-webkit-backdrop-filter:blur(10px) saturate(1.15);backdrop-filter:blur(10px) saturate(1.15);
  border-radius:var(--m-radius-card);box-shadow:var(--m-float-shadow),inset 0 0 0 1px var(--m-glass-hair);transition:box-shadow var(--m-ease)}
.m-module > summary{display:grid;grid-template-columns:40px minmax(0,1fr) 32px;gap:var(--space-4);align-items:center;
  min-height:72px;padding:var(--space-4) var(--space-5);cursor:pointer;list-style:none;border-radius:var(--m-radius-card);transition:background-color var(--m-ease)}
@media (min-width:768px){.m-module > summary{padding:var(--space-5) var(--space-6);min-height:88px}}
.m-module > summary::-webkit-details-marker{display:none}
.m-module__num{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-heading);font-weight:800;font-size:1.125rem;
  color:#0B1F45;background:var(--niche-accent)}
.m-module__text{display:grid;gap:2px;min-width:0}
.m-module__label{font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dk-text-meta)}
.m-module__text h2,.m-module__text h3{margin:0}
.m-module__meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);align-items:center;margin-top:var(--space-1)}
.m-module__chev{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--niche-accent);
  background:color-mix(in srgb,var(--niche-accent) 14%,transparent);transition:background-color var(--m-ease),transform var(--m-ease)}
.m-module__chev svg{width:18px;height:18px}
.m-module[open] > summary .m-module__chev{transform:rotate(180deg)}
.m-module[open] > summary{border-radius:var(--m-radius-card) var(--m-radius-card) 0 0;box-shadow:inset 0 -1px 0 rgba(255,255,255,.08)}
.m-module[open]{box-shadow:var(--m-float-shadow),inset 0 0 0 1px color-mix(in srgb,var(--niche-accent) 30%,transparent)}
@media (hover:hover){
  .m-module > summary:hover{background:rgba(255,255,255,.035)}
  .m-module > summary:hover .m-module__chev{background:color-mix(in srgb,var(--niche-accent) 30%,transparent)}
  .m-module:hover{box-shadow:var(--m-float-shadow),inset 0 0 0 1px color-mix(in srgb,var(--niche-accent) 40%,transparent)}
}
.m-module > summary:active{background:rgba(255,255,255,.06)}
.m-module > summary:focus-visible{border-radius:var(--m-radius-card)}

/* Lesson rows */
.m-lessons{list-style:none;margin:0;padding:var(--space-2) var(--space-3) var(--space-3)}
@media (min-width:768px){.m-lessons{padding:var(--space-3) var(--space-4) var(--space-4)}}
.m-lesson{display:grid;grid-template-columns:28px var(--m-thumb-w) minmax(0,1fr);gap:var(--space-3);align-items:center;
  min-height:64px;padding:var(--space-3);border-radius:var(--m-radius-row);color:inherit;text-decoration:none;position:relative;
  transition:background-color var(--m-ease)}
@media (min-width:768px){.m-lesson{gap:var(--space-4);grid-template-columns:28px var(--m-thumb-w) minmax(0,1fr) auto}}
.m-lesson__thumb{width:var(--m-thumb-w);height:auto;aspect-ratio:16/9;border-radius:6px;object-fit:cover;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.m-lesson__text{display:grid;gap:2px;min-width:0}
.m-lesson__num,.m-lesson__day{font-size:.8125rem;font-weight:700;letter-spacing:.04em;color:var(--niche-accent)}
.m-lesson__title{font-family:var(--font-body);font-weight:600;font-size:1.0625rem;line-height:1.35;color:#FFFFFF}
.m-lesson__dur{font-size:.875rem;color:var(--dk-text-meta);white-space:nowrap}
@media (max-width:767px){.m-lesson__dur{grid-column:3;font-size:.8125rem}}
.m-lesson--current{background:color-mix(in srgb,var(--niche-accent) 10%,transparent);box-shadow:inset 3px 0 0 var(--niche-accent)}
.m-lesson--current .m-lesson__title{color:var(--m-title,#FFFFFF)}
.m-lesson--done .m-lesson__title{color:var(--dk-text-strong)}
a.m-lesson:hover{background:color-mix(in srgb,var(--niche-accent) 8%,transparent)}
a.m-lesson:hover .m-lesson__title{color:var(--m-title,#FFFFFF);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
a.m-lesson--current:hover{background:color-mix(in srgb,var(--niche-accent) 15%,transparent)}
a.m-lesson:active{background:color-mix(in srgb,var(--niche-accent) 18%,transparent)}
a.m-lesson:focus-visible{border-radius:var(--m-radius-row)}

/* Card pill: current position, e.g. MODULE 2 · LESSON 2 (free hub series: DAY 2) */
.m-card__pill{justify-self:start;text-transform:uppercase;letter-spacing:.06em}
.m-card__head{justify-items:start}

/* ---------- 4. Lesson page ---------- */
.m-lesson-page{max-width:46rem;margin:0 auto}
.m-lesson-page__head{display:grid;gap:var(--space-3);margin-bottom:var(--space-6)}
.m-figure{margin:0 0 var(--space-6)}
.m-figure img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#050B18;border-radius:var(--m-radius-card);
  box-shadow:var(--m-float-shadow),inset 0 0 0 1px var(--m-glass-hair)}
.m-figure figcaption{margin-top:var(--space-3);font-size:.9375rem;color:var(--dk-text-meta)}
.m-prose{color:var(--dk-text-body)}
.m-prose > *{max-width:68ch}
.m-prose h2{font-family:var(--font-heading);font-weight:800;font-size:1.5rem;line-height:1.25;color:#FFFFFF;margin:var(--space-7) 0 var(--space-3)}
.m-prose p,.m-prose li{margin:0 0 var(--space-4)}
.m-prompt{margin:var(--space-6) 0;padding:var(--space-5);border-radius:var(--m-radius-card);background:rgba(5,11,24,.72);
  box-shadow:inset 0 0 0 1px rgba(47,211,238,.40),inset 4px 0 0 #2FD3EE}
.m-prompt__head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);color:#9BE8F6;font-family:var(--font-heading);font-weight:700}
.m-prompt__head svg{width:22px;height:22px}
.m-prompt__text{display:block;margin:0;padding:var(--space-4);border-radius:10px;background:rgba(255,255,255,.04);
  font-family:var(--font-body);font-size:1.0625rem;line-height:1.6;color:#FFFFFF;white-space:pre-wrap;word-break:break-word;
  -webkit-user-select:all;user-select:all;cursor:text}
.m-prompt__text:hover{background:rgba(47,211,238,.08)}
.m-prompt__help{margin:var(--space-3) 0 0;font-size:.9375rem;color:var(--dk-text-meta)}
.m-done a,.m-preview__cta .m-meta a{display:inline-flex;align-items:center;min-height:44px}
.m-markdone{display:inline-flex;align-items:center;gap:var(--space-3);min-height:56px;padding:0 var(--space-5) 0 var(--space-4);border-radius:10px;
  border:2px solid var(--niche-accent);background:transparent;color:#FFFFFF;font-family:var(--font-body);font-size:1.125rem;font-weight:700;line-height:1.2;cursor:pointer;
  transition:background-color var(--m-ease),box-shadow var(--m-ease)}
.m-markdone__box{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 2px var(--niche-accent);color:#0B1F45}
.m-markdone__box svg{width:16px;height:16px;opacity:0}
.m-markdone__on{display:none}
.m-markdone:hover{background:color-mix(in srgb,var(--niche-accent) 12%,transparent)}
.m-markdone:active{background:color-mix(in srgb,var(--niche-accent) 20%,transparent);transform:translateY(1px)}
.m-markdone:focus-visible{outline:none;box-shadow:var(--m-focus)}
.m-markdone[aria-pressed="true"]{background:color-mix(in srgb,var(--niche-accent) 16%,transparent);color:var(--m-title,#FFFFFF)}
.m-markdone[aria-pressed="true"] .m-markdone__box{background:var(--niche-accent);box-shadow:none}
.m-markdone[aria-pressed="true"] .m-markdone__box svg{opacity:1}
.m-markdone[aria-pressed="true"] .m-markdone__off{display:none}
.m-markdone[aria-pressed="true"] .m-markdone__on{display:inline}
.m-markdone[aria-pressed="true"]:hover{background:color-mix(in srgb,var(--niche-accent) 22%,transparent)}
.m-markdone[hidden]{display:none}
.m-done{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;margin:var(--space-7) 0 var(--space-6)}
.m-pager{display:grid;gap:var(--space-4);grid-template-columns:1fr;margin:0;padding:0;list-style:none}
@media (min-width:768px){.m-pager{grid-template-columns:1fr 1fr}}
.m-pager a{display:grid;gap:2px;min-height:72px;padding:var(--space-4) var(--space-5);border-radius:var(--m-radius-row);text-decoration:none;
  background:var(--m-glass);box-shadow:inset 0 0 0 1px var(--m-glass-hair);transition:transform var(--m-ease),box-shadow var(--m-ease)}
.m-pager__dir{font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dk-text-meta)}
.m-pager__title{font-weight:600;color:#FFFFFF}
.m-pager__next a{text-align:right}
@media (hover:hover){.m-pager a:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px rgba(47,211,238,.55),0 0 24px rgba(47,211,238,.14)}
  .m-pager a:hover .m-pager__title{color:#9BE8F6}}

/* ---------- 5. Locked preview (niche sites, logged out) ---------- */
.m-preview{max-width:46rem;margin:0 auto}
.m-preview > .m-title{margin-bottom:var(--space-3)}
.m-preview > .m-hero__lead{margin:0 0 var(--space-6)}
.m-preview .m-module__num{background:color-mix(in srgb,var(--niche-accent) 18%,transparent);color:var(--niche-accent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--niche-accent) 55%,transparent)}
.m-lock{display:inline-flex;align-items:center;gap:6px;color:var(--niche-accent);font-size:.875rem;font-weight:700}
.m-lock svg{width:18px;height:18px;opacity:.85}
.m-lesson--locked{grid-template-columns:28px minmax(0,1fr) auto;min-height:52px}
.m-lesson--locked .m-lesson__title{color:var(--dk-text-strong);font-weight:600}
.m-preview__cta{margin-top:var(--space-6);padding:var(--space-6) var(--space-5);text-align:center;display:grid;gap:var(--space-4);justify-items:center;
  border-radius:var(--m-radius-card);
  background:linear-gradient(160deg,color-mix(in srgb,var(--niche-accent) 14%,transparent),transparent 70%),var(--m-glass);
  box-shadow:var(--m-float-shadow),inset 0 0 0 1px color-mix(in srgb,var(--niche-accent) 35%,transparent)}
@media (min-width:768px){.m-preview__cta{padding:var(--space-7)}}
.m-preview__cta .m-title{font-size:1.5rem}
.m-preview__cta p{margin:0;max-width:44ch}
.m-preview__cta .btn{min-width:min(100%,280px)}

/* ---------- 6. Motion ---------- */
@media (prefers-reduced-motion:reduce){
  .m-card,.m-module,.m-module__chev,.m-lesson,.m-pager a,.m-markdone{transition:none!important}
  .m-markdone:active{transform:none}
  .m-card:hover,.m-card:active,.m-pager a:hover{transform:none!important}
  .m-module[open] > summary .m-module__chev{transform:rotate(180deg)} /* state change, not motion */
}


/* =====================================================================================================
   v1.2 (Creative, 2026-10-20 after Web build QA). Spec section 9. Appended, so it wins over v1.1 and ma-extras.css.
   ===================================================================================================== */
:root{
  --m-mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --m-danger:#FFB4AA;                       /* 10.6:1 on glass: text and 2px outline for the one destructive action */
  --m-well:rgba(5,11,24,.55);               /* inset well inside glass (codes box, summary box) */
}

/* 9.0 QA fixes: focus rings that v1.1 lost to more specific rules (blockers B2-B4) */
.m-acct a[aria-current="page"]:focus-visible{box-shadow:inset 0 -2px 0 #2FD3EE,var(--m-focus);border-radius:8px}
.m-pager a:focus-visible{box-shadow:inset 0 0 0 1px rgba(47,211,238,.55),var(--m-focus)}
.m-module > summary:focus-visible,.m-module[open] > summary:focus-visible{box-shadow:var(--m-focus)}
.m-login .input:focus,.m-page .input:focus{outline:none;border-color:#2FD3EE;box-shadow:var(--m-focus)}
/* Auth cards: no dead space under the last element */
.m-login__panel > :last-child,.m-login__panel form > :last-child{margin-bottom:0}
.m-dash__foot{margin:var(--space-5) 0 0;color:var(--dk-text-meta);font-size:.875rem}

/* 9.1 Header (Task C): one line at every width. Below 420px Account becomes a 44px key icon button. */
.m-acct{display:flex;align-items:center;gap:var(--space-1)}
.m-acct a{white-space:nowrap}
.m-acct__icon{display:none;width:24px;height:24px;flex:none}
@media (max-width:419.98px){
  .site-header:has(.m-acct) .brand img{width:132px;height:auto}
  .m-acct{gap:0}
  .m-acct a{padding:0 var(--space-2)}
  .m-acct a.m-acct__account{width:44px;min-width:44px;padding:0;justify-content:center;border-radius:12px}
  .m-acct__account .m-acct__label{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
  .m-acct__icon{display:block}
  .m-acct a.m-acct__account[aria-current="page"]{box-shadow:inset 0 -2px 0 #2FD3EE}
}

/* 9.2 Auth card screens reuse .m-login + .m-login__panel. Code entry field: */
.m-code-input{font-family:var(--m-mono);font-size:1.5rem;letter-spacing:.32em;text-align:center;font-variant-numeric:tabular-nums;max-width:16ch}
.m-login__icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;margin:0 0 var(--space-4);
  background:color-mix(in srgb,var(--niche-accent,#2FD3EE) 18%,transparent);color:var(--niche-accent,#2FD3EE)}
.m-login__icon svg{width:24px;height:24px}

/* 9.3 Account and security: one column of glass panels, 720px max */
.m-account{max-width:720px}
.m-panel{padding:var(--space-5);margin:0 0 var(--space-5)}
@media (min-width:768px){.m-panel{padding:var(--space-6)}}
.m-panel > .m-section-title{margin:0 0 var(--space-2)}
.m-panel > .m-body{margin:0 0 var(--space-4)}
.m-panel form{display:grid;gap:var(--space-4);max-width:440px}
.m-panel form .field{margin:0}
.m-panel__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-5) 0 0}
.m-state{display:inline-flex;align-items:center;gap:var(--space-2);min-height:28px;padding:2px 12px;border-radius:999px;font-weight:700;font-size:.875rem;
  background:rgba(111,224,200,.14);color:#9FEBD9}
.m-state--off{background:rgba(255,255,255,.06);color:var(--dk-text-meta)}
.m-rows{list-style:none;margin:0;padding:0}
.m-rows > li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:center;min-height:56px;padding:var(--space-3) 0;
  border-top:1px solid rgba(255,255,255,.08)}
.m-rows > li:first-child{border-top:0}
.m-rows__name{color:var(--dk-text-strong);font-weight:600}
.m-rows__meta{display:block;color:var(--dk-text-meta);font-size:.875rem}
.m-panel--danger{box-shadow:var(--m-float-shadow),inset 0 0 0 1px rgba(255,180,170,.32)}
.btn--danger{background:transparent;color:var(--m-danger);border:2px solid var(--m-danger)}
@media (hover:hover){.btn--danger:hover{background:rgba(255,180,170,.12);color:#FFFFFF}}

/* 9.4 Two-step setup: numbered steps, QR on white, setup key and recovery codes in monospace */
.m-steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-6);counter-reset:m-step}
.m-steps > li{display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--space-3);counter-increment:m-step}
@media (min-width:768px){.m-steps > li{grid-template-columns:32px minmax(0,1fr);column-gap:var(--space-4)}}
.m-steps > li::before{content:counter(m-step);display:grid;place-items:center;width:32px;height:32px;border-radius:50%;
  background:color-mix(in srgb,var(--niche-accent,#2FD3EE) 20%,transparent);color:var(--m-title,#48D8F0);font:800 1rem/1 var(--font-heading)}
.m-steps h3{font:700 1.125rem/1.3 var(--font-heading);color:#FFFFFF;margin:4px 0 var(--space-2)}
.m-qr{display:inline-block;background:#FFFFFF;padding:16px;border-radius:12px;line-height:0;margin:var(--space-3) 0}
.m-qr img{width:176px;height:176px}
@media (min-width:768px){.m-qr img{width:200px;height:200px}}
.m-key{display:inline-block;font-family:var(--m-mono);font-size:1rem;line-height:1.6;letter-spacing:.06em;word-spacing:.4em;color:var(--dk-text-strong);
  background:var(--m-well);padding:var(--space-2) var(--space-3);border-radius:8px;box-shadow:inset 0 0 0 1px rgba(47,211,238,.22);user-select:all;max-width:100%}
.m-codes{margin:var(--space-4) 0;padding:var(--space-4);border-radius:12px;background:var(--m-well);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(47,211,238,.28)}
.m-codes ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-5);
  font-family:var(--m-mono);font-size:1.0625rem;line-height:1.5;letter-spacing:.06em;font-variant-numeric:tabular-nums;color:#E6E9EF;user-select:all}
@media (min-width:768px){.m-codes{padding:var(--space-5)}}
.m-codes li{white-space:nowrap}
@media (max-width:339.98px){.m-codes ol{grid-template-columns:1fr}}
.m-codes__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-4) 0 0}

/* 9.5 Consent checkbox: 24px box, 44px row (whole label is the target), cyan fill + navy tick */
.m-check{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:var(--space-3);align-items:start;min-height:44px;padding:10px 0;cursor:pointer;
  color:var(--dk-text-strong);font-size:1.0625rem;line-height:1.5}
.m-check input{-webkit-appearance:none;appearance:none;width:24px;height:24px;margin:0;border-radius:6px;border:2px solid var(--m-ring-upcoming);
  background:rgba(5,11,24,.45);display:grid;place-content:center;cursor:pointer;transition:background-color var(--m-ease),border-color var(--m-ease)}
.m-check input::before{content:"";width:14px;height:14px;background:#0B1F45;transform:scale(0);transition:transform .12s ease;
  clip-path:polygon(12% 50%,0 63%,38% 100%,100% 22%,87% 9%,38% 74%)}
.m-check input:checked{background:#2FD3EE;border-color:#2FD3EE}
.m-check input:checked::before{transform:scale(1)}
@media (hover:hover){.m-check:hover input:not(:checked){border-color:#2FD3EE}}
.m-check input:focus-visible{outline:none;box-shadow:var(--m-focus)}
.m-check input:user-invalid{border-color:#FFA59B}
.m-check + .field__error{margin:0 0 0 calc(24px + var(--space-3))}
.m-summary{margin:var(--space-5) 0;padding:var(--space-4) var(--space-5);border-radius:12px;background:var(--m-well);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.m-summary dl{margin:0;display:grid;gap:var(--space-3)}
.m-summary dt{font:700 1rem/1.3 var(--font-heading);color:#FFFFFF}
.m-summary dd{margin:2px 0 0;color:var(--dk-text-body)}
.m-consent form{display:grid;gap:var(--space-4)}
.m-consent form .m-meta{margin:0}
.m-consent .btn{min-height:56px;height:auto;padding-block:var(--space-3);text-wrap:balance}

/* 9.6 Membership offer (v1.3, founder 21:57 UTC): two options per site, Class then Weekly. Stacked < 880, 2 side by side from 880 (960px max, centred).
   Cards take glass v3 (.glass.glass--card from glass-v3.css, loaded after this file). One primary button (Class), one secondary (Weekly). */
.m-offer__head{max-width:640px}
@media (min-width:880px){.m-offer__head{margin:0 auto;text-align:center}}
.m-plans{list-style:none;margin:var(--space-6) 0 0;padding:0;display:grid;gap:var(--space-5);grid-template-columns:minmax(0,1fr)}
@media (min-width:880px){.m-plans{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto minmax(var(--m-ticks-min,7rem),auto) auto auto;max-width:960px;margin-inline:auto;column-gap:var(--space-5)}}
.m-plan{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5)}
@supports (grid-template-rows:subgrid){
  @media (min-width:880px){.m-plan{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:var(--space-4);padding:var(--space-6)}}
}
.m-plan__head{display:flex;flex-wrap:wrap;align-items:center;align-content:flex-start;align-self:start;gap:var(--space-2) var(--space-3)}
.m-plan__name{font:700 1.25rem/1.25 var(--font-heading);color:var(--m-title,#FFFFFF);margin:0}
.m-plan__price{margin:0;font-family:var(--font-heading);font-weight:800;font-size:2.5rem;line-height:1.05;color:#FFFFFF;letter-spacing:-.01em;overflow-wrap:anywhere}
.m-plan__per{font-family:var(--font-body);font-weight:600;font-size:1rem;letter-spacing:0;color:var(--dk-text-body);margin-left:0}  /* the suffix carries its own space or punctuation (", one payment,"), so no gap before a comma */
.m-plan__tax{display:block;margin-top:6px;font-family:var(--font-body);font-weight:400;font-size:.875rem;letter-spacing:0;color:var(--dk-text-meta)}
.m-ticks{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);align-content:start}
.m-ticks li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:var(--space-3);color:var(--dk-text-body);line-height:1.45}
.m-tick{width:20px;height:20px;margin-top:2px;color:var(--niche-accent,#2FD3EE)}
.m-plan__cta{display:grid;gap:var(--space-3);align-content:start}
.m-plan__cta .btn{width:100%}
.m-plan__legal{margin:0;font-size:.875rem;line-height:1.45;color:var(--dk-text-meta)}
/* v1.3: the highlight class and the pill are retired (no card is ringed or labelled); emphasis comes from the one primary button only. */
/* 3.5 locked preview: 2 price chips (Class, Weekly), same wording as the cards; side by side from 560, stacked below */
.m-preview__plans{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3);width:100%;max-width:560px;grid-template-columns:minmax(0,1fr)}
@media (min-width:560px){.m-preview__plans{grid-template-columns:repeat(2,minmax(0,1fr))}}
.m-preview__plans li{display:grid;gap:2px;align-content:center;padding:var(--space-3) var(--space-4);border-radius:16px;background:var(--m-well);border:1px solid var(--glass-border,rgba(255,255,255,.14));text-align:center}
.m-preview__plans b{font:700 1rem/1.3 var(--font-heading);color:var(--m-title,#FFFFFF)}
.m-preview__plans span{font-size:.9375rem;color:var(--dk-text-strong)}
/* 9.3 account: renew note under the membership line */
.m-renew{display:grid;grid-template-columns:20px minmax(0,1fr);gap:var(--space-3);margin:var(--space-3) 0 0;color:var(--dk-text-strong);line-height:1.45}
.m-offer__links{display:flex;flex-wrap:wrap;justify-content:center;gap:0 var(--space-5);margin:var(--space-6) 0 0;padding:0;list-style:none;font-size:.9375rem}
.m-offer__links a{display:inline-flex;align-items:center;min-height:44px}

/* 9.7 Thanks, your choice is recorded */
.m-done .m-summary{margin-top:var(--space-4)}
.m-done__next{display:grid;gap:var(--space-3);margin:var(--space-5) 0 0}

@media (prefers-reduced-motion:reduce){.m-check input,.m-check input::before{transition:none!important}}
