/* ═══════════════════════════════════════════════════════════════
   اپِ درون — تماشاخانه (a/ketab/mod-cinema.js)

   سینمایی ولی آرام: پوسترهای ۲:۳ که جا نمی‌پرند، ریل‌های افقی با قفلِ اسکرول، برگه‌ی عنوان با
   پس‌زمینه‌ی محو، تیک‌هایی که می‌پرند. رنگ فقط از --d-*؛ پوسترِ ساختگی از رنگِ نامِ عنوان (--h1/--h2).
   همه‌ی کلاس‌ها cn-. بعد از app.css و extra.css بار می‌شود؛ تیره پیش‌فرض، کاغذی با data-theme=paper.
   ═══════════════════════════════════════════════════════════════ */

.dapp{--cn-on-ok:#0f1411;--cn-on-blue:#0d1420}
:root[data-theme="paper"] .dapp{--cn-on-ok:#ffffff;--cn-on-blue:#ffffff}

/* ═══════════════════ پایه ═══════════════════ */
.dapp .cn{--cn-g:16px;--cn-pw:112px;padding-bottom:16px}
@media (min-width:600px){.dapp .cn{--cn-pw:128px}}
@media (min-width:900px){.dapp .cn{--cn-g:36px;--cn-pw:148px}}
.dapp .cn-code{font-variant-numeric:tabular-nums;font-weight:600;unicode-bidi:isolate;white-space:nowrap}
.dapp .cn-dim{color:var(--d-sub);font-size:13px;line-height:1.8}
.dapp .cn-hint{color:var(--d-faint);font-size:12px;line-height:1.8;margin:-4px 0 10px}
.dapp .cn-h{font-size:22px;font-weight:600;margin:4px 0 10px;line-height:1.4}
.dapp [class*="cn-"]:focus-visible{outline:2px solid var(--d-acc);outline-offset:2px}
.dapp .cn-results{min-height:50vh;transition:opacity .2s}
.dapp .cn-results.cn-loading{opacity:.55}
.dapp .cn-list{min-height:220px}

.dapp .cn-link-btn{display:inline-flex;align-items:center;gap:5px;color:var(--d-acc);font-size:13px;font-weight:600;padding:6px 2px;border-radius:8px}
.dapp .cn-link-btn .ic{width:16px;height:16px}
.dapp .cn-link-btn.dim{color:var(--d-sub);font-weight:500}
.dapp .cn-link-btn:hover{text-decoration:underline;text-underline-offset:5px}
.dapp .cn-link-btn[hidden]{display:none}
.dapp .cn-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:11.5px;font-weight:600;
  background:var(--d-surf3);color:var(--d-ink2)}
.dapp .cn-pill .ic{width:14px;height:14px}
.dapp .cn-pill.warn{background:var(--d-acc-soft);color:var(--d-acc)}
.dapp .cn-plink{color:var(--d-ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--d-line2);text-underline-offset:5px;
  transition:text-decoration-color .15s,color .15s}
.dapp .cn-plink:hover{text-decoration-color:var(--d-acc);color:var(--d-acc)}

/* ═══════════════════ نوارِ چسبانِ جست‌وجو ═══════════════════ */
.dapp .cn-top{position:sticky;top:calc(var(--d-top) + var(--d-safe-t));z-index:30;display:flex;flex-direction:column;gap:10px;
  margin:-8px calc(-1 * var(--cn-g)) 6px;padding:8px var(--cn-g) 12px;
  background:color-mix(in srgb,var(--d-bg) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(18px);backdrop-filter:saturate(1.4) blur(18px)}
@media (min-width:900px){
  .dapp .cn-top{top:72px;flex-direction:row;align-items:center;gap:14px}
  .dapp .cn-top .cn-search{flex:1;min-width:0}
}
.dapp .cn-top.cn-top-my,.dapp .cn-top.cn-top-b{flex-direction:column;align-items:stretch}
.dapp .cn-top.cn-top-b{margin-top:0}
.dapp .cn-search{position:relative;display:flex;align-items:center}
.dapp .cn-search .cn-s-ico{position:absolute;inset-inline-start:15px;width:20px;height:20px;color:var(--d-sub);pointer-events:none}
.dapp .cn-q{-webkit-appearance:none;appearance:none;width:100%;min-height:50px;border-radius:16px;border:1.5px solid var(--d-line);
  background:var(--d-surf);padding:0 46px;font-size:16px;color:var(--d-ink);outline:none;box-shadow:var(--d-shadow);
  transition:border-color .15s,box-shadow .2s}
.dapp .cn-q::placeholder{color:var(--d-faint)}
.dapp .cn-q:focus{border-color:var(--d-acc);box-shadow:0 0 0 4px var(--d-acc-soft)}
.dapp .cn-q:focus-visible{outline:none}
.dapp .cn-q::-webkit-search-cancel-button,.dapp .cn-q::-webkit-search-decoration{-webkit-appearance:none}
.dapp .cn-q-x{position:absolute;inset-inline-end:6px;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--d-sub);
  transition:background .15s,color .15s}
.dapp .cn-q-x:hover{background:var(--d-surf2);color:var(--d-ink)}
.dapp .cn-search .cn-q-x .ic{width:18px;height:18px}

/* کنترلِ چندگزینه‌ای و فهرستِ کشویی */
.dapp .cn-seg{display:inline-flex;align-self:flex-start;flex:none;max-width:100%;padding:4px;gap:2px;border-radius:14px;background:var(--d-surf2);
  overflow-x:auto;scrollbar-width:none}
.dapp .cn-seg::-webkit-scrollbar{display:none}
.dapp .cn-seg button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 14px;border-radius:10px;
  font-size:13px;font-weight:500;color:var(--d-sub);white-space:nowrap;transition:background .2s var(--d-ease),color .2s,box-shadow .2s}
.dapp .cn-seg button .ic{width:16px;height:16px}
.dapp .cn-seg button:hover{color:var(--d-ink)}
.dapp .cn-seg button.on{background:var(--d-surf);color:var(--d-ink);font-weight:600;box-shadow:0 2px 8px -3px rgba(0,0,0,.45)}
:root[data-theme="paper"] .dapp .cn-seg button.on{box-shadow:0 2px 6px -2px rgba(60,45,20,.28)}
.dapp .cn-selw{position:relative;display:inline-flex;align-items:center;flex:none}
.dapp .cn-selw .ic{position:absolute;inset-inline-start:11px;width:16px;height:16px;color:var(--d-sub);pointer-events:none}
.dapp .cn-sel{-webkit-appearance:none;appearance:none;min-height:42px;border-radius:13px;border:0;background:var(--d-surf2);color:var(--d-ink);
  font:inherit;font-size:13px;font-weight:500;padding-block:0;padding-inline:34px 14px;cursor:pointer}
.dapp .cn-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.dapp .cn-tools .cn-seg{align-self:auto}

/* زبانه‌های فهرست‌های من */
.dapp .cn-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * var(--cn-g));padding:2px var(--cn-g)}
.dapp .cn-tabs::-webkit-scrollbar{display:none}
.dapp .cn-tab{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border-radius:99px;font-size:13.5px;font-weight:500;
  color:var(--d-ink2);background:var(--d-surf);border:1px solid var(--d-line);
  transition:background .2s,color .2s,border-color .2s,transform .15s var(--d-spring)}
.dapp .cn-tab .ic{width:17px;height:17px}
.dapp .cn-tab i{font-style:normal;font-size:11.5px;min-width:22px;height:20px;padding:0 6px;border-radius:99px;display:inline-grid;place-items:center;
  background:var(--d-surf3);color:var(--d-sub);font-variant-numeric:tabular-nums}
.dapp .cn-tab:hover{color:var(--d-ink)}
.dapp .cn-tab:active{transform:scale(.95)}
.dapp .cn-tab.on{background:var(--d-ink);color:var(--d-bg);border-color:var(--d-ink);font-weight:600}
.dapp .cn-tab.on i{background:color-mix(in srgb,var(--d-bg) 22%,transparent);color:var(--d-bg)}

/* ═══════════════════ شبکه و کارتِ پوستر ═══════════════════ */
.dapp .cn-res-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 12px;font-size:13px;color:var(--d-sub)}
.dapp .cn-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 12px}
@media (min-width:560px){.dapp .cn-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:768px){.dapp .cn-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:24px 16px}}
.dapp .cn-pager{margin-top:22px}

.dapp .cn-pc{position:relative;min-width:0}
.dapp .cn-pc-open{display:flex;flex-direction:column;gap:8px;width:100%;text-align:start;border-radius:14px;color:var(--d-ink);
  -webkit-tap-highlight-color:transparent}
.dapp .cn-pc-t{display:flex;flex-direction:column;gap:1px;min-width:0;padding-inline:2px}
.dapp .cn-pc-t b{font-size:13px;font-weight:600;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dapp .cn-pc-t span{font-size:11.5px;color:var(--d-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-pc-open:hover .cn-art{transform:translateY(-3px);box-shadow:0 20px 30px -16px rgba(0,0,0,.8),0 0 0 1px var(--d-line2)}
.dapp .cn-pc-open:active .cn-art{transform:scale(.97)}
@media (hover:none){.dapp .cn-pc-open:hover .cn-art{transform:none}}

/* پوستر: همیشه ۲:۳؛ عکس روی پوسترِ ساختگی محو می‌شود */
.dapp .cn-art{position:relative;display:block;width:100%;aspect-ratio:2/3;border-radius:12px;overflow:hidden;background:var(--d-surf2);flex:none;isolation:isolate;
  box-shadow:0 12px 24px -16px rgba(0,0,0,.75),0 0 0 1px var(--d-line);transition:transform .25s var(--d-ease),box-shadow .25s var(--d-ease)}
:root[data-theme="paper"] .dapp .cn-art{box-shadow:0 10px 22px -14px rgba(60,45,20,.45),0 0 0 1px var(--d-line)}
.dapp .cn-art img{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s ease}
.dapp .cn-art img.ok{opacity:1}
.dapp .cn-art.sm{width:64px;border-radius:9px}
.dapp .cn-art.xs{width:42px;border-radius:7px;box-shadow:0 0 0 1px var(--d-line)}
.dapp .cn-art.hero{width:112px;border-radius:14px;box-shadow:0 26px 40px -18px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.08)}
@media (min-width:768px){.dapp .cn-art.hero{width:168px;border-radius:16px}}

.dapp .cn-gen{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;padding:10px 10px 11px;color:#f7efe1;
  background:radial-gradient(120% 70% at 85% 0%,hsl(var(--h2,30) 70% 55% / .45),transparent 60%),
    radial-gradient(90% 60% at 0% 100%,hsl(var(--h1,200) 60% 42% / .35),transparent 70%),
    linear-gradient(165deg,hsl(var(--h1,200) 38% 28%),hsl(var(--h2,30) 42% 13%))}
.dapp .cn-gen::before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.12);border-radius:7px;pointer-events:none}
.dapp .cn-gen .ic{position:absolute;top:11px;inset-inline-end:11px;width:16px;height:16px;opacity:.6}
.dapp .cn-gen b{position:relative;font-size:12.5px;font-weight:600;line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;
  overflow:hidden;overflow-wrap:anywhere;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.dapp .cn-gen i{position:relative;font-style:normal;font-size:11px;opacity:.7}
.dapp .cn-art.sm .cn-gen,.dapp .cn-art.xs .cn-gen{justify-content:center;align-items:center;padding:4px}
.dapp .cn-art.sm .cn-gen b,.dapp .cn-art.sm .cn-gen i,.dapp .cn-art.xs .cn-gen b,.dapp .cn-art.xs .cn-gen i,
.dapp .cn-art.sm .cn-gen::before,.dapp .cn-art.xs .cn-gen::before{display:none}
.dapp .cn-art.sm .cn-gen .ic,.dapp .cn-art.xs .cn-gen .ic{position:static;width:18px;height:18px}
.dapp .cn-art.hero .cn-gen{padding:14px}
.dapp .cn-art.hero .cn-gen b{font-size:15px}
@media (min-width:768px){.dapp .cn-art.hero .cn-gen b{font-size:18px}}

/* نشان‌های روی پوستر */
.dapp .cn-pc-st{position:absolute;z-index:2;top:7px;inset-inline-end:7px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  background:rgba(12,12,14,.62);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 10px -4px rgba(0,0,0,.6)}
.dapp .cn-art .cn-pc-st .ic{width:15px;height:15px}
.dapp .cn-pc-st.s-watched{background:var(--d-ok);color:var(--cn-on-ok)}
.dapp .cn-pc-st.s-watching{background:var(--d-blue);color:var(--cn-on-blue)}
.dapp .cn-pc-st.s-dropped{color:#f1a79d}
.dapp .cn-pc-fav{position:absolute;z-index:2;top:8px;inset-inline-start:8px;color:var(--d-bad);filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}
.dapp .cn-art .cn-pc-fav .ic{width:18px;height:18px}
.dapp .cn-pc-prog{position:absolute;z-index:2;inset-inline:6px;bottom:6px;height:4px;border-radius:3px;background:rgba(255,255,255,.28);overflow:hidden}
.dapp .cn-pc-prog i{display:block;height:100%;border-radius:inherit;background:var(--d-acc)}
.dapp .cn-pc-q{position:absolute;z-index:3;top:6px;inset-inline-end:6px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:rgba(12,12,14,.55);color:#fff;opacity:.92;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:background .2s,color .2s,opacity .2s,transform .15s var(--d-spring)}
.dapp .cn-pc .cn-pc-q .ic{width:17px;height:17px}
.dapp .cn-pc-q:hover{background:rgba(12,12,14,.78);opacity:1}
.dapp .cn-pc-q:active{transform:scale(.88)}
.dapp .cn-pc-q.on{background:var(--d-acc);color:var(--d-acc-ink);opacity:1}

/* ═══════════════════ بخش‌ها و ریل‌ها ═══════════════════ */
.dapp .cn-sec{margin-top:26px;animation:cn-in .5s var(--d-ease) both;animation-delay:calc(var(--i,0) * 60ms)}
.dapp .cn-quiet .cn-sec,.dapp .cn-quiet .cn-welcome{animation:none}
.dapp .cn-sec-h{display:flex;align-items:center;gap:8px;margin-bottom:12px;min-height:32px}
.dapp .cn-sec-h > .ic{width:20px;height:20px;color:var(--d-acc);flex:none}
.dapp .cn-sec-h h2{flex:1;min-width:0;margin:0;font-size:17px;font-weight:600;line-height:1.5}
.dapp .cn-more{display:inline-flex;align-items:center;gap:2px;flex:none;color:var(--d-acc);font-size:13px;font-weight:600;padding:6px 4px;border-radius:8px}
.dapp .cn-more .ic{width:16px;height:16px;transition:transform .2s var(--d-ease)}
.dapp .cn-more:hover .ic{transform:translateX(-3px)}
.dapp .cn-arrs{display:none;gap:4px;flex:none}
@media (hover:hover) and (min-width:768px){.dapp .cn-arrs{display:inline-flex}}
.dapp .cn-arr{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:var(--d-sub);background:var(--d-surf);border:1px solid var(--d-line);
  transition:background .15s,color .15s}
.dapp .cn-arr:hover{background:var(--d-surf2);color:var(--d-ink)}
.dapp .cn-arrs .cn-arr .ic{width:16px;height:16px}
.dapp[dir="ltr"] .cn-more .ic,.dapp[dir="ltr"] .cn-arrs .cn-arr .ic,.dapp[dir="ltr"] .cn-hb .ic{transform:scaleX(-1)}
.dapp[dir="ltr"] .cn-more:hover .ic{transform:scaleX(-1) translateX(-3px)}

.dapp .cn-rail{display:grid;grid-auto-flow:column;grid-auto-columns:var(--cn-pw);gap:12px;overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-padding-inline:var(--cn-g);margin-inline:calc(-1 * var(--cn-g));padding:4px var(--cn-g) 12px;scrollbar-width:none}
.dapp .cn-rail::-webkit-scrollbar{display:none}
.dapp .cn-rail > *{scroll-snap-align:start;min-width:0}
@media (min-width:900px){.dapp .cn-rail{gap:16px}}
.dapp .cn-rail.cw{grid-auto-columns:min(calc(100% - 28px),360px)}
.dapp .cn-rail.cast{grid-auto-columns:84px;gap:10px}

/* ═══════════════════ ادامه‌ی تماشا ═══════════════════ */
.dapp .cn-cw{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;gap:10px;min-height:124px;padding:12px;
  border-radius:20px;background:var(--d-surf);border:1px solid var(--d-line);box-shadow:var(--d-shadow)}
.dapp .cn-hcard .cn-cw{background:var(--d-surf2);box-shadow:none}
.dapp .cn-cw-bg{position:absolute;inset:-24px;z-index:-1;background-size:cover;background-position:center;filter:blur(26px) saturate(1.4);
  opacity:.32;transform:scale(1.1);pointer-events:none}
.dapp .cn-cw-bg.gen{filter:blur(16px);opacity:.35;background:linear-gradient(120deg,hsl(var(--h1,200) 45% 35%),hsl(var(--h2,30) 50% 25%))}
:root[data-theme="paper"] .dapp .cn-cw-bg{opacity:.18}
.dapp .cn-cw-open{flex:1;min-width:0;display:flex;align-items:center;gap:12px;text-align:start;color:var(--d-ink);border-radius:12px}
.dapp .cn-cw-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.dapp .cn-cw-t b{font-size:14.5px;font-weight:600;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-cw-ep{font-size:12.5px;color:var(--d-acc);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-cw-ep span{color:var(--d-ink2);font-weight:500}
.dapp .cn-cw-ep.done{color:var(--d-ok)}
.dapp .cn-cw-when{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--d-sub)}
.dapp .cn-cw-when .ic{width:13px;height:13px}
.dapp .cn-cw-bar{display:block;height:5px;margin-top:5px;border-radius:3px;background:color-mix(in srgb,var(--d-ink) 12%,transparent);overflow:hidden}
.dapp .cn-cw-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--d-acc),var(--d-fire));transition:width .5s var(--d-ease)}
.dapp .cn-cw-n{font-size:11.5px;color:var(--d-faint);font-variant-numeric:tabular-nums}
.dapp .cn-cw-check{position:relative;flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;
  color:var(--d-ink2);background:color-mix(in srgb,var(--d-surf2) 80%,transparent);border:2px solid var(--d-line2);
  transition:background .2s,border-color .2s,color .2s,opacity .2s,transform .15s var(--d-spring)}
.dapp .cn-cw-check .ic{width:24px;height:24px}
.dapp .cn-cw-check:hover:not(:disabled){border-color:var(--d-ok);color:var(--d-ok)}
.dapp .cn-cw-check:active:not(:disabled){transform:scale(.9)}
.dapp .cn-cw-check:disabled{cursor:default}
.dapp .cn-cw-check.wait{opacity:.55;border-style:dashed}
.dapp .cn-cw-check.is-done{background:var(--d-ok);border-color:var(--d-ok);color:var(--cn-on-ok);opacity:1;animation:cn-pop .45s var(--d-spring)}
.dapp .cn-cw-check.is-done::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--d-ok);animation:cn-ring .6s ease-out both;pointer-events:none}
.dapp .cn-cw.fin .cn-cw-check{opacity:.4}

/* به‌زودی */
.dapp .cn-up{display:grid;gap:8px}
@media (min-width:700px){.dapp .cn-up{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dapp .cn-up-i{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:16px;background:var(--d-surf);border:1px solid var(--d-line);
  text-align:start;color:var(--d-ink);transition:background .15s,transform .15s var(--d-ease)}
.dapp .cn-up-i:hover{background:var(--d-surf2)}
.dapp .cn-up-i:active{transform:scale(.98)}
.dapp .cn-up-d{flex:none;width:48px;display:flex;flex-direction:column;align-items:center;line-height:1.25;padding:7px 0;border-radius:12px;background:var(--d-surf2)}
.dapp .cn-up-d b{font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}
.dapp .cn-up-d span{font-size:11px;color:var(--d-sub)}
.dapp .cn-up-i.now .cn-up-d{background:var(--d-acc);color:var(--d-acc-ink)}
.dapp .cn-up-i.now .cn-up-d span{color:inherit;opacity:.8}
.dapp .cn-up-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.dapp .cn-up-t b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-up-t > span{font-size:12px;color:var(--d-ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-up-t em{font-style:normal;font-size:11.5px;color:var(--d-acc);font-weight:600}

/* شمارش‌ها، ژانرها، خوش‌آمد */
.dapp .cn-cnts{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:4px calc(-1 * var(--cn-g)) 0;padding:2px var(--cn-g) 4px}
.dapp .cn-cnts::-webkit-scrollbar{display:none}
.dapp .cn-cnt{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border-radius:99px;background:var(--d-surf);
  border:1px solid var(--d-line);font-size:13px;color:var(--d-ink2);transition:background .15s,color .15s,transform .15s var(--d-spring)}
.dapp .cn-cnt:hover{background:var(--d-surf2);color:var(--d-ink)}
.dapp .cn-cnt:active{transform:scale(.95)}
.dapp .cn-cnts .cn-cnt .ic{width:17px;height:17px;color:var(--d-sub)}
.dapp .cn-cnt b{font-weight:600;color:var(--d-ink);font-variant-numeric:tabular-nums}
.dapp .cn-cnts .cn-cnt.s-watching .ic{color:var(--d-blue)}
.dapp .cn-cnts .cn-cnt.s-want .ic{color:var(--d-acc)}
.dapp .cn-cnts .cn-cnt.s-watched .ic{color:var(--d-ok)}
.dapp .cn-cnts .cn-cnt.s-favorite .ic{color:var(--d-bad)}
.dapp .cn-cnts .cn-cnt.s-paused .ic{color:var(--d-violet)}

.dapp .cn-chips{display:flex;flex-wrap:wrap;gap:8px}
.dapp .cn-chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 15px;border-radius:99px;font-size:13.5px;font-weight:500;
  color:var(--d-ink2);background:var(--d-surf);border:1px solid var(--d-line);
  transition:background .2s,color .2s,border-color .2s,transform .15s var(--d-spring)}
.dapp .cn-chip:hover{border-color:var(--d-line2);color:var(--d-ink)}
.dapp .cn-chip:active{transform:scale(.95)}
.dapp .cn-chip i{font-style:normal;font-size:11px;color:var(--d-faint);font-variant-numeric:tabular-nums}
.dapp .cn-chip.on{background:var(--d-acc);border-color:var(--d-acc);color:var(--d-acc-ink);font-weight:600}
.dapp .cn-chip.on i{color:inherit;opacity:.7}
.dapp .cn-gchips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * var(--cn-g));padding:2px var(--cn-g)}
.dapp .cn-gchips::-webkit-scrollbar{display:none}
.dapp .cn-gchips .cn-chip{flex:none}

.dapp .cn-welcome{position:relative;overflow:hidden;margin-top:16px;padding:26px 20px 22px;border-radius:var(--d-r);text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:10px;border:1px solid var(--d-line);box-shadow:var(--d-shadow);
  background:radial-gradient(120% 80% at 50% 0%,color-mix(in srgb,var(--d-acc) 22%,transparent),transparent 65%),var(--d-surf);
  animation:cn-in .5s var(--d-ease) both}
.dapp .cn-welcome-art{position:relative;width:110px;height:74px;margin-bottom:2px}
.dapp .cn-welcome-art .ic{position:absolute;color:var(--d-acc)}
.dapp .cn-welcome-art .ic:first-child{width:56px;height:56px;left:50%;top:6px;transform:translateX(-50%);animation:cn-bob 3.2s ease-in-out infinite}
.dapp .cn-welcome-art .ic.b{width:28px;height:28px;left:0;top:34px;color:var(--d-fire);transform:rotate(-14deg)}
.dapp .cn-welcome-art .ic.c{width:26px;height:26px;right:0;top:20px;color:var(--d-blue);transform:rotate(12deg)}
.dapp .cn-welcome h2{font-size:20px;font-weight:600;margin:0}
.dapp .cn-welcome p{font-size:14px;line-height:1.95;color:var(--d-ink2);max-width:470px}
.dapp .cn-welcome-go{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:4px}
.dapp .cn-welcome-g{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:10px}
.dapp .cn-welcome-g > span{font-size:12.5px;color:var(--d-sub)}
.dapp .cn-welcome-g .cn-chips{justify-content:center}

.dapp .cn-nudge{display:flex;align-items:center;gap:12px;margin-top:30px;padding:14px 16px;border-radius:18px;border:1px dashed var(--d-line2)}
.dapp .cn-nudge > .ic{width:26px;height:26px;color:var(--d-acc);flex:none}
.dapp .cn-nudge > span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:12.5px;color:var(--d-sub);line-height:1.7}
.dapp .cn-nudge b{font-size:14px;color:var(--d-ink);font-weight:600}

.dapp .cn-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:36px 16px 28px;color:var(--d-sub);
  animation:cn-in .4s var(--d-ease) both}
.dapp .cn-empty > .ic{width:44px;height:44px;color:var(--d-faint);margin-bottom:6px}
.dapp .cn-empty b{font-size:15.5px;font-weight:600;color:var(--d-ink)}
.dapp .cn-empty > span{font-size:13.5px;line-height:1.9;max-width:420px}
.dapp .cn-empty-go{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:10px}

/* ═══════════════════ اسکلتِ بارگذاری ═══════════════════ */
.dapp .cn-sk i,.dapp .cn-sk-row i,.dapp .cn-sk-lines i,.dapp .cn-sk-pc i,.dapp .cn-sk-pc b,.dapp .cn-skl,.dapp .cn-skb{display:block;
  background:linear-gradient(90deg,var(--d-surf) 0%,var(--d-surf2) 40%,var(--d-surf) 80%) 0 0/200% 100%;animation:cn-shim 1.4s linear infinite}
.dapp .cn-sk{display:flex;flex-direction:column;gap:12px;padding-top:14px}
.dapp .cn-sk-h{height:18px;width:140px;border-radius:8px;margin-top:14px}
.dapp .cn-sk-row{display:flex;gap:12px;overflow:hidden}
.dapp .cn-sk-row i.p{flex:0 0 var(--cn-pw,112px);aspect-ratio:2/3;border-radius:12px}
.dapp .cn-sk-row i.w{flex:0 0 min(86%,340px);height:124px;border-radius:20px}
.dapp .cn-sk-lines{display:flex;flex-direction:column;gap:10px;padding:6px 0}
.dapp .cn-sk-lines i{height:14px;border-radius:7px}
.dapp .cn-sk-lines i:nth-child(2n){width:82%}
.dapp .cn-sk-lines i:nth-child(3n){width:64%}
.dapp .cn-sk-pc{display:flex;flex-direction:column;gap:8px}
.dapp .cn-sk-pc i{aspect-ratio:2/3;border-radius:12px}
.dapp .cn-sk-pc b{height:11px;border-radius:6px;width:85%}
.dapp .cn-sk-pc b + b{width:50%}
.dapp .cn-skl{height:14px;border-radius:7px}
.dapp .cn-skl.w30{width:30%}
.dapp .cn-skl.w50{width:50%}
.dapp .cn-skl.w70{width:70%;height:24px}
.dapp .cn-skl.bar{width:100%;height:72px;border-radius:18px}
.dapp .cn-skb{border-radius:14px}
.dapp .cn-face.cn-skb{border-radius:50%}
.dapp .cn-hero.sk .cn-hero-t{gap:10px;align-items:stretch}

/* ═══════════════════ برگه‌ی عنوان و آدم ═══════════════════ */
.dapp .sheet.cn-tsheet{max-width:880px}
@media (min-width:768px){.dapp .sheet.cn-tsheet{height:min(920px,100%)}}
@media (max-width:767.98px){.dapp .sheet.cn-tsheet{height:calc(100% - 28px - var(--d-safe-t))}}
.dapp .sheet.cn-tsheet .sheet-head{position:absolute;top:0;inset-inline:0;z-index:6;display:flex;align-items:center;flex-wrap:nowrap;gap:8px;
  padding:10px 12px;background:none;border:0;pointer-events:none}
.dapp .sheet.cn-tsheet .sheet-head > *{pointer-events:auto}
.dapp .sheet.cn-tsheet .sheet-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none}
.dapp .sheet.cn-tsheet .sheet-actions{order:0;flex-basis:auto;justify-content:flex-start}
.dapp .sheet.cn-tsheet .x{margin-inline-start:auto}
.dapp .sheet.cn-tsheet .x,.dapp .cn-hb{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:22px;line-height:1;
  background:rgba(12,12,14,.5);color:#fff;border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  transition:background .15s,transform .15s var(--d-spring)}
.dapp .sheet.cn-tsheet .x:hover,.dapp .cn-hb:hover{background:rgba(12,12,14,.74);color:#fff}
.dapp .sheet.cn-tsheet .x:active,.dapp .cn-hb:active{transform:scale(.9)}
.dapp .sheet-actions .cn-hb .ic{width:20px;height:20px}
.dapp .sheet.cn-tsheet .sheet-body{padding:0}

.dapp .cn-hero{position:relative;isolation:isolate;overflow:hidden;padding:62px 16px 16px}
@media (min-width:768px){.dapp .cn-hero{padding:72px 28px 20px}}
.dapp .cn-hero.has-bd{padding-top:calc(min(52vw,300px) - 76px)}
@media (min-width:768px){.dapp .cn-hero.has-bd{padding-top:calc(min(40vw,330px) - 112px)}}
.dapp .cn-hero-bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center 25%;background-repeat:no-repeat;pointer-events:none}
.dapp .cn-hero-bg.bd{bottom:auto;height:min(52vw,300px);
  -webkit-mask-image:linear-gradient(180deg,#000 45%,transparent 100%);mask-image:linear-gradient(180deg,#000 45%,transparent 100%)}
@media (min-width:768px){.dapp .cn-hero-bg.bd{height:min(40vw,330px)}}
.dapp .cn-hero-bg.blur{inset:-40px;filter:blur(30px) saturate(1.4);opacity:.6;transform:scale(1.1)}
:root[data-theme="paper"] .dapp .cn-hero-bg.blur{opacity:.45}
.dapp .cn-hero-bg.gen{opacity:.75;
  background:radial-gradient(90% 80% at 85% 0%,hsl(var(--h2,30) 65% 50% / .55),transparent 60%),
    linear-gradient(160deg,hsl(var(--h1,200) 40% 28%),hsl(var(--h2,30) 45% 12%))}
:root[data-theme="paper"] .dapp .cn-hero-bg.gen{opacity:.5}
.dapp .cn-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,8,10,.4) 0,transparent 74px,color-mix(in srgb,var(--d-surf) 35%,transparent) 42%,var(--d-surf) 92%)}
.dapp .cn-hero.has-bd::after{background:linear-gradient(180deg,rgba(8,8,10,.42) 0,transparent 84px)}
.dapp .cn-hero-in{position:relative;display:flex;align-items:flex-end;gap:16px}
@media (min-width:768px){.dapp .cn-hero-in{gap:24px}}
.dapp .cn-hero-t{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding-bottom:2px}
.dapp .cn-kicker{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 10px 3px 9px;border-radius:99px;font-size:12px;font-weight:600;
  color:var(--d-ink2);background:color-mix(in srgb,var(--d-surf) 62%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.dapp .cn-kicker > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-kicker .ic{width:15px;height:15px;color:var(--d-acc)}
.dapp .cn-hero h3{margin:0;font-size:clamp(20px,5.6vw,30px);font-weight:600;line-height:1.35;overflow-wrap:anywhere;text-wrap:balance;
  text-shadow:0 1px 14px color-mix(in srgb,var(--d-surf) 70%,transparent)}
.dapp .cn-alt{font-size:13px;color:var(--d-sub);line-height:1.6}
.dapp .cn-meta{display:flex;flex-wrap:wrap;row-gap:2px;font-size:12.5px;color:var(--d-ink2)}
.dapp .cn-meta > span + span::before{content:"·";margin-inline:7px;color:var(--d-faint)}
.dapp .cn-genres{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.dapp .cn-gpill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:99px;font-size:11.5px;font-weight:500;
  color:var(--d-ink2);background:color-mix(in srgb,var(--d-surf2) 85%,transparent);border:1px solid var(--d-line);transition:color .15s,border-color .15s}
.dapp button.cn-gpill:hover{border-color:var(--d-acc);color:var(--d-acc)}
.dapp .cn-scores{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.dapp .cn-scores:empty{display:none}
.dapp .cn-score{display:inline-flex;align-items:baseline;gap:5px;padding:5px 11px;border-radius:12px;font-size:12px;
  background:color-mix(in srgb,var(--d-surf2) 85%,transparent);border:1px solid var(--d-line)}
.dapp .cn-score .ic{width:14px;height:14px;color:var(--d-acc);align-self:center}
.dapp .cn-score b{font-size:15.5px;font-weight:600;font-variant-numeric:tabular-nums}
.dapp .cn-score i{font-style:normal;color:var(--d-faint);font-size:11px}
.dapp .cn-score em{font-style:normal;font-size:11px;font-weight:600;color:var(--d-acc);align-self:center}

.dapp .cn-tb{--cn-g:16px;--cn-pw:104px;display:flex;flex-direction:column;gap:22px;padding:6px var(--cn-g) 34px}
@media (min-width:768px){.dapp .cn-tb{--cn-g:28px;--cn-pw:126px;gap:26px}}
.dapp .cn-tb > *{min-width:0}
.dapp .cn-tb > .cn-sec{margin:0;animation:none}

/* وضعیت و قلب */
.dapp .cn-act{display:flex;flex-direction:column;gap:8px}
.dapp .cn-act-row{display:flex;align-items:stretch;gap:8px}
.dapp .cn-status{flex:1;min-width:0;display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:4px;padding:4px;border-radius:18px;background:var(--d-surf2)}
.dapp .cn-st{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;padding:6px 2px;border-radius:14px;
  font-size:11.5px;font-weight:500;line-height:1.4;color:var(--d-sub);text-align:center;
  transition:background .22s var(--d-ease),color .2s,box-shadow .22s,transform .15s var(--d-spring)}
@media (min-width:420px){.dapp .cn-st{font-size:12.5px}}
.dapp .cn-status .cn-st .ic{width:23px;height:23px;transition:color .2s}
.dapp .cn-st:hover{color:var(--d-ink)}
.dapp .cn-st:active{transform:scale(.94)}
.dapp .cn-st[aria-pressed="true"]{background:var(--d-surf);color:var(--d-ink);font-weight:600;box-shadow:0 6px 16px -8px rgba(0,0,0,.55),0 0 0 1px var(--d-line)}
:root[data-theme="paper"] .dapp .cn-st[aria-pressed="true"]{box-shadow:0 6px 14px -8px rgba(60,45,20,.35),0 0 0 1px var(--d-line)}
.dapp .cn-st[data-s="want"][aria-pressed="true"] .ic{color:var(--d-acc)}
.dapp .cn-st[data-s="watching"][aria-pressed="true"] .ic{color:var(--d-blue)}
.dapp .cn-st[data-s="watched"][aria-pressed="true"] .ic{color:var(--d-ok)}
.dapp .cn-st[data-s="dropped"][aria-pressed="true"] .ic{color:var(--d-bad)}
.dapp .cn-st.cn-popit{animation:none}
.dapp .cn-st.cn-popit .ic{animation:cn-pop .45s var(--d-spring)}
.dapp .cn-fav{flex:none;width:64px;border-radius:18px;background:var(--d-surf2);display:grid;place-items:center;color:var(--d-sub);
  transition:color .2s,background .2s,transform .15s var(--d-spring)}
.dapp .cn-act .cn-fav .ic{width:27px;height:27px}
.dapp .cn-fav:hover{color:var(--d-bad)}
.dapp .cn-fav:active{transform:scale(.92)}
.dapp .cn-fav[aria-pressed="true"]{color:var(--d-bad);background:color-mix(in srgb,var(--d-bad) 14%,var(--d-surf2))}
.dapp .cn-fav.cn-popit{animation:none}
.dapp .cn-fav.cn-popit .ic{animation:cn-heart .55s var(--d-spring)}
.dapp .cn-act-more{display:flex;align-items:center;flex-wrap:wrap;gap:4px 16px;padding-inline:4px}

/* امتیاز: ستاره‌های نیم‌دار */
.dapp .cn-rate-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 14px;padding:10px 14px;border-radius:18px;
  background:var(--d-surf2);transition:box-shadow .3s}
.dapp .cn-rate-row.ask{box-shadow:0 0 0 2px var(--d-acc);animation:cn-glow 1.6s ease-in-out 3}
.dapp .cn-rate-main{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}
.dapp .cn-rate-l{font-size:13px;font-weight:600;color:var(--d-ink2)}
.dapp .cn-rate-row.ask .cn-rate-l{color:var(--d-acc)}
.dapp .cn-rate{position:relative;display:inline-block;line-height:0;cursor:pointer;border-radius:10px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.dapp .cn-stars{display:flex;width:calc(5 * 38px)}
.dapp .cn-stars i{flex:0 0 38px;height:38px;display:grid;place-items:center;color:color-mix(in srgb,var(--d-ink) 16%,transparent)}
.dapp .cn-rate .cn-stars .ic{width:29px;height:29px}
.dapp .cn-stars-f{position:absolute;top:0;left:0;bottom:0;width:0;overflow:hidden;pointer-events:none;transition:width .18s var(--d-ease)}
.dapp .cn-stars-f .cn-stars i{color:var(--d-acc)}
.dapp .cn-rate-v{font-size:16px;font-weight:600;color:var(--d-acc);font-variant-numeric:tabular-nums}
.dapp .cn-rate-v:empty{display:none}
.dapp .cn-rate.cn-popit{animation:cn-tick .35s var(--d-spring)}

/* پیشرفتِ سریال و قسمتِ بعد */
.dapp .cn-prog{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:18px;background:var(--d-surf2)}
.dapp .cn-prog-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.dapp .cn-prog-h b{font-size:14px;font-weight:600}
.dapp .cn-prog-h span{font-size:12.5px;color:var(--d-acc);font-weight:600;font-variant-numeric:tabular-nums}
.dapp .cn-bar{display:block;height:7px;border-radius:4px;background:color-mix(in srgb,var(--d-ink) 10%,transparent);overflow:hidden}
.dapp .cn-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--d-acc),var(--d-fire));transition:width .5s var(--d-ease)}
.dapp .cn-next{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--d-surf)}
.dapp .cn-next.cn-popit{animation:cn-swap .4s var(--d-ease)}
.dapp .cn-next.done{justify-content:center;gap:8px;color:var(--d-ok);font-size:13.5px;font-weight:600}
.dapp .cn-next.done .ic{width:20px;height:20px}
.dapp .cn-next-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.dapp .cn-next-t > span{font-size:11.5px;color:var(--d-sub)}
.dapp .cn-next-t b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-next-t em{font-style:normal;font-size:12px;color:var(--d-faint)}
.dapp .cn-next-t em:empty{display:none}

/* داستان، عوامل، بازیگرها، شناسنامه */
.dapp .cn-crowd{display:flex;align-items:center;gap:8px;margin-top:-8px;font-size:12.5px;color:var(--d-sub);line-height:1.7}
.dapp .cn-crowd .ic{width:17px;height:17px;color:var(--d-violet);flex:none}
.dapp .cn-ov p{font-size:14.5px;line-height:2.05;color:var(--d-ink2);white-space:pre-line}
.dapp .cn-ov.clamp p{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.dapp .cn-ov .cn-link-btn{margin-top:2px}
.dapp .cn-tag{display:block;margin-bottom:8px;font-size:15px;font-weight:600;color:var(--d-ink);quotes:"«" "»"}
.dapp .cn-tag::before{content:open-quote;color:var(--d-acc)}
.dapp .cn-tag::after{content:close-quote;color:var(--d-acc)}
.dapp .cn-crew{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:16px;border:1px solid var(--d-line)}
.dapp .cn-crew-r{display:flex;gap:10px;font-size:13.5px;line-height:1.85}
.dapp .cn-crew-r > span:first-child{flex:none;min-width:72px;color:var(--d-sub)}
.dapp .cn-pp{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;text-align:center;color:var(--d-ink)}
.dapp .cn-pp:disabled{cursor:default;opacity:1}
.dapp .cn-pp b{width:100%;font-size:12.5px;font-weight:600;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dapp .cn-pp span{width:100%;font-size:11px;color:var(--d-faint);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dapp .cn-pp:hover:not(:disabled) .cn-face{transform:scale(1.05)}

.dapp .cn-face{position:relative;display:grid;place-items:center;flex:none;width:72px;height:72px;border-radius:50%;overflow:hidden;color:#f7efe1;
  background:linear-gradient(150deg,hsl(var(--h1,200) 35% 34%),hsl(var(--h2,30) 40% 20%));
  box-shadow:0 8px 18px -10px rgba(0,0,0,.7),0 0 0 2px var(--d-surf),0 0 0 3px var(--d-line2);transition:transform .2s var(--d-spring)}
.dapp .cn-face b{font-size:24px;font-weight:600;line-height:1}
.dapp .cn-face img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%;opacity:0;transition:opacity .3s ease}
.dapp .cn-face img.ok{opacity:1}
.dapp .cn-face.big{width:112px;height:112px}
.dapp .cn-face.big b{font-size:40px}
@media (min-width:768px){.dapp .cn-face.big{width:148px;height:148px}.dapp .cn-face.big b{font-size:52px}}
.dapp .cn-face.xs{width:36px;height:36px;box-shadow:none}
.dapp .cn-face.xs b{font-size:14px}

.dapp .cn-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (min-width:640px){.dapp .cn-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
.dapp .cn-fact{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;border-radius:14px;background:var(--d-surf2)}
.dapp .cn-fact span{font-size:11.5px;color:var(--d-sub)}
.dapp .cn-fact b{font-size:13.5px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}

/* فصل‌ها و قسمت‌ها */
.dapp .cn-seasons{display:flex;flex-direction:column;gap:8px}
.dapp .cn-sea{border-radius:18px;background:var(--d-surf2);overflow:hidden;transition:box-shadow .2s}
.dapp .cn-sea.open{box-shadow:0 0 0 1px var(--d-line2)}
.dapp .cn-sea-h{display:flex;align-items:center;gap:8px;padding:8px}
.dapp .cn-sea-open{flex:1;min-width:0;display:flex;align-items:center;gap:12px;min-height:52px;padding:2px 4px;border-radius:12px;text-align:start;color:var(--d-ink)}
.dapp .cn-sea-ring{position:relative;flex:none;width:40px;height:40px;display:grid;place-items:center}
.dapp .cn-ring{position:absolute;inset:0;width:100%;height:100%}
.dapp .cn-ring-bg{stroke:color-mix(in srgb,var(--d-ink) 12%,transparent)}
.dapp .cn-ring-fg{stroke:var(--d-acc);transition:stroke-dashoffset .6s var(--d-ease)}
.dapp .cn-ring-fg.zero{opacity:0}
.dapp .cn-sea.done .cn-ring-fg{stroke:var(--d-ok)}
.dapp .cn-sea-ring > .ic{position:relative;width:17px;height:17px;color:var(--d-ok)}
.dapp .cn-sea-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.dapp .cn-sea-t b{font-size:14.5px;font-weight:600}
.dapp .cn-sea-m{font-size:12px;color:var(--d-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-sea-open .cn-sea-chev{flex:none;width:18px;height:18px;color:var(--d-faint);transform:rotate(90deg);transition:transform .25s var(--d-ease)}
.dapp .cn-sea.open .cn-sea-open .cn-sea-chev{transform:rotate(-90deg)}
.dapp .cn-sea-all{flex:none;display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:0 12px;border-radius:11px;font-size:12px;font-weight:600;
  color:var(--d-ink2);background:var(--d-surf);border:1px solid var(--d-line);transition:background .2s,color .2s,border-color .2s}
.dapp .cn-sea-all .ic{width:15px;height:15px}
.dapp .cn-sea-all:hover{border-color:var(--d-ok);color:var(--d-ok)}
.dapp .cn-sea-all[aria-pressed="true"]{background:color-mix(in srgb,var(--d-ok) 16%,var(--d-surf));color:var(--d-ok);border-color:transparent}
.dapp .cn-sea-all.cn-popit{animation:cn-pop .4s var(--d-spring)}
.dapp .cn-eps{padding:0 8px 8px}
.dapp .cn-ep{display:flex;align-items:flex-start;gap:10px;padding:8px 6px;border-top:1px solid var(--d-line);
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.dapp .cn-ep:first-child{border-top:0}
.dapp .cn-ep-chk{flex:none;width:38px;height:38px;margin-top:1px;border-radius:50%;display:grid;place-items:center;color:transparent;
  border:2px solid var(--d-line2);background:var(--d-surf);transition:background .2s,border-color .2s,color .2s,transform .15s var(--d-spring)}
.dapp .cn-ep .cn-ep-chk .ic{width:19px;height:19px}
.dapp .cn-ep-chk:hover:not(:disabled){border-color:var(--d-ok);color:color-mix(in srgb,var(--d-ok) 55%,transparent)}
.dapp .cn-ep-chk:active:not(:disabled){transform:scale(.88)}
.dapp .cn-ep-chk:disabled{opacity:.45;border-style:dashed;cursor:default}
.dapp .cn-ep.seen .cn-ep-chk{background:var(--d-ok);border-color:var(--d-ok);color:var(--cn-on-ok)}
.dapp .cn-ep-chk.cn-popit{animation:cn-pop .4s var(--d-spring)}
.dapp .cn-ep-m{flex:1;min-width:0}
.dapp .cn-ep-b{display:flex;flex-direction:column;justify-content:center;gap:1px;width:100%;min-height:40px;padding:0 2px;border-radius:10px;text-align:start;color:var(--d-ink)}
.dapp .cn-ep-b b{font-size:13.5px;font-weight:500;line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-ep-b b .cn-code{font-size:12px;color:var(--d-sub)}
.dapp .cn-ep-b > span{font-size:11.5px;color:var(--d-faint)}
.dapp .cn-ep.seen .cn-ep-b b{color:var(--d-sub)}
.dapp .cn-ep.soon .cn-ep-b > span{color:var(--d-acc)}
.dapp .cn-ep-more{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:4px 2px 6px;animation:cn-in .25s var(--d-ease) both}
.dapp .cn-ep-more p{font-size:13px;line-height:1.95;color:var(--d-ink2);-webkit-user-select:text;user-select:text}

/* نقدها */
.dapp .cn-revs{display:flex;flex-direction:column;gap:10px}
.dapp .cn-rev{padding:14px 16px;border-radius:18px;background:var(--d-surf2)}
.dapp .cn-rev.mine{border-inline-start:3px solid var(--d-acc)}
.dapp .cn-rev-h{display:flex;align-items:center;gap:10px}
.dapp .cn-rev-who{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.45}
.dapp .cn-rev-who b{font-size:13.5px;font-weight:600}
.dapp .cn-rev-who span{font-size:11.5px;color:var(--d-faint);text-align:start}
.dapp .cn-rev > p,.dapp .cn-spoil p{margin-top:10px;font-size:14px;line-height:2;color:var(--d-ink2);white-space:pre-line;-webkit-user-select:text;user-select:text}
.dapp .cn-spoil{margin-top:10px}
.dapp .cn-spoil p{margin-top:0;animation:cn-in .3s var(--d-ease) both}
.dapp .cn-spoil-b{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:52px;padding:10px 14px;border-radius:14px;
  font-size:13px;font-weight:500;color:var(--d-ink2);border:1px dashed var(--d-line2);
  background:repeating-linear-gradient(135deg,transparent 0 8px,color-mix(in srgb,var(--d-ink) 4%,transparent) 8px 16px)}
.dapp .cn-spoil-b .ic{width:18px;height:18px;color:var(--d-acc)}
.dapp .cn-spoil-b:hover{border-color:var(--d-acc);color:var(--d-ink)}
.dapp .cn-rev-f{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:10px}
.dapp .cn-rev-f:empty{display:none}
.dapp .cn-rev-f time{margin-inline-start:auto;font-size:11.5px;color:var(--d-faint)}
.dapp .cn-revform textarea{min-height:170px}
.dapp .cn-pubrow{min-height:0;padding:6px 0}

/* پیوندها و منبع */
.dapp .cn-foot{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--d-line)}
.dapp .cn-xlinks{display:flex;flex-wrap:wrap;gap:8px}
.dapp .cn-xlink{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 13px;border-radius:11px;font-size:12.5px;font-weight:600;
  color:var(--d-ink2);background:var(--d-surf2);border:1px solid var(--d-line);transition:color .15s,border-color .15s}
.dapp .cn-xlink .ic{width:15px;height:15px}
.dapp .cn-xlink:hover{color:var(--d-acc);border-color:var(--d-acc)}
.dapp .cn-attr{font-size:11.5px;color:var(--d-faint);line-height:1.8}

/* «پیدا نکردی؟» */
.dapp .cn-reqsheet .cn-seg{align-self:stretch}
.dapp .cn-reqsheet .cn-seg button{flex:1}

/* آدم */
.dapp .cn-phero .cn-hero-in{align-items:center}
.dapp .cn-films-w{display:flex;flex-direction:column;gap:12px}
.dapp .cn-films{display:flex;flex-direction:column;gap:2px}
.dapp .cn-film{display:flex;align-items:center;gap:12px;width:100%;padding:8px;border-radius:14px;text-align:start;color:var(--d-ink);transition:background .15s}
.dapp .cn-film:hover{background:var(--d-surf2)}
.dapp .cn-film-y{flex:none;width:42px;font-size:12.5px;color:var(--d-sub);font-variant-numeric:tabular-nums;text-align:center}
.dapp .cn-film-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.dapp .cn-film-t b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-film-t span{font-size:12px;color:var(--d-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-film-s{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--d-surf2);color:var(--d-sub)}
.dapp .cn-film .cn-film-s .ic{width:15px;height:15px}
.dapp .cn-film-s.s-watched{background:var(--d-ok);color:var(--cn-on-ok)}
.dapp .cn-film-s.s-watching{background:var(--d-blue);color:var(--cn-on-blue)}
.dapp .cn-film-s.s-want{color:var(--d-acc)}
.dapp .cn-film-s.s-dropped{color:var(--d-bad)}

/* ═══════════════════ بازبینی ═══════════════════ */
.dapp .cn-mod-list{display:flex;flex-direction:column;gap:10px}
.dapp .cn-mod-i{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:18px;background:var(--d-surf);border:1px solid var(--d-line);
  transition:opacity .25s,transform .25s var(--d-ease)}
.dapp .cn-mod-i.going{opacity:.4;transform:scale(.98)}
.dapp .cn-mod-i.closed{opacity:.62}
.dapp .cn-mod-h{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.dapp .cn-mod-h > b,.dapp .cn-mod-h > .cn-plink{font-size:15px;font-weight:600}
.dapp .cn-mod-h > span:not(.cn-pill){font-size:12.5px;color:var(--d-sub)}
.dapp .cn-mod-txt{font-size:14px;line-height:1.95;white-space:pre-line;color:var(--d-ink2)}
.dapp .cn-mod-go{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.dapp .cn-mod-go time{margin-inline-end:auto;font-size:12px;color:var(--d-faint)}

/* ═══════════════════ کارتِ خانه‌ی اپ ═══════════════════ */
.dapp .cn-hcard{--cn-g:18px;--cn-pw:112px}
.dapp .cn-hcard .cn-rail{padding-bottom:4px}
.dapp .cn-hcard .cn-sk-row i.w{height:110px}
.dapp .cn-hup{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.dapp .cn-hup-i{display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 10px;border-radius:12px;font-size:13px;color:var(--d-ink2);
  text-align:start;background:var(--d-surf2);transition:background .15s}
.dapp .cn-hup-i:hover{background:var(--d-surf3)}
.dapp .cn-hup .cn-hup-i .ic{flex:none;width:16px;height:16px;color:var(--d-acc)}
.dapp .cn-hup-i b{min-width:0;font-weight:600;color:var(--d-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .cn-hup-i .cn-code{flex:none;font-size:12px;color:var(--d-sub)}
.dapp .cn-hup-i em{flex:none;margin-inline-start:auto;font-style:normal;font-size:12px;font-weight:600;color:var(--d-acc)}

/* ═══════════════════ حرکت ═══════════════════ */
@keyframes cn-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes cn-pop{0%{transform:scale(.7)}55%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes cn-heart{0%{transform:scale(.6)}40%{transform:scale(1.32)}70%{transform:scale(.92)}100%{transform:scale(1)}}
@keyframes cn-tick{0%{transform:scale(1)}40%{transform:scale(1.05)}100%{transform:scale(1)}}
@keyframes cn-swap{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes cn-ring{from{opacity:.9;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}
@keyframes cn-glow{0%,100%{box-shadow:0 0 0 2px var(--d-acc)}50%{box-shadow:0 0 0 2px var(--d-acc),0 0 0 7px var(--d-acc-soft)}}
@keyframes cn-bob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-5px)}}
@keyframes cn-shim{from{background-position:150% 0}to{background-position:-50% 0}}
.dapp .cn-popit{animation:cn-pop .45s var(--d-spring)}
.dapp .cn-cw-t.cn-popit{animation:cn-swap .4s var(--d-ease)}

@media (prefers-reduced-motion:reduce){
  .dapp [class*="cn-"],.dapp [class*="cn-"]::before,.dapp [class*="cn-"]::after{animation:none !important;transition:none !important}
  .dapp .cn-art img,.dapp .cn-face img{transition:none}
}

/* ═══════════════════ پوسته: نوارِ پایین با زبانه‌ی تماشاخانه ═══════════════════
   app.php کلاسِ t4 (بی‌عادت‌ها) یا t5 (با عادت‌ها) می‌گذارد؛ app.css فقط سه ستون دارد. */
.dapp .ds-tabs.t4{grid-template-columns:repeat(4,1fr);padding-inline:6px}
.dapp .ds-tabs.t4 .tb-ic{width:56px}
.dapp .ds-tabs.t5{grid-template-columns:repeat(5,1fr);padding-inline:4px}
.dapp .ds-tabs.t5 .tb-ic{width:48px}
.dapp .ds-tabs.t5 a{font-size:10.5px;letter-spacing:-.1px;white-space:nowrap}
.dapp .ds-tabs.t5 a .dbadge{inset-inline-end:calc(50% - 24px)}
