/* ═══════════════════════════════════════════════════════════════
   اپ درون — یادآورها و تقویم باغچه (a/habits/mod-plan.js). بعد از habits.css بار می‌شود؛
   فقط متغیرهای --d-* و رنگِ هر فهرست/رویداد (--hc از کلاسِ .hc-<رنگ> ِ habits.css) را به کار می‌برد.
   همه‌ی کلاس‌ها pl- دارند تا با کلاس‌های عمومیِ app.css برخورد نکنند.
   ═══════════════════════════════════════════════════════════════ */

.dapp .pl-ib{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--d-ink2);transition:background .15s,color .15s}
.dapp .pl-ib:hover{background:var(--d-surf2)}
.dapp .pl-ib .ic{width:20px;height:20px}
.dapp .pl-ib.danger{color:var(--d-bad)}
.dapp .pl-chip{display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border-radius:99px;background:var(--d-surf2);border:1px solid var(--d-line);
  font-size:13px;font-weight:500;color:var(--d-ink2);white-space:nowrap;transition:background .15s,border-color .15s}
.dapp .pl-chip.on{background:color-mix(in srgb,var(--d-acc) 16%,var(--d-surf));border-color:color-mix(in srgb,var(--d-acc) 45%,transparent);color:var(--d-ink)}
.dapp .pl-chip.ghost{background:none;color:var(--d-sub)}
.dapp .pl-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 16px;text-align:center;color:var(--d-sub)}
.dapp .pl-empty > .ic{width:30px;height:30px;color:var(--d-faint);margin-bottom:2px}
.dapp .pl-empty b{font-size:15px;font-weight:600;color:var(--d-ink2)}
.dapp .pl-empty span{font-size:12.5px;line-height:1.8}
.dapp .pl-more{margin-top:10px}

/* ═══════════════════ دایره‌ی تیک ═══════════════════ */
.dapp .pl-ck{flex:none;position:relative;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;padding:0;line-height:0;
  border:2px solid color-mix(in srgb,var(--hc,var(--d-acc)) 60%,var(--d-faint));color:transparent;background:none;
  transition:background .2s,border-color .2s,transform .2s var(--d-spring)}
.dapp .pl-ck .ic{width:15px;height:15px;stroke-width:2.6}
.dapp .pl-ck:active{transform:scale(.86)}
.dapp .pl-ck.on{background:var(--hc,var(--d-acc));border-color:var(--hc,var(--d-acc));color:var(--d-bg)}
.dapp .pl-ck.sm{width:21px;height:21px}
.dapp .pl-ck.sm .ic{width:13px;height:13px}
.dapp .pl-ck.ghost{border-style:dashed;border-color:var(--d-line2);color:var(--d-faint)}
.dapp .pl-ck.ghost .ic{width:14px;height:14px;stroke-width:2}
.dapp .pl-ck::after{content:"";position:absolute;inset:-9px}          /* جای لمسِ بزرگ‌تر */

/* ═══════════════════ ردیفِ یادآور ═══════════════════ */
.dapp .pl-tr{position:relative;display:flex;align-items:flex-start;gap:11px;padding:9px 4px 9px 6px;background:var(--d-bg);touch-action:pan-y;
  transition:opacity .3s,transform .25s var(--d-ease)}
.dapp .pl-tr > .pl-ck{margin-top:1px}
.dapp .pl-tr + .pl-tr,.dapp .pl-tg + .pl-tg,.dapp .pl-tr + .pl-tg,.dapp .pl-tg + .pl-tr{border-top:1px solid var(--d-line)}
.dapp .pl-tr-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:start;padding:0;-webkit-tap-highlight-color:transparent}
.dapp .pl-tr-t{font-size:15.5px;line-height:1.55;color:var(--d-ink);overflow-wrap:anywhere}
.dapp .pl-tr-m{display:flex;flex-wrap:wrap;align-items:center;gap:4px 9px;font-size:12px;line-height:1.6;color:var(--d-sub)}
.dapp .pl-tr-m .ic{width:13px;height:13px}
.dapp .pl-tr-d{font-variant-numeric:tabular-nums}
.dapp .pl-tr-d.over{color:var(--d-bad);font-weight:600}
.dapp .pl-tr-i{display:inline-flex;color:var(--d-faint)}
.dapp .pl-tr-k{display:inline-flex;align-items:center;gap:3px}
.dapp .pl-tr-l{color:var(--hc)}
.dapp .pl-tr-n{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--d-faint)}
.dapp .pl-tr-f{flex:none;color:var(--d-fire);padding-top:2px}
.dapp .pl-tr-f .ic{width:17px;height:17px;fill:currentColor}
.dapp .pl-tr.done .pl-tr-t{color:var(--d-faint);text-decoration:line-through;text-decoration-color:var(--d-faint)}
.dapp .pl-tr.done .pl-tr-m{opacity:.7}
.dapp .pl-tr.ticking > .pl-ck{background:var(--hc,var(--d-acc));border-color:var(--hc,var(--d-acc));color:var(--d-bg);transform:scale(1.12)}
.dapp .pl-tr.ticking .pl-tr-t{color:var(--d-faint);text-decoration:line-through}
.dapp .pl-kids{padding-inline-start:30px}
.dapp .pl-kids .pl-tr{padding-block:7px}
.dapp .pl-kids .pl-tr-t{font-size:14.5px}
.dapp .pl-kids .pl-tr + .pl-tr{border-top:0}
/* کشیدن: لایه‌ها بیرونِ ردیف‌اند و با خودش جابه‌جا می‌شوند (مثلِ ردیفِ عادت‌ها، به سمتِ فیزیکی نه راست‌به‌چپ) */
.dapp .pl-tr.sw{z-index:1;touch-action:pan-y}
.dapp .pl-swa{position:absolute;top:0;bottom:0;left:100%;display:flex;width:148px;direction:rtl}
.dapp .pl-swd{position:absolute;top:0;bottom:0;right:100%;width:150px;display:flex;align-items:center;justify-content:flex-end;gap:7px;padding-inline:14px;
  color:var(--d-ok);font-size:12.5px;font-weight:600;direction:ltr;transition:background .15s}
.dapp .pl-swd .ic{width:20px;height:20px}
.dapp .pl-tr.arm .pl-swd{background:color-mix(in srgb,var(--d-ok) 30%,transparent)}
.dapp .pl-swb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11.5px;font-weight:600;color:#fff}
.dapp .pl-swb .ic{width:19px;height:19px}
.dapp .pl-swb.fl{background:#e8933a}
.dapp .pl-swb.del{background:var(--d-bad)}
.dapp .pl-lv-b,.dapp .pl-tc,.dapp .pl-ag,.dapp .pl-ld-b,.dapp .pl-sres{overflow-x:clip}
@supports not (overflow:clip){.dapp .pl-lv-b,.dapp .pl-tc,.dapp .pl-ag,.dapp .pl-ld-b,.dapp .pl-sres{overflow-x:hidden}}

/* گروه‌ها */
.dapp .pl-grp{display:flex;flex-direction:column;margin-bottom:14px}
.dapp .pl-grp > h4{margin:6px 6px 4px;font-size:12.5px;font-weight:600;color:var(--d-sub)}
.dapp .pl-grp.over > h4{color:var(--d-bad)}
.dapp .pl-grp.dn > h4{color:var(--d-ok)}
.dapp .pl-grp.sm{margin-bottom:6px}
.dapp .pl-grp.sm > h4{margin-top:2px}
.dapp .pl-gl{color:var(--hc) !important;font-size:14px !important}

/* ═══════════════════ یادآورها: صفحه‌ی اول ═══════════════════ */
.dapp .pl-todo-in.two{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:28px;align-items:start}
.dapp .pl-todo-in.two .pl-hub{position:sticky;top:calc(72px + 66px)}
.dapp .pl-hub{display:flex;flex-direction:column;gap:14px;padding-bottom:92px}
@media (min-width:900px){.dapp .pl-hub{padding-bottom:12px}}
.dapp .pl-qw{position:relative;display:flex;align-items:center}
.dapp .pl-qw > .ic{position:absolute;inset-inline-start:12px;width:18px;height:18px;color:var(--d-faint);pointer-events:none}
.dapp .pl-q{width:100%;min-height:42px;padding:0 40px 0 14px;border-radius:13px;border:1px solid var(--d-line);background:var(--d-surf2);color:var(--d-ink);font-size:15.5px;outline:none}
.dapp[dir="ltr"] .pl-q{padding:0 14px 0 40px}
.dapp .pl-q:focus{border-color:color-mix(in srgb,var(--d-acc) 55%,transparent)}
.dapp .pl-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dapp .pl-tile{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;gap:6px 10px;padding:12px 13px 11px;
  border-radius:18px;background:var(--d-surf);border:1px solid var(--d-line);text-align:start;transition:transform .15s,border-color .15s}
.dapp .pl-tile:active{transform:scale(.97)}
.dapp .pl-tile.on{border-color:color-mix(in srgb,var(--hc) 55%,transparent);background:color-mix(in srgb,var(--hc) 9%,var(--d-surf))}
.dapp .pl-tile-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--hc);color:var(--d-bg)}
.dapp .pl-tile-ic .ic{width:19px;height:19px}
.dapp .pl-tile b{justify-self:end;font-size:25px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;color:var(--d-ink)}
.dapp .pl-tile-l{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:13.5px;font-weight:600;color:var(--d-sub)}
.dapp .pl-tile-o{font-style:normal;font-size:11px;font-weight:600;color:var(--d-bad);white-space:nowrap}
.dapp .pl-lh{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 6px -4px;min-height:30px}
.dapp .pl-lh h3{margin:0;font-size:15px;font-weight:600}
.dapp .pl-lh-e{padding:4px 10px;border-radius:99px;font-size:13px;font-weight:500;color:var(--d-acc)}
.dapp .pl-lh-e:hover{background:var(--d-surf2)}
.dapp .pl-lists{display:flex;flex-direction:column;background:var(--d-surf);border:1px solid var(--d-line);border-radius:18px;padding:3px 0;overflow:hidden}
.dapp .pl-lrow{position:relative;display:flex;align-items:center;gap:11px;min-height:52px;padding:6px 14px;text-align:start;transition:background .15s}
.dapp .pl-lrow + .pl-lrow::before{content:"";position:absolute;top:0;inset-inline:59px 14px;height:1px;background:var(--d-line)}
.dapp .pl-lrow:hover,.dapp .pl-lrow.on{background:var(--d-surf2)}
.dapp .pl-lrow-ic{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--hc);color:var(--d-bg)}
.dapp .pl-lrow-ic .ic{width:17px;height:17px}
.dapp .pl-lrow-n{flex:1;min-width:0;font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .pl-lrow-n small{margin-inline-start:8px;font-size:11px;font-weight:500;color:var(--d-faint)}
.dapp .pl-lrow-c{font-size:14px;color:var(--d-sub);font-variant-numeric:tabular-nums}
.dapp .pl-go{width:15px;height:15px;color:var(--d-faint);flex:none}
.dapp[dir="ltr"] .pl-go{transform:scaleX(-1)}
.dapp .pl-lrow.done .pl-lrow-ic{background:color-mix(in srgb,var(--d-ok) 18%,transparent);color:var(--d-ok)}
.dapp .pl-sync{display:flex;align-items:center;gap:7px;margin:0 6px;font-size:12px;color:var(--d-faint)}
.dapp .pl-sync .ic{width:15px;height:15px}
.dapp .pl-sres{display:flex;flex-direction:column;gap:4px}

/* ═══════════════════ یادآورها: یک فهرست ═══════════════════ */
.dapp .pl-lv-h{display:flex;align-items:center;gap:8px;margin:2px 0 10px;min-height:44px}
.dapp .pl-lv-h h2{margin:0;font-size:clamp(24px,6.4vw,30px);font-weight:700;color:var(--hc);line-height:1.3}
.dapp .pl-lv-n{font-size:clamp(22px,6vw,28px);font-weight:600;color:var(--hc);opacity:.55;margin-inline-start:auto;font-variant-numeric:tabular-nums}
.dapp .pl-lv-h .pl-ib:last-child{margin-inline-start:2px}
.dapp .pl-back{margin-inline-start:-8px}
.dapp .pl-back .ic{width:22px;height:22px}
.dapp[dir="rtl"] .pl-back .ic{transform:scaleX(-1)}
.dapp .pl-lv-b,.dapp .pl-lv-g{display:flex;flex-direction:column}
.dapp .pl-lv-ic{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--hc);color:var(--d-bg)}
.dapp .pl-lv-ic .ic{width:19px;height:19px}
.dapp .pl-qa{display:flex;align-items:flex-start;gap:11px;padding:9px 4px 9px 6px;border-top:1px solid var(--d-line);margin-bottom:90px}
.dapp .pl-qa > .pl-ck{margin-top:9px}
.dapp .pl-qa-w{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.dapp .pl-qa-i{width:100%;min-height:42px;padding:0;border:0;background:none;color:var(--d-ink);font-size:15.5px;outline:none}
.dapp .pl-qa-i::placeholder{color:var(--d-faint)}
.dapp .pl-qa-h{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--d-acc);font-weight:500}
.dapp .pl-qa-h[hidden]{display:none}
.dapp .pl-qa-h .ic{width:14px;height:14px}
.dapp .pl-qa-x{margin-top:2px;opacity:.6}
@media (min-width:900px){.dapp .pl-qa{margin-bottom:20px}}

/* ═══════════════════ ویرایشگرها ═══════════════════ */
.dapp .pl-ed{display:flex;flex-direction:column;gap:14px}
.dapp .pl-ed-head{display:flex;flex-direction:column;gap:2px;padding:6px 14px 8px;background:var(--d-surf2);border-radius:18px}
.dapp .pl-ed-t{width:100%;min-height:46px;padding:0;border:0;background:none;color:var(--d-ink);font-size:18px;font-weight:600;outline:none}
.dapp .pl-ed-t::placeholder{color:var(--d-faint);font-weight:500}
.dapp .pl-ed-n{width:100%;min-height:40px;padding:6px 0;border:0;border-top:1px solid var(--d-line);background:none;color:var(--d-ink2);font-size:15px;line-height:1.8;resize:none;outline:none}
.dapp .pl-ed > .pl-ed-n{padding:10px 14px;border:0;border-radius:18px;background:var(--d-surf2)}
.dapp .pl-ed-n::placeholder{color:var(--d-faint)}
.dapp .pl-ed-pl{display:flex;align-items:center;gap:8px;border-top:1px solid var(--d-line)}
.dapp .pl-ed-pl .ic{width:17px;height:17px;color:var(--d-faint);flex:none}
.dapp .pl-ed-p{flex:1;min-width:0;min-height:42px;padding:0;border:0;background:none;color:var(--d-ink);font-size:15px;outline:none}
.dapp .pl-ed-g{display:flex;flex-direction:column;gap:14px}
.dapp .pl-hint{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;max-width:100%;margin:2px 0 6px;padding:6px 12px;border-radius:99px;
  background:color-mix(in srgb,var(--d-acc) 15%,transparent);color:var(--d-acc);font-size:13px;font-weight:600}
.dapp .pl-hint[hidden]{display:none}
.dapp .pl-hint .ic{width:15px;height:15px;flex:none}
.dapp .pl-hint small{font-size:11.5px;font-weight:500;opacity:.8;padding-inline-start:6px;border-inline-start:1px solid currentColor}
.dapp .pl-ctl{display:inline-flex;align-items:center;gap:8px;min-width:0}
.dapp .pl-val{display:inline-flex;align-items:center;min-height:36px;max-width:100%;padding:0 12px;border-radius:12px;background:var(--d-surf);color:var(--d-ink);
  font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .pl-val.empty{color:var(--d-faint);font-weight:500}
.dapp .pl-val:active{transform:scale(.97)}
.dapp .dfrow-c .pl-time{min-height:36px;background:var(--d-surf);font-size:14px}
/* زیرکارها */
.dapp .pl-sub{display:flex;flex-direction:column}
.dapp .pl-sub-r{position:relative;display:flex;align-items:center;gap:10px;min-height:46px;padding:2px 14px}
.dapp .pl-sub-r + .pl-sub-r::before{content:"";position:absolute;top:0;inset-inline:45px 14px;height:1px;background:var(--d-line)}
.dapp .pl-sub-r input{flex:1;min-width:0;min-height:40px;padding:0;border:0;background:none;color:var(--d-ink);font-size:15px;outline:none}
.dapp .pl-sub-r.done input{color:var(--d-faint);text-decoration:line-through}
.dapp .pl-sub-x{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--d-faint)}
.dapp .pl-sub-x .ic{width:15px;height:15px}
.dapp .pl-sub-plus{flex:none;width:21px;height:21px;display:grid;place-items:center;color:var(--d-acc)}
.dapp .pl-sub-plus .ic{width:18px;height:18px}
/* رنگ و آیکنِ فهرست */

/* ═══════════════════ انتخابِ روز، تکرار ═══════════════════ */
.dapp .pl-dp{display:flex;flex-direction:column;gap:12px;padding:2px 4px 6px}
.dapp .pl-dp-q{display:flex;flex-wrap:wrap;gap:7px}
.dapp .pl-dp-top{display:flex;align-items:center;justify-content:space-between}
.dapp .pl-dp-top b{font-size:16px;font-weight:600}
.dapp .pl-dp-nav{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--d-ink2);background:var(--d-surf2)}
.dapp .pl-dp-nav .ic{width:17px;height:17px}
.dapp .pl-dp-g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}
.dapp .pl-dp-h{font-size:11.5px;color:var(--d-faint);padding-bottom:4px}
.dapp .pl-dp-d{aspect-ratio:1;max-height:44px;border-radius:50%;font-size:14.5px;font-variant-numeric:tabular-nums;color:var(--d-ink)}
.dapp .pl-dp-d.off{color:var(--d-bad)}
.dapp .pl-dp-d.now{color:var(--d-acc);font-weight:700}
.dapp .pl-dp-d.sel{background:var(--d-acc);color:var(--d-acc-ink);font-weight:700}
.dapp .pl-dp-d:disabled{opacity:.25}
.dapp .pl-cr{display:flex;flex-direction:column;gap:14px;padding:4px 4px 8px}
.dapp .pl-seg{display:flex;gap:3px;padding:3px;border-radius:13px;background:var(--d-surf2)}
.dapp .pl-seg button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 6px;border-radius:10px;font-size:13.5px;font-weight:500;color:var(--d-sub);transition:background .15s,color .15s}
.dapp .pl-seg button.on{background:var(--d-surf);color:var(--d-ink);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.dapp .pl-seg button .ic{width:16px;height:16px}
.dapp .pl-seg.sm button{min-height:32px;font-size:12.5px}
.dapp .pl-cr-n{display:flex;align-items:center;justify-content:center;gap:12px;font-size:15px;color:var(--d-ink2)}
.dapp .pl-cr-n b{min-width:28px;text-align:center;font-size:20px;color:var(--d-ink)}
.dapp .pl-step{width:38px;height:38px;border-radius:50%;background:var(--d-surf2);font-size:20px;color:var(--d-ink2)}
.dapp .pl-step:disabled{opacity:.3}
.dapp .pl-wdx{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.dapp .pl-wdx button{aspect-ratio:1;border-radius:50%;background:var(--d-surf2);font-size:14px;font-weight:600;color:var(--d-sub)}
.dapp .pl-wdx button.on{background:var(--d-acc);color:var(--d-acc-ink)}
.dapp .pl-cr-sum{margin:0;text-align:center;font-size:13px;color:var(--d-acc)}
.dapp .pl-mp{display:flex;flex-direction:column;gap:12px;padding:2px 4px 6px}
.dapp .pl-mp-g{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.dapp .pl-mp-g .pl-chip{justify-content:center;min-height:40px}

/* ═══════════════════ تقویم ═══════════════════ */
.dapp .pl-cal{display:flex;flex-direction:column;gap:12px;padding-bottom:90px}
@media (min-width:900px){.dapp .pl-cal{padding-bottom:24px}}
.dapp .pl-ch{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px}
.dapp .pl-ch-t{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;text-align:start;min-width:0;padding:4px 2px}
.dapp .pl-ch-t b{font-size:clamp(21px,5.6vw,26px);font-weight:700;line-height:1.3}
.dapp .pl-ch-t small{font-size:12px;color:var(--d-sub)}
.dapp .pl-ch-c{width:14px;height:14px;color:var(--d-faint);transform:rotate(90deg);align-self:center}
.dapp .pl-ch-a{display:flex;align-items:center;gap:4px;flex:none}
.dapp .pl-pill{min-height:34px;padding:0 13px;border-radius:99px;background:color-mix(in srgb,var(--d-acc) 15%,transparent);color:var(--d-acc);font-size:13px;font-weight:600}
.dapp .pl-nav{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--d-ink2)}
.dapp .pl-nav:hover{background:var(--d-surf2)}
.dapp .pl-nav .ic{width:18px;height:18px}
.dapp .pl-modes{align-self:stretch}
@media (min-width:900px){.dapp .pl-modes{align-self:flex-start;min-width:340px}}

/* ماه */
.dapp .pl-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;touch-action:pan-y}
.dapp .pl-mh{padding:2px 0 6px;text-align:center;font-size:11.5px;font-weight:600;color:var(--d-faint)}
.dapp .pl-mh.off{color:color-mix(in srgb,var(--d-bad) 75%,var(--d-faint))}
.dapp .pl-mc{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:50px;padding:5px 0 6px;border-radius:14px;transition:background .15s}
.dapp .pl-mc:hover{background:var(--d-surf2)}
.dapp .pl-mc-n{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:15.5px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--d-ink);transition:background .15s}
.dapp .pl-mc.out .pl-mc-n{color:var(--d-faint);opacity:.55}
.dapp .pl-mc.off .pl-mc-n{color:var(--d-bad)}
.dapp .pl-mc.now .pl-mc-n{color:var(--d-acc);font-weight:700}
.dapp .pl-mc.sel .pl-mc-n{background:var(--d-ink);color:var(--d-bg);font-weight:700}
.dapp .pl-mc.sel.now .pl-mc-n{background:var(--d-acc);color:var(--d-acc-ink)}
.dapp .pl-mc.hol::after{content:"";position:absolute;top:6px;inset-inline-end:calc(50% - 21px);width:5px;height:5px;border-radius:50%;background:var(--d-bad)}
.dapp .pl-mc-g{position:absolute;top:3px;inset-inline-start:5px;font-size:9.5px;color:var(--d-faint);font-variant-numeric:tabular-nums}
.dapp .pl-mc-dots{display:flex;gap:3px;height:6px}
.dapp .pl-mc-dots i{width:6px;height:6px;border-radius:50%;background:var(--hc,var(--d-acc))}
.dapp .pl-mc-dots i.td{background:none;border:1.5px solid var(--d-sub);width:6px;height:6px;box-sizing:border-box}
.dapp .pl-mc-dots i.gl{background:var(--d-fire);border-radius:1px;transform:rotate(45deg) scale(.8)}
.dapp .pl-mwrap{display:flex;flex-direction:column;gap:16px}
@media (min-width:900px){
  .dapp .pl-mwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:24px;align-items:start}
  .dapp .pl-mwrap .pl-ag{position:sticky;top:calc(72px + 66px)}
  .dapp .pl-month{gap:0;border-top:1px solid var(--d-line);border-inline-start:1px solid var(--d-line)}
  .dapp .pl-mh{border-inline-end:1px solid var(--d-line);border-bottom:1px solid var(--d-line);padding:8px 0}
  .dapp .pl-mc{align-items:stretch;min-height:104px;padding:4px 4px 6px;border-radius:0;border-inline-end:1px solid var(--d-line);border-bottom:1px solid var(--d-line)}
  .dapp .pl-mc-n{width:28px;height:28px;font-size:14px;align-self:flex-start}
  .dapp .pl-mc.sel{background:color-mix(in srgb,var(--d-acc) 8%,transparent)}
  .dapp .pl-mc.sel:not(.now) .pl-mc-n{background:var(--d-surf3);color:var(--d-ink)}
  .dapp .pl-mc-g{top:8px;inset-inline-start:auto;inset-inline-end:8px;font-size:11px}
  .dapp .pl-mc.hol::after{top:9px;inset-inline-end:auto;inset-inline-start:34px}
}
.dapp .pl-mc-ev{display:flex;flex-direction:column;gap:2px;min-width:0}
.dapp .pl-mc-e{display:block;padding:1px 6px;border-radius:6px;font-size:11.5px;line-height:1.55;text-align:start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:var(--d-ink2);border-inline-start:3px solid var(--hc);background:color-mix(in srgb,var(--hc) 10%,transparent)}
.dapp .pl-mc-e.all{background:color-mix(in srgb,var(--hc) 30%,transparent);color:var(--d-ink)}
.dapp .pl-mc-more,.dapp .pl-mc-td{display:inline-flex;align-items:center;gap:3px;padding:0 4px;font-size:11px;color:var(--d-sub)}
.dapp .pl-mc-td .ic{width:12px;height:12px}

/* برنامه‌ی یک روز */
.dapp .pl-ag{display:flex;flex-direction:column;gap:10px}
.dapp .pl-ag-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dapp .pl-ib.pl-add{width:32px;height:32px;border-radius:50%;background:var(--d-surf2);color:var(--d-ink2)}
.dapp .pl-ib.pl-add .ic{width:17px;height:17px}
.dapp .pl-ib.pl-dot{position:relative}
.dapp .pl-ib.pl-dot::after{content:"";position:absolute;top:7px;inset-inline-end:7px;width:7px;height:7px;border-radius:50%;background:var(--d-acc)}
.dapp .pl-ag-h b{display:block;font-size:16.5px;font-weight:700}
.dapp .pl-ag-h small{font-size:12px;color:var(--d-sub)}
.dapp .pl-hol{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:8px 12px;border-radius:13px;font-size:13px;line-height:1.6;
  background:var(--d-surf2);color:var(--d-ink2)}
.dapp .pl-hol.off{background:color-mix(in srgb,var(--d-bad) 13%,transparent);color:color-mix(in srgb,var(--d-bad) 85%,var(--d-ink))}
.dapp .pl-hol span + span::before{content:"·";margin-inline-end:10px;opacity:.6}
.dapp .pl-hol small{font-size:11px;opacity:.75;padding:0 7px;border-radius:99px;border:1px solid currentColor}
.dapp .pl-evs{display:flex;flex-direction:column;gap:6px}
.dapp .pl-ev{display:flex;align-items:stretch;gap:10px;min-height:52px;padding:8px 12px;border-radius:15px;background:var(--d-surf);border:1px solid var(--d-line);text-align:start;transition:transform .15s}
.dapp .pl-ev:active{transform:scale(.985)}
.dapp .pl-ev-tm{flex:none;width:52px;display:flex;flex-direction:column;justify-content:center;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--d-ink)}
.dapp .pl-ev-tm small{font-size:11.5px;font-weight:500;color:var(--d-faint)}
.dapp .pl-ev.all .pl-ev-tm{font-size:11.5px;font-weight:500;color:var(--d-sub)}
.dapp .pl-ev-bar{flex:none;width:4px;border-radius:4px;background:var(--hc)}
.dapp .pl-ev-b{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:1px}
.dapp .pl-ev-b b{font-size:15px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.dapp .pl-ev-b small{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--d-sub);line-height:1.5}
.dapp .pl-ev-b small .ic{width:12px;height:12px;flex:none}
.dapp .pl-ev.all{background:color-mix(in srgb,var(--hc) 11%,var(--d-surf));border-color:color-mix(in srgb,var(--hc) 28%,transparent)}
.dapp .pl-ev.past{opacity:.55}
.dapp .pl-free{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:14px;border:1px dashed var(--d-line2);font-size:13.5px;color:var(--d-sub)}
.dapp .pl-gs{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:15px;background:var(--d-surf2)}
.dapp .pl-gcs{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.dapp .pl-gs-l{font-size:11.5px;font-weight:600;color:var(--d-faint);margin-inline-end:2px}
.dapp .pl-gc{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:0 10px;border-radius:99px;background:var(--d-surf);font-size:12.5px;color:var(--d-ink2)}
.dapp .pl-gc .ic{width:14px;height:14px;color:var(--d-ok)}
.dapp .pl-mood{width:11px;height:11px;border-radius:50%}
.dapp .pl-goal{display:flex;align-items:center;gap:8px;min-height:36px;padding:4px 2px;text-align:start;font-size:13.5px;color:var(--d-ink2)}
.dapp .pl-goal .ic{flex:none;width:17px;height:17px;color:var(--hc)}
.dapp .pl-goal span{display:flex;flex-direction:column}
.dapp .pl-goal small{font-size:11.5px;color:var(--d-faint)}
.dapp .pl-goal.done span{text-decoration:line-through;color:var(--d-faint)}

/* روز */
.dapp .pl-dayv{display:flex;flex-direction:column;gap:10px}
/* نوارِ هفته (و سرِ اپ و نوارِ باغچه) در نمای روز بالا می‌چسبند. overflow-x:hidden ِ body (a/app.css) با clip ِ html بدنه را جعبه‌ی
   اسکرولِ جدا می‌کند و sticky را می‌شکند؛ فقط همین‌جا clip می‌شود (مرورگرِ بی :has همان قبلی را می‌بیند) */
body.app-body:has(.pl-dayv){overflow-x:clip}
.dapp .pl-wk{position:sticky;top:calc(var(--d-top) + var(--d-safe-t) + 56px);z-index:20;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;touch-action:pan-y;
  margin:0 -16px;padding:2px 16px 6px;background:color-mix(in srgb,var(--d-bg) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(18px);backdrop-filter:saturate(1.4) blur(18px)}
@media (min-width:900px){.dapp .pl-wk{top:128px;margin-inline:-36px;padding-inline:36px}}
.dapp .pl-wd{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0 5px;border-radius:14px;transition:background .15s}
.dapp .pl-wd span{font-size:11.5px;color:var(--d-faint)}
.dapp .pl-wd b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.dapp .pl-wd i{width:5px;height:5px;border-radius:50%;background:var(--d-sub)}
.dapp .pl-wd i.no{background:none}
.dapp .pl-wd.off b{color:var(--d-bad)}
.dapp .pl-wd.now b{color:var(--d-acc)}
.dapp .pl-wd.sel b{background:var(--d-ink);color:var(--d-bg)}
.dapp .pl-wd.sel.now b{background:var(--d-acc);color:var(--d-acc-ink)}
.dapp .pl-lane{display:flex;flex-direction:column;gap:6px}
.dapp .pl-lane .pl-tr{border-radius:13px;background:var(--d-surf);padding-inline:10px}
.dapp .pl-tl-sc{position:relative;padding:10px 0;border-radius:16px;background:var(--d-surf);border:1px solid var(--d-line)}
.dapp .pl-tl{position:relative;margin-inline-start:52px;margin-inline-end:6px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.dapp .pl-tl.dragging{cursor:grabbing}
.dapp .pl-hr{position:absolute;inset-inline:0;height:0;border-top:1px solid var(--d-line)}
.dapp .pl-hr span{position:absolute;top:-9px;inset-inline-end:calc(100% + 8px);font-size:11px;color:var(--d-faint);font-variant-numeric:tabular-nums;white-space:nowrap}
.dapp .pl-blk{position:absolute;z-index:2;display:flex;flex-direction:column;gap:1px;padding:4px 8px;border-radius:9px;overflow:hidden;text-align:start;
  background:color-mix(in srgb,var(--hc) 22%,var(--d-surf));border-inline-start:3px solid var(--hc);color:var(--d-ink)}
.dapp .pl-blk b{font-size:13px;font-weight:600;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .pl-blk small{font-size:11px;color:var(--d-ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .pl-blk.tiny{flex-direction:row;align-items:center;padding-block:0}
.dapp .pl-blk.tiny small{display:none}
/* کشیدن: لبه‌ی پایین (طول)، بلند شدن، رویدادِ تازه‌ی در حالِ ساختن، ساعتِ کنارش */
.dapp .pl-blk-g{position:absolute;inset-inline:0;bottom:0;height:12px;cursor:ns-resize}
.dapp .pl-blk-g::after{content:"";position:absolute;bottom:3px;left:50%;width:22px;height:3px;margin-left:-11px;border-radius:2px;background:var(--hc);opacity:0;transition:opacity .15s}
@media (hover:hover){.dapp .pl-blk:hover .pl-blk-g::after{opacity:.7}}
.dapp .pl-blk.lift .pl-blk-g::after{opacity:.9}
.dapp .pl-blk:not(.fixed){cursor:grab}
.dapp .pl-blk.lift,.dapp .pl-tpill.lift{z-index:6;box-shadow:0 10px 26px -8px rgba(0,0,0,.45);transform:scale(1.02);transition:transform .15s var(--d-spring),box-shadow .15s}
.dapp .pl-blk.ghost{inset-inline:2px;width:auto;opacity:.92;border-style:dashed;pointer-events:none}
.dapp .pl-dragt{position:absolute;z-index:7;inset-inline-end:calc(100% + 4px);transform:translateY(-50%);padding:1px 6px;border-radius:6px;background:var(--d-acc);color:var(--d-acc-ink);
  font-size:11px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;pointer-events:none}
.dapp .pl-tpill{position:absolute;z-index:3;inset-inline-start:4px;display:flex;align-items:center;gap:6px;max-width:72%;height:24px;padding:0 9px 0 4px;border-radius:99px;
  background:var(--d-surf2);border:1px solid color-mix(in srgb,var(--hc) 45%,transparent);font-size:12px;color:var(--d-ink2)}
.dapp .pl-tpill span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .pl-tpill .pl-ck{width:16px;height:16px;border-width:1.5px}
.dapp .pl-tpill .pl-ck .ic{width:10px;height:10px}
.dapp .pl-tpill.done{opacity:.55;text-decoration:line-through}
.dapp .pl-now{position:absolute;z-index:4;inset-inline:-6px 0;height:2px;background:var(--d-bad);pointer-events:none}
.dapp .pl-now::before{content:"";position:absolute;inset-inline-start:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--d-bad)}

/* فهرست (پیشِ رو) */
.dapp .pl-list{display:flex;flex-direction:column;gap:14px}
.dapp .pl-ld{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px}
.dapp .pl-ld-h{display:flex;flex-direction:column;align-items:center;gap:0;padding-top:4px}
.dapp .pl-ld-h b{font-size:24px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.dapp .pl-ld-h span{display:flex;flex-direction:column;align-items:center;font-size:12px;color:var(--d-sub);text-align:center}
.dapp .pl-ld-h small{font-size:10.5px;color:var(--d-faint)}
.dapp .pl-ld-h.off b{color:var(--d-bad)}
.dapp .pl-ld.now .pl-ld-h b{color:var(--d-acc)}
.dapp .pl-ld-b{display:flex;flex-direction:column;gap:6px;min-width:0}
.dapp .pl-ld-b .pl-tr{border-radius:13px;background:var(--d-surf);padding-inline:10px}
.dapp .pl-ld-b .pl-tr + .pl-tr{border-top:0}

/* برگه‌ی رویداد */
.dapp .pl-es{display:flex;gap:12px}
.dapp .pl-es-bar{flex:none;width:5px;border-radius:5px;background:var(--hc)}
.dapp .pl-es-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px;padding:2px 0 6px}
.dapp .pl-es-w{display:flex;align-items:flex-start;gap:10px;font-size:15px;line-height:1.65;color:var(--d-ink)}
.dapp .pl-es-w > .ic{flex:none;width:19px;height:19px;margin-top:3px;color:var(--d-sub)}
.dapp .pl-es-w span{display:flex;flex-direction:column}
.dapp .pl-es-w small{font-size:12.5px;color:var(--d-sub)}
.dapp .pl-es-n{margin:0;padding:10px 12px;border-radius:13px;background:var(--d-surf2);font-size:14.5px;line-height:1.9;white-space:pre-wrap;color:var(--d-ink2)}
/* دکمه‌های برگه (سطل، مداد) در همان ردیفِ عنوان، کنارِ بستن — نه یک ردیفِ جدا */
.dapp .sheet.pl-sheet .sheet-head{flex-wrap:nowrap;align-items:center}
.dapp .sheet.pl-sheet .sheet-title{flex:1;min-width:0}
.dapp .sheet.pl-sheet .sheet-actions{order:0;flex-basis:auto;flex-wrap:nowrap;display:flex;gap:4px}

/* ═══════════════════ «امروز در برنامه» ═══════════════════ */
.dapp .pl-tc{padding:14px 14px 8px;display:flex;flex-direction:column;gap:8px}
.dapp .pl-tc[hidden]{display:none}
.dapp .pl-tc-h{display:flex;align-items:center;gap:8px}
.dapp .pl-tc-h h3{margin:0;font-size:15.5px;font-weight:700}
.dapp .pl-tc-n{flex:1;font-size:12px;color:var(--d-sub)}
.dapp .pl-tc .pl-ev{background:var(--d-surf2);border-color:transparent}
.dapp .pl-tc .pl-ev.all{background:color-mix(in srgb,var(--hc) 12%,var(--d-surf2))}
.dapp .pl-tc .pl-tr{background:none}
.dapp .pl-tc-more{align-self:flex-start;font-size:13px;margin:2px 6px 4px}

.dapp .pl-fab{z-index:56}
@media (max-width:420px){.dapp .pl-tile b{font-size:22px}.dapp .pl-ev-tm{width:46px}}

/* ═══════════════════ برگه‌ی حوزه (habits.js): یادآورها و تقویمِ همان حوزه ═══════════════════ */
.dapp .hb-domd-acts.wide{grid-template-columns:repeat(3,minmax(0,1fr))}
.dapp .hb-plan{display:flex;flex-direction:column;gap:2px}
.dapp .hb-plan-r{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 10px;border-radius:12px;text-align:start;background:var(--d-surf2)}
.dapp .hb-plan-r .ic{flex:none;width:18px;height:18px;color:var(--d-sub)}
.dapp .hb-plan-r span{flex:1;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dapp .hb-plan-r small{flex:none;font-size:12px;color:var(--d-sub)}
.dapp .hb-plan .dlink{align-self:flex-start;margin-top:4px}
