/* ============================================================
   MASTER POA — Online Study Guide (reader)
   Recolored from Ms Tabby's Math design system structure:
   teal primary, navy ink, ledger-gold accent, warm cream paper,
   Nunito throughout. Rounded, friendly, exam-serious.
   ============================================================ */

/* -------------------- Brand fonts (Master POA) --------------------
   League Spartan → display / UI labels (UPPERCASE, tight tracking)
   Open Sans      → body copy
   Gochi Hand     → handwritten marker accent
   ------------------------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=League+Spartan:wght@400;500;600;700;800;900&family=Open+Sans:ital,wght@0,400;0,600;0,700;1,400&family=Gochi+Hand&display=swap');

:root{
  /* ===== Master POA brand spectrum ===== */
  /* RED — the signature: primary actions, links, brand, hero/sell grounds */
  --poa-primary:        #991101;  /* RED */
  --poa-primary-hover:  #7d0e01;
  --poa-primary-soft:   #B93323;  /* bright red — hover/active */
  --poa-primary-tint:   #F5E7E6;  /* red 100 — current nav, soft fills */
  --poa-primary-tint2:  #FCF3F2;  /* faintest red wash */

  /* INK / dark grounds (table headers, progress card, decision header, toast) */
  --poa-navy:           #292D32;  /* brand ink — dark surfaces */
  --poa-navy-soft:      #3A3F46;

  /* AMBER — energy: unlock/upgrade, exam tips, free badge, highlights */
  --poa-gold:           #E9A02B;  /* amber */
  --poa-gold-deep:      #C9870F;
  --poa-gold-tint:      #FDF5EA;

  /* TEAL — concept callouts, section badges (functional accent) */
  --poa-teal:           #069898;
  --poa-teal-deep:      #057A7A;
  --poa-teal-tint:      #E3F1F1;
  --poa-teal-tint2:     #EFF7F7;

  /* BLUE — quizzes, practice scenarios, info chips, tags */
  --poa-blue:           #004AAD;
  --poa-blue-deep:      #013B89;
  --poa-blue-tint:      #EAF0FB;

  --poa-cream:          #FFFFFF;  /* page background (clean white) */
  --poa-paper:          #FFFFFF;  /* reading surface */
  --poa-surface:        #F1F1F1;  /* cards / pills / chips */
  --poa-surface-soft:   #F7F7F6;
  --poa-qbox:           #EAF0FB;  /* scenario / practice box (blue tint) */
  --poa-qbox-line:      #CFDDF4;

  --poa-ink:            #292D32;  /* body text */
  --poa-ink-strong:     #15171A;  /* headings */
  --poa-muted:          #5B5B5B;  /* secondary copy */
  --poa-faint:          #969696;
  --poa-border:         #E6EAEE;
  --poa-border-soft:    #EEF0F2;

  --poa-success:        #1F8A5B;
  --poa-success-tint:   #E3F3EA;
  --poa-danger:         #C0392B;
  --poa-danger-tint:    #FBEAE7;

  --poa-lock:           #6B7787;  /* locked slate */
  --poa-lock-bg:        #EEF1F5;

  /* ===== Type ===== */
  --poa-font:    'Open Sans', system-ui, -apple-system, sans-serif;  /* body */
  --poa-display: 'League Spartan', system-ui, sans-serif;            /* display / UI */
  --poa-hand:    'Gochi Hand', 'Comic Sans MS', cursive;             /* annotations */
  --reader-fs: 17px;   /* tweakable reader base */

  /* ===== Geometry ===== */
  --app-bar-h: 64px;
  --sidebar-w: 320px;
  --reader-max: 860px;

  /* ===== Radii / shadows ===== */
  --r-sm: 10px; --r-md: 14px; --r-lg: 20px; --r-xl: 28px; --r-pill: 9999px;
  --sh-sm: 0 1px 2px rgba(21,35,58,.06);
  --sh-md: 0 4px 14px rgba(21,35,58,.08);
  --sh-lg: 0 14px 40px rgba(21,35,58,.14);
  --sh-xl: 0 26px 60px rgba(21,35,58,.22);
  --ease: cubic-bezier(.4,0,.2,1);
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family:var(--poa-font);
  background:var(--poa-cream);
  color:var(--poa-ink);
  font-weight:600;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
::selection{ background:var(--poa-primary-tint); }

/* density-ish helpers */
.scrim{ position:fixed; inset:0; background:rgba(21,35,58,.46); backdrop-filter:blur(3px);
  z-index:60; opacity:0; pointer-events:none; transition:opacity var(--dur,220ms) var(--ease); }
.scrim.show{ opacity:1; pointer-events:auto; }

/* =================================================================
   APP SHELL
   ================================================================= */
.app{ min-height:100vh; }

/* ---- Top app bar ---- */
.appbar{
  position:sticky; top:0; z-index:50; height:var(--app-bar-h);
  display:flex; align-items:center; gap:16px;
  padding:0 18px; background:rgba(255,255,255,.92); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--poa-border);
}
.appbar .brand{ display:flex; align-items:center; gap:11px; flex:0 0 auto; }
.brand-badge{ width:38px; height:38px; border-radius:11px; background:var(--poa-navy);
  display:grid; place-items:center; color:#fff; flex:0 0 auto; box-shadow:var(--sh-sm);
  position:relative; overflow:hidden; }
.brand-badge b{ font-weight:900; font-size:19px; letter-spacing:-.5px; line-height:1;
  color:var(--poa-gold); }
.brand-badge::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:5px;
  background:var(--poa-primary); }
.brand-name{ line-height:1.02; }
.brand-name .t1{ font-weight:900; font-size:16px; color:var(--poa-ink-strong); letter-spacing:-.2px; }
.brand-name .t2{ font-weight:800; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--poa-primary); }
.appbar-spacer{ flex:1 1 auto; }

.icon-btn{ width:42px; height:42px; border-radius:12px; display:grid; place-items:center;
  color:var(--poa-ink); transition:background var(--dur,180ms) var(--ease), color var(--dur,180ms); position:relative; }
.icon-btn:hover{ background:var(--poa-surface); color:var(--poa-primary); }
.icon-btn svg{ width:21px; height:21px; }
.icon-btn .dot{ position:absolute; top:8px; right:9px; width:8px; height:8px; border-radius:50%;
  background:var(--poa-gold); border:2px solid #fff; }
.menu-btn{ display:none; }

/* search in bar */
.searchbar{ display:flex; align-items:center; gap:9px; height:42px; padding:0 14px;
  background:var(--poa-surface); border:1.5px solid transparent; border-radius:var(--r-pill);
  min-width:230px; transition:border-color var(--dur,180ms), background var(--dur,180ms); }
.searchbar:focus-within{ background:#fff; border-color:var(--poa-primary-soft); }
.searchbar svg{ width:18px; height:18px; color:var(--poa-muted); flex:0 0 auto; }
.searchbar input{ border:none; background:none; outline:none; font-family:inherit; font-weight:700;
  font-size:14.5px; color:var(--poa-ink); width:100%; }
.searchbar input::placeholder{ color:var(--poa-faint); font-weight:600; }
.searchbar kbd{ font-family:inherit; font-size:11px; font-weight:800; color:var(--poa-muted);
  background:#fff; border:1px solid var(--poa-border); border-radius:6px; padding:2px 6px; }

/* account chip */
.acct{ display:flex; align-items:center; gap:9px; padding:5px 12px 5px 6px; border-radius:var(--r-pill);
  background:var(--poa-surface); transition:background var(--dur,180ms); }
.acct:hover{ background:var(--poa-surface-soft); box-shadow:var(--sh-sm); }
.avatar{ width:32px; height:32px; border-radius:50%; background:var(--poa-primary); color:#fff;
  display:grid; place-items:center; font-weight:900; font-size:14px; flex:0 0 auto; }
.acct .who{ font-weight:800; font-size:13.5px; color:var(--poa-ink-strong); line-height:1; }
.acct .who small{ display:block; font-weight:700; font-size:11px; color:var(--poa-muted); margin-top:2px; }

.btn{ display:inline-flex; align-items:center; gap:8px; height:42px; padding:0 18px; white-space:nowrap;
  border-radius:var(--r-pill); font-weight:800; font-size:14.5px; letter-spacing:.01em;
  transition:transform var(--dur,160ms) var(--ease), box-shadow var(--dur,160ms), background var(--dur,160ms); }
.btn svg{ width:18px; height:18px; }
.btn-primary{ background:var(--poa-primary); color:#fff; box-shadow:var(--sh-sm); }
.btn-primary:hover{ background:var(--poa-primary-hover); transform:translateY(-1px); box-shadow:var(--sh-md); }
.btn-primary:active{ transform:translateY(0); }
.btn-gold{ background:var(--poa-gold); color:var(--poa-navy); box-shadow:var(--sh-sm); }
.btn-gold:hover{ background:var(--poa-gold-deep); color:#fff; transform:translateY(-1px); box-shadow:var(--sh-md); }
.btn-ghost{ background:transparent; color:var(--poa-ink); border:1.5px solid var(--poa-border); }
.btn-ghost:hover{ border-color:var(--poa-primary); color:var(--poa-primary); }
.btn-block{ width:100%; justify-content:center; }
.btn-lg{ height:50px; padding:0 26px; font-size:16px; }

/* =================================================================
   LAYOUT
   ================================================================= */
.layout{ display:grid; grid-template-columns:var(--sidebar-w) 1fr; align-items:start; }

/* ---- Sidebar ---- */
.sidebar{ position:sticky; top:var(--app-bar-h); height:auto; min-height:calc(100vh - var(--app-bar-h));
  overflow-y:visible; border-right:1px solid var(--poa-border); background:var(--poa-paper);
  padding:18px 14px 40px; align-self:start; }


.side-head{ display:flex; align-items:center; justify-content:space-between; padding:4px 8px 10px; }
.side-head h3{ font-weight:900; font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--poa-muted); margin:0; }
.side-tabs{ display:flex; gap:4px; padding:3px; background:var(--poa-surface); border-radius:var(--r-pill);
  margin:0 6px 12px; }
.side-tab{ flex:1; height:32px; border-radius:var(--r-pill); font-weight:800; font-size:12.5px;
  color:var(--poa-muted); display:flex; align-items:center; justify-content:center; gap:5px;
  transition:all var(--dur,160ms); }
.side-tab svg{ width:14px; height:14px; }
.side-tab.active{ background:#fff; color:var(--poa-primary); box-shadow:var(--sh-sm); }

/* progress block */
.prog-card{ margin:0 6px 14px; padding:14px 15px; background:var(--poa-navy); border-radius:var(--r-md);
  color:#fff; position:relative; overflow:hidden; }
.prog-card .lbl{ font-weight:800; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.65); }
.prog-card .pct{ font-weight:900; font-size:26px; line-height:1; margin:5px 0 9px; }
.prog-card .pct span{ font-size:14px; color:var(--poa-gold); }
.prog-bar{ height:8px; border-radius:99px; background:rgba(255,255,255,.16); overflow:hidden; }
.prog-bar > i{ display:block; height:100%; border-radius:99px;
  background:linear-gradient(90deg,var(--poa-primary-soft),var(--poa-gold)); transition:width .5s var(--ease); }

/* TOC chapter */
.toc{ display:flex; flex-direction:column; gap:2px; }
.chap{ border-radius:var(--r-md); overflow:hidden; }
.chap-row{ display:flex; align-items:center; gap:11px; width:100%; text-align:left;
  padding:10px 11px; border-radius:var(--r-md); transition:background var(--dur,150ms); position:relative; }
.chap-row:hover{ background:var(--poa-surface-soft); }
.chap-row.current{ background:var(--poa-primary-tint); }
.chap-row.current .chap-no{ background:var(--poa-primary); color:#fff; }
.chap-no{ width:32px; height:32px; border-radius:9px; flex:0 0 auto; background:var(--poa-surface);
  display:grid; place-items:center; font-weight:900; font-size:14px; color:var(--poa-ink-strong); }
.chap-meta{ flex:1; min-width:0; }
.chap-title{ display:block; font-weight:800; font-size:14px; color:var(--poa-ink-strong); line-height:1.25;
  text-align:left; word-break:break-word; }
.chap-sub{ display:block; font-weight:700; font-size:11.5px; line-height:1.35; color:var(--poa-muted); margin-top:2px; }
.chap-flags{ display:flex; align-items:center; gap:5px; flex:0 0 auto; }
.tag{ font-weight:800; font-size:10px; letter-spacing:.04em; text-transform:uppercase;
  padding:3px 8px; border-radius:var(--r-pill); }
.tag-free{ background:var(--poa-primary-tint); color:var(--poa-primary-hover); }
.tag-locked{ background:var(--poa-lock-bg); color:var(--poa-lock); }
.tag-done{ background:var(--poa-success-tint); color:var(--poa-success); }
.chap-row svg.lock{ width:15px; height:15px; color:var(--poa-lock); }
.chap-row svg.chev{ width:15px; height:15px; color:var(--poa-faint); transition:transform var(--dur,200ms); }
.chap.open svg.chev{ transform:rotate(90deg); }
.check{ width:20px; height:20px; border-radius:50%; flex:0 0 auto; display:grid; place-items:center;
  background:var(--poa-success); color:#fff; }
.check svg{ width:13px; height:13px; }

/* sections under chapter */
.sec-list{ display:flex; flex-direction:column; padding:2px 0 8px 0; }
.sec-row{ display:flex; align-items:flex-start; gap:10px; padding:7px 11px 7px 20px; margin-left:22px;
  border-left:2px solid var(--poa-border-soft); font-weight:700; font-size:13px; color:var(--poa-muted);
  text-align:left;
  transition:color var(--dur,150ms), border-color var(--dur,150ms); }
.sec-row:hover{ color:var(--poa-primary); }
.sec-row.current{ color:var(--poa-primary); border-color:var(--poa-primary); font-weight:800; }
.sec-row .sn{ font-weight:800; color:var(--poa-faint); font-size:12px; flex:0 0 auto; }
.sec-row.current .sn{ color:var(--poa-primary); }
.sec-row svg{ width:13px; height:13px; flex:0 0 auto; }

/* bookmarks/notes side panels */
.side-empty{ text-align:center; padding:34px 18px; color:var(--poa-muted); }
.side-empty svg{ width:38px; height:38px; color:var(--poa-border); margin-bottom:10px; }
.side-empty p{ font-weight:700; font-size:13.5px; line-height:1.5; }
.bm-item{ display:flex; gap:10px; padding:11px; border-radius:var(--r-md); margin:0 4px 6px;
  transition:background var(--dur,150ms); cursor:pointer; }
.bm-item:hover{ background:var(--poa-surface-soft); }
.bm-item .bm-ic{ color:var(--poa-gold); flex:0 0 auto; margin-top:1px; }
.bm-item .bm-ic svg{ width:16px; height:16px; }
.bm-item .bm-where{ font-weight:800; font-size:11px; color:var(--poa-primary); text-transform:uppercase; letter-spacing:.04em; }
.bm-item .bm-txt{ font-weight:700; font-size:13px; color:var(--poa-ink-strong); line-height:1.35; margin-top:2px; }
.bm-item .bm-note{ font-weight:600; font-size:12.5px; color:var(--poa-muted); margin-top:4px; font-style:italic; }

/* =================================================================
   READER
   ================================================================= */
.reader-wrap{ min-height:calc(100vh - var(--app-bar-h)); padding:0 0 120px; }
.reader{ max-width:var(--reader-max); margin:0 auto; padding:34px 40px 0; }

/* chapter hero */
.ch-hero{ position:relative; margin:18px 0 34px; padding:38px 40px; border-radius:var(--r-xl);
  background:var(--poa-navy); color:#fff; overflow:hidden; box-shadow:var(--sh-md); }
.ch-hero::before{ content:""; position:absolute; right:-60px; top:-60px; width:240px; height:240px;
  border-radius:50%; background:radial-gradient(circle at 30% 30%, rgba(15,137,123,.55), transparent 70%); }
.ch-hero::after{ content:""; position:absolute; left:0; top:0; bottom:0; width:8px; background:var(--poa-gold); }
.ch-hero .eyebrow{ font-weight:900; font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--poa-gold); }
.ch-hero h1{ font-weight:900; font-size:40px; line-height:1.02; margin:10px 0 0; color:#fff;
  text-transform:uppercase; letter-spacing:-.01em; max-width:80%; }
.ch-hero .ch-no{ position:absolute; right:34px; bottom:18px; font-weight:900; font-size:120px;
  line-height:.8; color:rgba(255,255,255,.07); letter-spacing:-.04em; }
.ch-hero .lede{ font-weight:600; font-size:16px; line-height:1.6; color:rgba(255,255,255,.86);
  margin:16px 0 0; max-width:560px; position:relative; }
.ch-hero .hero-actions{ display:flex; gap:10px; margin-top:22px; position:relative; }
.qr-pill{ display:inline-flex; align-items:center; gap:9px; height:38px; padding:0 15px 0 11px;
  border-radius:var(--r-pill); background:rgba(255,255,255,.12); color:#fff; font-weight:800; font-size:13px; }
.qr-pill svg{ width:17px; height:17px; color:var(--poa-gold); }

/* section anchor */
.sec{ scroll-margin-top:calc(var(--app-bar-h) + 16px); margin:0 0 40px; }
.sec-head{ display:flex; align-items:flex-start; gap:14px; margin:0 0 16px; }
.sec-num{ flex:0 0 auto; font-weight:900; font-size:15px; color:#fff; background:var(--poa-primary);
  padding:5px 12px; border-radius:var(--r-pill); margin-top:3px; letter-spacing:.02em; }
.sec-head .st{ flex:1; }
.sec-head h2{ font-weight:900; font-size:26px; line-height:1.1; color:var(--poa-ink-strong);
  text-transform:uppercase; letter-spacing:-.01em; }
.sec-head .bm-toggle{ flex:0 0 auto; width:38px; height:38px; border-radius:11px; display:grid;
  place-items:center; color:var(--poa-faint); transition:all var(--dur,160ms); }
.sec-head .bm-toggle:hover{ background:var(--poa-gold-tint); color:var(--poa-gold-deep); }
.sec-head .bm-toggle.on{ color:var(--poa-gold-deep); }
.sec-head .bm-toggle svg{ width:20px; height:20px; }

/* body copy */
.prose{ font-size:var(--reader-fs); line-height:1.62; color:var(--poa-ink); font-weight:600; }
.prose p{ margin:0 0 13px; }
.prose strong{ font-weight:800; color:var(--poa-ink-strong); }
.prose em{ font-style:italic; }
.lead-p{ font-size:calc(var(--reader-fs) + 2px); color:var(--poa-muted); font-weight:700; line-height:1.55; }

/* definition list / bullets */
.ulist{ list-style:none; margin:6px 0 14px; padding:0; }
.ulist li{ position:relative; padding-left:26px; margin:0 0 10px; font-size:var(--reader-fs);
  line-height:1.55; font-weight:600; }
.ulist li::before{ content:""; position:absolute; left:4px; top:.62em; width:9px; height:9px;
  border-radius:3px; background:var(--poa-primary); }
.ulist li strong{ color:var(--poa-ink-strong); }

/* NOTES / concept callout */
.callout{ border:2px solid var(--poa-primary); border-radius:var(--r-lg); overflow:hidden;
  box-shadow:var(--sh-sm); margin:0 0 18px; }
.callout-head{ background:var(--poa-primary); color:#fff; font-weight:900; font-size:15px;
  letter-spacing:.04em; text-transform:uppercase; padding:11px 18px; display:flex; align-items:center; gap:9px; }
.callout-head svg{ width:18px; height:18px; }
.callout-body{ background:var(--poa-primary-tint2); padding:16px 20px; font-size:var(--reader-fs);
  line-height:1.6; font-weight:600; }
.callout-body p{ margin:0 0 10px; } .callout-body p:last-child{ margin:0; }
.callout.gold{ border-color:var(--poa-gold-deep); }
.callout.gold .callout-head{ background:var(--poa-gold); color:var(--poa-navy); }
.callout.gold .callout-body{ background:var(--poa-gold-tint); }

/* tables */
.tbl-wrap{ overflow-x:auto; border-radius:var(--r-md); border:1.5px solid var(--poa-border);
  box-shadow:var(--sh-sm); margin:0 0 18px; -webkit-overflow-scrolling:touch; }
table.poa{ width:100%; border-collapse:collapse; min-width:540px; background:#fff; }
table.poa th{ background:var(--poa-navy); color:#fff; font-weight:800; font-size:13.5px;
  text-align:left; padding:12px 15px; letter-spacing:.01em; vertical-align:top; }
table.poa th:first-child{ width:auto; }
table.poa td{ padding:13px 15px; font-size:14.5px; line-height:1.5; font-weight:600;
  color:var(--poa-ink); border-top:1px solid var(--poa-border-soft); vertical-align:top; }
table.poa tr:nth-child(even) td{ background:var(--poa-surface-soft); }
table.poa td:first-child{ font-weight:800; color:var(--poa-ink-strong); }
table.poa .rownum{ width:42px; text-align:center; color:var(--poa-primary); font-weight:900; }
table.poa td ul{ margin:4px 0 0; padding-left:16px; }
table.poa td ul li{ margin:0 0 3px; }
.tbl-scrollhint{ font-weight:700; font-size:12px; color:var(--poa-faint); margin:-10px 0 16px 2px;
  display:flex; align-items:center; gap:6px; }
.tbl-scrollhint svg{ width:14px; height:14px; }

/* scenario / worked example */
.scenario{ border-radius:var(--r-lg); border:1.5px solid var(--poa-qbox-line);
  background:var(--poa-qbox); overflow:hidden; margin:0 0 18px; box-shadow:var(--sh-sm); }
.scenario-tab{ display:flex; align-items:center; gap:8px; padding:9px 18px; font-weight:900;
  font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:#fff;
  background:var(--poa-gold-deep); }
.scenario-tab svg{ width:15px; height:15px; }
.scenario-body{ padding:17px 20px; font-size:var(--reader-fs); line-height:1.6; font-weight:600; }
.scenario-body p{ margin:0 0 10px; } .scenario-body p:last-child{ margin:0; }
.req-line{ margin-top:14px; padding:12px 16px; background:#fff; border:1.5px dashed var(--poa-primary-soft);
  border-radius:var(--r-md); }
.req-line .rl-lbl{ font-weight:900; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--poa-primary); display:block; margin-bottom:4px; }

/* reveal-answer (solution) */
.solution{ margin:14px 0 18px; border-radius:var(--r-lg); border:1.5px solid var(--poa-border);
  background:#fff; box-shadow:var(--sh-sm); overflow:hidden; }
.sol-toggle{ display:flex; align-items:center; gap:12px; width:100%; padding:15px 18px; text-align:left; }
.sol-toggle .st-ic{ width:38px; height:38px; border-radius:11px; flex:0 0 auto; display:grid;
  place-items:center; background:var(--poa-success-tint); color:var(--poa-success); }
.sol-toggle.locked .st-ic{ background:var(--poa-lock-bg); color:var(--poa-lock); }
.sol-toggle .st-ic svg{ width:20px; height:20px; }
.sol-toggle .st-txt{ flex:1; }
.sol-toggle .st-t{ font-weight:900; font-size:15px; color:var(--poa-ink-strong); }
.sol-toggle .st-s{ font-weight:700; font-size:12.5px; color:var(--poa-muted); margin-top:1px; }
.sol-toggle .st-chev{ color:var(--poa-faint); transition:transform var(--dur,220ms); }
.sol-toggle .st-chev svg{ width:20px; height:20px; }
.solution.open .st-chev{ transform:rotate(180deg); }
.sol-panel{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .32s var(--ease); }
.solution.open .sol-panel{ grid-template-rows:1fr; }
.sol-panel > div{ overflow:hidden; }
.sol-inner{ padding:2px 20px 20px; border-top:1px solid var(--poa-border-soft); }
.sol-inner .sol-lbl{ font-weight:900; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--poa-success); margin:14px 0 8px; display:flex; align-items:center; gap:7px; }
.sol-inner .sol-lbl svg{ width:15px; height:15px; }
.sol-inner .prose{ font-size:15.5px; }

/* exam tip */
.examtip{ position:relative; border-radius:var(--r-lg); background:var(--poa-gold-tint);
  border:1.5px solid #ecd9ad; padding:16px 18px 16px 56px; margin:0 0 18px; box-shadow:var(--sh-sm); }
.examtip::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--poa-gold); }
.examtip .et-ic{ position:absolute; left:16px; top:16px; color:var(--poa-gold-deep); }
.examtip .et-ic svg{ width:24px; height:24px; }
.examtip .et-lbl{ font-weight:900; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--poa-gold-deep); }
.examtip .et-body{ font-weight:700; font-size:15px; line-height:1.55; color:var(--poa-ink-strong); margin-top:3px; }

/* decision structure (1.2) */
.decision{ display:grid; grid-template-columns:170px 1fr 1fr; border-radius:var(--r-md); overflow:hidden;
  border:1.5px solid var(--poa-border); box-shadow:var(--sh-sm); margin:0 0 18px; background:#fff; min-width:0; }
.decision .dc{ padding:13px 15px; border-top:1px solid var(--poa-border-soft); font-size:14px;
  line-height:1.5; font-weight:600; border-left:1px solid var(--poa-border-soft); }
.decision .dc.rowlbl{ font-weight:800; color:var(--poa-ink-strong); background:var(--poa-surface-soft);
  border-left:none; }
.decision .dh{ padding:12px 15px; font-weight:900; font-size:13.5px; color:#fff; background:var(--poa-navy);
  border-left:1px solid rgba(255,255,255,.12); }
.decision .dh.rowlbl{ background:var(--poa-navy-soft); border-left:none; }

/* placeholder art */
.art-ph{ background:repeating-linear-gradient(45deg,#f1ead9 0 12px,#f8f1e3 12px 24px);
  border:2px dashed var(--poa-qbox-line); border-radius:var(--r-lg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  color:#a8956f; font-weight:800; font-size:13px; line-height:1.5; padding:26px; gap:8px; min-height:150px; margin:0 0 18px; }
.art-ph svg{ width:34px; height:34px; opacity:.7; }
.art-ph small{ font-weight:700; font-size:11.5px; color:#b7a784; max-width:280px; }

/* section divider */
.sec-rule{ height:1px; background:linear-gradient(90deg,transparent,var(--poa-border),transparent);
  margin:0 0 36px; }

/* =================================================================
   QUIZ
   ================================================================= */
.quiz{ border-radius:var(--r-xl); background:#fff; border:1.5px solid var(--poa-border);
  box-shadow:var(--sh-md); overflow:hidden; margin:8px 0 40px; }
.quiz-top{ background:linear-gradient(120deg,var(--poa-primary),var(--poa-primary-hover));
  color:#fff; padding:22px 26px; position:relative; overflow:hidden; }
.quiz-top::after{ content:""; position:absolute; right:-30px; top:-30px; width:140px; height:140px;
  border-radius:50%; background:rgba(255,255,255,.08); }
.quiz-top .qz-eyebrow{ font-weight:900; font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.8); }
.quiz-top h3{ font-weight:900; font-size:22px; color:#fff; margin:5px 0 0; }
.quiz-top .qz-meta{ font-weight:700; font-size:13px; color:rgba(255,255,255,.85); margin-top:5px; }
.quiz-prog{ height:7px; background:rgba(255,255,255,.2); border-radius:99px; margin-top:14px; overflow:hidden; }
.quiz-prog > i{ display:block; height:100%; background:var(--poa-gold); border-radius:99px; transition:width .4s var(--ease); }
.quiz-body{ padding:24px 26px; }
.qz-q{ font-weight:800; font-size:18px; line-height:1.4; color:var(--poa-ink-strong); margin:0 0 18px; }
.qz-q .qz-idx{ color:var(--poa-primary); }
.qz-image{ display:block; width:auto; max-width:100%; height:auto; max-height:360px; margin:0 auto 18px; border:1px solid var(--poa-border-soft); border-radius:var(--r-md); }
.qz-opts{ display:flex; flex-direction:column; gap:10px; }
.qz-opt{ display:flex; align-items:center; gap:13px; padding:14px 16px; border-radius:var(--r-md);
  border:1.5px solid var(--poa-border); background:#fff; text-align:left; font-weight:700; font-size:15px;
  color:var(--poa-ink); transition:all var(--dur,160ms); }
.qz-opt:hover:not(:disabled){ border-color:var(--poa-primary-soft); background:var(--poa-primary-tint2); }
.qz-opt .qz-key{ width:30px; height:30px; border-radius:9px; flex:0 0 auto; display:grid; place-items:center;
  background:var(--poa-surface); font-weight:900; font-size:14px; color:var(--poa-ink-strong); transition:all var(--dur,160ms); }
.qz-opt.sel{ border-color:var(--poa-primary); background:var(--poa-primary-tint); }
.qz-opt.sel .qz-key{ background:var(--poa-primary); color:#fff; }
.qz-opt.correct{ border-color:var(--poa-success); background:var(--poa-success-tint); }
.qz-opt.correct .qz-key{ background:var(--poa-success); color:#fff; }
.qz-opt.wrong{ border-color:var(--poa-danger); background:var(--poa-danger-tint); }
.qz-opt.wrong .qz-key{ background:var(--poa-danger); color:#fff; }
.qz-opt .qz-mark{ margin-left:auto; flex:0 0 auto; }
.qz-opt .qz-mark svg{ width:20px; height:20px; }
.qz-explain{ margin-top:14px; padding:13px 16px; border-radius:var(--r-md); background:var(--poa-primary-tint2);
  border:1.5px solid var(--poa-primary-tint); font-weight:700; font-size:14px; line-height:1.5; color:var(--poa-ink); }
.qz-explain b{ color:var(--poa-primary-hover); }
.quiz-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:16px 26px; border-top:1px solid var(--poa-border-soft); background:var(--poa-surface-soft); }
.quiz-foot .qz-score{ font-weight:800; font-size:14px; color:var(--poa-muted); }
.quiz-foot .qz-score b{ color:var(--poa-primary); }

/* quiz result */
.qz-result{ text-align:center; padding:30px 26px; }
.qz-ring{ width:130px; height:130px; margin:0 auto 16px; position:relative; }
.qz-ring .pctlabel{ position:absolute; inset:0; display:grid; place-items:center; font-weight:900;
  font-size:34px; color:var(--poa-ink-strong); }
.qz-result h3{ font-weight:900; font-size:24px; color:var(--poa-ink-strong); margin:0 0 6px; }
.qz-result p{ font-weight:700; font-size:15px; color:var(--poa-muted); margin:0 0 20px; }

/* =================================================================
   LOCK / GATE
   ================================================================= */
/* inline locked solution / exam tip teaser */
.lock-inline{ position:relative; border-radius:var(--r-lg); border:1.5px solid var(--poa-border);
  background:var(--poa-lock-bg); padding:20px; margin:14px 0 18px; overflow:hidden; }
.lock-inline.blur-mode{ background:#fff; padding:0; }
.lock-blur-content{ filter:blur(7px); pointer-events:none; user-select:none; padding:20px; opacity:.85; }
.lock-blur-overlay{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:10px; text-align:center; background:rgba(238,241,245,.55);
  backdrop-filter:blur(1px); padding:20px; }
.lock-row{ display:flex; align-items:center; gap:14px; }
.lock-ic{ width:46px; height:46px; border-radius:13px; flex:0 0 auto; display:grid; place-items:center;
  background:#fff; color:var(--poa-lock); box-shadow:var(--sh-sm); }
.lock-ic svg{ width:22px; height:22px; }
.lock-tx .lk-t{ font-weight:900; font-size:15.5px; color:var(--poa-ink-strong); }
.lock-tx .lk-s{ font-weight:700; font-size:13px; color:var(--poa-muted); margin-top:2px; line-height:1.45; }
.lock-inline .lock-cta{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }

/* full chapter lock screen */
.lockscreen{ max-width:560px; margin:40px auto; text-align:center; padding:0 24px; }
.lockscreen .ls-badge{ width:86px; height:86px; border-radius:24px; margin:0 auto 22px; display:grid;
  place-items:center; background:var(--poa-navy); color:var(--poa-gold); box-shadow:var(--sh-lg); position:relative; }
.lockscreen .ls-badge svg{ width:40px; height:40px; }
.lockscreen .ls-badge::after{ content:""; position:absolute; inset:0; border-radius:24px;
  border:2px solid rgba(239,169,58,.3); }
.lockscreen h2{ font-weight:900; font-size:30px; color:var(--poa-ink-strong); margin:0 0 10px; line-height:1.1; }
.lockscreen p{ font-weight:700; font-size:16px; color:var(--poa-muted); line-height:1.6; margin:0 auto 22px; max-width:440px; }
.preview-list{ text-align:left; background:#fff; border:1.5px solid var(--poa-border); border-radius:var(--r-lg);
  padding:18px 20px; margin:0 0 24px; box-shadow:var(--sh-sm); }
.preview-list .pl-t{ font-weight:900; font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--poa-muted); margin-bottom:12px; }
.preview-list ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.preview-list li{ display:flex; align-items:center; gap:11px; font-weight:700; font-size:14.5px; color:var(--poa-ink); }
.preview-list li svg{ width:18px; height:18px; color:var(--poa-primary); flex:0 0 auto; }
.lockscreen .ls-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.lock-blurred-pages{ position:relative; margin-top:30px; }
.lock-blurred-pages .blurred{ filter:blur(8px); opacity:.5; pointer-events:none; max-height:340px; overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,#000 30%,transparent); mask-image:linear-gradient(180deg,#000 30%,transparent); }

/* =================================================================
   MODALS (login / buy)
   ================================================================= */
.modal-wrap{ position:fixed; inset:0; z-index:80; display:flex; align-items:center; justify-content:center;
  padding:20px; }
.modal-back{ position:absolute; inset:0; background:rgba(21,35,58,.5); backdrop-filter:blur(4px); }
.modal{ position:relative; width:100%; max-width:440px; background:#fff; border-radius:var(--r-xl);
  box-shadow:var(--sh-xl); overflow:hidden; animation:pop .26s var(--ease); max-height:92vh; overflow-y:auto; }
.modal.wide{ max-width:760px; }
@keyframes pop{ from{ opacity:0; transform:translateY(14px) scale(.97); } to{ opacity:1; transform:none; } }
.modal-x{ position:absolute; top:14px; right:14px; width:38px; height:38px; border-radius:11px;
  display:grid; place-items:center; color:var(--poa-muted); z-index:2; transition:background var(--dur,150ms); }
.modal-x:hover{ background:var(--poa-surface); }
.modal-x svg{ width:20px; height:20px; }
.modal-head{ padding:30px 32px 0; }
.modal-head .mh-badge{ width:54px; height:54px; border-radius:15px; display:grid; place-items:center;
  background:var(--poa-primary-tint); color:var(--poa-primary); margin-bottom:16px; }
.modal-head .mh-badge svg{ width:26px; height:26px; }
.modal-head h2{ font-weight:900; font-size:25px; color:var(--poa-ink-strong); margin:0 0 6px; line-height:1.1; }
.modal-head p{ font-weight:700; font-size:14.5px; color:var(--poa-muted); line-height:1.5; }
.modal-body{ padding:22px 32px 30px; }
.field{ margin-bottom:14px; }
.field label{ display:block; font-weight:800; font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--poa-muted); margin-bottom:6px; }
.field input{ width:100%; height:48px; padding:0 16px; border:1.5px solid var(--poa-border); border-radius:var(--r-md);
  font-family:inherit; font-weight:700; font-size:15px; color:var(--poa-ink); background:var(--poa-surface-soft);
  transition:border-color var(--dur,150ms), background var(--dur,150ms); outline:none; }
.field input:focus{ border-color:var(--poa-primary); background:#fff; }
.field .hint{ font-weight:700; font-size:12px; color:var(--poa-faint); margin-top:6px; }
.modal-foot{ margin-top:8px; text-align:center; font-weight:700; font-size:13.5px; color:var(--poa-muted); }
.modal-foot a{ color:var(--poa-primary); font-weight:800; cursor:pointer; }
.divider-or{ display:flex; align-items:center; gap:12px; margin:18px 0; color:var(--poa-faint);
  font-weight:800; font-size:12px; }
.divider-or::before,.divider-or::after{ content:""; flex:1; height:1px; background:var(--poa-border); }
.demo-note{ display:flex; gap:10px; align-items:flex-start; margin-top:16px; padding:12px 14px;
  background:var(--poa-gold-tint); border-radius:var(--r-md); font-weight:700; font-size:12.5px;
  color:var(--poa-gold-deep); line-height:1.45; }
.demo-note svg{ width:16px; height:16px; flex:0 0 auto; margin-top:1px; }

/* buy modal */
.buy-grid{ display:grid; grid-template-columns:1fr 1fr; }
.buy-left{ padding:34px 30px; background:var(--poa-navy); color:#fff; position:relative; overflow:hidden; }
.buy-left::after{ content:""; position:absolute; right:-50px; bottom:-50px; width:180px; height:180px;
  border-radius:50%; background:radial-gradient(circle,rgba(15,137,123,.5),transparent 70%); }
.buy-left .bk-eyebrow{ font-weight:900; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--poa-gold); }
.buy-left h2{ font-weight:900; font-size:26px; color:#fff; margin:10px 0 0; line-height:1.08; }
.buy-cover{ margin:22px 0; aspect-ratio:3/4; border-radius:var(--r-md); background:linear-gradient(160deg,#21344f,#0f897b);
  display:flex; flex-direction:column; justify-content:flex-end; padding:18px; box-shadow:var(--sh-lg); position:relative; overflow:hidden; }
.buy-cover .bc-top{ position:absolute; top:16px; left:18px; font-weight:900; font-size:12px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--poa-gold); }
.buy-cover .bc-title{ font-weight:900; font-size:24px; line-height:1; color:#fff; }
.buy-cover .bc-sub{ font-weight:800; font-size:12px; color:rgba(255,255,255,.8); margin-top:6px; }
.buy-feats{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; position:relative; }
.buy-feats li{ display:flex; gap:10px; align-items:center; font-weight:700; font-size:14px; color:rgba(255,255,255,.92); }
.buy-feats li svg{ width:18px; height:18px; color:var(--poa-gold); flex:0 0 auto; }
.buy-right{ padding:34px 30px; display:flex; flex-direction:column; }
.price-row{ display:flex; align-items:baseline; gap:8px; margin-bottom:4px; }
.price-row .cur{ font-weight:800; font-size:18px; color:var(--poa-muted); }
.price-row .amt{ font-weight:900; font-size:46px; color:var(--poa-ink-strong); line-height:1; }
.price-row .was{ font-weight:800; font-size:16px; color:var(--poa-faint); text-decoration:line-through; }
.price-sub{ font-weight:700; font-size:13.5px; color:var(--poa-muted); margin-bottom:20px; }
.access-list{ list-style:none; margin:0 0 22px; padding:0; display:flex; flex-direction:column; gap:12px; }
.access-list li{ display:flex; gap:11px; align-items:flex-start; font-weight:700; font-size:14px; color:var(--poa-ink); }
.access-list li svg{ width:19px; height:19px; color:var(--poa-success); flex:0 0 auto; margin-top:1px; }
.buy-spacer{ flex:1; }
.guarantee{ display:flex; align-items:center; gap:8px; justify-content:center; margin-top:12px;
  font-weight:700; font-size:12.5px; color:var(--poa-muted); }
.guarantee svg{ width:15px; height:15px; color:var(--poa-success); }

/* toast */
.toast-zone{ position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:90;
  display:flex; flex-direction:column; gap:10px; align-items:center; pointer-events:none; }
.toast{ display:flex; align-items:center; gap:11px; padding:13px 20px; border-radius:var(--r-pill);
  background:var(--poa-navy); color:#fff; font-weight:800; font-size:14px; box-shadow:var(--sh-lg);
  animation:toastin .3s var(--ease); }
.toast svg{ width:18px; height:18px; color:var(--poa-gold); }
.toast.success svg{ color:#5fd6a0; }
@keyframes toastin{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }

/* search results dropdown */
.search-pop{ position:absolute; top:calc(var(--app-bar-h) - 8px); left:50%; transform:translateX(-50%);
  width:min(620px,92vw); background:#fff; border:1.5px solid var(--poa-border); border-radius:var(--r-lg);
  box-shadow:var(--sh-xl); z-index:55; overflow:hidden; max-height:70vh; overflow-y:auto; }
.search-pop .sp-head{ padding:12px 18px; font-weight:800; font-size:12px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--poa-muted); border-bottom:1px solid var(--poa-border-soft); }
.sp-item{ display:flex; align-items:flex-start; gap:12px; padding:13px 18px; width:100%; text-align:left;
  border-bottom:1px solid var(--poa-border-soft); transition:background var(--dur,140ms); }
.sp-item:hover{ background:var(--poa-surface-soft); }
.sp-item .sp-ic{ width:34px; height:34px; border-radius:9px; flex:0 0 auto; display:grid; place-items:center;
  background:var(--poa-primary-tint); color:var(--poa-primary); font-weight:900; font-size:13px; }
.sp-item .sp-where{ font-weight:800; font-size:11px; color:var(--poa-primary); text-transform:uppercase; letter-spacing:.04em; }
.sp-item .sp-title{ font-weight:800; font-size:14.5px; color:var(--poa-ink-strong); margin-top:1px; }
.sp-item .sp-snippet{ font-weight:600; font-size:13px; color:var(--poa-muted); margin-top:3px; line-height:1.4; }
.sp-item mark{ background:var(--poa-gold-tint); color:var(--poa-gold-deep); border-radius:3px; padding:0 2px; font-weight:800; }
.sp-empty{ padding:34px; text-align:center; color:var(--poa-muted); font-weight:700; }

/* note editor popover */
.note-pop{ position:fixed; z-index:85; width:300px; background:#fff; border:1.5px solid var(--poa-border);
  border-radius:var(--r-lg); box-shadow:var(--sh-xl); padding:16px; }
.note-pop h4{ font-weight:900; font-size:14px; color:var(--poa-ink-strong); margin:0 0 10px; }
.note-pop textarea{ width:100%; min-height:90px; resize:vertical; border:1.5px solid var(--poa-border);
  border-radius:var(--r-md); padding:10px 12px; font-family:inherit; font-weight:600; font-size:14px;
  color:var(--poa-ink); outline:none; background:var(--poa-surface-soft); }
.note-pop textarea:focus{ border-color:var(--poa-primary); background:#fff; }
.note-pop .np-actions{ display:flex; gap:8px; justify-content:flex-end; margin-top:10px; }
.note-pop .np-actions .btn{ height:36px; padding:0 14px; font-size:13px; }

/* chapter footer nav */
.ch-nav{ display:flex; gap:14px; max-width:var(--reader-max); margin:10px auto 0; padding:30px 40px 0; }
.ch-nav-btn{ flex:1; display:flex; align-items:center; gap:14px; padding:18px 20px; border-radius:var(--r-lg);
  background:#fff; border:1.5px solid var(--poa-border); transition:all var(--dur,170ms); text-align:left; }
.ch-nav-btn:hover{ border-color:var(--poa-primary); box-shadow:var(--sh-md); transform:translateY(-1px); }
.ch-nav-btn.next{ flex-direction:row-reverse; text-align:right; }
.ch-nav-btn .cn-ic{ width:42px; height:42px; border-radius:12px; flex:0 0 auto; display:grid; place-items:center;
  background:var(--poa-primary-tint); color:var(--poa-primary); }
.ch-nav-btn .cn-ic svg{ width:20px; height:20px; }
.ch-nav-btn .cn-lbl{ font-weight:800; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--poa-muted); }
.ch-nav-btn .cn-t{ font-weight:900; font-size:15px; color:var(--poa-ink-strong); margin-top:2px; }
.ch-nav-btn.locked .cn-ic{ background:var(--poa-lock-bg); color:var(--poa-lock); }

/* mark complete bar */
.complete-bar{ display:flex; align-items:center; gap:14px; max-width:var(--reader-max); margin:30px auto 0;
  padding:20px 24px; background:var(--poa-primary-tint2); border:1.5px solid var(--poa-primary-tint);
  border-radius:var(--r-lg); }
.complete-bar .cb-tx{ flex:1; }
.complete-bar .cb-t{ font-weight:900; font-size:16px; color:var(--poa-ink-strong); }
.complete-bar .cb-s{ font-weight:700; font-size:13px; color:var(--poa-muted); margin-top:2px; }
.complete-bar.done{ background:var(--poa-success-tint); border-color:#bfe3cf; }

/* =================================================================
   RESPONSIVE
   ================================================================= */
@media (max-width: 1080px){
  :root{ --sidebar-w: 280px; }
  .reader{ padding:28px 28px 0; }
  .searchbar{ min-width:180px; }
}
@media (max-width: 860px){
  .menu-btn{ display:grid; }
  .layout{ grid-template-columns:1fr; }
  .sidebar{ position:fixed; top:0; left:0; height:100vh; width:312px; z-index:70; padding-top:18px;
    transform:translateX(-100%); transition:transform .3s var(--ease); box-shadow:var(--sh-xl); }
  .sidebar.open{ transform:none; }
  .appbar .searchbar{ display:none; }
  .acct .who{ display:none; }
  .ch-hero{ padding:28px 24px; } .ch-hero h1{ font-size:30px; max-width:100%; }
  .ch-hero .ch-no{ font-size:84px; right:18px; }
  .reader{ padding:22px 18px 0; }
  .ch-nav{ padding:24px 18px 0; flex-direction:column; }
  .decision{ grid-template-columns:120px 1fr 1fr; }
  .buy-grid{ grid-template-columns:1fr; }
  .buy-left{ display:none; }
  .sec-head h2{ font-size:21px; }
}
@media (max-width: 480px){
  .reader{ padding:18px 14px 0; }
  .ch-hero h1{ font-size:25px; }
  .modal-head,.modal-body{ padding-left:20px; padding-right:20px; }
}

/* ===== Reader font tweak ===== */
:root{ --reader-family: var(--poa-font); }
.prose, .callout-body, .scenario-body, .sol-inner .prose, table.poa td, .ulist li, .examtip .et-body, .lead-p{
  font-family:var(--reader-family);
}
body[data-readfont="serif"]{ --reader-family: 'Iowan Old Style','Palatino Linotype','Georgia',serif; }
body[data-readfont="system"]{ --reader-family: system-ui,-apple-system,'Segoe UI',sans-serif; }

@media (max-width: 1180px){ .unlock-label{ display:none; } .appbar .btn-gold{ padding:0 12px; } }

/* =================================================================
   ░░░  MASTER POA BRAND OVERRIDE LAYER  ░░░
   League Spartan display + Open Sans body, red/teal/blue/amber
   colour-coding, filled labels (no left-stripe accents).
   Appended last so these rules win over the structural base above.
   ================================================================= */

/* ---- Body: Open Sans, lighter default weight, white canvas ---- */
body{ font-weight:400; background:var(--poa-cream); }

/* ---- League Spartan on all display / UI text ---- */
.brand-name .t1, .brand-name .t2, .eyebrow, .btn, .tag,
.ch-hero h1, .ch-hero .eyebrow, .ch-hero .ch-no, .qr-pill,
.sec-num, .sec-head h2,
.callout-head, table.poa th, .scenario-tab, .req-line .rl-lbl,
.examtip .et-lbl, .sol-toggle .st-t, .sol-inner .sol-lbl,
.quiz-top h3, .qz-eyebrow, .qz-key, .qz-result h3, .qz-ring .pctlabel,
.chap-no, .chap-title, .side-head h3, .side-tab, .prog-card .pct, .prog-card .lbl,
.sec-row .sn, .bm-where, .sp-where, .sp-title, .sp-ic,
.modal-head h2, .field label, .price-row .amt, .price-row .cur,
.bk-eyebrow, .buy-left h2, .bc-title, .bc-top, .bc-sub, .buy-cover,
.cb-t, .cn-lbl, .cn-t, .lk-t, .lockscreen h2, .pl-t, .ls-badge,
.note-pop h4, .demo-note b, .qz-q .qz-idx, .acct .who{
  font-family:var(--poa-display);
}
/* tighten League Spartan headings */
.ch-hero h1, .sec-head h2, .quiz-top h3, .modal-head h2, .lockscreen h2,
.buy-left h2, .qz-result h3, .price-row .amt{ letter-spacing:-.02em; }

/* ---- Buttons: UPPERCASE, tight tracking (brand signature) ---- */
.btn{ text-transform:uppercase; letter-spacing:-.01em; font-weight:700; }
.btn-lg{ font-weight:800; }

/* ---- Brand mark: real teal "M" monogram, no navy chip ---- */
.brand-badge{ background:transparent; box-shadow:none; width:42px; height:42px;
  border-radius:0; overflow:visible; }
.brand-badge::after{ display:none; }
.brand-badge img{ width:100%; height:100%; object-fit:contain; display:block; }
.brand-name .t1{ font-weight:800; letter-spacing:-.02em; font-size:17px; }
.brand-name .t2{ color:var(--poa-primary); font-weight:700; }

/* ---- Chapter hero: deep oxblood RED ground (brand hero) ---- */
.ch-hero{ background:var(--poa-primary); }
.ch-hero::before{ background:radial-gradient(circle at 30% 30%, rgba(233,160,43,.30), transparent 70%); }
.ch-hero::after{ display:none; }            /* drop the left-stripe accent */
.ch-hero .eyebrow{ color:var(--poa-gold); letter-spacing:.16em; }
.ch-hero .ch-no{ color:rgba(255,255,255,.10); }
.qr-pill svg{ color:var(--poa-gold); }

/* ---- Section number pill: TEAL (functional accent) ---- */
.sec-num{ background:var(--poa-teal); }
.sec-row.current, .sec-row:hover{ color:var(--poa-primary); }

/* ---- Concept callout: TEAL filled label header (gold variant = amber) ---- */
.callout{ border-color:var(--poa-teal); }
.callout-head{ background:var(--poa-teal); }
.callout-body{ background:var(--poa-teal-tint2); }

/* ---- Exam tip: amber-OUTLINED card with filled label, no left-stripe ---- */
.examtip{ background:var(--poa-gold-tint); border:1.5px solid var(--poa-gold);
  padding:16px 20px; }
.examtip::before{ display:none; }
.examtip .et-ic{ position:static; color:var(--poa-gold-deep); margin-bottom:2px; }
.examtip .et-lbl{ letter-spacing:.08em; }

/* ---- Scenario / practice question: BLUE tab on blue-tint box ---- */
.scenario-tab{ background:var(--poa-blue); }
.req-line{ border-color:var(--poa-blue); }
.req-line .rl-lbl{ color:var(--poa-blue); }
/* optional scenario character figure */
.scn-fig{ float:right; width:128px; max-width:34%; margin:0 0 10px 18px; }
.scn-fig img{ width:100%; height:auto; display:block; }
@media (max-width:560px){ .scn-fig{ display:none; } }

/* ---- Quiz: BLUE panel (brand full-width segment colour) ---- */
.quiz-top{ background:linear-gradient(120deg,var(--poa-blue),var(--poa-blue-deep)); }
.quiz-prog > i{ background:var(--poa-gold); }
.qz-opt.sel{ border-color:var(--poa-blue); background:var(--poa-blue-tint); }
.qz-opt.sel .qz-key{ background:var(--poa-blue); }
.qz-opt:hover:not(:disabled){ border-color:var(--poa-blue); background:var(--poa-blue-tint); }
.qz-explain{ background:var(--poa-blue-tint); border-color:#d3e1f6; }
.qz-explain b{ color:var(--poa-blue); }

/* ---- Solution reveal: keep success-green confirm, but lock = slate ---- */
.sol-inner .sol-lbl{ letter-spacing:.08em; }

/* ---- Figure tile for brand line-art (replaces dashed placeholder) ---- */
.art-fig{ margin:4px 0 18px; }
.art-fig__frame{ background:var(--poa-surface); border-radius:var(--r-lg);
  padding:24px; display:flex; align-items:center; justify-content:center; }
.art-fig__frame img{ max-height:300px; width:auto; display:block; }
.art-fig__cap{ font-size:13px; color:var(--poa-muted); margin-top:10px; line-height:1.5;
  font-style:italic; font-weight:400; }

/* ---- Buy modal sell panel: RED ground (brand) + real book cover ---- */
.buy-left{ background:var(--poa-primary); }
.buy-left::after{ background:radial-gradient(circle,rgba(233,160,43,.32),transparent 70%); }
.buy-left .bk-eyebrow{ color:var(--poa-gold); }
.buy-feats li svg{ color:var(--poa-gold); }
.buy-cover-img{ margin:22px 0; border-radius:var(--r-md); overflow:hidden;
  box-shadow:var(--sh-lg); }
.buy-cover-img img{ width:100%; height:auto; display:block; }

/* ---- Toast / dark accents use amber spark ---- */
.toast svg{ color:var(--poa-gold); }

/* ---- Free badge → amber tint (brand "free!") ---- */
.tag-free{ background:var(--poa-gold-tint); color:var(--poa-gold-deep); }

/* ---- Reading body weight: Open Sans regular, bold for emphasis ---- */
.prose, .ulist li, .callout-body, .scenario-body, .sol-inner .prose,
table.poa td, .examtip .et-body, .qz-opt, .qz-explain,
.lock-tx .lk-s, .preview-list li, .access-list li, .buy-feats li{ font-weight:400; }
.prose strong, .callout-body strong, .scenario-body strong,
table.poa td:first-child, .ulist li strong{ font-weight:700; }
.lead-p{ font-weight:400; }

/* bullet squares → brand red dots (round, matches sg article) */
.ulist li::before{ border-radius:50%; background:var(--poa-primary); }

/* ---- Hand-drawn accent helper ---- */
.hand-note{ font-family:var(--poa-hand); color:var(--poa-primary); transform:rotate(-1.5deg);
  font-size:20px; line-height:1.3; }

/* ---- Mobile app-bar fit (≤560px): drop wordmark text, tighten chrome ---- */
@media (max-width:560px){
  .appbar{ gap:10px; padding:0 14px; }
  .appbar .brand-name{ display:none; }      /* keep only the teal "M" mark */
  .appbar .btn-ghost{ padding:0 13px; }      /* compact "Log in" */
  .appbar .btn-gold{ padding:0 11px; }
  .appbar-login .login-label{ display:none; }
  .appbar .appbar-login{ width:40px; padding:0; justify-content:center; }
}

/* =================================================================
   ░░░  MOBILE LAYOUT FIX (authoritative — appended last)  ░░░
   The grid track (1fr) refused to shrink below content min-width
   (grid items default to min-width:auto), so the reading column
   stayed ~730px and overflowed small viewports. Collapse the grid
   to a single full-width block on phones; the off-canvas sidebar
   is position:fixed and lives outside flow.
   ================================================================= */
html, body{ max-width:100%; overflow-x:hidden; }   /* belt-and-braces: kill horizontal scroll */

@media (max-width: 860px){
  .layout{ display:block; }                 /* was grid → single column */
  .reader-wrap{ min-width:0; width:100%; }
  .reader,
  .ch-nav,
  .complete-bar{ max-width:100%; }
  /* robust drawer slide: length→length (avoids translateX(-100%)→none quirk) */
  .sidebar{ transform:translateX(-100%); }
  .sidebar.open{ transform:translateX(0); }
  /* the off-canvas drawer + its scrim */
  .scrim{ position:fixed; inset:0; background:rgba(20,23,26,.46); z-index:65;
    opacity:0; pointer-events:none; transition:opacity .28s var(--ease,ease); }
  .scrim.show{ opacity:1; pointer-events:auto; }
}

/* Decision matrix: let it scroll rather than clip/overflow on phones */
@media (max-width: 620px){
  .decision{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .decision-inner, .decision > *{ }
}

/* Tighten section heads + hero number so nothing clips on small phones */
@media (max-width: 420px){
  .ch-hero .ch-no{ font-size:64px; right:12px; opacity:.9; }
  .sec-head{ gap:10px; }
  .hero-actions{ flex-wrap:wrap; }
}
