/* ════════════════════════════════════════════
   پلنیار v3.0 — Mobile-First PWA
   8px grid · micro-interactions · premium UX
════════════════════════════════════════════ */
:root{
  --p:#6C47FF;--p2:#9B7AFF;--pg:rgba(108,71,255,.18);
  --ok:#22C993;--ok-bg:rgba(34,201,147,.10);
  --warn:#F59E0B;--warn-bg:rgba(245,158,11,.10);
  --err:#F43F6E;--err-bg:rgba(244,63,110,.10);
  --bg:#0C0A1E;--s1:#121028;--s2:#181630;--s3:#201E3A;--s4:#282546;
  --t1:#EDEAFF;--t2:rgba(237,234,255,.60);--t3:rgba(237,234,255,.30);
  --t4:rgba(237,234,255,.08);--t5:rgba(237,234,255,.04);
  --ln:rgba(237,234,255,.07);--ln2:rgba(237,234,255,.04);
  --nav:60px;--hdr:54px;--mw:430px;
  --r:18px;--r2:12px;--r3:8px;
  --font:'Vazirmatn',sans-serif;--ease:cubic-bezier(.4,0,.2,1);
}
body.light{
  --bg:#EEEAF8;--s1:#fff;--s2:#fff;--s3:#F0EEFF;--s4:#E8E4FF;
  --t1:#130E2E;--t2:rgba(19,14,46,.60);--t3:rgba(19,14,46,.35);
  --t4:rgba(19,14,46,.07);--t5:rgba(19,14,46,.04);
  --ln:rgba(19,14,46,.07);--ln2:rgba(19,14,46,.04);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
button,.btn,.nb,.pnb,.fab,.mg-btn,.tab-btn,.chip,select.inp{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
html{height:100%;overscroll-behavior:none}
body{font-family:var(--font);background:var(--bg);color:var(--t1);direction:rtl;min-height:100dvh;display:flex;justify-content:center;-webkit-font-smoothing:antialiased;transition:background .25s,color .25s}
body::before{content:'';position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse 70% 45% at 20% 10%,rgba(108,71,255,.12) 0%,transparent 100%),radial-gradient(ellipse 60% 40% at 80% 90%,rgba(34,201,147,.07) 0%,transparent 100%),var(--bg)}
body.light::before{background:radial-gradient(ellipse 70% 45% at 20% 10%,rgba(108,71,255,.08) 0%,transparent 100%),var(--bg)}
.frame{width:100%;max-width:var(--mw);height:100dvh;display:flex;flex-direction:column;background:var(--bg);position:relative;overflow:hidden}
@media(min-width:500px){.frame{box-shadow:0 0 0 1px var(--ln),0 32px 80px rgba(0,0,0,.55)}}
/* scrollbar */
.app-body{scrollbar-width:thin;scrollbar-color:var(--p) transparent}
.app-body::-webkit-scrollbar{width:2px}
.app-body::-webkit-scrollbar-thumb{background:var(--p);border-radius:99px}
/* header */
.hdr{height:var(--hdr);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--s1);border-bottom:1px solid var(--ln);z-index:50}
.hdr-brand{display:flex;align-items:center;gap:9px}
.logo{width:30px;height:30px;border-radius:9px;overflow:hidden;flex-shrink:0}
.logo img{width:30px;height:30px;display:block}
.app-nm{font-size:15px;font-weight:800}
.hdr-r{display:flex;align-items:center;gap:10px}
.hdr-dj{font-size:12px;font-weight:700;text-align:left}
.hdr-dw{font-size:9px;color:var(--t3);display:block;text-align:left}
.btn-theme{width:30px;height:30px;border-radius:50%;border:none;background:var(--t4);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .18s}
.btn-theme:active{transform:scale(.88)}
.btn-theme svg{width:14px;height:14px;color:var(--t2)}
/* app body */
.app-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-bottom:12px}
/* screens */
.scr{display:none}
.scr.on{display:block;animation:up .2s var(--ease) both}
@keyframes up{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* nav — فریز */
.nav{height:var(--nav);flex-shrink:0;display:flex;align-items:stretch;background:var(--s1);border-top:1px solid var(--ln);z-index:50}
.nb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:none;background:none;cursor:pointer;color:var(--t3);position:relative;transition:color .18s;padding:6px 2px}
.nb svg{width:20px;height:20px;transition:transform .18s}
.nb-lbl{font-size:9px;font-weight:600;font-family:var(--font);white-space:nowrap}
.nb[data-s="planner"] .nb-lbl{font-size:8px}
.nb.on{color:var(--p)}
.nb.on svg{transform:translateY(-1px)}
.nb-pip{position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--p);opacity:0;transition:opacity .18s}
.nb.on .nb-pip{opacity:1}
/* fab */
.fab-wrap{position:absolute;left:12px;bottom:calc(var(--nav) + 10px);display:flex;flex-direction:column-reverse;gap:10px;z-index:40}
.fab{width:48px;height:48px;border-radius:15px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .18s}
.fab:active{transform:scale(.91)}
.fab svg{width:21px;height:21px}
.fab-main{background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;box-shadow:0 4px 18px var(--pg)}
/* install */

/* sections */
.sec{padding:14px 16px}
.sec+.sec{padding-top:0}
.sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.sh-t{font-size:13.5px;font-weight:800}
.sh-a{font-size:11px;color:var(--p2);font-weight:600;border:none;background:none;font-family:var(--font);cursor:pointer}
/* ═══ TASKS ═══ */
.task-row{display:flex;align-items:center;gap:8px;background:var(--t4);border-radius:var(--r3);padding:8px 10px;margin-bottom:6px}
.task-row:last-child{margin-bottom:0}
.task-ck{width:22px;height:22px;border-radius:50%;border:2px solid var(--ln);background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}
.task-ck svg{width:10px;height:10px;opacity:0;color:#0C0A1E}
.task-row.done .task-ck{background:var(--ok);border-color:var(--ok)}
.task-row.done .task-ck svg{opacity:1}
.task-row.done .task-tx{color:var(--t3);text-decoration:line-through}
.task-pri{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.task-pri.high{background:var(--err)}
.task-pri.mid{background:var(--warn)}
.task-pri.low{background:var(--t3)}
.task-tx{flex:1;font-size:12px;color:var(--t2);min-width:0}
.task-time{font-size:9.5px;color:var(--t3);flex-shrink:0}
.task-del{background:none;border:none;color:var(--err);cursor:pointer;opacity:.4;flex-shrink:0}
.task-del svg{width:10px;height:10px}
/* ═══ REPORTS MONTH NAV ═══ */
.rpt-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:14px}
.rpt-nav-lbl{font-size:12.5px;font-weight:800;min-width:110px;text-align:center}
/* cards */
.card{background:var(--s2);border:1px solid var(--ln);border-radius:var(--r)}
.card+.card{margin-top:9px}
.cb{padding:14px}
.ch{padding:11px 14px;border-bottom:1px solid var(--ln2);display:flex;align-items:center;justify-content:space-between}
.ch-t{font-size:11.5px;font-weight:700;color:var(--t2);display:flex;align-items:center;gap:6px}
.ch-t svg{width:13px;height:13px;color:var(--p)}
/* inputs */
.inp{width:100%;background:var(--bg);border:1px solid var(--ln);border-radius:var(--r2);padding:10px 12px;font-family:var(--font);font-size:13px;color:var(--t1);outline:none;direction:rtl;-webkit-appearance:none;appearance:none;transition:border .18s,box-shadow .18s}
.inp:focus{border-color:var(--p);box-shadow:0 0 0 3px var(--pg)}
.inp::placeholder{color:var(--t3)}
select.inp{cursor:pointer}
.fg{display:flex;flex-direction:column;gap:4px}
.fg>label{font-size:10px;font-weight:600;color:var(--t3)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:none;border-radius:var(--r2);padding:10px 16px;font-family:var(--font);font-size:13px;font-weight:700;cursor:pointer;transition:transform .15s;white-space:nowrap}
.btn svg{width:13px;height:13px}
.btn:active{transform:scale(.97)}
.bp{background:linear-gradient(135deg,var(--p),var(--p2));color:#fff;box-shadow:0 3px 12px var(--pg)}
.bs{background:var(--t4);color:var(--t1);border:1px solid var(--ln)}
.bd{background:var(--err-bg);color:var(--err)}
.bw{width:100%}
.form-row{display:flex;gap:7px;margin-bottom:8px}
#priAddBtn,#taskAddBtn{width:42px;min-width:42px;padding:0;flex:none}
#priAddBtn svg,#taskAddBtn svg{width:17px;height:17px}
.form-row:last-child{margin-bottom:0}
/* ═══ HOME ═══ */
.welcome{margin:14px 16px 0;background:linear-gradient(135deg,rgba(108,71,255,.18),rgba(34,201,147,.10));border:1px solid rgba(108,71,255,.2);border-radius:var(--r);padding:18px;display:flex;align-items:center;gap:16px}
.w-ring{position:relative;width:76px;height:76px;flex-shrink:0}
.w-ring-bg{position:absolute;inset:0;transform:rotate(-90deg)}
.w-ring-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.w-pct{font-size:18px;font-weight:900;line-height:1}
.w-lbl{font-size:7.5px;color:var(--t3);margin-top:2px}
.w-info{flex:1;min-width:0}
.w-hi{font-size:10px;color:var(--t3);margin-bottom:3px}
.w-name{font-size:18px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.w-msg{font-size:11px;color:var(--t2);margin-top:5px;line-height:1.5}
/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 16px 0}
.stat{border-radius:var(--r2);padding:11px 8px;text-align:center}
.stat-ok{background:var(--ok-bg);border:1px solid rgba(34,201,147,.2)}
.stat-w{background:var(--warn-bg);border:1px solid rgba(245,158,11,.2)}
.stat-e{background:var(--err-bg);border:1px solid rgba(244,63,110,.2)}
.stat-ic{width:14px;height:14px;margin:0 auto 5px}
.stat-ic svg{width:14px;height:14px}
.stat-v{font-size:13px;font-weight:900;display:block}
.stat-ok .stat-v{color:var(--ok)}
.stat-w .stat-v{color:var(--warn)}
.stat-e .stat-v{color:var(--err);font-size:11px}
.stat-l{font-size:8.5px;color:var(--t3);margin-top:2px}
/* habit quick */
.hq{display:flex;align-items:center;gap:10px;background:var(--s2);border:1px solid var(--ln);border-radius:var(--r2);padding:11px;margin-bottom:7px;cursor:pointer;user-select:none;transition:border-color .18s,transform .12s}
.hq.dn{border-color:rgba(34,201,147,.3);background:rgba(34,201,147,.04)}
.hq:active{transform:scale(.99)}
.hq-em{font-size:19px;width:36px;height:36px;flex-shrink:0;background:var(--t4);border-radius:10px;display:flex;align-items:center;justify-content:center}
.hq-i{flex:1;min-width:0}
.hq-n{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hq.dn .hq-n{color:var(--t3);text-decoration:line-through}
.hq-s{font-size:10px;color:var(--t3);margin-top:2px;display:flex;align-items:center;gap:3px}
.s-hot{color:var(--warn);font-weight:700}
.hq-track{height:3px;background:var(--t4);border-radius:2px;margin-top:5px;overflow:hidden}
.hq-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--p),var(--ok));transition:width .4s var(--ease)}
.hq-ck{width:26px;height:26px;border-radius:50%;border:2px solid var(--ln);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}
.hq-ck svg{width:11px;height:11px;opacity:0;color:#0C0A1E}
.hq.dn .hq-ck{background:var(--ok);border-color:var(--ok)}
.hq.dn .hq-ck svg{opacity:1}
.hq-cnt{display:flex;align-items:center;gap:5px;flex-shrink:0}
.hq-cb{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--ln);background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .12s}
.hq-cb svg{width:10px;height:10px;color:var(--t2)}
.hq-cb:active{transform:scale(.85)}
.hq-cv{font-size:12px;font-weight:800;min-width:28px;text-align:center}
/* tx mini */
.txm{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--ln2)}
.txm:last-child{border-bottom:none}
.txm-ic{width:32px;height:32px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.txm-ic.in{background:rgba(34,201,147,.12);color:var(--ok)}
.txm-ic.out{background:rgba(244,63,110,.12);color:var(--err)}
.txm-ic svg{width:14px;height:14px}
.txm-i{flex:1;min-width:0}
.txm-n{font-size:12.5px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.txm-d{font-size:9.5px;color:var(--t3);margin-top:1px}
.txm-a{font-size:12.5px;font-weight:800;flex-shrink:0}
.txm-a.in{color:var(--ok)}
.txm-a.out{color:var(--err)}
/* ═══ HABITS ═══ */
.hcard{background:var(--s2);border:1px solid var(--ln);border-radius:var(--r);overflow:hidden;margin-bottom:9px;transition:border-color .2s}
.hcard.dt{border-color:rgba(34,201,147,.28)}
.hcard-hd{display:flex;align-items:center;gap:11px;padding:13px;cursor:pointer}
.hring{position:relative;width:44px;height:44px;flex-shrink:0}
.hring svg{position:absolute;inset:0}
.hring-em{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:18px}
.h-inf{flex:1;min-width:0}
.h-nm{font-size:13px;font-weight:700}
.h-meta{display:flex;align-items:center;gap:8px;margin-top:3px}
.h-str{font-size:10px;font-weight:700;display:flex;align-items:center;gap:2px}
.h-str.hot{color:var(--warn)}
.h-str.cold{color:var(--t3)}
.h-pct{font-size:10px;color:var(--t3)}
.h-tog{width:28px;height:28px;border-radius:50%;border:2px solid var(--ln);background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}
.h-tog svg{width:12px;height:12px;opacity:0;color:#0C0A1E}
.hcard.dt .h-tog{background:var(--ok);border-color:var(--ok)}
.hcard.dt .h-tog svg{opacity:1}
.hcard-bd{display:none;padding:12px 13px 13px;border-top:1px solid var(--ln2)}
.hcard.open .hcard-bd{display:block}
.wstrip{display:flex;gap:4px;margin-bottom:12px}
.wd{flex:1;aspect-ratio:1;border-radius:7px;background:var(--t4);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;border:1.5px solid transparent;transition:transform .12s}
.wd:active{transform:scale(.9)}
.wd.dn{background:var(--ok);color:#0C0A1E}
.wd.td{border-color:var(--warn)}
.wd-l{font-size:8.5px;font-weight:700}
.wd-n{font-size:7.5px;opacity:.7}
.mg-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.mg-btn{background:none;border:none;color:var(--t2);cursor:pointer;padding:3px 6px;border-radius:6px}
.mg-btn svg{width:12px;height:12px}
.mg-btn:disabled{opacity:.25;cursor:default}
.mg-ttl{font-size:11px;font-weight:700;color:var(--t2)}
.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.mg-dl{font-size:7.5px;text-align:center;color:var(--t3);font-weight:700;margin-bottom:3px}
.mg-c{aspect-ratio:1;border-radius:5px;background:var(--t4);display:flex;align-items:center;justify-content:center;font-size:8.5px;color:var(--t3);cursor:pointer;border:1.5px solid transparent;transition:transform .12s}
.mg-c:active{transform:scale(.88)}
.mg-c.dn{background:var(--ok);color:#0C0A1E;font-weight:700}
.mg-c.td{border-color:var(--warn)}
.mg-c.em{background:transparent;cursor:default}
.mg-c.ft{opacity:.25}
.h-del{display:flex;align-items:center;gap:5px;margin-top:10px;background:var(--err-bg);border:1px solid rgba(244,63,110,.2);color:var(--err);border-radius:8px;padding:6px 10px;font-family:var(--font);font-size:11px;cursor:pointer}
.h-del svg{width:11px;height:11px}
.add-hf{background:var(--s3);border:1.5px dashed rgba(108,71,255,.25);border-radius:var(--r);padding:14px;margin-top:9px}
.sw-note{font-size:9px;color:var(--t3);text-align:center;margin-bottom:9px}
/* ═══ FINANCE ═══ */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:13px}
.kpi{border-radius:var(--r2);padding:12px;text-align:center}
.kpi.inc{background:var(--ok-bg);border:1px solid rgba(34,201,147,.2)}
.kpi.exp{background:var(--err-bg);border:1px solid rgba(244,63,110,.2)}
.kpi.bal{background:var(--warn-bg);border:1px solid rgba(245,158,11,.2)}
.kpi-ic{width:14px;height:14px;margin:0 auto 5px}
.kpi-ic svg{width:14px;height:14px}
.kpi-v{font-size:11px;font-weight:900;display:block;word-break:break-all}
.kpi.inc .kpi-v{color:var(--ok)}
.kpi.exp .kpi-v{color:var(--err)}
.kpi.bal .kpi-v{color:var(--warn)}
.kpi-l{font-size:8.5px;color:var(--t3);margin-top:2px}
.add-tx{background:var(--s3);border:1px solid var(--ln);border-radius:var(--r);padding:14px;margin-bottom:12px}
.dtabs{display:flex;gap:4px;background:var(--t4);border-radius:var(--r2);padding:3px;margin-bottom:9px}
.dtab{flex:1;border:none;background:none;font-family:var(--font);font-size:11px;color:var(--t3);padding:7px 3px;border-radius:8px;cursor:pointer;font-weight:600;transition:all .18s}
.dtab.on{background:var(--p);color:#fff}
.jdr{display:grid;grid-template-columns:2fr 1fr 1fr;gap:6px;margin-bottom:6px}
.jdc{font-size:10px;color:var(--p2);font-weight:600;text-align:center;padding:3px 0}
.tbl{border-radius:var(--r);overflow:hidden;border:1px solid var(--ln);background:var(--s2)}
.tbl-hd{display:grid;grid-template-columns:1fr 68px 90px 22px;padding:8px 12px;border-bottom:1px solid var(--ln);font-size:9px;color:var(--t3);font-weight:700}
.tbl-row{display:grid;grid-template-columns:1fr 68px 90px 22px;padding:10px 12px;border-bottom:1px solid var(--ln2);align-items:center}
.tbl-row:last-child{border-bottom:none}
.tbl-n{font-size:12px;font-weight:700}
.tbl-d{font-size:9.5px;color:var(--t3);margin-top:1px}
.chip{display:inline-flex;align-items:center;font-size:9px;font-weight:700;padding:2px 6px;border-radius:12px}
.cf{background:var(--warn-bg);color:var(--warn)}.ct{background:rgba(96,165,250,.1);color:#60A5FA}
.cs{background:var(--ok-bg);color:var(--ok)}.ch2{background:rgba(155,122,255,.12);color:var(--p2)}
.ce{background:var(--err-bg);color:var(--err)}.co{background:var(--t4);color:var(--t3)}
.cd{background:rgba(239,68,68,.12);color:#EF4444}.ci{background:rgba(56,189,248,.12);color:#38BDF8}
.tbl-del{background:none;border:none;color:var(--err);cursor:pointer;opacity:.35;display:flex}
.tbl-del svg{width:12px;height:12px}
.tbl-am{font-size:12px;font-weight:800}
.tbl-am.in{color:var(--ok)}.tbl-am.out{color:var(--err)}
.bbar{margin-bottom:10px}
.bbar-top{display:flex;justify-content:space-between;margin-bottom:4px}
.bbar-nm{font-size:11px;font-weight:600;color:var(--t2)}
.bbar-info{font-size:9.5px;color:var(--t3)}
.bbar-tr{height:5px;background:var(--t4);border-radius:3px;overflow:hidden}
.bbar-fl{height:100%;border-radius:3px;transition:width .5s var(--ease)}
.bbar-fl.ok{background:var(--ok)}.bbar-fl.warn{background:var(--warn)}.bbar-fl.over{background:var(--err)}
/* ═══ PLANNER ═══ */
.plan-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--s1);border-bottom:1px solid var(--ln);position:sticky;top:0;z-index:10}
.pnb{width:30px;height:30px;border-radius:50%;border:none;background:var(--t4);color:var(--t2);cursor:pointer;display:flex;align-items:center;justify-content:center}
.pnb svg{width:13px;height:13px}
.pdate{text-align:center;cursor:pointer;user-select:none}
.pdate-main{font-size:14px;font-weight:800}
.pdate-sub{font-size:9.5px;color:var(--t3);margin-top:1px}
.mood-row{display:flex;gap:5px}
.mood-opt{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;border:2px solid transparent;border-radius:var(--r2);padding:10px 3px;cursor:pointer;transition:all .18s;background:var(--t4)}
.mood-opt:active{transform:scale(.93)}
.mood-opt svg{width:22px;height:22px}
.mood-opt span{font-size:8px;font-weight:600;color:var(--t3)}
.mood-opt[data-mood="sleepy"].on{border-color:#8B9FD4;background:rgba(139,159,212,.1)}
.mood-opt[data-mood="meh"].on{border-color:#9CA3AF;background:rgba(156,163,175,.1)}
.mood-opt[data-mood="good"].on{border-color:var(--ok);background:var(--ok-bg)}
.mood-opt[data-mood="great"].on{border-color:var(--warn);background:var(--warn-bg)}
.mood-opt[data-mood="fire"].on{border-color:var(--err);background:var(--err-bg)}
.pri-row{display:flex;align-items:center;gap:8px;background:var(--t4);border-radius:var(--r3);padding:8px 10px;margin-bottom:6px}
.pri-n{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--p),var(--p2));display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;flex-shrink:0}
.pri-tx{flex:1;font-size:12px;color:var(--t2)}
.pri-del{background:none;border:none;color:var(--err);cursor:pointer;opacity:.4}
.pri-del svg{width:10px;height:10px}
.tblks{border:1px solid var(--ln);border-radius:var(--r);overflow:hidden;background:var(--s2)}
.trow{display:grid;grid-template-columns:44px 1fr;min-height:50px;border-bottom:1px solid var(--ln2)}
.trow:last-child{border-bottom:none}
.trow-h{display:flex;flex-direction:column;align-items:center;justify-content:center;border-left:1px solid var(--ln2);padding:4px}
.trow-hr{font-size:11px;font-weight:700;color:var(--t2)}
.trow-am{font-size:7px;color:var(--t3);margin-top:1px}
.trow-s{padding:8px 12px;cursor:pointer;display:flex;align-items:center;min-height:50px;transition:background .15s}
.trow-s:active{background:var(--t4)}
.trow-s.hev{border-right:3px solid var(--p);background:rgba(108,71,255,.07)}
.trow-s.ev-err{border-right-color:var(--err);background:var(--err-bg)}
.trow-s.ev-ok{border-right-color:var(--ok);background:var(--ok-bg)}
.trow-s.ev-warn{border-right-color:var(--warn);background:var(--warn-bg)}
.trow-s.ev-info{border-right-color:#60A5FA;background:rgba(96,165,250,.07)}
.trow.now-row .trow-h{background:var(--warn-bg)}
.trow.now-row .trow-hr{color:var(--warn)}
.trow.now-row .trow-s{box-shadow:inset 0 0 0 1.5px var(--warn)}
.ev-t{font-size:12.5px;font-weight:700}
.ev-s{font-size:10px;color:var(--t3);margin-top:2px}
.slot-h{font-size:10px;color:var(--t4);display:flex;align-items:center;gap:3px}
.slot-h svg{width:10px;height:10px}
.now-badge{font-size:8px;font-weight:700;color:var(--warn);background:var(--warn-bg);border-radius:4px;padding:1px 5px;margin-left:6px}
/* ═══ REPORTS ═══ */
.rpt-wrap{display:flex;flex-direction:column;gap:10px}
.rpt-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rpt-ttl{font-size:11px;font-weight:700;color:var(--t2);margin-bottom:10px}
.sum-row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--ln2)}
.sum-row:last-child{border-bottom:none}
.sum-l{font-size:11px;color:var(--t3)}
.sum-v{font-size:12px;font-weight:800}
/* ═══ SETTINGS ═══ */
.set-box{background:var(--s2);border:1px solid var(--ln);border-radius:var(--r);padding:15px;margin-bottom:9px}
.set-ttl{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--t2);margin-bottom:12px}
.set-ttl svg{width:13px;height:13px;color:var(--p)}
.dstats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.dstat{background:var(--t4);border-radius:8px;padding:5px 10px;font-size:11px;color:var(--t2)}
.dstat b{color:var(--p2)}
/* ═══ FOOTER ═══ */
.footer{text-align:center;padding:20px 16px 10px;display:flex;flex-direction:column;align-items:center;gap:5px}
.footer-bar{width:28px;height:1px;background:var(--ln);margin-bottom:5px}
.footer-nm{font-size:12px;font-weight:800;color:var(--t2)}
.footer-by{font-size:10px;color:var(--t3)}
.footer-by b{color:var(--p2);font-weight:700}
.footer-v{font-size:9px;color:var(--t3);background:var(--t4);padding:2px 9px;border-radius:20px;margin-top:2px}
.myket-badge{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:8px 18px;border-radius:10px;background:#00B0FF;color:#fff;font-size:11.5px;font-weight:700;font-family:var(--font);text-decoration:none}
/* ═══ MODAL ═══ */
.ov{position:fixed;inset:0;background:rgba(6,4,18,.82);backdrop-filter:blur(8px);z-index:200;display:none;align-items:flex-end;justify-content:center}
.ov.on{display:flex;animation:oi .18s ease}
@keyframes oi{from{opacity:0}to{opacity:1}}
.sheet{background:var(--s1);border:1px solid var(--ln);border-radius:22px 22px 0 0;width:100%;max-width:var(--mw);max-height:90dvh;overflow-y:auto;animation:si .2s var(--ease)}
@keyframes si{from{transform:translateY(22px)}to{transform:none}}
.sh-hand{width:30px;height:3.5px;background:var(--t4);border-radius:2px;margin:10px auto 0}
.sh-hd{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--ln)}
.sh-ttl{font-size:14px;font-weight:800;display:flex;align-items:center;gap:6px}
.sh-ttl svg{width:14px;height:14px;color:var(--p)}
.sh-cls{width:26px;height:26px;border-radius:50%;border:none;background:var(--t4);color:var(--t2);display:flex;align-items:center;justify-content:center;cursor:pointer}
.sh-cls svg{width:11px;height:11px}
.sh-body{
  padding:15px;
  display:flex;flex-direction:column;gap:11px;
  flex:1;
  overflow-y:auto;
  /* پدینگ اضافه برای اینکه زیر کیبورد نره */
  padding-bottom:8px;
}
.sh-foot{
  padding:12px 15px 16px;
  border-top:1px solid var(--ln);
  display:flex;gap:8px;justify-content:flex-end;
  flex-shrink:0;         /* هرگز کوچیک نشه */
  background:var(--s1);
  /* پدینگ safe area */
  padding-bottom:max(16px, env(safe-area-inset-bottom));
}
.qa-tabs{display:flex;gap:4px;background:var(--t4);border-radius:10px;padding:3px}
.qa-tab{flex:1;padding:7px;border-radius:8px;border:none;background:none;font-family:var(--font);font-size:11px;font-weight:700;color:var(--t3);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;transition:all .18s}
.qa-tab svg{width:11px;height:11px}
.qa-tab.on{background:var(--p);color:#fff}
/* ═══ TOAST ═══ */
.toast-wrap{position:fixed;bottom:calc(var(--nav) + 62px);left:50%;transform:translateX(-50%);z-index:999;pointer-events:none}
.toast{background:var(--s4);border:1px solid var(--ln);color:var(--t1);padding:9px 18px;border-radius:22px;font-size:12px;font-weight:700;max-width:88vw;box-shadow:0 8px 24px rgba(0,0,0,.4);opacity:0;transform:translateY(5px) scale(.96);transition:all .22s;display:flex;align-items:center;gap:6px}
.toast svg{width:13px;height:13px;flex-shrink:0}
.toast span{min-width:0}
.toast button{flex-shrink:0}
.toast.on{opacity:1;transform:none}
.toast.act{pointer-events:auto}
.toast.ok{border-color:rgba(34,201,147,.4);color:var(--ok)}
.toast.err{border-color:rgba(244,63,110,.4);color:var(--err)}
/* ═══ ONBOARDING BANNER ═══ */
.onb-banner{display:flex;gap:10px;align-items:flex-start;background:linear-gradient(135deg,rgba(108,71,255,.14),rgba(34,201,147,.1));border:1px solid var(--ln);border-radius:var(--r3);padding:12px 14px;margin:14px 16px}
.onb-banner.onb-enter{animation:onbIn .38s cubic-bezier(.25,.8,.4,1) both}
.onb-banner.onb-exit{animation:onbOut .26s ease both}
@keyframes onbIn{from{opacity:0;transform:translateY(-18px) scaleY(.9);transform-origin:top}to{opacity:1;transform:translateY(0) scaleY(1)}}
@keyframes onbOut{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}
.onb-txt b{font-size:12.5px}
.onb-txt p{font-size:11px;color:var(--t2);line-height:1.8;margin-top:5px}
.onb-x{background:none;border:none;color:var(--t3);cursor:pointer;flex-shrink:0;padding:2px}
.onb-x svg{width:14px;height:14px}
/* ═══ MISC ═══ */
#confettiCanvas{position:fixed;inset:0;pointer-events:none;z-index:9999;display:none}
.empty{text-align:center;padding:28px 16px;color:var(--t3)}
.empty svg{width:36px;height:36px;margin:0 auto 9px;opacity:.3;display:block}
.empty p{font-size:12px;line-height:1.7}

/* ════ REPORTS — بازطراحی کامل ════ */
.rpt-card {
  margin-bottom:10px;
  overflow:hidden;
}
.rpt-card-head {
  padding:12px 14px 10px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--ln2);
}
.rpt-card-ttl {
  font-size:12px;font-weight:700;color:var(--t1);
}
.rpt-card-sub {
  font-size:10px;color:var(--t3);font-weight:600;
}
.rpt-card-body {
  padding:14px;
}
/* ردیف پایین: دو ستون */
.rpt-bottom {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  align-items:start;
}
/* موبایل کوچک — یک ستون */
@media(max-width:360px){
  .rpt-bottom { grid-template-columns:1fr }
}
/* بار‌های بودجه با رنگ */
.bbar { margin-bottom:11px }
.bbar:last-child { margin-bottom:0 }
.bbar-top { display:flex;justify-content:space-between;align-items:center;margin-bottom:5px }
.bbar-nm { font-size:11px;font-weight:600;color:var(--t2);display:flex;align-items:center;gap:5px }
.bbar-info { font-size:9.5px;color:var(--t3);font-weight:600 }
.bbar-tr { height:5px;background:var(--t4);border-radius:3px;overflow:hidden }
.bbar-fl { height:100%;border-radius:3px;transition:width .6s var(--ease) }
/* خلاصه ماه */
.sum-row { display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--ln2) }
.sum-row:last-child { border-bottom:none }
.sum-l { font-size:10.5px;color:var(--t3) }
.sum-v { font-size:11.5px;font-weight:800 }

/* ── App Tagline ── */
.app-tag {
  display:block;
  font-size:8.5px;
  font-weight:600;
  color:var(--t3);
  letter-spacing:0.02em;
  margin-top:1px;
  white-space:nowrap;
}
