/* صفحهٔ جزوه (/n/…). تم‌ها همان متغیرهای PDF‌اند. متن جزوه نسبت به نمونهٔ اولیه دو پله درشت‌تر (۱۶ ⇐ ۱۸ پیکسل)
   و با ضریب کاربر (--fsc، همان overlay.fontScale) بزرگ و کوچک می‌شود؛ هرچه داخل برگه است em است. */
:root, [data-theme="blue"]{
  --bg:#eef0f6; --paper:#ffffff; --ink:#151a2e; --dim:#646a80; --line:#e3e6ea; --muted-bg:#f7f9fb;
  --accent:#2438b8; --accent-soft:#e6e9fa; --accent-ink:#141c5c; --accent-line:#c9d0f0;
  --ex-bg:#f2fbf6; --ex-line:#2f855a; --ex-ink:#276749;
  --exam-bg:#fff5f5; --exam-line:#e53e3e; --exam-ink:#c53030;
  --emph-bg:#fffbea; --emph-line:#d69e2e; --emph-ink:#975a16;
  --out-bg:#fafbfc; --out-line:#a0aec0; --out-ink:#4a5568;
  --mine-bg:#fff7c2; --mine-line:#d4a400; --mine-ink:#5c4500;
  --hl:#f6d84c; --tag-bg:#151a2e; --tag-ink:#fff; --sel:rgba(36,56,184,.10);
  --shadow:0 1px 2px rgba(20,26,46,.06),0 4px 16px rgba(20,26,46,.06);
  --fsc:1; --barh:76px;
}
[data-theme="pink"]{ --bg:#fbeef3; --accent:#c2185b; --accent-soft:#fde7f0; --accent-ink:#5c0f30; --accent-line:#f3bfd4; --sel:rgba(194,24,91,.10); }
[data-theme="green"]{ --bg:#ebf4ee; --accent:#2f855a; --accent-soft:#e3f4ea; --accent-ink:#1c4532; --accent-line:#b7e0c7; --sel:rgba(47,133,90,.12); --ex-bg:#ebf8ff; --ex-line:#2b6cb0; --ex-ink:#2c5282; }
[data-theme="purple"]{ --bg:#f1edf9; --accent:#6b46c1; --accent-soft:#efe9fb; --accent-ink:#322659; --accent-line:#d6c9f3; --sel:rgba(107,70,193,.11); }
[data-theme="sepia"]{
  --bg:#ece2cc; --paper:#fbf4e6; --ink:#3b2f22; --dim:#7a6a55; --line:#e2d3b5; --muted-bg:#f4ead6;
  --accent:#8b5a2b; --accent-soft:#f1e2c6; --accent-ink:#4a2f14; --accent-line:#dcc39b; --sel:rgba(139,90,43,.12);
  --ex-bg:#eef3e4; --out-bg:#f6eedd; --mine-bg:#fff0b0;
}
[data-theme="dark"]{
  --bg:#101219; --paper:#1a1d27; --ink:#e7e9ee; --dim:#9aa0ad; --line:#2e3340; --muted-bg:#222634;
  --accent:#8fa2ff; --accent-soft:#252c4a; --accent-ink:#d6dcff; --accent-line:#3a4475;
  --ex-bg:#1c2e25; --ex-line:#48bb78; --ex-ink:#9ae6b4;
  --exam-bg:#3a1f22; --exam-line:#fc8181; --exam-ink:#feb2b2;
  --emph-bg:#33290f; --emph-line:#ecc94b; --emph-ink:#faf089;
  --out-bg:#1f2330; --out-line:#718096; --out-ink:#a0aec0;
  --mine-bg:#2f2a12; --mine-line:#c9a227; --mine-ink:#f0dc8a;
  --hl:#8a6d00; --tag-bg:#e7e9ee; --tag-ink:#101219; --sel:rgba(143,162,255,.12);
  --shadow:0 1px 2px rgba(0,0,0,.4);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:"Vazirmatn",system-ui,sans-serif; background:var(--bg); color:var(--ink);
  font-size:16px; line-height:1.9; overflow-x:hidden; -webkit-tap-highlight-color:transparent; transition:background .2s;
}
[hidden]{display:none!important}
button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer}
.ltr{direction:ltr;unicode-bidi:isolate}
.loading{text-align:center;color:var(--dim);padding:40px 0}

/* نوار بالا */
.top{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:4px;padding:6px 8px;min-height:56px}
.top .ttl{flex:1;min-width:0;padding-inline:6px;display:flex;flex-direction:column;justify-content:center}
.top .ttl b{display:block;font-weight:700;font-size:15px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .ttl small{display:block;font-weight:500;font-size:12px;color:var(--dim);line-height:1.4}
.top .ttl small.err{color:var(--exam-ink);font-weight:700}
.ibtn{min-width:44px;height:44px;border:none;background:transparent;border-radius:12px;display:inline-flex;
  align-items:center;justify-content:center;gap:6px;padding:0 10px;color:var(--ink)}
.ibtn:active{background:var(--accent-soft)}
.ibtn svg{width:22px;height:22px;flex:none}

/* برگه */
.wrap{max-width:720px;margin:0 auto;padding:12px 10px calc(var(--barh) + 40px + env(safe-area-inset-bottom))}
body.kb .wrap{padding-bottom:40vh}
.sheet{background:var(--paper);border-radius:16px;box-shadow:var(--shadow);padding:18px 16px 24px;font-size:calc(18px * var(--fsc));line-height:1.95;overflow-wrap:anywhere}
.head{text-align:center;padding:6px 0 14px;border-bottom:1px solid var(--line);margin-bottom:6px}
.edited-tag{display:inline-flex;align-items:center;gap:6px;background:var(--tag-bg);color:var(--tag-ink);
  border-radius:999px;padding:3px 12px;font-size:12.5px;font-weight:700;margin-bottom:8px;line-height:1.7}
.edited-tag svg{width:14px;height:14px}
.head .kicker{color:var(--accent);font-weight:700;font-size:.72em}
.head h1{font-size:1.25em;line-height:1.55;margin:.15em 0;font-weight:800}
.head .course{color:var(--dim);font-size:.8em}
.head .bar{position:static;z-index:auto;padding:0;border:0;display:block;width:56px;height:3px;border-radius:2px;background:var(--accent);margin:10px auto}
.meta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.meta div{background:var(--muted-bg);border:1px solid var(--line);border-radius:8px;padding:4px 10px;font-size:.72em;font-weight:600;line-height:1.6}
.meta b{display:block;color:var(--dim);font-weight:500;font-size:.85em}
.own-hint{font-size:.7em;color:var(--dim);margin-top:8px;line-height:1.8}
.own-hint button{border:none;background:none;color:var(--accent);font-weight:700;text-decoration:underline;padding:0 4px;min-height:32px}

/* بلوک‌ها */
.blk{position:relative;border-radius:10px;margin:2px -8px;padding:2px 8px;transition:background .15s;cursor:pointer}
.blk.sel{background:var(--sel)}
.blk.editing{background:var(--sel);cursor:default}
.blk.edited::before{content:"";position:absolute;right:-2px;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--accent);opacity:.55}
.blk.hl-flash{animation:flash 1s}
@keyframes flash{0%{background:var(--sel)}100%{background:transparent}}
.n-h2{font-size:1.2em;font-weight:700;line-height:1.6;margin:.9em 0 .3em;padding-bottom:4px;border-bottom:2px solid var(--line)}
.n-h2::before{content:"";display:inline-block;width:.26em;height:.8em;background:var(--accent);border-radius:2px;margin-left:.45em;vertical-align:-.02em}
.n-h3{font-size:1.06em;font-weight:700;margin:.7em 0 .2em}
.n-h2,.n-h3{box-sizing:border-box;max-width:100%;min-width:0;overflow-wrap:anywhere}
.n-p{margin:.35em 0;text-align:justify}
.n-li{position:relative;padding-right:1em;margin:.15em 0}
.n-li::before{content:"";position:absolute;right:.2em;top:.85em;width:.34em;height:.34em;border-radius:50%;background:var(--accent)}
.n-li.d1{margin-right:1em}.n-li.d1::before{background:transparent;border:1.5px solid var(--accent);width:.3em;height:.3em}
.n-li.d2{margin-right:2em}
.n-li.d3,.n-li.d4{margin-right:3em}
.hlm{--mk:#f6d84c;background:var(--mk);border-radius:.18em;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-inline:.22em;margin-inline:-.1em}
[data-theme="dark"] .hlm{color:#1a1d27}
[data-theme="dark"] .hlm *{color:#1a1d27}
.mk-y{--mk:#f6d84c} .mk-g{--mk:#9fe3c0} .mk-b{--mk:#b3d1ff} .mk-p{--mk:#fbbcd8} .mk-o{--mk:#fdc89c}
.co{margin:.5em 0;padding:.5em .75em;border-radius:6px;border-right:3px solid var(--line);background:var(--muted-bg);font-size:.94em}
.co .lbl{font-weight:700}
.co.def{background:var(--accent-soft);border-right-color:var(--accent)} .co.def .lbl{color:var(--accent)}
.co.example{background:var(--ex-bg);border-right-color:var(--ex-line)} .co.example .lbl{color:var(--ex-ink)}
.co.exam{background:var(--exam-bg);border-right-color:var(--exam-line)} .co.exam .lbl,.co.exam strong{color:var(--exam-ink)}
.co.emph{background:var(--emph-bg);border-right-color:var(--emph-line)} .co.emph .lbl,.co.emph strong{color:var(--emph-ink)}
.co.outside,.co.board,.co.quote{background:var(--out-bg);border-right:2px dashed var(--out-line);color:var(--out-ink);font-size:.9em}
.fig{margin:.6em 0;padding:.5em .75em;border:1.5px dashed var(--line);border-radius:10px;color:var(--dim);font-size:.8em;text-align:center}
.flow{margin:.6em 0;text-align:center}
.flow-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin:3px 0}
.flow-node{border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent-ink);border-radius:6px;padding:2px 10px;font-size:.9em;font-weight:600;line-height:1.6}
.flow-arrow{color:var(--accent);line-height:1}
.tree{margin:.7em 0;font-size:.92em}
.tree ul{list-style:none;margin:0;padding:0 14px 0 0}
.tree>ul{padding:0}
.tree li{min-width:0;position:relative;padding:5px 20px 5px 0}
.tree>ul>li{padding-right:0}
.tree,.ed .trows{--tline:var(--accent-line)}
@supports (color:color-mix(in srgb,red 50%,blue)){.tree,.ed .trows{--tline:color-mix(in srgb,var(--accent) 50%,var(--paper))}}
.tree ul ul>li::before{content:"";position:absolute;top:0;right:0;width:15px;height:21px;border-right:2px solid var(--tline);border-bottom:2px solid var(--tline);border-bottom-right-radius:8px}
.tree ul ul>li:not(:last-child)::after{content:"";position:absolute;top:0;right:0;height:100%;border-right:2px solid var(--tline)}
.tree-node{display:inline-block;width:fit-content;width:-moz-fit-content;max-width:100%;box-sizing:border-box;min-width:0;overflow-wrap:anywhere;border:1px solid var(--line);background:var(--muted-bg);border-radius:7px;padding:4px 10px;line-height:1.6;vertical-align:top}
.tree li.lv0>.tree-node{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink);font-weight:800;font-size:1.05em}
.tree li.lv1>.tree-node{background:var(--paper);border:1.5px solid var(--accent-line);border-right:4px solid var(--accent);font-weight:700}
.tree li.lv2>.tree-node,.tree li.lv3>.tree-node{font-size:.92em;font-weight:400}
.tbl-wrap{overflow-x:auto;margin:.6em 0;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.88em}
th,td{border:1px solid var(--line);padding:6px 8px;text-align:right;vertical-align:top}
th{background:var(--accent-soft);color:var(--accent-ink);font-weight:700;border-bottom:2px solid var(--accent-line)}
tbody tr:nth-child(even){background:var(--muted-bg)}
tbody td:first-child{font-weight:600}
.math{margin:.6em 0;background:var(--muted-bg);border-radius:6px;padding:8px;text-align:center;direction:ltr;overflow-x:auto}
.katex{direction:ltr;unicode-bidi:isolate}
code.tex{font-family:ui-monospace,Consolas,monospace;font-size:.9em;direction:ltr;unicode-bidi:isolate}
.mine{margin:.4em 0 .6em;background:var(--mine-bg);border:1.5px dashed var(--mine-line);border-radius:10px;padding:8px 12px;color:var(--mine-ink);font-size:.9em;position:relative}
.mine .mlbl{font-weight:700;font-size:.8em;display:flex;align-items:center;gap:4px}
.mine .mlbl svg{width:14px;height:14px}
.mine .mhint{font-size:.72em;opacity:.8;margin-top:4px}
hr.sep{border:none;border-top:1px solid var(--line);margin:1em 0}

/* نوار کارهای بلوک */
.acts{display:flex;gap:6px;margin:6px 0 8px;flex-wrap:wrap;font-size:16px;line-height:1.5}
.act{flex:1 1 0;min-width:88px;min-height:44px;border:1px solid var(--line);background:var(--paper);border-radius:12px;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:14px;font-weight:600;padding:0 8px;line-height:1.5}
.act svg{width:18px;height:18px}
.act.quiet{flex:none;width:100%;color:var(--dim);font-size:14px}
.sheetx .lbl.sep{margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}
.act.danger{color:var(--exam-ink);border-color:var(--exam-line)}
.act.main{background:var(--accent);color:var(--paper);border-color:var(--accent)}
[data-theme="dark"] .act.main{color:#101219}
.act:active{filter:brightness(.95)}
.act:disabled{opacity:.45}

/* ویرایشگرها */
.ed{margin:4px 0 8px;font-size:16px;line-height:1.7}
.ed .hint{font-size:12px;color:var(--dim);margin:2px 2px 6px}
.ed textarea,.ed input[type=text]{width:100%;font-family:inherit;font-size:16px;line-height:1.8;color:var(--ink);background:var(--paper);
  border:1.5px solid var(--accent);border-radius:10px;padding:8px 10px;resize:none;outline:none;direction:rtl}
.ed .rows{display:flex;flex-direction:column;gap:6px}
.ed .row{display:flex;align-items:center;gap:4px}
.ed .row input{flex:1;min-width:0;border-width:1px;border-color:var(--line);padding:6px 8px;line-height:1.6}
.ed .row input:focus{border-color:var(--accent)}
.ed .trows{gap:10px}
.ed .trows .row{position:relative}
.ed .trows .g{position:absolute;pointer-events:none}
.ed .trows .g.pass{top:-10px;bottom:0;border-right:2px solid var(--tline)}
.ed .trows .g.elbow{top:-10px;height:calc(50% + 10px);border-right:2px solid var(--tline);border-bottom:2px solid var(--tline);border-bottom-right-radius:8px}
.ed .trows .lv0 input{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-ink);font-weight:800}
.ed .trows .lv1 input{border:1.5px solid var(--accent-line);border-right:4px solid var(--accent);font-weight:700}
.ed .trows .lv2 input{font-size:15px;background:var(--muted-bg)}
.sbtn.lvl{font-size:20px;font-weight:700;color:var(--accent);line-height:1;font-family:system-ui,sans-serif}
.sbtn.lvl:disabled{color:var(--dim)}
.kbd{display:inline-block;min-width:22px;text-align:center;border:1px solid var(--line);border-radius:5px;background:var(--muted-bg);color:var(--accent);font-family:system-ui,sans-serif;line-height:1.3}
.sbtn{flex:none;width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:var(--muted-bg);display:inline-flex;align-items:center;justify-content:center;padding:0}
.sbtn svg{width:18px;height:18px}
.sbtn:disabled{opacity:.35}
.sbtn.del{color:var(--exam-ink)}
.addbtn{margin-top:6px;min-height:44px;width:100%;border:1.5px dashed var(--accent-line);border-radius:10px;background:transparent;color:var(--accent);font-weight:700}
.prev{margin-top:8px;border-top:1px dashed var(--line);padding-top:4px;font-size:16px}
.prev .plbl{font-size:12px;color:var(--dim)}
.grid{overflow-x:auto}
.grid table{min-width:100%}
.grid td,.grid th{padding:2px}
.ce{min-height:48px;border:1.5px solid var(--accent);border-radius:10px;padding:8px 12px;outline:none;background:var(--paper);
  color:var(--ink);line-height:1.95;font-size:calc(18px * var(--fsc));text-align:right;-webkit-user-select:text;user-select:text;cursor:text;overflow-wrap:anywhere}
.ce.co{border:1.5px solid var(--accent);border-right-width:4px;margin:0}
.ce.co.exam{border-color:var(--exam-line)} .ce.co.emph{border-color:var(--emph-line)} .ce.co.example{border-color:var(--ex-line)}
.ce-h{font-weight:700;font-size:calc(21px * var(--fsc))}
.ce-lbl{font-weight:700;font-size:13px;margin:0 2px 4px;color:var(--accent)}
.ce-lbl.exam{color:var(--exam-ink)} .ce-lbl.emph{color:var(--emph-ink)} .ce-lbl.example{color:var(--ex-ink)} .ce-lbl.outside{color:var(--out-ink)}
.ce.cell{min-height:40px;min-width:118px;padding:4px 8px;font-size:15px;border-width:1px;border-color:var(--line);border-radius:6px}
.ce.cell:focus{border-color:var(--accent)}
.chip{display:inline-flex;align-items:center;gap:2px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:8px;
  padding:0 2px 0 6px;margin:0 3px;direction:ltr;unicode-bidi:isolate;-webkit-user-select:none;user-select:none;vertical-align:middle;line-height:1.6}
.chip-x{border:none;background:transparent;width:30px;height:30px;color:var(--exam-ink);font-size:18px;font-weight:700;padding:0;line-height:1;border-radius:6px}
.fmt{position:fixed;z-index:65;display:none;gap:2px;align-items:center;background:#1f2433;border-radius:14px;padding:4px;
  box-shadow:0 8px 24px rgba(0,0,0,.3);direction:rtl}
.fmt.on{display:flex}
.fmt button{width:38px;height:40px;border:none;border-radius:10px;background:transparent;color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0;font-family:inherit}
.fmt button.on{background:rgba(255,255,255,.18)}
.fmt button:active{background:rgba(255,255,255,.12)}
.fmt button svg{width:20px;height:20px}
.fmt .sw{display:block;font-style:normal;font-weight:700;font-size:17px;line-height:1.2;color:#fff;padding:0 3px 3px;border-bottom:5px solid var(--mk);border-radius:2px}
.fmt .sep{width:1px;height:24px;background:rgba(255,255,255,.22);margin:0 2px}
.restore{margin-top:6px;border:none;background:none;color:var(--accent);font-weight:600;font-size:13.5px;min-height:40px;padding:0 4px;text-decoration:underline}
.btnrow{display:flex;gap:8px;margin-top:12px}
.btnrow .act{flex:1}

/* نوار پایین: دانلود */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--paper);border-top:1px solid var(--line);
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:6px;align-items:center}
body.kb .bar{display:none}
.bar .row{display:flex;gap:8px;width:100%;max-width:720px}
.bar .dl{flex:1;min-height:50px;border:none;border-radius:14px;background:var(--accent);color:var(--paper);font-weight:800;font-size:16px;
  display:inline-flex;align-items:center;justify-content:center;gap:8px}
[data-theme="dark"] .bar .dl{color:#101219}
.bar .dl:disabled{opacity:.6}
.bar .dl svg{width:22px;height:22px}
.bar .alt{min-height:50px;padding:0 18px;border:1.5px solid var(--accent-line);border-radius:14px;background:transparent;color:var(--accent);font-weight:700;font-size:15px}
.bar .msg{font-size:13.5px;color:var(--dim);margin:0;text-align:center;line-height:1.7;max-width:720px}
.bar .msg.err{color:var(--exam-ink);font-weight:600}
.bar .send{width:100%;max-width:720px;min-height:46px;border:1.5px solid var(--accent-line);border-radius:12px;background:transparent;color:var(--accent);font-weight:700}
.bar .send:disabled{opacity:.6}

/* اسنک‌بار و شیت */
.snack{position:fixed;left:12px;right:12px;bottom:calc(var(--barh) + 12px + env(safe-area-inset-bottom));z-index:60;max-width:520px;margin:0 auto;
  background:#1f2433;color:#fff;border-radius:14px;display:flex;align-items:center;gap:8px;padding:6px 6px 6px 6px;padding-right:16px;
  box-shadow:0 8px 24px rgba(0,0,0,.25);transform:translateY(200%);transition:transform .22s,visibility .22s;visibility:hidden}
body.kb .snack{bottom:12px}
.snack.on{transform:none;visibility:visible}
.snack .msg{flex:1;font-size:14px;line-height:1.6}
.snack button{min-height:44px;border:none;background:transparent;color:#a9b8ff;font-weight:800;padding:0 14px;border-radius:10px}
.scrim{position:fixed;inset:0;background:rgba(10,12,20,.45);z-index:50;opacity:0;pointer-events:none;transition:opacity .2s}
.scrim.on{opacity:1;pointer-events:auto}
.sheetx{position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--paper);color:var(--ink);border-radius:18px 18px 0 0;
  padding:10px 16px calc(18px + env(safe-area-inset-bottom));max-height:85vh;overflow:auto;transform:translateY(105%);transition:transform .22s,visibility .22s;visibility:hidden;max-width:720px;margin:0 auto}
.sheetx.on{transform:none;visibility:visible}
.sheetx .grab{width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 10px}
.sheetx h3{margin:0 0 4px;font-size:17px}
.sheetx p{margin:4px 0 10px;color:var(--dim);font-size:14px;line-height:1.8}
.sheetx .lbl{font-weight:700;font-size:14.5px;margin:14px 0 6px}
.sizerow{display:flex;align-items:center;gap:10px}
.sizerow .act{flex:none;width:64px;min-width:64px;font-size:18px}
.sizerow output{flex:1;text-align:center;font-weight:700}
.themes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0}
.th{min-height:72px;border:2px solid var(--line);border-radius:14px;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-weight:600;font-size:14px}
.th.on{border-color:var(--accent)}
.th i{width:30px;height:30px;border-radius:50%;display:block;box-shadow:inset 0 0 0 4px rgba(255,255,255,.55)}
.sheetx .fine{font-size:12.5px;color:var(--dim);margin:0 0 4px}

@media (max-width:380px){
  .ibtn{min-width:40px;padding:0 6px}
  .sheet{padding:16px 12px 22px}
}
/* گوش بده: دکمهٔ کنار سرفصل/کادر و نوار پخش */
.plbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;margin-inline-start:10px;padding:0;vertical-align:middle;
  border:1.5px solid var(--accent-line);border-radius:50%;background:var(--accent-soft);color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
/* ناحیهٔ لمس ۸ پیکسل بیرون از دایره تا ضربهٔ نه‌چندان دقیق هم بگیرد */
.plbtn::after{content:"";position:absolute;inset:-8px;border-radius:50%}
.plbtn svg{width:17px;height:17px}
/* ▶ سرِ تیتر می‌نشیند تا در تیترِ بلند تنها به خطِ بعد نیفتد */
.n-h2 .plbtn,.n-h3 .plbtn{margin-inline-start:0;margin-inline-end:10px}
/* جدولِ پهن: لبهٔ محوشونده نشان می‌دهد سمتِ دیگر هم ستون هست */
.tbl-box{position:relative}
.tbl-box::before,.tbl-box::after{content:"";position:absolute;top:0;bottom:0;width:26px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:1}
.tbl-box::before{left:0;background:linear-gradient(to right,rgba(60,70,110,.28),transparent)}
.tbl-box::after{right:0;background:linear-gradient(to left,rgba(60,70,110,.28),transparent)}
.tbl-box[data-more="l"]::before,.tbl-box[data-more="r"]::after,.tbl-box[data-more="lr"]::before,.tbl-box[data-more="lr"]::after{opacity:1}
.plbtn.on{background:var(--accent);color:var(--paper);border-color:var(--accent)}
.co .plbtn,.n-p .plbtn,.n-li .plbtn{width:32px;height:32px;margin-inline-start:8px}
.co .plbtn svg,.n-p .plbtn svg,.n-li .plbtn svg{width:15px;height:15px}
.plrow{margin:.15em 0 .35em;line-height:1}
.ap{position:fixed;left:0;right:0;bottom:var(--barh);z-index:29;background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -4px 14px rgba(20,26,46,.08);
  padding:8px 12px;display:flex;flex-direction:column;gap:4px;align-items:center}
.ap[hidden]{display:none}
.ap-t{width:100%;max-width:720px;font-size:14px;font-weight:700;line-height:1.6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-t.err{color:var(--exam-ink)}
.ap-r{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;max-width:720px;direction:ltr}
.ap-b{min-width:44px;height:44px;border:none;border-radius:12px;background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;padding:0 8px}
.ap-b svg{width:22px;height:22px}
.ap-b.main{background:var(--accent);color:var(--paper);border-radius:50%;width:48px;height:48px}
[data-theme="dark"] .ap-b.main{color:#101219}
.ap-b:disabled{opacity:.5}
.ap-b.spd{min-width:58px;height:34px;border:1.5px solid var(--line);border-radius:999px;font-size:13px;font-variant-numeric:tabular-nums}
.ap-c{min-width:56px;text-align:center;font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}
body.kb .ap{display:none}
body.ap-on .wrap{padding-bottom:calc(var(--barh) + 120px + env(safe-area-inset-bottom))}

/* هاب جلسه: سرایند، تب‌ها، بنر */
.top .shr{font-size:13.5px;font-weight:700;color:var(--accent);padding:0 10px}
.top .shr svg{width:19px;height:19px}
.tabs{position:sticky;top:57px;z-index:19;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:4px;padding:4px 8px}
.tabs .home{flex:none;width:44px;height:44px;border:none;background:transparent;border-radius:12px;color:var(--dim);display:inline-flex;align-items:center;justify-content:center;padding:0}
.tabs .home:active{background:var(--accent-soft)}
.tabs .home svg{width:22px;height:22px}
.tabs .seg{flex:1;min-width:0;display:flex;gap:2px;background:var(--muted-bg);border-radius:12px;padding:3px}
.tabs .tb{flex:1 1 auto;min-height:40px;border:none;background:transparent;border-radius:9px;color:var(--dim);font-size:13px;font-weight:700;line-height:1.4;padding:0 6px;white-space:nowrap}
.tabs .tb.on{background:var(--paper);color:var(--accent);box-shadow:0 1px 3px rgba(20,26,46,.14)}
.hubbanner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent-line);border-radius:14px;padding:10px 12px;margin-bottom:10px;font-size:14px;font-weight:700}
.hubbanner span{flex:1 1 140px}
.hubbanner .act{flex:0 0 auto;min-width:0;padding:0 14px}
.hubtab{min-height:40vh}
.bar .alt.saved{background:var(--accent-soft);border-color:var(--accent-line)}
.bar .alt{white-space:nowrap;padding:0 12px;font-size:14px}
.bar .cta{display:flex;align-items:center;justify-content:center;width:100%;max-width:720px;min-height:44px;border-radius:12px;color:var(--accent);font-weight:700;font-size:14.5px;text-decoration:underline}

/* ═════ هاب v1: نوار بالا، ظاهر دفتری، تور، برگه‌ها ═════ */
:root{--page:var(--paper);--rule:rgba(100,110,150,.09);--fs:18px;--lh:34px;--ry:25px}
@supports (color:color-mix(in srgb,red 50%,blue)){:root{--rule:color-mix(in srgb,var(--accent) 9%,transparent)}}
[data-theme="sepia"]{--rule:rgba(139,90,43,.12)}
html[data-page="ruled"]{--page:#fcfbf8}
html[data-page="ruled"][data-theme="sepia"],html[data-page="ruled"][data-theme="dark"]{--page:var(--paper)}

/* ردیف ۱ */
.top{gap:6px;padding:6px 10px}
.pnl{flex:none;display:inline-flex;align-items:center;gap:2px;min-width:44px;height:44px;border:none;background:transparent;border-radius:12px;color:var(--accent);font-weight:700;font-size:14px;padding:0 4px 0 8px}
.pnl svg{width:20px;height:20px;flex:none}
.pnl:active{background:var(--accent-soft)}
.pnl.iconly{color:var(--ink);padding:0 10px}
.pnl.iconly svg{width:22px;height:22px}
.top .ttl.rn{cursor:pointer}
.top .ttl.rn b::after{content:"✎";font-size:.8em;color:var(--dim);margin-inline-start:6px;font-weight:400}
.pill{flex:none;position:relative;display:inline-flex;align-items:center;gap:5px;height:40px;padding:0 11px;border:1.5px solid var(--accent-line);background:transparent;color:var(--accent);border-radius:999px;font-size:12.5px;font-weight:700;line-height:1}
.pill svg{width:16px;height:16px;flex:none}
.pill:active{filter:brightness(.95)}
.pill.fill{background:var(--accent);border-color:var(--accent);color:var(--paper)}
[data-theme="dark"] .pill.fill{color:#101219}
.pill .badge{position:absolute;top:-6px;left:-5px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--exam-line);color:#fff;font-style:normal;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 0 0 2px var(--paper)}
@media (max-width:360px){.pill span{display:none}.pill{padding:0 10px}}

/* ردیف ۲ */
.tabs{padding:4px 8px;gap:4px}
.tabs .seg{order:0}
.tabs .ibtn{flex:none;color:var(--dim)}

/* برگه */
.sheet{background:var(--page);padding:18px 0 0}
.head{padding-inline:16px}
.lines{padding:0 16px 24px}
@media (max-width:480px){.lines{padding-inline:8px;--lpad:8px}}
.h1-edit,.head h1.rn{cursor:pointer}
.head h1.rn svg{width:.6em;height:.6em;margin-inline-start:.4em;color:var(--dim);vertical-align:baseline}
.head .course[data-act]{cursor:pointer}

html[data-grid="on"] .lines{padding:0 var(--lpad,16px) var(--lh);line-height:var(--lh);
  background-image:linear-gradient(to bottom,transparent calc(var(--ry) - 1px),var(--rule) calc(var(--ry) - 1px),var(--rule) var(--ry),transparent var(--ry));
  background-size:100% var(--lh);background-repeat:repeat-y}
html[data-grid="on"] .sheet.is-editing .lines{background-image:none}
html[data-grid="on"] .lines .blk{display:flow-root;margin:0 -8px;padding:0 8px;line-height:var(--lh)}
html[data-grid="on"] .lines .n-h2{margin:0;padding:var(--lh) 0 0;border:0;line-height:var(--lh)}
/* خط‌های دفتری فقط پشتِ متنِ پاراگراف؛ پشتِ تیتر ساده می‌ماند (کناره‌ها هم با سایهٔ افقی پوشانده می‌شود) */
html[data-grid="on"] .lines .n-h2,html[data-grid="on"] .lines .n-h3{background:var(--page);box-shadow:16px 0 0 var(--page),-16px 0 0 var(--page);box-sizing:border-box;max-width:100%;min-width:0;overflow-wrap:anywhere}
html[data-grid="on"] .lines .blk:first-child .n-h2{padding-top:0}
html[data-grid="on"] .lines .n-h3{margin:0;line-height:var(--lh)}
html[data-grid="on"] .lines .n-p{margin:0 0 var(--lh)}
html[data-grid="on"] .lines .n-li{margin-top:0;margin-bottom:0}
html[data-grid="on"] .lines .n-li::before{top:calc(var(--ry) - .62em)}
html[data-grid="on"] .lines .co{margin:calc(var(--lh)/2) 0;padding:calc(var(--lh)/2) .75em;line-height:var(--lh)}
html[data-grid="on"] .lines .tbl-wrap,html[data-grid="on"] .lines .tree,html[data-grid="on"] .lines .flow,html[data-grid="on"] .lines .math,html[data-grid="on"] .lines .fig,html[data-grid="on"] .lines .mine{margin:calc(var(--lh)/2) 0}
html[data-grid="on"] .lines .tbl-wrap,html[data-grid="on"] .lines .tree,html[data-grid="on"] .lines .flow,html[data-grid="on"] .lines .fig{background:var(--page)}
html[data-grid="on"] .lines .plrow{margin:0}
html[data-grid="on"] .lines .acts{margin:6px 0}
html[data-grid="on"] .lines hr.sep{margin:calc(var(--lh)/2) 0}

@media (max-width:480px){
  .wrap{padding-inline:0}
  .sheet{border-radius:0;box-shadow:none;border-block:1px solid var(--line)}
  #hubtabs{padding-inline:10px}
  .hubbanner{margin-inline:10px}
}

/* نوار پایین فقط برای نسخهٔ عمومی */
.bar .alt{flex:1}

/* برگهٔ دانلود و فرم‌ها */
.sheetx .dlopt{width:100%;min-height:52px;border:none;border-radius:14px;background:var(--accent);color:var(--paper);font-weight:800;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:8px}
[data-theme="dark"] .sheetx .dlopt{color:#101219}
.sheetx .dlopt:disabled{opacity:.6}
.sheetx .dlopt svg{width:22px;height:22px}
.sheetx .msg{font-size:13.5px;color:var(--dim);margin:10px 0 0;line-height:1.7}
.sheetx .msg.err,.sheetx .err{color:var(--exam-ink);font-weight:600}
.sheetx .send{width:100%;min-height:46px;margin-top:8px;border:1.5px solid var(--accent-line);border-radius:12px;background:transparent;color:var(--accent);font-weight:700}
.sheetx .send:disabled{opacity:.6}
.sheetx .fld{width:100%;font-family:inherit;font-size:16px;line-height:1.7;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:8px 12px;outline:none;direction:rtl;resize:none}
.sheetx .fld:focus{border-color:var(--accent)}
.sheetx .repq{border-right:3px solid var(--accent-line);background:var(--muted-bg);border-radius:6px;padding:6px 10px;margin:8px 0;font-size:13.5px;line-height:1.7;color:var(--dim);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sheetx .repmeta{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--dim);margin-top:4px;min-height:20px}
.sheetx .btnrow{flex-wrap:wrap}
.sheetx .btnrow .act{flex:1 1 40%}
.tgl{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--paper);font-weight:600;font-size:14.5px}
.tgl i{flex:none;width:42px;height:24px;border-radius:12px;background:var(--line);position:relative;transition:background .15s}
.tgl i::after{content:"";position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s}
.tgl.on i{background:var(--accent)}
.tgl.on i::after{transform:translateX(-18px)}

/* تور */
.tour{position:fixed;inset:0;z-index:70;pointer-events:none}
.tour.dim{background:rgba(10,12,20,.5)}
.tour-ring{position:fixed;border-radius:14px;box-shadow:0 0 0 3px var(--accent),0 0 0 9999px rgba(10,12,20,.5);pointer-events:none;transition:left .2s,top .2s,width .2s,height .2s}
.tour-card{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:520px;margin:0 auto;background:var(--paper);color:var(--ink);border-radius:18px;box-shadow:0 10px 32px rgba(0,0,0,.3);padding:14px 16px;pointer-events:auto}
.tour-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--dim)}
.tour-top .dots{display:inline-flex;gap:5px}
.tour-top .dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.tour-top .dots i.on{background:var(--accent)}
.tour-card b{display:block;font-size:16px;margin-top:6px}
.tour-card p{margin:4px 0 0;font-size:14px;line-height:1.9;color:var(--ink)}
.tour-btns{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.tour-skip{border:none;background:none;color:var(--dim);font-weight:600;min-height:44px;padding:0 6px;text-decoration:underline}
.tour-btns .act{flex:none;min-width:110px}
.sheet{font-size:var(--fs);line-height:1.85}

/* ═════ ممیزی UI هاب (۱۰-۱۱): هیچ چیز از کادر بیرون نزند ═════ */
/* محتوای بلند (نشانی، کلمهٔ لاتینِ بلند، فرمولِ درونِ متن) داخلِ ستونِ متن بشکند یا اسکرول بخورد */
.lines,.lines .blk,.co,.mine,.tree-node,.flow-node,.fig,.sheetx,.tour-card,.hubbanner{overflow-wrap:anywhere;min-width:0}
.lines .katex{max-width:100%}
.lines :not(.math)>.katex{display:inline-block;overflow-x:auto;overflow-y:hidden;vertical-align:middle;max-width:100%}
.lines .katex-display{overflow-x:auto;overflow-y:hidden;max-width:100%}
.math{max-width:100%}
.lines code,.sheetx code{overflow-wrap:anywhere;word-break:break-word}
.lines img,.lines svg:not(.plbtn svg),.lines video{max-width:100%;height:auto}
.tbl-wrap{max-width:100%;overflow-x:auto}
/* جدول مثل PDF در پهنای صفحه جا می‌شود و اسکرول افقی ندارد: ستون‌ها نرم می‌شکنند، واژهٔ بلند و لاتین بریده می‌شود، فرمول داخل خانه کوچک‌تر می‌شود */
.tbl-wrap table{width:100%;max-width:100%;table-layout:auto;font-size:.9em;direction:rtl}
.tbl-wrap th,.tbl-wrap td{padding:4px 5px;line-height:1.6;word-break:normal;overflow-wrap:break-word;min-width:0}
/* واژهٔ فارسی هرگز وسطش نمی‌شکند (مثل PDF)؛ فقط توکنِ لاتینِ بلند و کد داخل خانه می‌تواند بشکند */
.tbl-wrap :is(td,th) :is(code,.lat){overflow-wrap:anywhere}
.tbl-wrap .katex{font-size:.92em}
/* جدول پرستون: فونت و فاصله کوچک‌تر تا کمتر ناچار به شکستنِ وسطِ واژه شود */
.tbl-wrap table:has(th:nth-child(5)){font-size:.84em}
.tbl-wrap table:has(th:nth-child(5)) :is(th,td){padding:3px 3px}
.tbl-wrap table:has(th:nth-child(6)){font-size:.8em}
.tbl-wrap table:has(th:nth-child(6)) :is(th,td){padding:3px 2px}
.tbl-wrap table:has(th:nth-child(7)){font-size:.76em}
.flow-row{min-width:0}
.flow-node{max-width:100%}
/* هایلایت همان ظاهرِ PDF است: src/pdf/emphasis.ts (توپر، بی گرادیان) */
/* «A−» و «A+» برعکس خوانده نشوند */
.sizerow .act{direction:ltr;unicode-bidi:isolate}
/* سرایند و تب‌ها روی دسکتاپ هم‌ستونِ برگه (۷۲۰ پیکسل) */
@media (min-width:760px){
  .top,.tabs{padding-inline:max(10px,calc((100% - 720px)/2))}
}
/* پیل‌ها و برچسب‌ها: یک خط، اگر جا نشد سه‌نقطه */
.pill span,.tabs .tb,.hp-chip,.hs-tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pill{max-width:42vw}
.hs-name,.hs-list li>*{min-width:0;overflow-wrap:anywhere}
.top .ttl small:not(.err){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* بازشو و پخش‌کننده: لبه‌های امنِ گوشی */
.sheetx{padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(16px + env(safe-area-inset-right))}
.ap{padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right))}

/* نقشهٔ این جلسه */
.nmap{margin:12px 0 4px;border:1px solid var(--accent-line);border-radius:12px;background:var(--accent-soft);padding:8px 14px}
.nmap summary{font-weight:800;color:var(--accent-ink);font-size:.82em;cursor:pointer;min-height:32px;display:flex;align-items:center}
.nmap ol{list-style:none;margin:4px 0 2px;padding:0}
.nmap a{color:inherit;text-decoration:none;display:block;padding:1px 0;min-width:0;overflow-wrap:anywhere}
.nmap li.h2{display:flex;gap:10px;align-items:flex-start;font-weight:700;font-size:.8em;line-height:1.7;margin-top:4px}
.nmap .nd{flex:none;width:8px;height:8px;margin-top:.62em;border-radius:50%;background:var(--accent)}
.nmap li.h3{font-size:.72em;color:var(--dim);line-height:1.6;padding-inline-start:18px}
.lines [id^="sec-"],.sheet [id^="sec-"]{scroll-margin-top:120px}

/* نمونهٔ عمومی (/sample) */
.sbanner{display:block;background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent-line);border-radius:12px;padding:6px 12px;margin-bottom:8px;font-size:13.5px;line-height:1.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sbanner[hidden]{display:none}
.sbanner b{font-weight:800}
.sbanner span{font-weight:500}
@media (max-width:480px){.sbanner{margin-inline:10px}}
.sheetx a.dlopt{text-decoration:none;box-sizing:border-box}
.sheetx a.dlopt.alt{background:transparent;color:var(--accent);border:1.5px solid var(--accent-line)}

/* جلسهٔ قبل/بعد بالای صفحه: بعدی راست، قبلی چپ؛ جای دکمهٔ نبودنی خالی می‌ماند */
.swnav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.swnav[hidden]{display:none}
.swnav .swb{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--accent-line);background:var(--accent-soft);color:var(--accent-ink);font:inherit;font-size:.78em;font-weight:700;cursor:pointer}
.swnav .swb svg{width:1.1em;height:1.1em;flex:none}
.swnav .nx{grid-column:1;justify-self:start}
.swnav .pv{grid-column:2;justify-self:end}
/* برگهٔ دانلود: فاصلهٔ عنوانِ بخشِ دوم از دکمهٔ بالایی (بازبینی B، #۵) */
.sheetx .dlopt + h3{margin-top:20px}

/* ── نقشهٔ درختیِ وب (فقط با NOTE_WEBMAP؛ کلاس‌ها همه vt-*اند و به .nmap ی قدیمی کاری ندارند) ──
   همه‌چیز em است و پایه ۱۳px ضرب در --vz (زوم)؛ ۶px کنار صفحه (حاشیهٔ منفی = ۶px منهای padding ی .lines؛ --lpad در گوشی ۸px است) */
.vt-box{position:relative;margin:4px calc(6px - var(--lpad,16px)) 6px}
.vt-scroll{overflow-x:auto;overflow-y:hidden;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
.vt{--vz:1;position:relative;font-size:calc(var(--vz) * 13px);width:calc(var(--vz) * 100%);margin:0;text-align:right;line-height:1.55}
.vt a{color:inherit;text-decoration:none}
.vt-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.vt-root{position:relative;z-index:1;width:max-content;max-width:92%;margin:0 auto;background:#1e3a8a;color:#fff;border-radius:1.1em;padding:.5em 1.1em .55em;text-align:center}
.vt-rc,.vt-rd{font-size:.84em;font-weight:500;line-height:1.5;opacity:.85}
.vt-rt{font-size:1.1em;font-weight:800;line-height:1.5}
.vt-root[data-act],.vt-own .vt-br a{cursor:pointer}
.vt-body{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:.5em .9em;margin-top:1.1em}
.vt-body.js{display:block}
.vt-body.js .vt-br{position:absolute;width:calc(50% - .45em)}
.vt-body.js .vt-r{right:0}
.vt-body.js .vt-l{left:0}
.vt-br{position:relative;background:var(--t);border-radius:.8em;padding:.5em .6em .55em}
.vt-h{display:flex;align-items:flex-start;gap:.45em;font-weight:800;font-size:1em;line-height:1.5;color:var(--c)}
.vt-n{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;margin-top:.02em;border-radius:50%;background:var(--c);color:#fff;font-size:.78em;font-weight:700;line-height:1}
.vt-br ul{margin:.4em 0 0;padding:.35em 0 0;border-top:1px solid #fff;list-style:none;display:flex;flex-direction:column;gap:.1em}
.vt-br li{position:relative;padding-right:.95em;font-size:.88em;color:#1e293b;line-height:1.5}
.vt-br li::before{content:"";position:absolute;right:.05em;top:.6em;width:.42em;height:.42em;border-radius:50%;background:var(--c)}
[data-theme="dark"] .vt-br li{color:#1e293b}
.mapacts{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.mapacts .act{width:100%;justify-content:center}
.head.nohd{padding-top:0}
.head.nohd .swnav{margin-top:0}
.head.nohd .own-hint:empty{display:none}
.head.nohd:not(:has(.swnav:not([hidden]),.edited-tag,.own-hint:not(:empty))){display:none}

/* ── نوارِ بالای غیرچسبان (فقط NOTE_WEBMAP: html.wm-bar) ── */
html.wm-bar .top,html.wm-bar .tabs{position:static}
#wmpeek,#wmhandle,#wmph{display:none}
#wmpeek{position:fixed;z-index:59;top:calc(10px + env(safe-area-inset-top));left:10px;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--dim);box-shadow:0 2px 8px rgba(20,26,46,.16);align-items:center;justify-content:center}
#wmpeek::after{content:"";position:absolute;inset:-4px}
#wmpeek svg{width:18px;height:18px}
html.wm-away #wmpeek{display:flex}
html.wm-show #wmpeek{display:none}
html.wm-ov #wmph{display:block;height:var(--wm-h,0)}
html.wm-ov .top,html.wm-ov .tabs{position:fixed;left:0;right:0;transform:translateY(calc(-1 * (var(--wm-h,120px) + 40px)));transition:transform .22s ease;box-shadow:0 6px 16px rgba(20,26,46,.14)}
html.wm-ov .top{top:0;z-index:62;padding-top:calc(6px + env(safe-area-inset-top))}
html.wm-ov .tabs{top:calc(var(--wm-th,57px) + env(safe-area-inset-top));z-index:61}
html.wm-ov.wm-show .top,html.wm-ov.wm-show .tabs{transform:none}
#wmhandle{position:fixed;z-index:62;top:calc(var(--wm-h,114px) + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:64px;height:26px;padding:0;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;background:var(--paper);color:var(--dim);box-shadow:0 6px 12px rgba(20,26,46,.12);align-items:center;justify-content:center}
#wmhandle::after{content:"";position:absolute;inset:0 -8px -10px}
#wmhandle svg{width:20px;height:20px}
html.wm-show #wmhandle{display:flex}
@media (prefers-reduced-motion:reduce){html.wm-ov .top,html.wm-ov .tabs{transition:none}}

/* نبض ۱۰-۱۷: بازخوردِ دکمه‌هایی که چند بار زده می‌شدند، و کارتِ راهنمای /sample بالای «خودت شروع کن» */
@keyframes plspin{to{transform:rotate(360deg)}}
.plspin{width:15px;height:15px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:plspin .7s linear infinite;display:inline-block}
.plbtn.wait{cursor:progress}
.sheetx .dlopt.wait:disabled{opacity:.85;cursor:progress}
.tour.over-bar .tour-card{bottom:calc(var(--barh) + 12px + env(safe-area-inset-bottom))}
