/* ============================================================
   Mina Reader — shared design system for on-site ebooks
   ONE stylesheet drives every book. Book files carry only
   structure + these classes. Change a token here → all books
   update. Brand tokens mirror mina-global.css :root.
   ============================================================ */

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'IRANSans','Vazirmatn',Tahoma,sans-serif;
  background:var(--mina-bg-warm);
  color:var(--mina-dark);
  line-height:2.05;
  font-size:18px;
  -webkit-font-smoothing:antialiased;
}
body.mina-reader-page,
body.mina-reader-page *{font-family:'IRANSans','Vazirmatn',Tahoma,sans-serif!important}
body.mina-reader-page{background:var(--mina-bg-warm);color:var(--mina-dark)}
body.mina-reader-page ul,
body.mina-reader-page ol{list-style:none;margin-inline-start:0;padding-inline-start:0}
body.mina-reader-page li::marker{content:""}
body.mina-reader-page button,
body.mina-reader-page .toc-panel h3 button,
body.mina-reader-page .reader-bar .toc-btn{box-shadow:none;outline:0}
body.mina-reader-page button:focus,
body.mina-reader-page button:active{box-shadow:none;outline:0}
body.mina-reader-page .reader-bar .toc-btn,
body.mina-reader-page .reader-bar .toc-btn:focus,
body.mina-reader-page .reader-bar .toc-btn:active{background:none!important;border:1px solid color-mix(in srgb,var(--mina-green) 25%,transparent)!important;color:var(--mina-green)!important;box-shadow:none!important;outline:0!important}
body.mina-reader-page .reader-bar .toc-btn:hover{background:var(--mina-green)!important;border-color:var(--mina-green)!important;color:var(--mina-bg-white)!important}
body.mina-reader-page .toc-panel h3 button,
body.mina-reader-page .toc-panel h3 button:hover,
body.mina-reader-page .toc-panel h3 button:focus,
body.mina-reader-page .toc-panel h3 button:active{background:none!important;border:0!important;color:var(--mina-muted)!important;box-shadow:none!important;outline:0!important}
body.mina-reader-page li,
body.mina-reader-page .mlist li,
body.mina-reader-page .steps li,
body.mina-reader-page .compare .c li,
body.mina-reader-page .technique li{border:0;box-shadow:none;outline:0}
body.mina-reader-page .toc-panel li::before,
body.mina-reader-page .toc-panel li::after,
body.mina-reader-page .mlist::before,
body.mina-reader-page .mlist::after,
body.mina-reader-page .steps::before,
body.mina-reader-page .steps::after,
body.mina-reader-page .compare .c ul::before,
body.mina-reader-page .compare .c ul::after,
body.mina-reader-page .technique::before,
body.mina-reader-page .technique::after{content:none!important;display:none!important}
body.mina-reader-page a:focus-visible,
body.mina-reader-page button:focus-visible{outline:3px solid color-mix(in srgb,var(--mina-accent) 70%,var(--mina-bg-white))!important;outline-offset:3px!important;box-shadow:0 0 0 5px color-mix(in srgb,var(--mina-accent) 22%,transparent)!important}

/* ---------- progress + top bar ---------- */
.reader-progress{position:fixed;top:0;right:0;left:0;height:4px;background:transparent;z-index:60}
.reader-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--mina-accent),var(--mina-accent-2));transition:width .1s linear}

.reader-bar{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:13px clamp(16px,5vw,40px);
  background:color-mix(in srgb,var(--mina-bg-warm) 86%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid color-mix(in srgb,var(--mina-dark) 8%,transparent);
}
.reader-bar .left{display:flex;align-items:center;gap:14px}
.reader-bar .brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--mina-bg-dark)}
.reader-bar .brand .dot{width:30px;height:30px;border-radius:50%;background:var(--mina-green);display:grid;place-items:center;color:var(--mina-bg-white);font-size:15px}
.reader-bar .toc-btn{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--mina-green);background:none;border:1px solid color-mix(in srgb,var(--mina-green) 25%,transparent);border-radius:999px;padding:8px 14px;cursor:pointer;font-family:inherit;transition:.2s}
.reader-bar .toc-btn:hover{background:var(--mina-green);color:var(--mina-bg-white)}
.reader-bar .meta{font-size:14px;color:var(--mina-muted)}
.reader-bar .lib{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--mina-green);text-decoration:none;padding:8px 14px;border:1px solid color-mix(in srgb,var(--mina-green) 25%,transparent);border-radius:999px;transition:.2s}
.reader-bar .lib:hover{background:var(--mina-green);color:var(--mina-bg-white)}

/* ---------- chapter menu (slide-in TOC) ---------- */
.toc-overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--mina-bg-dark) 35%,transparent);opacity:0;visibility:hidden;transition:.25s;z-index:70}
.toc-overlay.open{opacity:1;visibility:visible}
.toc-panel{position:fixed;top:0;right:0;bottom:0;width:min(340px,86vw);background:var(--mina-bg-white);z-index:71;transform:translateX(100%);transition:transform .28s ease;padding:26px 24px;overflow-y:auto;box-shadow:-20px 0 50px color-mix(in srgb,var(--mina-bg-dark) 12%,transparent)}
.toc-panel.open{transform:translateX(0)}
.toc-panel h3{font-size:15px;color:var(--mina-muted);font-weight:700;margin-bottom:18px;display:flex;justify-content:space-between;align-items:center}
.toc-panel h3 button{background:none;border:none;font-size:22px;color:var(--mina-muted);cursor:pointer;line-height:1}
.toc-panel ol{list-style:none}
.toc-panel li a{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--mina-dark);padding:12px 12px;border-radius:12px;transition:.15s}
.toc-panel li a:hover,.toc-panel li a.active{background:color-mix(in srgb,var(--mina-accent) 10%,var(--mina-bg-white))}
.toc-panel li a .cn{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--mina-green);color:var(--mina-bg-white);display:grid;place-items:center;font-size:14px;font-weight:700}
.toc-panel li a.active .cn{background:var(--mina-accent)}
.toc-panel li a span{font-size:15px;font-weight:500;line-height:1.5}
.toc-panel li a.locked{color:var(--mina-muted)}
.toc-panel li a.locked .cn{background:color-mix(in srgb,var(--mina-muted) 22%,var(--mina-bg-white));color:var(--mina-muted)}
.toc-panel li a .lock-mark{margin-right:auto;font-size:11px;font-weight:700;color:var(--mina-accent-2);background:color-mix(in srgb,var(--mina-accent) 14%,transparent);padding:3px 8px;border-radius:999px}

/* ---------- layout ---------- */
.wrap{max-width:760px;margin:0 auto;padding:0 clamp(16px,5vw,40px) 120px}

/* ---------- protected-reader notice + deterrents ---------- */
.mina-reader-watermark{display:none!important}
.mina-reader-page--protected .wrap{user-select:none;-webkit-user-select:none}
.mina-reader-license{
  position:relative;z-index:1;max-width:760px;margin:-82px auto 36px;padding:0 clamp(16px,5vw,40px);
  color:var(--mina-muted);font-size:13px;text-align:center;direction:rtl;
}
.mina-reader-copy-toast{
  position:fixed;right:50%;bottom:24px;z-index:80;max-width:min(420px,calc(100vw - 32px));
  padding:10px 18px;border:1px solid color-mix(in srgb,var(--mina-accent) 35%,transparent);border-radius:999px;
  background:var(--mina-bg-dark);color:var(--mina-bg-white);box-shadow:0 14px 40px color-mix(in srgb,var(--mina-bg-dark) 20%,transparent);
  direction:rtl;text-align:center;font-size:14px;line-height:1.7;opacity:0;transform:translate(50%,12px);
  pointer-events:none;transition:opacity .18s ease,transform .18s ease;
}
.mina-reader-copy-toast[hidden]{display:none}
.mina-reader-copy-toast.is-visible{opacity:1;transform:translate(50%,0)}
.mina-reader-page--protected .wrap img{-webkit-user-drag:none}

/* ---------- chapter cover ---------- */
.chapter{padding-top:24px}
.cover{position:relative;text-align:center;padding:56px 0 30px}
.cover .eyebrow{display:inline-block;font-size:14px;letter-spacing:.5px;color:var(--mina-accent-2);background:color-mix(in srgb,var(--mina-accent) 14%,transparent);padding:7px 18px;border-radius:999px;margin-bottom:20px;font-weight:700}
.cover h1{font-size:clamp(30px,6vw,48px);font-weight:900;line-height:1.3;color:var(--mina-bg-dark);margin-bottom:14px}
.cover h1 em{font-style:normal;color:var(--mina-accent)}
.cover .sub{font-size:clamp(17px,3vw,21px);color:var(--mina-muted);font-weight:500;max-width:560px;margin:0 auto}
.cover .art{margin:30px auto 0;max-width:280px}

.divider{display:block;margin:40px auto;width:160px;height:24px;opacity:.9}

/* ---------- prose ---------- */
.prose p{margin:0 0 22px;color:var(--mina-dark)}
.prose p.lead{font-size:21px;line-height:1.95}
.prose .dropcap::first-letter{float:right;font-size:62px;line-height:.8;font-weight:900;color:var(--mina-accent);margin:8px 0 0 12px;font-family:'IRANSans','Vazirmatn',Tahoma,sans-serif}
.prose h2{font-size:26px;font-weight:900;color:var(--mina-bg-dark);margin:46px 0 16px;line-height:1.5}
.prose h2 .num{color:var(--mina-accent)}
.prose strong{font-weight:700;color:var(--mina-dark)}

/* ---------- bullet list ---------- */
.mlist{list-style:none;margin:0 0 24px;padding:0}
.mlist li{position:relative;padding:6px 30px 6px 0;color:var(--mina-dark)}
.mlist li::before{content:"";position:absolute;right:4px;top:18px;width:9px;height:9px;border-radius:50%;background:var(--mina-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--mina-accent) 16%,transparent)}

/* ---------- definition / generic callout ---------- */
.callout{background:var(--mina-bg-white);border:1px solid color-mix(in srgb,var(--mina-dark) 8%,transparent);border-right:6px solid var(--mina-accent);border-radius:18px;padding:26px 30px;margin:30px 0;box-shadow:0 18px 50px color-mix(in srgb,var(--mina-bg-dark) 8%,transparent)}
.callout .tag{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--mina-accent-2);margin-bottom:12px;letter-spacing:.5px}
.callout .tag svg{width:18px;height:18px}
.callout h3{font-size:22px;font-weight:900;color:var(--mina-bg-dark);margin-bottom:12px}
.callout .mlist li::before{background:var(--mina-green);box-shadow:0 0 0 4px color-mix(in srgb,var(--mina-green) 14%,transparent)}

/* ---------- note (soft inline highlight) ---------- */
.note{background:color-mix(in srgb,var(--mina-accent) 10%,var(--mina-bg-white));border-radius:16px;padding:20px 24px;margin:24px 0}
.note .lbl{display:block;font-weight:900;color:var(--mina-accent-2);margin-bottom:6px;font-size:16px}
.note p{margin:0;color:var(--mina-dark)}

/* ---------- comparison cards ---------- */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0}
.compare .c{border-radius:18px;padding:24px 22px;border:1px solid color-mix(in srgb,var(--mina-dark) 8%,transparent)}
.compare .c h4{font-size:18px;font-weight:900;margin-bottom:12px;display:flex;align-items:center;gap:10px}
.compare .c.dim{background:color-mix(in srgb,var(--mina-muted) 9%,var(--mina-bg-white))}
.compare .c.dim h4{color:var(--mina-muted)}
.compare .c.good{background:var(--mina-bg-dark);color:var(--mina-bg-white)}
.compare .c.good h4{color:var(--mina-accent)}
.compare .c .ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto}
.compare .c.dim .ico{background:color-mix(in srgb,var(--mina-muted) 12%,transparent)}
.compare .c.good .ico{background:color-mix(in srgb,var(--mina-accent) 20%,transparent)}
.compare .c ul{list-style:none}
.compare .c li{position:relative;padding:5px 22px 5px 0;font-size:16px;line-height:1.8}
.compare .c li::before{content:"";position:absolute;right:2px;top:15px;width:7px;height:7px;border-radius:50%}
.compare .c.dim li::before{background:var(--mina-muted)}
.compare .c.good li{color:color-mix(in srgb,var(--mina-bg-white) 86%,transparent)}
.compare .c.good li::before{background:var(--mina-accent)}

/* ---------- numbered factors ---------- */
.factors{margin:28px 0}
.factor{display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-bottom:1px dashed color-mix(in srgb,var(--mina-dark) 8%,transparent)}
.factor:last-child{border-bottom:0}
.factor .n{flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:var(--mina-green);color:var(--mina-bg-white);display:grid;place-items:center;font-size:20px;font-weight:900}
.factor .b h4{font-size:19px;font-weight:900;color:var(--mina-bg-dark);margin-bottom:6px}
.factor .b p{margin:0 0 8px;color:var(--mina-dark)}
.factor .b .mlist{margin:8px 0 0}

/* ---------- technique card ---------- */
.technique{background:var(--mina-bg-white);border:1px solid color-mix(in srgb,var(--mina-dark) 8%,transparent);border-radius:18px;padding:26px 28px;margin:26px 0;box-shadow:0 18px 50px color-mix(in srgb,var(--mina-bg-dark) 8%,transparent)}
.technique .th{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.technique .th .tn{flex:0 0 auto;background:var(--mina-accent);color:var(--mina-bg-white);font-size:13px;font-weight:700;padding:6px 14px;border-radius:999px}
.technique .th h4{font-size:20px;font-weight:900;color:var(--mina-bg-dark)}
.technique p{margin:0 0 12px;color:var(--mina-dark)}
.steps{list-style:none;counter-reset:s;margin:6px 0 0}
.steps li{position:relative;padding:8px 44px 8px 0;margin-bottom:6px;color:var(--mina-dark)}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;right:0;top:8px;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--mina-muted) 9%,var(--mina-bg-white));color:var(--mina-accent-2);font-weight:900;display:grid;place-items:center;font-size:14px}
.steps li b{display:block;color:var(--mina-dark);font-weight:700}

/* ---------- journal prompt ---------- */
.journal{background:linear-gradient(135deg,var(--mina-bg-white),color-mix(in srgb,var(--mina-accent) 8%,var(--mina-bg-white)));border:1px dashed color-mix(in srgb,var(--mina-accent) 50%,transparent);border-radius:18px;padding:24px 28px;margin:24px 0}
.journal .jh{display:flex;align-items:center;gap:10px;font-weight:900;color:var(--mina-accent-2);margin-bottom:12px;font-size:17px}
.journal .jh svg{width:20px;height:20px}
.journal ul{list-style:none}
.journal li{position:relative;padding:6px 26px 6px 0;color:var(--mina-dark)}
.journal li::before{content:"";position:absolute;right:4px;top:16px;width:7px;height:7px;border-radius:2px;background:var(--mina-accent);transform:rotate(45deg)}

/* ---------- pull quote ---------- */
.pull{text-align:center;margin:46px 0;padding:8px 20px}
.pull .q{display:block;font-size:64px;color:color-mix(in srgb,var(--mina-accent) 40%,transparent);line-height:0;height:28px;font-family:Georgia,serif}
.pull p{font-size:clamp(21px,4vw,28px);font-weight:900;color:var(--mina-bg-dark);line-height:1.6}
.pull p em{font-style:normal;color:var(--mina-accent)}

/* ---------- reframe / summary (dark) ---------- */
.reframe{background:var(--mina-bg-dark);color:var(--mina-bg-white);border-radius:22px;padding:36px 34px;margin:34px 0;position:relative;overflow:hidden}
.reframe::after{content:"";position:absolute;left:-40px;bottom:-40px;width:180px;height:180px;border-radius:50%;background:color-mix(in srgb,var(--mina-accent) 12%,transparent)}
.reframe .tag{position:relative;display:inline-block;font-size:13px;font-weight:700;color:var(--mina-accent);letter-spacing:.5px;margin-bottom:8px}
.reframe h3{font-size:22px;font-weight:900;color:var(--mina-accent);margin-bottom:14px;position:relative}
.reframe p{color:color-mix(in srgb,var(--mina-bg-white) 90%,transparent);margin-bottom:14px;position:relative}
.reframe p:last-child{margin-bottom:0}
.reframe .mlist li{color:color-mix(in srgb,var(--mina-bg-white) 90%,transparent)}
.reframe .mlist li::before{background:var(--mina-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--mina-accent) 18%,transparent)}
.reframe strong{color:var(--mina-bg-white)}

/* ---------- CTA / coaching ---------- */
.cta{background:linear-gradient(135deg,var(--mina-bg-white),color-mix(in srgb,var(--mina-accent) 8%,var(--mina-bg-white)));border:1px solid color-mix(in srgb,var(--mina-accent) 30%,transparent);border-radius:22px;padding:34px 32px;margin:42px 0 10px;text-align:center;box-shadow:0 18px 50px color-mix(in srgb,var(--mina-bg-dark) 8%,transparent)}
.cta h3{font-size:24px;font-weight:900;color:var(--mina-bg-dark);margin-bottom:14px}
.cta p{color:var(--mina-dark);margin-bottom:10px}
.cta .mlist{display:inline-block;text-align:right;margin:6px auto 4px}
.cta .btn{display:inline-block;margin-top:18px;background:var(--mina-green);color:var(--mina-bg-white);text-decoration:none;font-weight:700;font-size:17px;padding:15px 34px;border-radius:999px;transition:.2s}
.cta .btn:hover{background:var(--mina-green-hov);transform:translateY(-2px)}

/* ---------- chapter nav ---------- */
.chap-nav{display:flex;justify-content:space-between;align-items:stretch;gap:14px;margin-top:54px;padding-top:26px;border-top:1px solid color-mix(in srgb,var(--mina-dark) 8%,transparent)}
.chap-nav a{flex:1;text-decoration:none;padding:18px 22px;border-radius:16px;border:1px solid color-mix(in srgb,var(--mina-dark) 8%,transparent);transition:.2s;background:var(--mina-bg-white)}
.chap-nav a:hover{border-color:var(--mina-accent);box-shadow:0 18px 50px color-mix(in srgb,var(--mina-bg-dark) 8%,transparent)}
.chap-nav .lbl{display:block;font-size:13px;color:var(--mina-muted);margin-bottom:4px}
.chap-nav .ttl{display:block;font-weight:900;color:var(--mina-bg-dark);font-size:15px;line-height:1.5}
.chap-nav .next{text-align:left}
.chap-nav .disabled{opacity:.4;pointer-events:none}

@media(max-width:620px){
  body{font-size:17px;line-height:1.95}
  .compare{grid-template-columns:1fr}
  .reader-bar .meta{display:none}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reader-progress span,
  .reader-bar .toc-btn,
  .reader-bar .lib,
  .toc-overlay,
  .toc-panel,
  .toc-panel li a,
  .cta .btn,
  .chap-nav a,
  .mina-reader-copy-toast{transition:none!important}
  .cta .btn:hover{transform:none}
}

/* ---------- exercise worksheets + tables (rev: ehmal-kari) ---------- */
.worksheet{background:linear-gradient(135deg,var(--mina-bg-white),color-mix(in srgb,var(--mina-accent) 7%,var(--mina-bg-white)));border:1px solid color-mix(in srgb,var(--mina-accent) 32%,transparent);border-radius:20px;padding:28px 30px;margin:30px 0;box-shadow:0 18px 50px color-mix(in srgb,var(--mina-bg-dark) 7%,transparent)}
.worksheet .wh{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.worksheet .wh .wtag{flex:0 0 auto;background:var(--mina-green);color:var(--mina-bg-white);font-size:13px;font-weight:700;padding:6px 14px;border-radius:999px}
.worksheet .wh h3{font-size:21px;font-weight:900;color:var(--mina-bg-dark);margin:0}
.worksheet .wlead{color:var(--mina-muted);margin:0 0 18px;font-size:15px}
.wfield{position:relative;padding:16px 52px 16px 0;border-top:1px dashed color-mix(in srgb,var(--mina-dark) 12%,transparent)}
.wfield:first-of-type{border-top:0}
.wfield .qn{position:absolute;right:0;top:16px;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--mina-accent) 16%,var(--mina-bg-white));color:var(--mina-accent-2);font-weight:900;display:grid;place-items:center;font-size:15px}
.wfield .q{font-weight:900;color:var(--mina-bg-dark);margin:0 0 4px;font-size:17px}
.wfield .hint{color:var(--mina-muted);font-size:14.5px;margin:0 0 10px;line-height:1.85}
.wfield .hint b{color:var(--mina-dark)}
.wline{border-bottom:2px dotted color-mix(in srgb,var(--mina-accent) 55%,transparent);height:26px;margin:8px 0}
.wopts{list-style:none;margin:8px 0 0;padding:0}
.wopts li{position:relative;padding:7px 30px 7px 0;color:var(--mina-dark)}
.wopts li::before{content:"";position:absolute;right:2px;top:9px;width:18px;height:18px;border-radius:5px;border:2px solid color-mix(in srgb,var(--mina-green) 55%,transparent);background:var(--mina-bg-white)}
.wexample{background:color-mix(in srgb,var(--mina-green) 9%,var(--mina-bg-white));border-radius:12px;padding:10px 16px;margin:8px 0;font-size:14.5px;color:var(--mina-dark)}
.wexample .lbl{font-weight:900;color:var(--mina-green);margin-left:6px}

.mtable{width:100%;border-collapse:separate;border-spacing:0;margin:18px 0;font-size:15px;border-radius:16px;overflow:hidden;box-shadow:0 18px 50px color-mix(in srgb,var(--mina-bg-dark) 7%,transparent)}
.mtable th{background:var(--mina-bg-dark);color:var(--mina-bg-white);font-weight:700;padding:13px 14px;text-align:right;font-size:14.5px}
.mtable td{background:var(--mina-bg-white);padding:13px 14px;border-top:1px solid color-mix(in srgb,var(--mina-dark) 8%,transparent);color:var(--mina-dark);vertical-align:middle}
.mtable tr:nth-child(even) td{background:color-mix(in srgb,var(--mina-accent) 5%,var(--mina-bg-white))}
.mtable .day{font-weight:900;color:var(--mina-accent-2);white-space:nowrap}
.mtable .box{display:inline-block;width:16px;height:16px;border-radius:4px;border:2px solid color-mix(in srgb,var(--mina-green) 55%,transparent);vertical-align:middle;margin-left:5px}
.mtable .dots{color:color-mix(in srgb,var(--mina-dark) 30%,transparent);letter-spacing:1px}

@media(max-width:620px){
  .worksheet{padding:22px 18px}
  .mtable{font-size:13px}
  .mtable th,.mtable td{padding:9px 8px}
}
