/* دیده‌بان — استایل بخش عمومی. رنگ‌ها از متغیرهای --dhc-* (تنظیمات › رنگ‌بندی) می‌آیند. */
.dh-sheet,.dh-sheet-ov,.dh-strip,.dh-fest-ov,.dh-fest,.dh-modal,.dh-overlay,.dh-pv{--dhc-p:#d6336c;--dhc-pd:#b02559;--dhc-p2:#f06595;--dhc-bt:#fff;--dhc-bg1:#fff7fa;--dhc-bg2:#ffe9f1;--dhc-card:#fff;--dhc-tx:#3b1f2b;--dhc-tx2:#6b3a4d;--dhc-mu:#a0617a;--dhc-bd:#ffd6e4;--dhc-tb:#d6336c;--dhc-tt:#fff;--dhc-cb:#fff0f5;--dhc-ct:#d6336c;--dhc-cd:#f2a4c0;--dhc-s1:#ffe3ed;--dhc-s2:#fff0f5;--dhc-st:#b02559;--dhc-ov:rgba(80,10,40,.45);--dhc-r:22px;--dhc-w:560px;--dhc-glow:rgba(214,51,108,.3);--dhc-sh:0 18px 50px rgba(214,51,108,.28);--dhc-btnbg:linear-gradient(90deg,#d6336c,#f06595);--dhc-btnfg:#fff;--dhc-btnbd:transparent;--dhc-tmbg:#d6336c;--dhc-tmfg:#fff;--dhc-tmbd:transparent}
.dh-sheet,.dh-strip,.dh-fest,.dh-modal{font-family:inherit;direction:rtl;box-sizing:border-box}
.dh-sheet *,.dh-strip *,.dh-fest *,.dh-modal *{box-sizing:border-box}

/* ---------- عناصر مشترک ---------- */
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-x{position:absolute;top:10px;left:12px;width:30px;height:30px;border-radius:50%;background:var(--dhc-card);color:var(--dhc-p);border:1px solid var(--dhc-bd);font-size:20px;line-height:26px;padding:0;cursor:pointer;text-align:center}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-x:hover{background:var(--dhc-p);color:var(--dhc-bt)}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-btn{display:inline-block;background:var(--dhc-btnbg);color:var(--dhc-btnfg)!important;border:1.5px solid var(--dhc-btnbd);text-decoration:none;padding:9px 16px;border-radius:calc(var(--dhc-r)*.5);font-size:14px;margin-top:auto;cursor:pointer;text-align:center;font-family:inherit}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-btn:hover{filter:brightness(.94)}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-copy{border:0;background:var(--dhc-btnbg);color:var(--dhc-btnfg);border:1px solid var(--dhc-btnbd);border-radius:8px;padding:5px 11px;font-size:12px;cursor:pointer;font-family:inherit}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-timer{display:inline-flex;direction:ltr!important;unicode-bidi:isolate;align-items:center;gap:3px;font-variant-numeric:tabular-nums}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-timer b{background:var(--dhc-tmbg);color:var(--dhc-tmfg);border:1.5px solid var(--dhc-tmbd);border-radius:8px;min-width:34px;padding:4px 6px;font-size:17px;line-height:1.3;text-align:center}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-timer i{font-style:normal;color:var(--dhc-tmfg);font-weight:700;opacity:.8}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-items{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-item{flex:1 1 140px;max-width:180px;background:var(--dhc-card);border:1px solid var(--dhc-bd);border-radius:calc(var(--dhc-r)*.65);padding:10px;display:flex;flex-direction:column;gap:6px}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-item img{width:100%;height:110px;object-fit:cover;border-radius:calc(var(--dhc-r)*.45)}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-n{color:var(--dhc-tx);text-decoration:none;font-size:14px;line-height:1.6}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-p{font-size:13px;color:var(--dhc-pd)}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-coupon{display:inline-block;border:2px dashed var(--dhc-cd);color:var(--dhc-ct);background:var(--dhc-cb);padding:6px 16px;border-radius:8px;margin:0 0 14px;font-size:16px;direction:ltr}
:is(.dh-sheet,.dh-modal,.dh-fest,.dh-strip,.dh-pv) .dh-coupon b{letter-spacing:1px}

/* ---------- مودال (قصد خروج) ---------- */
.dh-overlay{position:fixed;inset:0;background:var(--dhc-ov,rgba(0,0,0,.55));z-index:999999;display:flex;align-items:center;justify-content:center;padding:16px;direction:rtl;animation:dhfade .25s}
.dh-modal{position:relative;background:linear-gradient(160deg,var(--dhc-bg1),var(--dhc-bg2));color:var(--dhc-tx);border:1px solid var(--dhc-bd);border-radius:var(--dhc-r);max-width:520px;width:100%;padding:28px 24px 24px;box-shadow:var(--dhc-sh);text-align:center;max-height:90vh;overflow:auto}
.dh-modal h3{margin:0 0 8px;font-size:20px;color:var(--dhc-pd)}
.dh-modal p{margin:0 0 14px;line-height:1.9;color:var(--dhc-tx2)}

/* ---------- پاپ‌آپ (کشویی / مرکز / گوشه / کنار / بالا) ---------- */
.dh-sheet{position:fixed;z-index:999998;display:flex;flex-direction:column;gap:14px;opacity:0;background:linear-gradient(160deg,var(--dhc-bg1) 0%,var(--dhc-bg2) 100%);color:var(--dhc-tx);border:1px solid var(--dhc-bd);padding:0 20px 18px;box-shadow:var(--dhc-sh);transition:transform .45s cubic-bezier(.2,.9,.25,1),opacity .35s;max-height:90vh;overflow:auto;text-align:center;overscroll-behavior:contain}
.dh-sheet.dh-in{opacity:1}
.dh-s-prog{position:sticky;top:0;z-index:3;margin:0 -20px;height:4px;flex:none;background:var(--dhc-bd)}
.dh-s-prog i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--dhc-p),var(--dhc-p2));transition:width 1s linear}
.dh-sheet .dh-x{z-index:4}
.dh-s-top{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:18px}
.dh-s-ico{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:20px;background:var(--dhc-card);border:1px solid var(--dhc-bd);box-shadow:0 4px 12px var(--dhc-glow)}
.dh-s-chip{background:var(--dhc-cb);color:var(--dhc-ct);border:1px solid var(--dhc-cd);border-radius:99px;padding:3px 13px;font-size:12px;font-weight:700}
.dh-s-head h3{margin:0 0 6px;font-size:19px;color:var(--dhc-pd);font-weight:800;line-height:1.6}
.dh-s-head p{margin:0;font-size:14px;line-height:1.9;color:var(--dhc-tx2)}
.dh-s-offer{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.dh-s-time,.dh-s-code{flex:1 1 170px;background:var(--dhc-card);border:1px solid var(--dhc-bd);border-radius:calc(var(--dhc-r)*.65);padding:10px;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center}
.dh-s-offer small{font-size:11.5px;color:var(--dhc-mu)}
.dh-s-code span{display:flex;gap:8px;align-items:center}
.dh-s-code b{font-size:17px;letter-spacing:1.5px;color:var(--dhc-ct);border:2px dashed var(--dhc-cd);border-radius:8px;padding:2px 10px;background:var(--dhc-cb)}
.dh-sheet .dh-items{gap:10px}
.dh-it-img{position:relative;display:block;border-radius:calc(var(--dhc-r)*.45);overflow:hidden}
.dh-it-img img{display:block;width:100%;height:104px;object-fit:cover}
.dh-it-off,.dh-it-low{position:absolute;font-size:11px;line-height:1.5;padding:1px 8px;border-radius:6px;font-weight:700}
.dh-it-off{top:6px;right:6px;background:var(--dhc-p);color:var(--dhc-bt)}
.dh-it-low{bottom:6px;left:6px;background:rgba(0,0,0,.66);color:#fff}
.dh-sheet .dh-item{transition:transform .2s,box-shadow .2s}
.dh-sheet .dh-item:hover{transform:translateY(-3px);box-shadow:0 10px 22px var(--dhc-glow)}
.dh-sheet .dh-n1 .dh-item{flex:1 1 240px;max-width:260px}
.dh-s-cta{display:block;text-decoration:none;text-align:center;background:var(--dhc-btnbg);color:var(--dhc-btnfg)!important;border:1.5px solid var(--dhc-btnbd);padding:12px;border-radius:calc(var(--dhc-r)*.6);font-weight:800;font-size:15px;box-shadow:0 8px 20px var(--dhc-glow);font-family:inherit}
.dh-s-cta:hover{filter:brightness(.95)}
.dh-s-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11.5px;color:var(--dhc-mu);border-top:1px dashed var(--dhc-bd);padding-top:10px}
.dh-s-dis{border:0;background:none;color:var(--dhc-mu);text-decoration:underline;cursor:pointer;font-family:inherit;font-size:11.5px;padding:0}
.dh-sheet-ov{position:fixed;inset:0;z-index:999997;background:var(--dhc-ov);opacity:0;transition:opacity .3s}
.dh-sheet-ov.dh-in{opacity:1}

/* قالب ۱: کشویی از پایین */
.dh-lay-sheet{left:50%;bottom:0;width:calc(100% - 24px);max-width:var(--dhc-w);border-bottom:0;border-radius:var(--dhc-r) var(--dhc-r) 0 0;transform:translate(-50%,110%)}
.dh-lay-sheet.dh-in{transform:translate(-50%,0)}
/* قالب ۲: مرکز صفحه */
.dh-lay-modal{left:50%;top:50%;width:calc(100% - 24px);max-width:min(var(--dhc-w),520px);border-radius:var(--dhc-r);transform:translate(-50%,-44%) scale(.94)}
.dh-lay-modal.dh-in{transform:translate(-50%,-50%) scale(1)}
/* قالب ۳: کارت گوشه */
.dh-lay-corner{bottom:16px;width:calc(100% - 24px);max-width:380px;border-radius:var(--dhc-r);transform:translateY(130%)}
.dh-lay-corner.dh-pos-l{left:12px}
.dh-lay-corner.dh-pos-r{right:12px}
.dh-lay-corner.dh-in{transform:none}
.dh-lay-corner .dh-items{flex-wrap:nowrap;overflow-x:auto}
/* قالب ۴: پنل کنار */
.dh-lay-side{top:0;bottom:0;width:min(var(--dhc-w),400px);max-height:none;justify-content:flex-start}
.dh-lay-side .dh-s-top{margin-top:40px}
.dh-lay-side.dh-pos-l{left:0;border-radius:0 var(--dhc-r) var(--dhc-r) 0;transform:translateX(-110%);border-left:0}
.dh-lay-side.dh-pos-r{right:0;border-radius:var(--dhc-r) 0 0 var(--dhc-r);transform:translateX(110%);border-right:0}
.dh-lay-side.dh-in{transform:none}
/* قالب ۵: بنر از بالا */
.dh-lay-top{top:0;left:50%;width:calc(100% - 24px);max-width:var(--dhc-w);border-top:0;border-radius:0 0 var(--dhc-r) var(--dhc-r);transform:translate(-50%,-110%)}
.dh-lay-top.dh-in{transform:translate(-50%,0)}
@media(max-width:560px){
.dh-sheet .dh-items{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;scroll-snap-type:x mandatory;padding-bottom:4px}
.dh-sheet .dh-item{flex:0 0 150px;scroll-snap-align:center}
.dh-sheet .dh-n1 .dh-item{flex:1 1 100%;max-width:none}
.dh-lay-side{width:calc(100% - 24px);border-radius:var(--dhc-r)!important}
}

/* ---------- مدل‌های تایمر ---------- */
.dh-timer.dh-tm-labeled{gap:6px;align-items:flex-start}
.dh-tm-labeled .dh-tu{display:flex;flex-direction:column;align-items:center;gap:4px}
.dh-tm-labeled small{font-size:10.5px;color:var(--dhc-mu)}
.dh-tm-labeled i{margin-top:6px}
.dh-timer.dh-tm-circle{gap:8px;align-items:flex-start}
.dh-ring{position:relative;width:60px;display:flex;flex-direction:column;align-items:center}
.dh-ring svg{width:56px;height:56px;display:block}
.dh-ring .bg{fill:none;stroke:var(--dhc-bd);stroke-width:3.5}
.dh-ring .fg{fill:none;stroke:var(--dhc-tb);stroke-width:3.5;stroke-linecap:round;stroke-dasharray:119.38;stroke-dashoffset:0;transition:stroke-dashoffset .9s linear}
.dh-timer.dh-tm-circle .dh-ring b{position:absolute;top:0;left:2px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:none;border:0;color:var(--dhc-tx);font-size:16px;min-width:0;padding:0;box-shadow:none}
.dh-ring small{margin-top:3px;font-size:10.5px;color:var(--dhc-mu)}
.dh-timer.dh-tm-bar{flex-direction:column;gap:8px;width:100%;max-width:230px}
.dh-tbar-t{display:inline-flex;gap:3px;align-items:center;justify-content:center}
.dh-tbar{display:block;width:100%;height:7px;border-radius:7px;background:var(--dhc-bd);overflow:hidden}
.dh-timer .dh-tbar i.dh-bar-fill{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,var(--dhc-p),var(--dhc-p2));width:100%;opacity:1;transition:width 1s linear}
.dh-fest .dh-timer.dh-tm-circle .dh-ring b{font-size:17px}

/* ---------- نوار موقت هدر ---------- */
.dh-strip{position:sticky;top:0;z-index:999997;display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap;padding:8px 44px 8px 14px;background:linear-gradient(90deg,var(--dhc-s1),var(--dhc-s2),var(--dhc-s1));color:var(--dhc-st);border-bottom:1px solid var(--dhc-bd);font-size:13.5px;animation:dhdown .45s cubic-bezier(.2,.9,.25,1);transition:opacity .4s,transform .4s}
.admin-bar .dh-strip{top:32px}
.dh-strip.dh-out{opacity:0;transform:translateY(-100%)}
.dh-strip-t{font-weight:700}
.dh-strip-c{border:1.5px dashed var(--dhc-cd);background:var(--dhc-cb);border-radius:7px;padding:1px 9px;font-weight:700;letter-spacing:1px;direction:ltr;color:var(--dhc-ct)}
.dh-strip .dh-timer b{min-width:28px;font-size:13.5px;padding:2px 5px;border-radius:6px}
.dh-strip-b{background:var(--dhc-btnbg);color:var(--dhc-btnfg)!important;border:1.5px solid var(--dhc-btnbd);text-decoration:none;padding:4px 14px;font-size:12.5px;border-radius:10px;cursor:pointer;font-family:inherit}
.dh-strip-x{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:none;font-size:22px;line-height:1;color:var(--dhc-p);cursor:pointer}

/* ---------- پاپ‌آپ جشنواره‌ای ---------- */
.dh-fest-ov{position:fixed;inset:0;z-index:1000000;background:var(--dhc-ov);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:16px;direction:rtl;opacity:0;transition:opacity .3s}
.dh-fest-ov.dh-in{opacity:1}
.dh-fest{position:relative;width:100%;max-width:440px;text-align:center;padding:46px 24px 22px;border-radius:calc(var(--dhc-r) + 4px);background:radial-gradient(circle at 50% 0,var(--dhc-card) 0,var(--dhc-bg1) 55%,var(--dhc-bg2) 100%);border:1px solid var(--dhc-bd);box-shadow:var(--dhc-sh);transform:scale(.6) rotate(-3deg);opacity:0;transition:transform .55s cubic-bezier(.2,1.4,.3,1),opacity .3s;color:var(--dhc-tx);overflow:visible}
.dh-fest-ov.dh-in .dh-fest{transform:none;opacity:1}
.dh-fest-ribbon{position:absolute;top:-14px;right:50%;transform:translateX(50%);background:var(--dhc-btnbg,var(--dhc-p));color:var(--dhc-btnfg);font-weight:800;font-size:13px;padding:5px 22px;border-radius:20px;box-shadow:0 6px 16px var(--dhc-glow);border:1.5px solid var(--dhc-btnbd)}
.dh-fest-badge{width:104px;height:104px;margin:0 auto 12px;border-radius:50%;background:linear-gradient(135deg,var(--dhc-p),var(--dhc-p2));color:var(--dhc-bt);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 6px var(--dhc-card),0 0 0 8px var(--dhc-bd),0 12px 28px var(--dhc-glow);animation:dhpulse 1.8s ease-in-out infinite}
.dh-fest-badge b{font-size:26px;line-height:1.2;direction:ltr;max-width:100%;overflow-wrap:anywhere}
.dh-fest-badge span{font-size:12px;opacity:.9}
.dh-fest-badge.dh-long{display:inline-flex;margin:0 0 12px;width:auto;min-width:104px;max-width:100%;height:auto;border-radius:22px;padding:12px 22px}
.dh-fest-badge.dh-long b{font-size:21px;white-space:normal;direction:rtl}
.dh-fest h3{margin:0 0 6px;font-size:21px;font-weight:800;color:var(--dhc-pd)}
.dh-fest p{margin:0 0 14px;font-size:14px;line-height:1.9;color:var(--dhc-tx2)}
.dh-fest-time{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0 0 16px}
.dh-fest-time small{font-size:12px;color:var(--dhc-mu)}
.dh-fest .dh-timer b{min-width:44px;font-size:22px;padding:6px 8px;border-radius:10px}
.dh-fest-go{display:block;width:100%;border:1.5px solid var(--dhc-btnbd);border-radius:calc(var(--dhc-r)*.65);padding:13px;font-size:16px;font-weight:800;font-family:inherit;color:var(--dhc-btnfg);cursor:pointer;background:var(--dhc-btnbg);box-shadow:0 10px 22px var(--dhc-glow)}
.dh-fest-go:hover{filter:brightness(.95)}
.dh-fest-go:disabled{opacity:.6;cursor:default}
.dh-fest-later{border:0;background:none;color:var(--dhc-mu);margin-top:10px;font-family:inherit;font-size:12.5px;cursor:pointer}
.dh-fest-msg{min-height:20px;margin-top:8px;font-size:13px}
.dh-fest-msg.ok{color:#1e7a46;font-weight:700}
.dh-fest-msg.err{color:var(--dhc-pd)}

/* ---------- سایر ابزارها ---------- */
.dh-scarcity,.dh-proof{margin:8px 0;padding:8px 12px;border-radius:8px;font-size:14px}
.dh-scarcity{background:#fff3f3;color:#b32d2e;border:1px solid #f5c2c2}
.dh-proof{background:#f1f8f1;color:#1e6b34;border:1px solid #c9e4cf}
.dh-badge-best{position:absolute;top:8px;right:8px;z-index:5;background:#d63638;color:#fff;font-size:12px;padding:3px 10px;border-radius:20px;line-height:1.6}
.dh-badge-best.dh-inline{position:static;display:inline-block;margin-bottom:6px}
.dh-ship{margin:0 0 16px;padding:12px 14px;border:1px solid #e3e3e3;border-radius:10px;background:#fafafa;direction:rtl}
.dh-ship-t{font-size:14px;margin-bottom:8px}
.dh-ship-bar{height:8px;background:#e5e5e5;border-radius:8px;overflow:hidden}
.dh-ship-bar i{display:block;height:100%;background:linear-gradient(90deg,#27ae60,#2ecc71);transition:width .4s}
@keyframes dhfade{from{opacity:0}to{opacity:1}}
@keyframes dhdown{from{transform:translateY(-100%)}to{transform:none}}
@keyframes dhpulse{50%{transform:scale(1.06)}}
@media(max-width:480px){.dh-timer b{min-width:30px;font-size:15px}.dh-strip{font-size:12.5px;padding-right:38px}}
@media(prefers-reduced-motion:reduce){.dh-sheet,.dh-strip,.dh-fest,.dh-fest-badge{transition:none;animation:none}}
