/* ============================================================
   DESIGN SYSTEM — v7
   Primary:  #81007f  (Deep Purple)
   Navy:     #131e3a  (Dark Navy)
   Base:     #ffffff  (Pure White)
   ============================================================ */
:root {
  --pr:   #81007f;   --prl:  #f9edf9;   --prm:  #6a006a;   --prd:  #4a004a;
  --dk:   #131e3a;   --dkl:  #1e2d54;   --dkx:  #0b1326;
  --wh:   #ffffff;   --bg:   #f6f7fb;   --bg2:  #f0f2f8;
  --tx:   #131e3a;   --tm:   #5a6480;   --ts:   #8892ab;
  --br:   #e4e8f0;   --br2:  #cdd3e0;
  --gr:   #059669;   --grl:  #ecfdf5;   --grd:  #065f46;
  --re:   #dc2626;   --rel:  #fef2f2;
  --am:   #d97706;   --aml:  #fffbeb;
  --bl:   #2563eb;   --bll:  #eff6ff;
  --oc:   #0891b2;   --ocl:  #e0f7fa;
  /* Spacing & Shape */
  --ra:   14px;   --rb:  10px;   --rc:  100px;
  --sh:   0 4px 24px rgba(19,30,58,.05);
  --shm:  0 8px 32px rgba(19,30,58,.08);
  --shl:  0 20px 60px rgba(19,30,58,.12);
  --shp:  0 4px 20px rgba(129,0,127,.18);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Vazirmatn', system-ui, sans-serif;
  background: var(--bg); color: var(--tx);
  line-height: 1.75; font-size: 15px; direction: rtl;
}
a { color: var(--pr); text-decoration: none; }
button, input, select, textarea { font-family: inherit; }
img { max-width: 100%; display: block; }

/* ============================================================ NAVBAR */
.nav {
  background: var(--wh);
  border-bottom: 1.5px solid var(--br);
  position: sticky; top: 0; z-index: 200;
  box-shadow: 0 2px 16px rgba(19,30,58,.06);
}
.nav-brand {
  display: flex; align-items: center; gap: .6rem;
  cursor: pointer; padding: .55rem 1.4rem;
  border-bottom: 1px solid var(--br); max-width: 1200px; margin: 0 auto;
}
.li {
  width: 38px; height: 38px; min-width: 38px;
  background: linear-gradient(135deg, var(--pr), var(--dk));
  border-radius: 10px; display: flex; align-items: center;
  justify-content: center; font-size: 1.1rem; overflow: hidden;
  box-shadow: var(--shp);
}
.brand-name { color: var(--dk); font-size: 1.2rem; font-weight: 900; letter-spacing: -.02em; }
.brand-sub { color: var(--tm); font-size: .82rem; margin-top: 2px; font-weight: 500; }
.nav-menu {
  display: flex; align-items: center; gap: .2rem;
  max-width: 1200px; margin: 0 auto;
  padding: .35rem 1.2rem; overflow-x: auto;
}
.nav-menu::-webkit-scrollbar { display: none; }
.nb {
  background: transparent; border: none;
  color: var(--tm); padding: .38rem .85rem;
  border-radius: var(--rc); cursor: pointer;
  font-size: .82rem; font-weight: 500;
  transition: background .15s, color .15s; white-space: nowrap;
}
.nb:hover { background: var(--prl); color: var(--pr); }
.nb.cta {
  background: var(--pr); color: #fff;
  font-weight: 700; padding: .4rem 1.1rem;
  box-shadow: var(--shp);
}
.nb.cta:hover { background: var(--prm); }
.nb.red { color: var(--re); }
.nb.red:hover { background: var(--rel); }
.ubadge {
  background: var(--re); color: #fff;
  border-radius: 20px; padding: .05rem .45rem;
  font-size: .67rem; font-weight: 700; margin-right: 3px;
  vertical-align: middle;
}
/* Contact dropdown */
.contact-wrap { position: relative; }
.contact-btn { background: var(--prl)!important; color: var(--pr)!important; font-weight: 600!important; border: 1.5px solid var(--br)!important; }
.contact-drop {
  display: none; position: absolute; top: calc(100% + 8px); right: 0;
  background: var(--wh); border: 1.5px solid var(--br);
  border-radius: var(--ra); padding: .5rem;
  min-width: 200px; z-index: 999;
  box-shadow: var(--shl);
}
.contact-drop.open { display: block; }
.contact-drop a {
  display: flex; align-items: center; gap: .5rem;
  color: var(--tx); padding: .5rem .7rem;
  border-radius: 8px; font-size: .83rem; transition: .15s;
}
.contact-drop a:hover { background: var(--prl); color: var(--pr); }
.wa-btn { color: var(--gr)!important; }

/* ============================================================ PAGES */
.pg { display: none; }
.pg.on { display: block; }

/* ============================================================ SECTIONS */
.sec { padding: 4rem 1.4rem; }
.si { max-width: 1100px; margin: 0 auto; }
.sh { text-align: center; margin-bottom: 2.5rem; }
.sl {
  background: var(--prl); color: var(--pr);
  font-size: .72rem; font-weight: 800; padding: .28rem .9rem;
  border-radius: 100px; display: inline-block;
  margin-bottom: .75rem; letter-spacing: .05em; text-transform: uppercase;
  border: 1px solid rgba(129,0,127,.15);
}
.sh h2 { font-size: 1.85rem; font-weight: 800; color: var(--dk); line-height: 1.3; }

/* ============================================================ HERO */
.hero {
  background: var(--wh);
  border-bottom: 1.5px solid var(--br);
  padding: 5rem 1.4rem 4.5rem;
  position: relative; overflow: hidden;
}
.hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% -10%, rgba(129,0,127,.06) 0%, transparent 70%);
  pointer-events: none;
}
.hc { max-width: 680px; margin: 0 auto; text-align: center; position: relative; z-index: 1; }
.hb {
  display: inline-flex; align-items: center; gap: .4rem;
  background: var(--prl); color: var(--pr);
  border: 1px solid rgba(129,0,127,.2);
  border-radius: 100px; padding: .3rem 1rem;
  font-size: .78rem; font-weight: 700; margin-bottom: 1.25rem;
}
.hero h1 {
  font-size: 2.5rem; font-weight: 900; color: var(--dk);
  line-height: 1.2; margin-bottom: 1rem; letter-spacing: -.02em;
}
.hero p { font-size: 1rem; color: var(--tm); margin-bottom: 2rem; line-height: 1.7; }
.hbs { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; }

/* ============================================================ BUTTONS */
.bp {
  background: var(--pr); color: #fff; border: none;
  padding: .65rem 1.6rem; border-radius: var(--rc);
  font-weight: 700; cursor: pointer; font-size: .9rem;
  transition: all .2s; box-shadow: var(--shp);
}
.bp:hover { background: var(--prm); transform: translateY(-1px); box-shadow: 0 6px 24px rgba(129,0,127,.28); }
.bw {
  background: var(--wh); color: var(--dk);
  border: 1.5px solid var(--br2);
  padding: .65rem 1.6rem; border-radius: var(--rc);
  font-weight: 600; cursor: pointer; font-size: .9rem; transition: .2s;
}
.bw:hover { border-color: var(--pr); color: var(--pr); background: var(--prl); }

/* ============================================================ CARDS */
.g3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.25rem; }
.cd {
  background: var(--wh); border-radius: var(--ra);
  padding: 1.75rem 1.5rem; border: 1.5px solid var(--br);
  box-shadow: var(--sh); transition: all .25s;
}
.cd:hover {
  border-color: rgba(129,0,127,.25);
  box-shadow: 0 8px 32px rgba(129,0,127,.1);
  transform: translateY(-3px);
}
.ci { font-size: 2.2rem; margin-bottom: .7rem; }
.cd h3 { font-size: 1rem; font-weight: 700; color: var(--dk); margin-bottom: .4rem; }
.cd p { color: var(--tm); font-size: .83rem; line-height: 1.65; }

/* ============================================================ GALLERY */
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .85rem; }
.gitem { border-radius: var(--ra); overflow: hidden; aspect-ratio: 4/3; cursor: zoom-in; border: 1.5px solid var(--br); }
.gitem img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.gitem:hover img { transform: scale(1.05); }
.gal-admin { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 8px; }
.gal-thumb { position: relative; width: 82px; height: 82px; border-radius: 10px; overflow: hidden; border: 1.5px solid var(--br); }
.gal-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gal-del { position: absolute; top: 3px; left: 3px; background: var(--re); color: #fff; border: none; border-radius: 50%; width: 20px; height: 20px; font-size: .65rem; cursor: pointer; line-height: 20px; text-align: center; }

/* ============================================================ CONTACT SECTION */
.contact { background: var(--dk); padding: 4rem 1.4rem; }
.contact .sh h2, .contact .brand-name { color: #fff; }
.contact .sl { background: rgba(255,255,255,.12); color: rgba(255,255,255,.9); border-color: rgba(255,255,255,.2); }
.ci-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; max-width: 900px; margin: 0 auto; }
.cbox {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--ra); padding: 1.25rem; text-align: center; transition: .2s;
}
.cbox:hover { background: rgba(255,255,255,.1); }
.cbox .ic { font-size: 1.6rem; margin-bottom: .5rem; }
.cbox div, .cbox a { color: rgba(255,255,255,.88); font-size: .87rem; font-weight: 500; }
.cbox a:hover { color: #fff; }

/* ============================================================ ASSESSMENT FORM */
.aw {
  background: var(--wh); border-radius: 20px;
  box-shadow: var(--shl); overflow: hidden;
  max-width: 660px; margin: 0 auto;
  border: 1.5px solid var(--br);
}
.ah {
  background: var(--dk);
  padding: 1.75rem 1.5rem; position: relative; overflow: hidden;
}
.ah::before {
  content: ''; position: absolute; top: -40px; left: -40px;
  width: 200px; height: 200px; border-radius: 50%;
  background: rgba(129,0,127,.25); pointer-events: none;
}
.ah h2 { font-size: 1.15rem; font-weight: 800; color: #fff; position: relative; }
.ah p { font-size: .8rem; color: rgba(255,255,255,.65); margin-top: .3rem; position: relative; }
.sts { display: flex; gap: .4rem; margin-top: 1rem; flex-wrap: wrap; position: relative; }
.st {
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.75);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 100px; padding: .3rem .85rem;
  cursor: pointer; font-size: .76rem; font-weight: 500; transition: .2s;
}
.st.on, .st:hover { background: rgba(255,255,255,.9); color: var(--pr); font-weight: 700; border-color: transparent; }
/* Progress bar */
.pb { height: 4px; background: var(--br); border-radius: 4px; margin-bottom: 1rem; overflow: hidden; }
.pf { height: 100%; background: linear-gradient(90deg, var(--pr), #b44fb3); border-radius: 4px; transition: width .45s ease; }
.ab { padding: 1.5rem 1.6rem; }
.fs { display: none; }
.fs.on { display: block; }
.fs > div:first-child { font-size: .88rem; font-weight: 700; color: var(--dk); margin-bottom: 1.25rem; padding-bottom: .75rem; border-bottom: 1px solid var(--br); }
/* Form controls */
.fg { margin-bottom: 1rem; }
.fl { display: block; font-size: .78rem; font-weight: 700; color: var(--dk); margin-bottom: .4rem; letter-spacing: .01em; }
.fc {
  width: 100%; padding: .65rem 1rem;
  border: 1.5px solid var(--br); border-radius: var(--rb);
  font-size: .88rem; transition: border .2s, box-shadow .2s;
  background: var(--wh); color: var(--tx); outline: none;
}
.fc:focus { border-color: var(--pr); box-shadow: 0 0 0 3px rgba(129,0,127,.1); }
.fc::placeholder { color: var(--ts); }
.fr { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.ff { display: flex; justify-content: space-between; align-items: center; margin-top: 1.25rem; }
/* Buttons in form */
.bn {
  background: var(--pr); color: #fff; border: none;
  padding: .6rem 1.5rem; border-radius: var(--rc);
  font-weight: 700; cursor: pointer; font-size: .88rem;
  transition: .2s; box-shadow: var(--shp);
}
.bn:hover { background: var(--prm); }
.bpr {
  background: var(--bg); color: var(--tm);
  border: 1.5px solid var(--br); padding: .6rem 1.2rem;
  border-radius: var(--rc); cursor: pointer; font-size: .85rem; transition: .2s;
}
.bpr:hover { border-color: var(--pr); color: var(--pr); background: var(--prl); }
.bs {
  width: 100%; background: var(--pr); color: #fff;
  border: none; padding: .9rem 1rem; border-radius: var(--ra);
  font-size: .95rem; font-weight: 800; cursor: pointer;
  transition: .2s; box-shadow: var(--shp); letter-spacing: .02em;
}
.bs:hover { background: var(--prm); }
.bs:disabled { opacity: .55; cursor: not-allowed; }
/* Region selection buttons — card style */
.pg2 { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .5rem; }
.pb2 {
  padding: .5rem 1rem; border: 1.5px solid var(--br);
  border-radius: var(--rb); background: var(--wh); cursor: pointer;
  font-size: .82rem; font-weight: 500; color: var(--tm);
  transition: all .18s; display: flex; align-items: center; gap: .3rem;
}
.pb2:hover { border-color: var(--pr); color: var(--pr); background: var(--prl); }
.pb2.on {
  background: var(--pr); color: #fff; border-color: var(--pr);
  box-shadow: var(--shp); font-weight: 700;
}
/* Region question box */
.rqbox { background: var(--bg); border: 1.5px solid var(--br); border-radius: var(--ra); padding: 1rem 1.1rem; margin-bottom: .85rem; border-right: 3px solid var(--pr); }
.rqh { font-weight: 700; font-size: .85rem; color: var(--pr); margin-bottom: .8rem; display: flex; align-items: center; gap: .4rem; }
.rqbox .fg { margin-bottom: .6rem; }
.photo-guide { background: var(--prl); border: 1px solid rgba(129,0,127,.15); border-radius: 10px; padding: .65rem .9rem; font-size: .78rem; color: var(--pr); }
.photo-hint { background: var(--prl); color: var(--pr); font-size: .73rem; padding: .35rem .65rem; border-radius: 7px; margin-top: .4rem; border: 1px solid rgba(129,0,127,.12); }
.sbx { text-align: center; padding: 2.5rem 1.5rem; }
.sbx .ic { font-size: 3rem; margin-bottom: 1rem; }
.sbx h3 { font-size: 1.2rem; font-weight: 800; color: var(--dk); margin-bottom: .5rem; }

/* ============================================================ LOGIN */
.lw { display: flex; align-items: center; justify-content: center; min-height: 65vh; padding: 1.5rem; }
.lc {
  background: var(--wh); border-radius: 20px;
  padding: 2.5rem 2rem; box-shadow: var(--shl);
  width: 100%; max-width: 380px; text-align: center;
  border: 1.5px solid var(--br);
}
.lc h2 { font-size: 1.25rem; font-weight: 800; color: var(--dk); margin-bottom: .4rem; }
.lc p { font-size: .83rem; color: var(--tm); margin-bottom: 1.5rem; }
#otp-step2 input { font-size: 1.6rem; text-align: center; letter-spacing: .4em; font-weight: 800; color: var(--dk); }

/* ============================================================ PATIENT PROFILE */
.plw { max-width: 780px; margin: 0 auto; padding: 1.75rem 1.2rem; }
.phd {
  background: var(--dk);
  border-radius: 16px; padding: 1.5rem 1.75rem;
  display: flex; align-items: center; gap: 1.1rem;
  margin-bottom: 1.1rem; box-shadow: var(--shm);
}
.pav {
  width: 54px; height: 54px; min-width: 54px;
  background: rgba(255,255,255,.15); border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.6rem; border: 1.5px solid rgba(255,255,255,.2);
}
.phd > div > div:first-child { color: #fff; font-size: 1rem; font-weight: 700; }
.phd > div > div:last-child { color: rgba(255,255,255,.6); font-size: .8rem; margin-top: 2px; }
/* Tabs */
.ptabs { display: flex; gap: .4rem; margin-bottom: 1rem; flex-wrap: wrap; background: var(--wh); padding: .35rem; border-radius: 12px; border: 1.5px solid var(--br); }
.ptab {
  padding: .4rem 1.1rem; border-radius: 9px; background: transparent;
  cursor: pointer; font-size: .82rem; font-weight: 500; color: var(--tm);
  border: none; transition: .18s; flex: 1; min-width: fit-content;
}
.ptab.on { background: var(--pr); color: #fff; font-weight: 700; box-shadow: var(--shp); }
.ptab:hover:not(.on) { background: var(--prl); color: var(--pr); }
/* Progress card */
.prog-card { background: linear-gradient(135deg, var(--dk), #1e2d54); border-radius: 16px; padding: 1.25rem 1.4rem; margin-bottom: 1rem; color: #fff; }
.prog-label { display: flex; justify-content: space-between; font-size: .85rem; font-weight: 600; margin-bottom: .65rem; }
.prog-label span:last-child { font-size: 1.2rem; font-weight: 900; color: #e8b3e8; }
.prog-bar { height: 8px; background: rgba(255,255,255,.15); border-radius: 100px; overflow: hidden; margin-bottom: .5rem; }
.prog-fill { height: 100%; background: linear-gradient(90deg, #e040fb, #b44fb3); border-radius: 100px; transition: width .7s cubic-bezier(.4,0,.2,1); }
.prog-sessions { font-size: .76rem; color: rgba(255,255,255,.6); }
.prog-mot { margin-top: .8rem; font-size: .88rem; font-weight: 700; color: #f0c4f0; border-top: 1px solid rgba(255,255,255,.1); padding-top: .7rem; }
.mini-bar { height: 3px; background: rgba(0,0,0,.08); border-radius: 3px; margin: .4rem 0; overflow: hidden; }

/* ============================================================ ADMIN PANEL */
.al { display: flex; min-height: calc(100vh - 90px); }
.sb { background: var(--dk); width: 230px; min-height: 100%; padding: 1rem .7rem; flex-shrink: 0; }
.sbl { color: rgba(255,255,255,.3); font-size: .65rem; font-weight: 800; letter-spacing: .12em; padding: .7rem .8rem .3rem; text-transform: uppercase; }
.sbi {
  display: flex; align-items: center; gap: .55rem;
  color: rgba(255,255,255,.65); background: transparent; border: none;
  padding: .6rem .8rem; border-radius: 10px; cursor: pointer;
  width: 100%; font-size: .83rem; font-weight: 500;
  transition: .18s; margin-bottom: 2px; text-align: right;
}
.sbi:hover, .sbi.on { background: rgba(255,255,255,.1); color: #fff; }
.sbi.on { background: linear-gradient(90deg, rgba(129,0,127,.5), rgba(129,0,127,.25)); color: #fff; font-weight: 700; }
.am { flex: 1; padding: 1.6rem 1.4rem; overflow-y: auto; background: var(--bg); }
.as { display: none; }
.as.on { display: block; }
.ah2 { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 1.4rem; gap: 1rem; flex-wrap: wrap; }
.ah2 h1 { font-size: 1.3rem; font-weight: 800; color: var(--dk); }
.ah2 p { font-size: .8rem; color: var(--tm); margin-top: 2px; }
/* Content wrap */
.cw { background: var(--wh); border-radius: var(--ra); padding: 1.4rem; box-shadow: var(--sh); margin-bottom: 1rem; border: 1.5px solid var(--br); }
.cw h3 { font-size: .88rem; font-weight: 800; color: var(--dk); margin-bottom: 1rem; padding-bottom: .6rem; border-bottom: 1px solid var(--br); letter-spacing: .01em; }
/* Stats grid */
.sg { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .75rem; margin-top: .5rem; }
.sc { background: var(--wh); border-radius: var(--ra); padding: 1.25rem 1rem; box-shadow: var(--sh); text-align: center; border: 1.5px solid var(--br); cursor: pointer; transition: .2s; }
.sc:hover { border-color: var(--pr); box-shadow: 0 4px 20px rgba(129,0,127,.12); transform: translateY(-2px); }
.sn { font-size: 1.9rem; font-weight: 900; color: var(--dk); line-height: 1.1; }
.sl2 { font-size: .7rem; color: var(--tm); margin-top: .3rem; font-weight: 600; }
/* Filter row */
.frow { display: flex; gap: .4rem; margin-bottom: .85rem; flex-wrap: wrap; }
.fb { background: var(--bg2); border: 1.5px solid var(--br); border-radius: 100px; padding: .3rem .9rem; cursor: pointer; font-size: .78rem; font-weight: 500; transition: .18s; color: var(--tm); }
.fb.on, .fb:hover { background: var(--pr); color: #fff; border-color: var(--pr); box-shadow: var(--shp); }
/* Table */
.tb { width: 100%; border-collapse: collapse; font-size: .81rem; }
.tb thead tr { background: var(--bg); }
.tb th { padding: .65rem .8rem; text-align: right; font-weight: 700; font-size: .73rem; color: var(--tm); letter-spacing: .03em; border-bottom: 1.5px solid var(--br); white-space: nowrap; }
.tb td { padding: .6rem .8rem; border-bottom: 1px solid var(--br); color: var(--tx); vertical-align: middle; }
.tb tr:last-child td { border-bottom: none; }
.tb tbody tr:hover td { background: var(--bg); }
/* Action buttons */
.ab2 { border: 1.5px solid transparent; padding: .3rem .75rem; border-radius: 7px; cursor: pointer; font-size: .74rem; font-weight: 700; transition: .18s; }
.app { background: var(--bll); color: var(--bl); border-color: rgba(37,99,235,.15); }
.app:hover { background: var(--bl); color: #fff; }
.ade { background: var(--rel); color: var(--re); border-color: rgba(220,38,38,.15); }
.ade:hover { background: var(--re); color: #fff; }

/* ============================================================ EXERCISE GRID */
.exg { display: grid; grid-template-columns: repeat(auto-fill, minmax(265px, 1fr)); gap: .9rem; }
.ec { background: var(--wh); border-radius: var(--ra); box-shadow: var(--sh); overflow: hidden; display: flex; flex-direction: column; border: 1.5px solid var(--br); transition: .2s; }
.ec:hover { box-shadow: var(--shm); border-color: var(--br2); transform: translateY(-2px); }
.em { height: 145px; background: var(--bg); overflow: hidden; position: relative; }
.em img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; transition: transform .3s; }
.em:hover img { transform: scale(1.04); }
.ep { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 2.4rem; color: var(--ts); }
.ei { padding: .85rem 1rem; flex: 1; }
.et { font-weight: 700; font-size: .88rem; color: var(--dk); margin-bottom: .25rem; }
.eb { font-size: .73rem; color: var(--tm); }
.ea { padding: .55rem .85rem; border-top: 1px solid var(--br); display: flex; gap: .4rem; background: var(--bg); }
/* Session tabs */
.stabs { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .85rem; }
.stab { padding: .3rem .85rem; border: 1.5px solid var(--br); border-radius: 100px; background: var(--wh); cursor: pointer; font-size: .77rem; transition: .18s; color: var(--tm); }
.stab.on { background: var(--pr); color: #fff; border-color: var(--pr); box-shadow: var(--shp); }
.stab.done { background: var(--grl); color: var(--gr); border-color: rgba(5,150,105,.25); }
.stab.locked { opacity: .45; cursor: not-allowed; }
.exrow { display: flex; align-items: center; justify-content: space-between; padding: .5rem .75rem; background: var(--bg); border-radius: 8px; margin-bottom: 4px; font-size: .82rem; border: 1px solid var(--br); }

/* ============================================================ MODALS */
.mo { position: fixed; inset: 0; background: rgba(19,30,58,.45); z-index: 999; display: flex; align-items: center; justify-content: center; padding: 1rem; backdrop-filter: blur(6px); }
.mo.hd { display: none; }
.mdl { background: var(--wh); border-radius: 20px; max-width: 520px; width: 100%; box-shadow: 0 24px 80px rgba(19,30,58,.18); max-height: 90vh; overflow-y: auto; border: 1.5px solid var(--br); }
.mh { display: flex; align-items: center; justify-content: space-between; padding: 1.1rem 1.4rem; border-bottom: 1.5px solid var(--br); background: var(--bg); border-radius: 20px 20px 0 0; }
.mh h3 { font-size: .95rem; font-weight: 800; color: var(--dk); }
.mc { background: var(--bg2); border: none; border-radius: 50%; width: 30px; height: 30px; cursor: pointer; color: var(--tm); font-size: 1rem; display: flex; align-items: center; justify-content: center; transition: .2s; }
.mc:hover { background: var(--rel); color: var(--re); }
.mb { padding: 1.4rem; }
.mf { padding: .85rem 1.4rem; border-top: 1px solid var(--br); display: flex; gap: .6rem; justify-content: flex-end; background: var(--bg); border-radius: 0 0 20px 20px; }
.bm { padding: .6rem 1.4rem; border-radius: var(--rc); border: none; cursor: pointer; font-weight: 700; font-size: .84rem; transition: .2s; }
.bmp { background: var(--pr); color: #fff; box-shadow: var(--shp); }
.bmp:hover { background: var(--prm); }
.bms { background: var(--bg2); color: var(--tx); border: 1.5px solid var(--br); }
.bms:hover { border-color: var(--pr); color: var(--pr); }

/* ============================================================ MESSAGING */
.msgwrap { display: flex; flex-direction: column; height: 420px; }
.msglist { flex: 1; overflow-y: auto; padding: .85rem; display: flex; flex-direction: column; gap: .55rem; background: var(--bg); border-radius: var(--rb); margin-bottom: .6rem; }
.msginp { display: flex; gap: .5rem; align-items: flex-end; }
.msginp .fc { flex: 1; }
.msg-attach-btn {
  flex-shrink: 0;
  width: 42px; height: 42px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 10px;
  border: 1.5px solid var(--br);
  background: var(--wh);
  cursor: pointer;
  font-size: 1.15rem;
  transition: border-color .15s, background .15s;
}
.msg-attach-btn:hover { border-color: var(--pr); background: var(--prl, #f3eefc); }
.msg-attach-prev { margin: 0 0 .45rem; }
.msg-attach-chip {
  display: inline-flex; align-items: center; gap: .45rem;
  background: var(--wh); border: 1px solid var(--br); border-radius: 10px;
  padding: .35rem .55rem; font-size: .78rem; max-width: 100%;
}
.msg-attach-chip img { width: 44px; height: 44px; object-fit: cover; border-radius: 8px; }
.msg-attach-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 180px; }
.msg-attach-chip button {
  border: none; background: transparent; cursor: pointer; color: var(--tm); font-size: .9rem; padding: .1rem .25rem;
}
.msg-attach-pdf { font-size: 1.3rem; }
.msgbubble .msg-attach { margin-top: .45rem; }
.msgbubble .msg-attach img {
  display: block; max-width: 220px; max-height: 220px; width: auto; height: auto;
  border-radius: 10px; cursor: zoom-in; object-fit: cover;
}
.msgbubble.me .msg-attach a { color: #fff; text-decoration: underline; }
.msgbubble.other .msg-attach a { color: var(--pr); font-weight: 600; }
.msgbubble { max-width: 75%; padding: .6rem 1rem; border-radius: 14px; font-size: .84rem; word-break: break-word; line-height: 1.5; }
.msgbubble.me { align-self: flex-end; background: var(--pr); color: #fff; border-radius: 14px 14px 4px 14px; box-shadow: var(--shp); }
.msgbubble.other { align-self: flex-start; background: var(--wh); border: 1.5px solid var(--br); color: var(--tx); border-radius: 14px 14px 14px 4px; box-shadow: var(--sh); }
.msgbubble small { display: block; font-size: .67rem; opacity: .6; margin-top: .35rem; }
.msg-pat-row { background: var(--wh); border-radius: var(--ra); padding: 1rem 1.1rem; cursor: pointer; border: 1.5px solid var(--br); transition: .2s; }
.msg-pat-row:hover { border-color: var(--pr); box-shadow: 0 4px 16px rgba(129,0,127,.12); }

/* ============================================================ CLINICAL FEEDBACK */
.clin-box { background: var(--bg); border: 1.5px solid var(--br); border-radius: var(--ra); padding: 1.2rem; margin-top: 1.25rem; border-top: 3px solid var(--pr); }
.clin-box h4 { font-size: .88rem; font-weight: 800; color: var(--dk); margin-bottom: 1rem; }
.scale-wrap { display: flex; align-items: center; gap: .75rem; }
.range-inp { flex: 1; height: 4px; border-radius: 4px; accent-color: var(--pr); cursor: pointer; }
.scale-lbl { background: var(--pr); color: #fff; border-radius: 100px; padding: .15rem .6rem; font-size: .78rem; font-weight: 800; min-width: 32px; text-align: center; }
.star-row { display: flex; gap: .2rem; margin-top: .4rem; }
.star { background: none; border: none; font-size: 1.6rem; cursor: pointer; transition: transform .1s; line-height: 1; }
.star:hover { transform: scale(1.2); }
.flag-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin-top: .85rem; }
.flag-item { display: flex; align-items: center; gap: .45rem; font-size: .81rem; cursor: pointer; background: var(--wh); border: 1.5px solid var(--br); padding: .5rem .7rem; border-radius: 10px; transition: .18s; font-weight: 500; }
.flag-item:hover { border-color: var(--re); color: var(--re); background: var(--rel); }
.flag-item input[type=checkbox] { accent-color: var(--re); width: 15px; height: 15px; cursor: pointer; }
.ex-fb-block { background: var(--bg); border: 1.5px solid var(--br); border-radius: var(--ra); padding: .9rem; overflow: hidden; margin-bottom: .6rem; }

/* ============================================================ BADGES */
.badge-re { background: var(--rel); color: var(--re); border-radius: 100px; padding: .1rem .6rem; font-size: .71rem; font-weight: 700; white-space: nowrap; display: inline-block; margin: 1px; border: 1px solid rgba(220,38,38,.15); }
.badge-am { background: var(--aml); color: var(--am); border-radius: 100px; padding: .1rem .6rem; font-size: .71rem; font-weight: 700; white-space: nowrap; display: inline-block; margin: 1px; border: 1px solid rgba(217,119,6,.15); }
.badge-gr { background: var(--grl); color: var(--gr); border-radius: 100px; padding: .1rem .6rem; font-size: .71rem; font-weight: 700; white-space: nowrap; display: inline-block; margin: 1px; border: 1px solid rgba(5,150,105,.15); }
.badge-bl { background: var(--bll); color: var(--bl); border-radius: 100px; padding: .1rem .6rem; font-size: .71rem; font-weight: 700; white-space: nowrap; display: inline-block; margin: 1px; border: 1px solid rgba(37,99,235,.15); }
/* Alert reply */
.reply-given { font-size: .74rem; color: var(--gr); background: var(--grl); padding: .25rem .6rem; border-radius: 7px; max-width: 170px; border: 1px solid rgba(5,150,105,.2); }
.reply-form-inline { background: var(--prl); padding: .85rem; border-radius: var(--rb); display: flex; flex-direction: column; gap: .5rem; border: 1px solid rgba(129,0,127,.15); }

/* ============================================================ SETTINGS GRID */
.site-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .85rem; }

/* ============================================================ SCHEMA EDITOR */
.se-row { border: 1.5px solid var(--br); border-radius: 10px; padding: .65rem; margin-bottom: 5px; background: var(--bg); }
.se-row:hover { border-color: var(--br2); }

/* ============================================================ RESPONSIVE */
@media (max-width: 768px) {
  .hero h1 { font-size: 1.75rem; }
  .fr { grid-template-columns: 1fr; }
  .al { flex-direction: column; }
  .sb { width: 100%; min-height: auto; max-height: 260px; overflow-y: auto; }
  .g3 { grid-template-columns: 1fr; }
  .gallery { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  .flag-grid { grid-template-columns: 1fr; }
  .stabs { overflow-x: auto; flex-wrap: nowrap; }
  .ptabs { flex-wrap: wrap; }
  .ptab { flex: unset; }
  .nav-menu { padding: .3rem .8rem; }
  .am { padding: 1rem .85rem; }
}
@media (max-width: 480px) {
  .frow { flex-wrap: wrap; }
  .sg { grid-template-columns: repeat(2, 1fr); }
  .exg { grid-template-columns: 1fr; }
  .nav-brand { padding: .4rem .85rem; }
  .ab { padding: 1rem 1.1rem; }
}

/* ============================================================
   پروفایل بیمار — بازطراحی نسخه ۷
   ============================================================ */

/* ---- خوش‌آمدگویی ---- */
.welcome-card {
  display: flex; align-items: center; gap: 1rem;
  background: linear-gradient(135deg, var(--dk), #2a1f54);
  border-radius: 16px; padding: 1.25rem 1.4rem;
  margin-bottom: .85rem; color: #fff;
}
.wc-avatar { font-size: 2.2rem; line-height: 1; }
.wc-greeting { font-size: 1.15rem; font-weight: 800; letter-spacing: -.01em; }
.wc-sub { font-size: .8rem; color: rgba(255,255,255,.6); margin-top: 3px; }

/* ---- پیشرفت کلی ---- */
.overall-prog { background: var(--wh); border-radius: 14px; padding: 1.1rem 1.25rem; margin-bottom: 1rem; border: 1.5px solid var(--br); box-shadow: var(--sh); }
.op-row { display: flex; justify-content: space-between; font-size: .83rem; font-weight: 600; margin-bottom: .5rem; color: var(--dk); }
.op-pct { font-size: 1.1rem; font-weight: 900; color: var(--pr); }
.op-bar { height: 8px; background: var(--bg2); border-radius: 100px; overflow: hidden; margin-bottom: .5rem; }
.op-fill { height: 100%; background: linear-gradient(90deg, var(--pr), #b44fb3); border-radius: 100px; transition: width .7s; }
.op-mot { font-size: .82rem; color: var(--pr); font-weight: 600; padding-top: .5rem; border-top: 1px solid var(--br); }

/* ---- کارت‌های گروه برنامه ---- */
.prog-groups { display: flex; flex-direction: column; gap: .7rem; }
.prog-group-card {
  display: flex; align-items: center; gap: 1rem;
  background: var(--wh); border-radius: 14px;
  padding: 1.1rem 1.25rem; border: 1.5px solid var(--br);
  cursor: pointer; transition: all .2s; box-shadow: var(--sh);
}
.prog-group-card:hover { border-color: var(--pr); box-shadow: 0 6px 24px rgba(129,0,127,.12); transform: translateX(-3px); }
.pgc-icon { font-size: 2rem; min-width: 44px; text-align: center; }
.pgc-body { flex: 1; }
.pgc-name { font-size: .95rem; font-weight: 800; color: var(--dk); margin-bottom: .2rem; }
.pgc-meta { font-size: .75rem; color: var(--tm); margin-bottom: .5rem; }
.pgc-bar { height: 5px; background: var(--bg2); border-radius: 100px; overflow: hidden; margin-bottom: .3rem; }
.pgc-fill { height: 100%; background: linear-gradient(90deg, var(--pr), #b44fb3); border-radius: 100px; }
.pgc-stat { font-size: .73rem; color: var(--tm); }
.pgc-exp { font-size: .72rem; margin-top: 3px; }
.pgc-arrow { font-size: 1.1rem; color: var(--pr); font-weight: 700; padding-right: .4rem; }

/* ---- هدر برنامه در صفحه جلسات ---- */
.back-btn {
  display: block;
  margin: 0 auto 1rem;
  background: var(--pr);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: .75rem 2rem;
  font-size: 1rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(129,0,127,.25);
  transition: .2s;
}
.back-btn:hover { opacity: .9; transform: translateY(-2px); }
.back-btn:hover { border-color: var(--pr); color: var(--pr); background: var(--prl); }
.prog-head { margin-bottom: 1rem; padding-bottom: .75rem; border-bottom: 1.5px solid var(--br); }
.ph-title { font-size: 1.05rem; font-weight: 800; color: var(--dk); }
.ph-meta { font-size: .78rem; color: var(--tm); margin-top: 2px; }

/* ---- تب جلسات ---- */
.sess-tabs { display: flex; gap: .4rem; flex-wrap: wrap; margin-bottom: 1rem; }
.sess-tab {
  padding: .4rem .9rem; border-radius: 100px;
  border: 1.5px solid var(--br); background: var(--wh);
  cursor: pointer; font-size: .79rem; font-weight: 500; color: var(--tm);
  transition: all .18s;
}
.sess-tab.done { background: var(--grl); color: var(--gr); border-color: rgba(5,150,105,.3); }
.sess-tab.active { background: var(--pr); color: #fff; border-color: var(--pr); box-shadow: var(--shp); font-weight: 700; }
.sess-tab.current { background: var(--pr); color: #fff; border-color: var(--pr); box-shadow: var(--shp); font-weight: 700; }
.sess-tab.locked { opacity: .4; cursor: not-allowed; background: var(--bg); }

/* ---- لیست تمرینات ---- */
.sess-ex-wrap { display: flex; flex-direction: column; gap: .6rem; margin-top: .5rem; }
.ex-card {
  background: var(--wh); border-radius: 14px;
  border: 1.5px solid var(--br); overflow: hidden;
  box-shadow: var(--sh); transition: border-color .2s;
}
.ex-card-open { border-color: var(--pr); box-shadow: 0 4px 20px rgba(129,0,127,.1); }
.ex-main {
  display: flex; align-items: center; gap: .85rem;
  padding: .85rem 1rem; cursor: pointer; transition: background .18s;
}
.ex-main:hover { background: var(--bg); }
.ex-thumb { width: 60px; height: 60px; min-width: 60px; border-radius: 10px; overflow: hidden; background: var(--bg2); flex-shrink: 0; aspect-ratio: 1/1; }
.ex-thumb img { width: 100%; height: 100%; object-fit: cover; }
.ex-thumb-ph { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 1.4rem; color: var(--ts); }
.ex-detail { flex: 1; min-width: 0; }
.ex-title { font-size: .9rem; font-weight: 700; color: var(--dk); margin-bottom: .3rem; }
.ex-rep { display: flex; gap: .35rem; flex-wrap: wrap; }
.rep-badge { background: var(--prl); color: var(--pr); border-radius: 100px; padding: .12rem .6rem; font-size: .72rem; font-weight: 700; border: 1px solid rgba(129,0,127,.15); }
.eq-badge { background: var(--bg2)!important; color: var(--tm)!important; border-color: var(--br)!important; }
.ex-coach-note { font-size: .76rem; color: var(--oc); background: var(--ocl); border-radius: 8px; padding: .3rem .6rem; margin-top: .4rem; border: 1px solid rgba(8,145,178,.15); }
.ex-toggle-icon { font-size: 1rem; color: var(--tm); padding: .3rem; transition: transform .2s; min-width: 24px; text-align: center; }
/* feedback panel */
.ex-fb-panel { border-top: 1.5px solid var(--prl); background: var(--prl); padding: .85rem 1rem; }
.ex-fb-inner { }
.efb-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-bottom: .6rem; }
.efb-col label { font-size: .72rem; }
.efb-flags { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .5rem; }
.efb-flag { display: flex; align-items: center; gap: .35rem; font-size: .79rem; cursor: pointer; background: var(--wh); border: 1.5px solid var(--br); padding: .35rem .65rem; border-radius: 8px; transition: .18s; font-weight: 500; color: var(--tx); }
.efb-flag:hover { border-color: var(--re); color: var(--re); }
.efb-flag input[type=checkbox] { accent-color: var(--re); cursor: pointer; }

/* ---- بازخورد نهایی جلسه ---- */
.sess-feedback { background: var(--wh); border-radius: 16px; padding: 1.25rem 1.3rem; border: 1.5px solid var(--br); border-top: 3px solid var(--pr); margin-top: .5rem; box-shadow: var(--sh); }
.sfb-title { font-size: .9rem; font-weight: 800; color: var(--dk); margin-bottom: 1rem; padding-bottom: .6rem; border-bottom: 1px solid var(--br); }
.sfb-row { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; margin-bottom: .9rem; }
.sfb-col label { font-size: .77rem; }
.sfb-stars { margin-bottom: .85rem; }
.sfb-flags { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; margin-bottom: 1rem; }
.sfb-flag { display: flex; align-items: center; gap: .4rem; font-size: .81rem; cursor: pointer; background: var(--bg); border: 1.5px solid var(--br); padding: .5rem .7rem; border-radius: 10px; font-weight: 500; transition: .18s; }
.sfb-flag:hover { border-color: var(--re); background: var(--rel); }
.sfb-flag input[type=checkbox] { accent-color: var(--re); }
.sfb-submit { width: 100%; background: var(--pr); color: #fff; border: none; padding: .9rem; border-radius: 100px; font-size: .95rem; font-weight: 800; cursor: pointer; box-shadow: var(--shp); transition: .2s; letter-spacing: .02em; }
.sfb-submit:hover { background: var(--prm); transform: translateY(-1px); }

/* ---- تکمیل جلسه ---- */
.sess-done-badge { display: flex; align-items: center; justify-content: center; gap: .85rem; background: var(--grl); border: 1.5px solid rgba(5,150,105,.25); border-radius: 14px; padding: 1.2rem 1.5rem; margin-top: .5rem; color: var(--gr); font-weight: 700; }
.animate-in { animation: fadeSlide .4s ease; }
@keyframes fadeSlide { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

/* ---- empty state ---- */
.empty-state { text-align: center; padding: 2.5rem 1rem; color: var(--tm); background: var(--wh); border-radius: 14px; border: 1.5px dashed var(--br); }
.empty-state p { margin-top: .5rem; font-size: .87rem; }

/* ---- موبایل ---- */
@media(max-width: 480px) {
  .efb-row { grid-template-columns: 1fr 1fr 1fr; }
  .sfb-row { grid-template-columns: 1fr; }
  .sfb-flags { grid-template-columns: 1fr; }
  .sess-tabs { gap: .3rem; }
  .sess-tab { padding: .35rem .7rem; font-size: .74rem; }
}

/* ---- دسترسی‌های کارمند ---- */
.perm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; }
.perm-item { display: flex; align-items: center; gap: .4rem; font-size: .8rem; cursor: pointer; background: var(--bg); border: 1.5px solid var(--br); padding: .4rem .65rem; border-radius: 8px; transition: .18s; }
.perm-item:hover { border-color: var(--pr); background: var(--prl); }
.perm-item input[type=checkbox] { accent-color: var(--pr); }
.perm-item:has(input:checked) { background: var(--prl); border-color: var(--pr); color: var(--pr); font-weight: 600; }
/* حفاظت تصاویر */
.ex-thumb img, .em img { -webkit-user-drag: none; user-drag: none; pointer-events: auto; }
/* ستون dismiss در جدول هشدار */
#alertb td:last-child { white-space: nowrap; }

/* ===== کد بیمار ===== */
.patient-code-badge {
  background: var(--dk); color: #fff;
  border-radius: 6px; padding: .12rem .55rem;
  font-size: .72rem; font-weight: 700;
  letter-spacing: .05em; font-family: monospace;
}
.patient-club-chip {
  display: inline-block;
  margin-right: .4rem;
  margin-top: .15rem;
  padding: .1rem .45rem;
  font-size: .65rem;
  font-weight: 600;
  border-radius: 999px;
  background: var(--pll);
  color: var(--pr);
  border: 1px solid rgba(129, 0, 127, .2);
  vertical-align: middle;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ===== پرونده بالینی ===== */
.clin-tab { border-color: rgba(220,38,38,.3)!important; color: var(--re)!important; }
.clin-tab.on { background: var(--re)!important; color: #fff!important; border-color: var(--re)!important; }

.clin-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:1rem; flex-wrap:wrap; gap:.5rem; }
.clin-info { font-size:.78rem; color:var(--tm); }

.clin-severity { background:var(--wh); border-radius:var(--ra); padding:1rem 1.2rem; margin-bottom:.85rem; border:1.5px solid var(--br); }
.sev-row { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.5rem; }
.sev-opt { display:flex; align-items:center; gap:.35rem; font-size:.83rem; cursor:pointer; background:var(--bg); border:1.5px solid var(--br); padding:.4rem .9rem; border-radius:100px; transition:.18s; }
.sev-opt:hover { border-color:var(--pr); }
.sev-opt:has(input:checked) { background:var(--pr); color:#fff; border-color:var(--pr); }
.sev-opt input[type=radio] { display:none; }

.clin-section { background:var(--wh); border-radius:var(--ra); border:1.5px solid var(--br); margin-bottom:.6rem; overflow:hidden; transition:.2s; }
.clin-section.open .clin-sec-body { display:block; }
.clin-section.open .clin-chevron { transform:rotate(180deg); }
.clin-sec-head { display:flex; align-items:center; justify-content:space-between; padding:.85rem 1.1rem; cursor:pointer; background:var(--bg); user-select:none; transition:.18s; }
.clin-sec-head:hover { background:var(--prl); }
.clin-sec-head span:first-child { font-size:.88rem; font-weight:700; color:var(--dk); }
.clin-count { font-size:.72rem; color:var(--pr); font-weight:700; background:var(--prl); padding:.1rem .5rem; border-radius:20px; }
.clin-chevron { color:var(--tm); font-size:.85rem; transition:transform .25s; }
.clin-sec-body { display:none; padding:.9rem 1.1rem; border-top:1px solid var(--br); }
.clin-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(180px,1fr)); gap:.4rem; margin-bottom:.75rem; }
.clin-item { display:flex; align-items:center; gap:.4rem; font-size:.81rem; cursor:pointer; background:var(--bg); border:1.5px solid var(--br); padding:.4rem .7rem; border-radius:8px; transition:.18s; font-weight:500; position:relative; }
.clin-item:hover { border-color:var(--pr); background:var(--prl); }
.clin-item.checked { background:var(--prl); border-color:var(--pr); color:var(--pr); font-weight:700; }
.clin-item.custom { border-style:dashed; }
.clin-item input[type=checkbox] { accent-color:var(--pr); cursor:pointer; flex-shrink:0; }
.clin-del { background:none; border:none; color:var(--re); cursor:pointer; font-size:.75rem; padding:0 .2rem; margin-right:auto; }
.clin-add-row { display:flex; gap:.5rem; margin-top:.4rem; }
.clin-new { flex:1; }

/* ===== سیستم پرداخت و حسابداری ===== */
.inv-card {
  background: var(--wh); border-radius: var(--ra);
  padding: 1.1rem 1.25rem; border: 1.5px solid var(--br);
  box-shadow: var(--sh); margin-bottom: .7rem; transition: .2s;
}
.inv-card:hover { border-color: var(--pr); }

/* پکیج در صفحه اصلی */
#pgrid .cd { cursor: pointer; }
#pgrid .cd:hover { border-color: var(--pr); }

/* ===== فیکس‌های ناوبار نسخه ۱۱ ===== */

/* ۱) برند وسط‌چین */
.nav-brand-wrap {
  display: flex; align-items: center; justify-content: center;
  position: relative; padding: .5rem 1.2rem;
  border-bottom: 1px solid var(--br); max-width: 1200px; margin: 0 auto;
}
.nav-brand {
  display: flex; align-items: center; gap: .6rem;
  cursor: pointer; justify-content: center;
  border: none; padding: 0; margin: 0;
}
.nav-brand-wrap .nav-brand { flex: 1; justify-content: center; padding-right: 9rem; padding-left: 9rem; }

/* ۳) دکمه ادمین — گوشه راست، خیلی کوچک و ظریف */
.admin-badge-corner {
  position: absolute; left: 1.2rem; top: 50%; transform: translateY(-50%);
}
.admin-mini-btn {
  background: var(--bg); border: 1.5px solid var(--br);
  color: var(--tm); border-radius: 8px; padding: .28rem .6rem;
  cursor: pointer; font-size: .75rem; transition: .2s; white-space: nowrap;
}
.admin-mini-btn:hover { background: var(--prl); color: var(--pr); border-color: var(--pr); }

/* دکمه کاربر لاگین در ناوبار */
.nb-user { font-weight: 700; color: var(--pr)!important; }
.nb-user:hover { background: var(--prl)!important; }

/* ۲) منو وسط‌چین */
.nav-menu { justify-content: center; }

/* helper col-2 for form grid */
.col-2 { grid-column: span 2; }

/* ===== فیکس‌های ناوبار — اصلاح نهایی ===== */
.nav-brand-wrap {
  display: flex; align-items: center; justify-content: center;
  position: relative; max-width: 1200px; margin: 0 auto;
  padding: .55rem 1.4rem; border-bottom: 1px solid var(--br);
}
.nav-brand { border-bottom: none!important; padding: 0!important; flex: 1; justify-content: center; }
.nav-menu { justify-content: center; }
.admin-corner { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); }
.admin-mini-btn {
  background: var(--bg); border: 1.5px solid var(--br); color: var(--tm);
  border-radius: 8px; padding: .3rem .65rem; cursor: pointer;
  font-size: .78rem; transition: .2s; white-space: nowrap;
}
.admin-mini-btn:hover { background: var(--prl); color: var(--pr); border-color: var(--pr); }
.nb-user { color: var(--pr)!important; font-weight: 700!important; }

/* ===== فیکس ۳: دکمه ادمین کوچک ===== */
.nav-brand-wrap { display:flex; align-items:center; justify-content:center; position:relative; padding:.5rem 1.2rem; border-bottom:1.5px solid var(--br); max-width:1200px; margin:0 auto; }
.nav-brand-wrap .nav-brand { flex:1; justify-content:center; border:none; padding:0; margin:0; }
.admin-corner { position:absolute; left:.8rem; top:50%; transform:translateY(-50%); }
.admin-mini-btn { background:var(--bg); border:1.5px solid var(--br); color:var(--tm); border-radius:8px; padding:.25rem .55rem; cursor:pointer; font-size:.72rem; transition:.2s; white-space:nowrap; line-height:1.4; }
.admin-mini-btn:hover { background:var(--prl); color:var(--pr); border-color:var(--pr); }

/* ===== فیکس ناوبار — admin corner + auto-redirect ===== */
.admin-corner {
  position: absolute; left: 1rem; top: 50%; transform: translateY(-50%);
}
.admin-mini-btn {
  background: var(--bg); border: 1.5px solid var(--br);
  color: var(--tm); border-radius: 8px; padding: .3rem .65rem;
  cursor: pointer; font-size: .78rem; transition: .2s;
}
.admin-mini-btn:hover { background: var(--prl); color: var(--pr); border-color: var(--pr); }
.nav-brand-wrap { position: relative; }

/* ===== Hero Slideshow ===== */
.hero { position: relative; overflow: hidden; min-height: 420px; }
.hero-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: 0; transition: opacity 1s ease;
  z-index: 0;
}
.hero-bg.active { opacity: 1; }
.hero-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.55) 100%);
  pointer-events: none;
}
/* When slides exist, text is white */
/* کادر بزرگ حذف شد - هر عنصر کادر کوچک خودش را دارد تا عکس پشت بیشتر دیده شود */
.hero:has(.hero-bg) .hc {
  position: relative; z-index: 2;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .9rem;
}
.hero:has(.hero-bg) .hbs { margin-top: 0; }
/* عنوان - کادر بنفش با متن سفید */
.hero:has(.hero-bg) h1 {
  color: #fff;
  background: var(--pr);
  border-radius: 16px;
  padding: .7rem 1.4rem;
  margin-bottom: 0;
  box-shadow: 0 10px 30px rgba(129,0,127,.4);
  display: inline-block;
}
/* زیرعنوان - کادر بنفش با متن سفید */
.hero:has(.hero-bg) #hero-sub {
  color: #fff;
  background: var(--prm);
  border-radius: 12px;
  padding: .5rem 1.1rem;
  margin-bottom: 0;
  display: inline-block;
  box-shadow: 0 8px 24px rgba(129,0,127,.35);
}
/* نام دکتر — کادر بنفش مثل نشان و عنوان */
.hero:has(.hero-bg) .hero-doc-line {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-fill-color: #fff !important;
  background: var(--pr) !important;
  border: none;
  border-radius: 12px;
  padding: .45rem 1rem;
  margin: .35rem 0 0 !important;
  display: inline-block;
  font-size: .78rem !important;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(129, 0, 127, .35);
}
/* نشان بالا - کادر بنفش با متن سفید */
.hero:has(.hero-bg) .hb {
  background: var(--pr);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 8px 24px rgba(129,0,127,.4);
  margin-bottom: 0;
}
/* هر آیتم نوار اعتماد - کادر بنفش با متن سفید */
.hero:has(.hero-bg) .hero-trust { gap: .6rem; }
.hero:has(.hero-bg) .ht-item {
  background: var(--pr);
  border-radius: 100px;
  padding: .45rem 1rem;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(129,0,127,.4);
}
.hero:has(.hero-bg) .ht-check {
  background: #fff;
  color: var(--pr);
}
/* Dots */
.hero-dots { position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%); display: flex; gap: .4rem; z-index: 3; }
.hero-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.45); border: none; cursor: pointer; transition: .2s; padding: 0; }
.hero-dot.on { background: #fff; width: 20px; border-radius: 4px; }
@media (min-width: 769px) {
  .hero.hero--slides .hero-dots { display: flex !important; }
}
.hero-portrait { transition: opacity .7s ease-in-out; will-change: opacity; }
/* Packages on homepage */
.pkg-card { transition: transform .2s, box-shadow .2s; color: var(--tx) !important; }
.pkg-card:hover { transform: translateY(-4px); box-shadow: 0 8px 30px rgba(129,0,127,.15); }
.pkg-card h3 { color: var(--dk) !important; }
.pkg-card p { color: var(--tm) !important; }
/* Slide admin */
.slide-row img { pointer-events: none; }

/* ===== کاروسل هیرو ===== */
.hero { position: relative; overflow: hidden; min-height: 420px; }
.hero-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center; background-repeat: no-repeat;
  opacity: 0; transition: opacity .8s ease; z-index: 0;
}
.hero-bg.active { opacity: 1; z-index: 1; }
.hero-bg::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(19,30,58,.12) 0%, rgba(19,30,58,.18) 100%);
}
.hc { position: relative; z-index: 2; }
.hero-overlay { display: none; }
.hero-dots {
  position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%);
  display: flex; gap: .45rem; z-index: 10;
}
.hero-dot {
  width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.45);
  border: none; cursor: pointer; transition: .25s; padding: 0;
}
.hero-dot.on { background: #fff; transform: scale(1.25); }

/* ===== خرید پکیج ===== */
.pkg-card-buy {
  background: var(--pr); color: #fff; border: none;
  padding: .55rem 1.2rem; border-radius: var(--rc);
  font-weight: 700; cursor: pointer; font-size: .85rem;
  transition: .2s; box-shadow: var(--shp); margin-top: .5rem; width: 100%;
}
.pkg-card-buy:hover { background: var(--prm); }
#as-packages-mgr .pkg-card { background: #fff; border: 1px solid var(--br); }
#as-packages-mgr .pkg-card h3 { color: var(--dk) !important; }

/* Hero slide editor */
.hero-slide-row { border: 1.5px solid var(--br); border-radius: var(--ra); padding: 1rem; margin-bottom: .6rem; }

/* ===== کارت پکیج با عکس پس‌زمینه ===== */
.pkg-card {
  background-size: cover; background-position: center; background-repeat: no-repeat;
  position: relative;
}
.cd-overlay {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(19,30,58,.75) 0%, rgba(19,30,58,.85) 100%);
  z-index: 1;
}

/* آپلود عکس پکیج در مدال */
#pkg-img-prev {
  border: 2px dashed var(--br); background-size: cover; background-position: center;
  transition: .2s; cursor: pointer;
}
#pkg-img-prev:hover { border-color: var(--pr); }

/* نمایش قیمت‌ها */
.price-display { font-weight: 700; color: var(--pr); font-family: 'Courier New', monospace; }

/* اصلاح جدول فاکتورها برای نمایش بهتر قیمت */
.tb td { text-align: center; direction: ltr; }
.tb td:first-child { text-align: right; direction: rtl; }

/* ═══════════════════════════════════════════════════════════
   v13 — ارتقای بصری و امکانات جدید
   ═══════════════════════════════════════════════════════════ */

/* --- انیمیشن‌های پایه --- */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(.94); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes slideInRight {
  from { opacity: 0; transform: translateX(30px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes shimmer {
  0% { background-position: -1000px 0; }
  100% { background-position: 1000px 0; }
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@keyframes pulse-ring {
  0% { box-shadow: 0 0 0 0 rgba(129,0,127,.4); }
  70% { box-shadow: 0 0 0 12px rgba(129,0,127,0); }
  100% { box-shadow: 0 0 0 0 rgba(129,0,127,0); }
}

/* --- reveal on scroll --- */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal.delay-1 { transition-delay: .08s; }
.reveal.delay-2 { transition-delay: .16s; }
.reveal.delay-3 { transition-delay: .24s; }
.reveal.delay-4 { transition-delay: .32s; }

/* --- بخش آمار --- */
.stats-band {
  background: linear-gradient(135deg, var(--dk) 0%, var(--dkx, #0c1428) 100%);
  padding: 3.5rem 1rem;
  position: relative;
  overflow: hidden;
}
.stats-band::before {
  content: '';
  position: absolute;
  top: -50%; right: -10%;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(129,0,127,.25) 0%, transparent 70%);
  pointer-events: none;
}
.stats-grid {
  max-width: 1000px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  position: relative;
  z-index: 1;
}
.stat-item { text-align: center; color: #fff; }
.stat-num {
  font-size: 2.8rem;
  font-weight: 900;
  background: linear-gradient(135deg, #fff 0%, #d4a5d3 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  line-height: 1;
  margin-bottom: .5rem;
}
.stat-label {
  font-size: .9rem;
  opacity: .75;
  font-weight: 500;
}
.stat-icon { font-size: 2rem; margin-bottom: .6rem; display: block; }

/* --- نظرات مراجعین --- */
.testimonials { background: var(--bg); }
.tst-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
  max-width: 1100px;
  margin: 0 auto;
}
.tst-card {
  background: #fff;
  border-radius: var(--ra);
  padding: 1.8rem;
  box-shadow: var(--shm, 0 4px 20px rgba(0,0,0,.06));
  border: 1px solid var(--br);
  position: relative;
  transition: transform .3s, box-shadow .3s;
}
.tst-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,0,0,.1);
}
.tst-quote {
  font-size: 3rem;
  color: var(--prl);
  line-height: 1;
  position: absolute;
  top: 1rem; left: 1.5rem;
  font-family: Georgia, serif;
}
.tst-text {
  font-size: .92rem;
  line-height: 1.9;
  color: var(--tx);
  margin: 1.5rem 0 1.2rem;
  position: relative;
  z-index: 1;
}
.tst-author { display: flex; align-items: center; gap: .8rem; }
.tst-avatar {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--pr), var(--prm, #a0339e));
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 700; font-size: 1.1rem;
}
.tst-name { font-weight: 700; font-size: .92rem; }
.tst-role { font-size: .78rem; color: var(--tm); }
.tst-stars { color: #ffb800; font-size: .85rem; margin-top: .2rem; }

/* --- FAQ --- */
.faq-wrap { max-width: 760px; margin: 0 auto; }
.faq-item {
  background: #fff;
  border: 1px solid var(--br);
  border-radius: var(--rb);
  margin-bottom: .8rem;
  overflow: hidden;
  transition: box-shadow .3s;
}
.faq-item.open { box-shadow: var(--shm, 0 4px 20px rgba(0,0,0,.06)); }
.faq-q {
  padding: 1.1rem 1.3rem;
  font-weight: 600;
  font-size: .95rem;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  transition: color .2s;
}
.faq-q:hover { color: var(--pr); }
.faq-icon {
  flex-shrink: 0;
  width: 24px; height: 24px;
  transition: transform .3s;
  color: var(--pr);
  font-size: 1.2rem;
}
.faq-item.open .faq-icon { transform: rotate(45deg); }
.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s cubic-bezier(.4,0,.2,1), padding .35s;
  padding: 0 1.3rem;
  color: var(--tm);
  font-size: .88rem;
  line-height: 1.9;
}
.faq-item.open .faq-a {
  max-height: 300px;
  padding: 0 1.3rem 1.2rem;
}

/* --- Toast notifications --- */
#toast-container {
  position: fixed;
  bottom: 24px; left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: .6rem;
  pointer-events: none;
  width: min(420px, calc(100vw - 32px));
}
.toast {
  background: var(--dk);
  color: #fff;
  padding: .9rem 1.2rem;
  border-radius: var(--rb);
  box-shadow: 0 8px 32px rgba(0,0,0,.25);
  display: flex;
  align-items: center;
  gap: .7rem;
  font-size: .9rem;
  animation: toastIn .35s cubic-bezier(.22,1,.36,1);
  pointer-events: auto;
  border-right: 4px solid var(--pr);
}
.toast.success { border-right-color: var(--gr); }
.toast.error { border-right-color: var(--re); }
.toast.info { border-right-color: var(--bl); }
.toast-icon { font-size: 1.2rem; flex-shrink: 0; }
.toast-msg { flex: 1; line-height: 1.5; }
.toast.removing { animation: toastOut .3s forwards; }
@keyframes toastIn {
  from { opacity: 0; transform: translateY(20px) scale(.9); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes toastOut {
  to { opacity: 0; transform: translateY(20px) scale(.9); }
}

/* --- Skeleton loaders --- */
.skeleton {
  background: linear-gradient(90deg, #eef0f5 25%, #f6f7fb 50%, #eef0f5 75%);
  background-size: 1000px 100%;
  animation: shimmer 1.8s infinite linear;
  border-radius: 8px;
}
.skel-card {
  height: 180px;
  border-radius: var(--ra);
  margin-bottom: 1rem;
}
.skel-line {
  height: 14px;
  margin-bottom: .6rem;
}
.skel-line.short { width: 60%; }
.skel-line.med { width: 80%; }

/* --- بهبود hover کارت‌ها --- */
.cd {
  transition: transform .3s cubic-bezier(.22,1,.36,1), box-shadow .3s;
}
.cd:hover {
  transform: translateY(-5px);
}

/* --- دکمه با ripple effect --- */
.bp, .bs {
  position: relative;
  overflow: hidden;
}
.bp::after, .bs::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(255,255,255,.4) 0%, transparent 70%);
  opacity: 0;
  transition: opacity .4s;
}
.bp:active::after, .bs:active::after {
  opacity: 1;
  transition: opacity 0s;
}

/* --- Hero badge with pulse --- */
.hb {
  animation: float 3s ease-in-out infinite;
}

/* --- Scroll to top button --- */
#scroll-top {
  position: fixed;
  bottom: 24px; right: 24px;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--pr);
  color: #fff;
  border: none;
  font-size: 1.3rem;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: opacity .3s, transform .3s, visibility .3s;
  box-shadow: 0 6px 24px rgba(129,0,127,.35);
  z-index: 900;
  display: flex;
  align-items: center;
  justify-content: center;
}
#scroll-top.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
#scroll-top:hover {
  background: var(--prm, #a0339e);
  transform: translateY(-3px);
}

/* --- بخش CTA پایانی --- */
.cta-band {
  background: linear-gradient(135deg, var(--pr) 0%, var(--prd, #5c005a) 100%);
  padding: 3.5rem 1rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-band::before {
  content: '';
  position: absolute;
  top: -30%; left: -10%;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(255,255,255,.12) 0%, transparent 70%);
}
.cta-band h2 {
  color: #fff;
  font-size: 1.8rem;
  margin-bottom: .8rem;
  position: relative;
}
.cta-band p {
  color: rgba(255,255,255,.85);
  margin-bottom: 1.8rem;
  font-size: 1rem;
  position: relative;
}
.cta-btn {
  background: #fff;
  color: var(--pr);
  border: none;
  padding: .9rem 2.5rem;
  border-radius: var(--rc);
  font-weight: 700;
  font-size: 1.05rem;
  cursor: pointer;
  box-shadow: 0 8px 30px rgba(0,0,0,.2);
  transition: transform .25s, box-shadow .25s;
  position: relative;
}
.cta-btn:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 12px 40px rgba(0,0,0,.3);
}

/* --- welcome card در پروفایل --- */
.welcome-card {
  background: linear-gradient(135deg, var(--pr) 0%, var(--prd, #5c005a) 100%);
  border-radius: var(--ra);
  padding: 1.6rem;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 8px 30px rgba(129,0,127,.25);
  animation: scaleIn .5s cubic-bezier(.22,1,.36,1);
}
.wc-avatar {
  font-size: 2.5rem;
  width: 64px; height: 64px;
  background: rgba(255,255,255,.18);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.wc-greeting { font-size: 1.3rem; font-weight: 800; margin-bottom: .2rem; }
.wc-sub { font-size: .88rem; opacity: .85; }

/* --- responsive --- */
@media (max-width: 768px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
  .stat-num { font-size: 2.2rem; }
  .cta-band h2 { font-size: 1.4rem; }
}

/* --- کارت پکیج حرفه‌ای --- */
#pgrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.5rem;
}
.pkg-card-pro {
  background: #fff;
  border-radius: var(--ra);
  overflow: hidden;
  box-shadow: var(--shm, 0 4px 20px rgba(0,0,0,.06));
  border: 1px solid var(--br);
  transition: transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s;
  display: flex;
  flex-direction: column;
}
.pkg-card-pro:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(0,0,0,.12);
}
.pkg-card-img {
  height: 160px;
  background-size: cover;
  background-position: center;
  position: relative;
  background-color: var(--prl);
}
.pkg-card-noimg {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.5rem;
  background: linear-gradient(135deg, var(--prl) 0%, #f0e0ef 100%);
}
.pkg-level-badge {
  position: absolute;
  top: 12px; right: 12px;
  background: rgba(255,255,255,.95);
  color: var(--pr);
  padding: .3rem .8rem;
  border-radius: var(--rc);
  font-size: .72rem;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
}
.pkg-card-body {
  padding: 1.3rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.pkg-card-title {
  font-size: 1.15rem;
  font-weight: 800;
  margin-bottom: .5rem;
  color: var(--tx);
}
.pkg-card-desc {
  font-size: .85rem;
  color: var(--tm);
  line-height: 1.7;
  margin-bottom: .8rem;
  flex: 1;
}
.pkg-card-meta {
  display: flex;
  gap: 1rem;
  font-size: .78rem;
  color: var(--tm);
  margin-bottom: .7rem;
}
.pkg-card-tag {
  font-size: .76rem;
  padding: .35rem .7rem;
  border-radius: 8px;
  margin-bottom: .8rem;
  display: inline-block;
}
.pkg-card-tag.good {
  background: var(--grl, #e8f5e9);
  color: var(--grd, #2e7d32);
}
.pkg-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--br);
  padding-top: 1rem;
  margin-top: auto;
  gap: .5rem;
}
.pkg-card-price {
  font-size: 1.25rem;
  font-weight: 900;
  color: var(--pr);
  line-height: 1;
}
.pkg-card-price small {
  font-size: .65rem;
  font-weight: 400;
  color: var(--tm);
}
.pkg-card-price-call {
  font-size: .85rem;
  color: var(--tm);
  font-weight: 600;
}
.pkg-buy-btn {
  background: var(--pr);
  color: #fff;
  border: none;
  padding: .55rem 1.2rem;
  border-radius: var(--rc);
  font-weight: 700;
  font-size: .85rem;
  cursor: pointer;
  transition: all .25s;
  white-space: nowrap;
  flex-shrink: 0;
}
.pkg-buy-btn:hover {
  background: var(--prm, #a0339e);
  transform: scale(1.05);
}
.pkg-buy-btn.outline {
  background: transparent;
  color: var(--pr);
  border: 1.5px solid var(--pr);
}
.pkg-buy-btn.outline:hover {
  background: var(--pr);
  color: #fff;
}

/* --- کارت درخواست بیمار --- */
.req-card-pat {
  background: #fff;
  border: 1px solid var(--br);
  border-radius: var(--rb);
  padding: 1rem;
  margin-bottom: .8rem;
  transition: box-shadow .25s, transform .25s;
}
.req-card-pat:hover {
  box-shadow: var(--shm, 0 4px 16px rgba(0,0,0,.06));
  transform: translateY(-2px);
}

/* --- empty state بهبود --- */
.empty-state {
  text-align: center;
  padding: 2.5rem 1rem;
  color: var(--tm);
}
.empty-state p { margin: .4rem 0; }

/* --- تب‌های حالت ارسال پکیج --- */
.cp-mode-tabs {
  display: flex;
  gap: .4rem;
  margin-bottom: 1rem;
  background: var(--bg);
  padding: .3rem;
  border-radius: var(--rb);
}
.cp-mode-tab {
  flex: 1;
  background: transparent;
  border: none;
  padding: .55rem .4rem;
  border-radius: 8px;
  cursor: pointer;
  font-size: .8rem;
  font-weight: 600;
  color: var(--tm);
  transition: all .2s;
  white-space: nowrap;
}
.cp-mode-tab.on {
  background: #fff;
  color: var(--pr);
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.cp-mode-tab:hover:not(.on) { color: var(--tx); }
.cp-pane { animation: fadeIn .25s ease; }
.cp-hint {
  background: var(--prl);
  border-radius: 10px;
  padding: .7rem .8rem;
  margin-bottom: .9rem;
  font-size: .8rem;
  color: var(--pr);
  line-height: 1.6;
}

/* --- آلارم پاسخ روی درخواست‌ها --- */
.req-answered-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: var(--gr);
  color: #fff;
  padding: .25rem .7rem;
  border-radius: var(--rc);
  font-size: .73rem;
  font-weight: 700;
  animation: pulse-ring 2s infinite;
}
.reqs-alert-banner {
  background: linear-gradient(135deg, var(--gr) 0%, var(--grd,#2e7d32) 100%);
  color: #fff;
  border-radius: var(--rb);
  padding: .9rem 1.1rem;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: .7rem;
  font-size: .88rem;
  animation: scaleIn .4s ease;
}
.reqs-alert-banner .rab-icon { font-size: 1.4rem; }

/* --- ویدیو تمرین محافظت‌شده --- */
.ex-video-wrap {
  position: relative;
  border-radius: var(--rb);
  overflow: hidden;
  margin-bottom: .8rem;
  background: #000;
}
.ex-video {
  width: 100%;
  max-height: 320px;
  display: block;
  border-radius: var(--rb);
}
/* جلوگیری از انتخاب و دانلود */
.ex-video-wrap, .ex-video {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
.ex-video::-webkit-media-controls-download-button { display: none; }
.ex-video::-webkit-media-controls-enclosure { overflow: hidden; }

.ex-desc {
  background: var(--bg);
  border-radius: 8px;
  padding: .7rem;
  font-size: .84rem;
  line-height: 1.8;
  color: var(--tx);
  margin-bottom: .6rem;
}
.ex-warn {
  background: #fff7e6;
  color: #9a6700;
  border-radius: 8px;
  padding: .6rem .8rem;
  font-size: .8rem;
  line-height: 1.7;
  margin-bottom: .6rem;
}
.efb-fb-label {
  font-weight: 700;
  font-size: .85rem;
  margin-bottom: .5rem;
  color: var(--pr);
  border-top: 1px solid var(--br);
  padding-top: .7rem;
}

/* --- باشگاه مشتریان --- */
.loyalty-card {
  background: linear-gradient(135deg, #2c1810 0%, #4a2c1a 50%, #6b3e22 100%);
  border-radius: var(--ra);
  padding: 1.2rem;
  color: #fff;
  margin-bottom: 1.2rem;
  box-shadow: 0 6px 24px rgba(74,44,26,.3);
  position: relative;
  overflow: hidden;
}
.loyalty-card::before {
  content: '';
  position: absolute;
  top: -40%; right: -10%;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(255,200,100,.2) 0%, transparent 70%);
  pointer-events: none;
}
.loy-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  position: relative;
}
.loy-tier {
  font-size: 1.05rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: .3rem;
}
.loy-points {
  font-size: 1.5rem;
  font-weight: 900;
  color: #ffd700;
}
.loy-points small { font-size: .7rem; font-weight: 400; color: rgba(255,255,255,.7); }
.loy-stats {
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
}
.loy-stat {
  flex: 1;
  background: rgba(255,255,255,.1);
  border-radius: 10px;
  padding: .7rem;
  text-align: center;
}
.loy-stat-num { font-size: 1.3rem; font-weight: 900; }
.loy-stat-lbl { font-size: .72rem; opacity: .8; margin-top: .2rem; }
.loy-prog-bar {
  height: 8px;
  background: rgba(255,255,255,.15);
  border-radius: 100px;
  overflow: hidden;
  margin-bottom: .4rem;
}
.loy-prog-fill {
  height: 100%;
  background: linear-gradient(90deg, #ffd700, #ffaa00);
  border-radius: 100px;
  transition: width .8s ease;
}
.loy-next { font-size: .76rem; opacity: .85; text-align: center; }

/* امتیاز کسب‌شده (toast جلسه) */
.points-popup {
  display: inline-block;
  background: linear-gradient(135deg, #ffd700, #ffaa00);
  color: #2c1810;
  padding: .3rem .8rem;
  border-radius: 100px;
  font-weight: 800;
  font-size: .85rem;
  margin-top: .5rem;
  animation: scaleIn .4s;
}

/* --- کارت پیگیری --- */
.fu-card {
  background: #fff;
  border: 1px solid var(--br);
  border-radius: var(--rb);
  padding: 1rem;
  margin-bottom: .8rem;
  transition: box-shadow .25s;
}
.fu-card:hover { box-shadow: var(--shm, 0 4px 16px rgba(0,0,0,.06)); }

/* --- پرونده بالینی: عناصر wrapper جدید --- */
.clin-wrap { max-width: 100%; }
.clin-intro {
  background: var(--prl);
  color: var(--pr);
  border-radius: 10px;
  padding: .8rem 1rem;
  font-size: .85rem;
  line-height: 1.7;
  margin-bottom: 1rem;
}
.clin-notes-wrap {
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--br);
}

/* --- ویرایشگر قالب معاینه --- */
.clin-edit-cat {
  background: #fff;
  border: 1px solid var(--br);
  border-radius: var(--rb);
  padding: 1rem;
  margin-bottom: 1rem;
}
.clin-edit-cat-head {
  display: flex;
  gap: .5rem;
  align-items: center;
  margin-bottom: .8rem;
}
.clin-edit-items {
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.clin-edit-item {
  display: flex;
  gap: .4rem;
  align-items: center;
}

/* ═══ تقویم شمسی (Persian Date Picker) ═══ */
.pdp-container {
  background: #fff;
  border-radius: var(--ra);
  padding: 1rem;
  width: 320px;
  max-width: calc(100vw - 32px);
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
  animation: scaleIn .25s ease;
}
.pdp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  margin-bottom: 1rem;
}
.pdp-nav {
  background: var(--prl);
  color: var(--pr);
  border: none;
  width: 36px; height: 36px;
  border-radius: 10px;
  font-size: 1.4rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
}
.pdp-nav:hover { background: var(--pr); color: #fff; }
.pdp-title { display: flex; gap: .4rem; align-items: center; flex: 1; }
.pdp-title select, .pdp-year {
  border: 1px solid var(--br);
  border-radius: 8px;
  padding: .4rem;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 700;
  color: var(--dk);
  background: #fff;
  cursor: pointer;
}
#pdp-msel { flex: 1; }
.pdp-year { width: 70px; text-align: center; direction: ltr; }
.pdp-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.pdp-weekdays { margin-bottom: 6px; }
.pdp-wd {
  text-align: center;
  font-size: .72rem;
  font-weight: 700;
  color: var(--tm);
  padding: 4px 0;
}
.pdp-day {
  text-align: center;
  padding: .5rem 0;
  border-radius: 8px;
  cursor: pointer;
  font-size: .85rem;
  transition: all .15s;
  color: var(--tx);
}
.pdp-day:hover { background: var(--prl); color: var(--pr); }
.pdp-day.today {
  border: 1.5px solid var(--pr);
  font-weight: 700;
  color: var(--pr);
}
.pdp-day.sel {
  background: var(--pr);
  color: #fff;
  font-weight: 700;
}
.pdp-empty { padding: .5rem 0; }
.pdp-foot {
  display: flex;
  gap: .5rem;
  margin-top: 1rem;
  padding-top: .8rem;
  border-top: 1px solid var(--br);
}
.pdp-today-btn, .pdp-close-btn {
  flex: 1;
  padding: .5rem;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: .85rem;
  font-weight: 600;
}
.pdp-today-btn { background: var(--prl); color: var(--pr); }
.pdp-today-btn:hover { background: var(--pr); color: #fff; }
.pdp-close-btn { background: var(--bg); color: var(--tm); }
.pdp-close-btn:hover { background: var(--br); }

/* ═══ رابط جدید ثبت جلسات ═══ */

/* سرچ زنده تمرین */
.ex-search-wrap { position: relative; margin-bottom: .8rem; }
.ex-search-results {
  display: none;
  position: relative;
  background: #fff;
  border: 1px solid var(--br);
  border-radius: var(--rb);
  margin-top: .4rem;
  max-height: 320px;
  overflow-y: auto;
  box-shadow: 0 8px 24px rgba(0,0,0,.1);
}
.ex-sr-item {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .6rem .8rem;
  cursor: pointer;
  border-bottom: 1px solid var(--bg);
  transition: background .15s;
}
.ex-sr-item:hover { background: var(--prl); }
.ex-sr-item:last-child { border-bottom: none; }
.ex-sr-thumb {
  width: 42px; height: 42px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
}
.ex-sr-noimg {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  font-size: 1.2rem;
}
.ex-sr-info { flex: 1; min-width: 0; }
.ex-sr-title { font-weight: 600; font-size: .88rem; }
.ex-sr-area {
  font-size: .72rem;
  color: var(--tm);
  background: var(--bg);
  padding: .1rem .5rem;
  border-radius: 100px;
  display: inline-block;
  margin-top: .2rem;
}
.ex-sr-add {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--pr);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: 700;
  flex-shrink: 0;
}
.ex-search-empty { padding: 1rem; text-align: center; color: var(--tm); font-size: .85rem; }

/* سبد انتخاب */
.ex-cart {
  background: var(--prl);
  border: 1.5px solid var(--pr);
  border-radius: var(--rb);
  padding: .9rem;
  margin-top: .5rem;
}
.ex-cart-head {
  font-weight: 700;
  font-size: .88rem;
  color: var(--pr);
  margin-bottom: .7rem;
}
.ex-cart-item {
  background: #fff;
  border-radius: 8px;
  padding: .6rem .7rem;
  margin-bottom: .5rem;
}
.ex-cart-name { font-weight: 600; font-size: .85rem; margin-bottom: .4rem; }
.ex-cart-controls {
  display: flex;
  align-items: center;
  gap: .4rem;
  flex-wrap: wrap;
}
.ex-cart-controls label { font-size: .75rem; color: var(--tm); }
.ex-cart-inp {
  width: 55px;
  padding: .3rem .4rem;
  border: 1px solid var(--br);
  border-radius: 6px;
  font-family: inherit;
  font-size: .82rem;
  text-align: center;
}
.ex-cart-del {
  margin-right: auto;
  background: var(--rel, #fdecea);
  color: var(--re);
  border: none;
  width: 26px; height: 26px;
  border-radius: 6px;
  cursor: pointer;
  font-size: .8rem;
}
.ex-cart-del:hover { background: var(--re); color: #fff; }

/* لیست تمرین‌های جلسه (قابل ویرایش) */
.sess-ex-list { display: flex; flex-direction: column; gap: .5rem; }
.sess-ex-row {
  display: flex;
  align-items: center;
  gap: .6rem;
  background: #fff;
  border: 1px solid var(--br);
  border-radius: var(--rb);
  padding: .5rem .7rem;
  transition: box-shadow .2s;
}
.sess-ex-row:hover { box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.sess-ex-num {
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--pr);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .78rem;
  font-weight: 700;
  flex-shrink: 0;
}
.sess-ex-thumb {
  width: 38px; height: 38px;
  border-radius: 7px;
  object-fit: cover;
  flex-shrink: 0;
}
.sess-ex-noimg {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  font-size: 1.1rem;
}
.sess-ex-name { flex: 1; font-weight: 600; font-size: .86rem; min-width: 0; }
.sess-ex-edit {
  display: flex;
  align-items: center;
  gap: .3rem;
  flex-shrink: 0;
}
.sess-ex-inp {
  width: 48px;
  padding: .3rem;
  border: 1px solid var(--br);
  border-radius: 6px;
  font-family: inherit;
  font-size: .8rem;
  text-align: center;
}
.sess-ex-x { color: var(--tm); font-size: .8rem; }
.sess-ex-del {
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 1rem;
  padding: .2rem .4rem;
  border-radius: 6px;
  flex-shrink: 0;
}
.sess-ex-del:hover { background: var(--rel, #fdecea); }
.sess-empty {
  text-align: center;
  padding: 1.5rem 1rem;
  color: var(--tm);
  font-size: .87rem;
  background: var(--bg);
  border-radius: var(--rb);
}

/* ═══ نوار پیشرفت آپلود ═══ */
#ex-upload-progress { margin-top: .8rem; }
.upload-progress {
  background: var(--bg);
  border: 1px solid var(--br);
  border-radius: var(--rb);
  padding: .8rem;
  margin-bottom: .6rem;
  transition: opacity .3s;
}
.up-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: .5rem;
  gap: .5rem;
}
.up-name {
  font-size: .8rem;
  font-weight: 600;
  color: var(--tx);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
}
.up-pct {
  font-size: .85rem;
  font-weight: 800;
  color: var(--pr);
  flex-shrink: 0;
}
.up-track {
  height: 8px;
  background: var(--br);
  border-radius: 100px;
  overflow: hidden;
}
.up-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--pr), var(--prl));
  border-radius: 100px;
  transition: width .25s ease;
  width: 0%;
}
.up-status {
  font-size: .73rem;
  color: var(--tm);
  margin-top: .4rem;
}
.upload-progress.up-done .up-fill {
  background: linear-gradient(90deg, var(--gr, #2e7d32), #66bb6a);
}
.upload-progress.up-done .up-status { color: var(--gr, #2e7d32); }
.upload-progress.up-error .up-fill { background: var(--re); }
.upload-progress.up-error .up-status { color: var(--re); font-weight: 600; }

/* عکس شکسته → placeholder تمیز به جای آیکون شکسته */
.gal-thumb.img-broken,
.img-broken {
  position: relative;
  background: var(--bg);
  min-height: 80px;
  border: 1px dashed var(--br);
}
.gal-thumb.img-broken::after {
  content: '🖼 عکس در دسترس نیست';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .7rem;
  color: var(--tm);
  text-align: center;
  padding: .5rem;
}

/* پیش‌نمایش عکس‌های انتخاب‌شده در فرم ارزیابی */
.req-photos-preview { margin-top: .6rem; }
.rpp-count {
  font-size: .8rem;
  font-weight: 700;
  color: var(--gr, #2e7d32);
  margin-bottom: .5rem;
}
.rpp-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.rpp-item img {
  width: 60px; height: 60px;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid var(--br);
}

/* ═══ نمای بصری فرم ارزیابی (مشابه خود فرم) برای ادمین ═══ */
.av-wrap { font-size: .85rem; }
.av-row {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin: .6rem 0 .4rem;
  flex-wrap: wrap;
}
.av-label {
  font-weight: 700;
  font-size: .8rem;
  color: var(--tx);
}
.av-badge {
  display: inline-block;
  padding: .25rem .8rem;
  border-radius: 100px;
  font-size: .78rem;
  font-weight: 600;
}
.av-badge-goal {
  background: var(--prl);
  color: var(--pr);
}
.av-regions {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.av-region-card {
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 10px;
  padding: .6rem .8rem;
}
.av-region-name {
  font-weight: 700;
  font-size: .82rem;
  margin-bottom: .35rem;
  color: var(--pr);
}
.av-region-answers, .av-extras {
  display: flex;
  flex-direction: column;
  gap: .25rem;
}
.av-answer {
  font-size: .8rem;
  line-height: 1.7;
}
.av-aq { color: var(--tm); }
.av-av { font-weight: 600; }
.av-extras { margin-top: .3rem; padding-top: .3rem; border-top: 1px dashed var(--br); }

.rpp-warn {
  font-size: .8rem;
  font-weight: 600;
  color: var(--am, #b45309);
  background: #fff7e6;
  border: 1px solid var(--am, #f0c36d);
  border-radius: 8px;
  padding: .5rem .7rem;
  margin-bottom: .5rem;
}

.rpp-item { position: relative; }
.rpp-status {
  position: absolute;
  bottom: 2px; left: 2px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: .65rem;
  border-radius: 5px;
  padding: 1px 4px;
  line-height: 1.4;
}

/* ═══ فوتر سایت با ای‌نماد ═══ */
.site-footer {
  background: var(--dk);
  color: #fff;
  padding: 2.5rem 1.5rem 1.5rem;
  margin-top: 0;
}
.footer-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.footer-brand-name {
  font-size: 1.2rem;
  font-weight: 800;
  margin-bottom: .3rem;
}
.footer-brand-tag {
  font-size: .85rem;
  color: rgba(255,255,255,.65);
}
.footer-trust {
  background: #fff;
  border-radius: 12px;
  padding: .5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.footer-trust img {
  display: block;
  border-radius: 8px;
}
.footer-copy {
  max-width: 1100px;
  margin: 1.8rem auto 0;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(255,255,255,.12);
  text-align: center;
  font-size: .8rem;
  color: rgba(255,255,255,.55);
}
@media (max-width: 600px) {
  .footer-inner { flex-direction: column; text-align: center; gap: 1.5rem; }
}

/* ═══ صفحه قوانین و مقررات ═══ */
.terms-content {
  background: #fff;
  border-radius: var(--ra);
  padding: 2rem;
  line-height: 2.1;
  color: var(--tx);
  box-shadow: var(--sh);
}
.terms-content h3 {
  color: var(--pr);
  font-size: 1.05rem;
  margin: 1.5rem 0 .5rem;
  font-weight: 700;
}
.terms-content p {
  color: var(--tm);
  font-size: .92rem;
  margin-bottom: .8rem;
}
.terms-content strong { color: var(--tx); }

/* لینک‌های فوتر */
.footer-links {
  max-width: 1100px;
  margin: 1.5rem auto 0;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  flex-wrap: wrap;
}
.footer-links a {
  color: rgba(255,255,255,.8);
  text-decoration: none;
  font-size: .85rem;
  transition: color .2s;
}
.footer-links a:hover { color: #fff; }
.footer-sep { color: rgba(255,255,255,.3); }

/* ═══════════════════════════════════════════
   پروفایل مراجع premium - هدر با آمار (gamification)
   ═══════════════════════════════════════════ */
.profile-hero {
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 45%, var(--dk) 100%);
  border-radius: 20px;
  padding: 1.5rem;
  color: #fff;
  margin-bottom: 1rem;
  position: relative;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(129,0,127,.25);
}
.profile-hero::before {
  content: '';
  position: absolute;
  top: -60%; left: -20%;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(255,255,255,.12) 0%, transparent 70%);
  border-radius: 50%;
}
.profile-hero::after {
  content: '';
  position: absolute;
  bottom: -50%; right: -10%;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(255,255,255,.08) 0%, transparent 70%);
  border-radius: 50%;
}
.ph-top {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.3rem;
  position: relative;
  z-index: 1;
}
.ph-avatar {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: rgba(255,255,255,.2);
  backdrop-filter: blur(10px);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  font-weight: 800;
  border: 2px solid rgba(255,255,255,.3);
  flex-shrink: 0;
}
.ph-greet {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -.01em;
  margin-bottom: .15rem;
}
.ph-sub {
  font-size: .85rem;
  color: rgba(255,255,255,.75);
}
.ph-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .7rem;
  position: relative;
  z-index: 1;
}
.ph-stat {
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 14px;
  padding: .9rem .5rem;
  text-align: center;
  transition: transform .2s, background .2s;
}
.ph-stat:hover {
  transform: translateY(-3px);
  background: rgba(255,255,255,.18);
}
.ph-stat-num {
  font-size: 1.6rem;
  font-weight: 900;
  line-height: 1;
  margin-bottom: .3rem;
  font-variant-numeric: tabular-nums;
}
.ph-stat-lbl {
  font-size: .72rem;
  color: rgba(255,255,255,.7);
  font-weight: 600;
}
@media (max-width: 480px) {
  .profile-hero { padding: 1.2rem; }
  .ph-greet { font-size: 1.1rem; }
  .ph-stat-num { font-size: 1.35rem; }
}

/* ═══ ارتقای premium کارت‌های سرویس ═══ */
.cd {
  position: relative;
  overflow: hidden;
}
.cd::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--pr), var(--prm));
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .3s ease;
}
.cd:hover::before { transform: scaleX(1); }
.cd .ci {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px; height: 60px;
  background: var(--prl);
  border-radius: 16px;
  transition: transform .3s, background .3s;
}
.cd:hover .ci {
  transform: scale(1.08) rotate(-4deg);
  background: linear-gradient(135deg, var(--prl), #f3dff3);
}

/* ═══ ارتقای تب‌های پروفایل مراجع ═══ */
.pg .ptabs {
  background: var(--wh);
  padding: .4rem;
  border-radius: 14px;
  box-shadow: var(--sh);
  border: 1px solid var(--br);
  gap: .3rem;
  margin-bottom: 1rem;
}
.pg .ptab.on {
  box-shadow: 0 4px 16px rgba(129,0,127,.25);
}

/* ═══════════════════════════════════════════
   کارت تمرین premium (سبک Physitrack)
   ═══════════════════════════════════════════ */
.ex-card {
  border-radius: 16px !important;
  border: 1px solid var(--br) !important;
  box-shadow: 0 2px 12px rgba(19,30,58,.04);
  transition: box-shadow .25s, border-color .25s;
  overflow: hidden;
}
.ex-card:hover { box-shadow: 0 6px 24px rgba(19,30,58,.08); }
.ex-card-open {
  border-color: var(--pr) !important;
  box-shadow: 0 8px 32px rgba(129,0,127,.12) !important;
}
.ex-thumb {
  width: 110px !important; height: 110px !important; min-width: 110px !important;
  border-radius: 14px !important;
}
.ex-thumb img { cursor: pointer; }
@media (min-width: 768px) {
  .ex-thumb {
    width: 140px !important; height: 140px !important; min-width: 140px !important;
  }
}
.ex-title { font-size: 1.02rem; font-weight: 700; color: var(--dk); }

/* آکاردئون درد و سختی */
.ex-accordion {
  margin-top: .8rem;
  border: 1px solid var(--br);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}
.ex-acc-head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .7rem .9rem;
  background: var(--bg);
  border: none;
  cursor: pointer;
  font-size: .85rem;
  font-weight: 700;
  color: var(--pr);
  font-family: inherit;
  transition: background .2s;
}
.ex-acc-head:hover { background: var(--prl); }
.ex-acc-head .acc-ic { font-style: normal; margin-left: .3rem; }
.ex-acc-arrow { transition: transform .25s; font-size: .9rem; }
.ex-acc-body { padding: .9rem; border-top: 1px solid var(--br); }

/* ویدیو تمرین premium */
.ex-video-wrap {
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: .8rem;
  background: #000;
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
}
.ex-video { width: 100%; display: block; border-radius: 12px; }
.ex-desc {
  background: var(--prl);
  border-radius: 10px;
  padding: .7rem .85rem;
  font-size: .85rem;
  line-height: 1.8;
  color: var(--tx);
  margin-bottom: .6rem;
}

/* بازخورد جلسه - متمایز و برجسته (همیشه باز) */
.efb-row { gap: .6rem; }
.efb-col label.fl { font-size: .75rem; margin-bottom: .25rem; }
.efb-col input { text-align: center; font-weight: 700; }

/* ═══════════════════════════════════════════
   داشبورد پیشرفت مراجع (سبک Sword Health)
   ═══════════════════════════════════════════ */
.dash-card {
  background: #fff;
  border-radius: 18px;
  border: 1px solid var(--br);
  box-shadow: 0 4px 20px rgba(19,30,58,.05);
  padding: 1.3rem;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 1.4rem;
}
.dash-ring-wrap {
  position: relative;
  width: 120px; height: 120px;
  flex-shrink: 0;
}
.dash-ring { width: 120px; height: 120px; }
.dash-ring-fill { transition: stroke-dashoffset 1s cubic-bezier(.4,0,.2,1); }
.dash-ring-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.dash-pct { font-size: 1.8rem; font-weight: 900; color: var(--pr); line-height: 1; }
.dash-pct-lbl { font-size: .72rem; color: var(--tm); margin-top: .2rem; }
.dash-info { flex: 1; display: flex; flex-direction: column; gap: .6rem; }
.dash-info-row {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .88rem;
  color: var(--tx);
  font-weight: 500;
}
.dash-info-ic { font-size: 1rem; }
.dash-streak {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: linear-gradient(135deg, #fff3e0, #ffe0b2);
  color: #e65100;
  border-radius: 100px;
  padding: .35rem .9rem;
  font-size: .82rem;
  font-weight: 700;
  width: fit-content;
  margin-top: .2rem;
}
.dash-trend {
  background: #fff;
  border-radius: 18px;
  border: 1px solid var(--br);
  box-shadow: 0 4px 20px rgba(19,30,58,.05);
  padding: 1.2rem 1.3rem;
  margin-bottom: 1rem;
}
.dash-trend-title {
  font-size: .9rem;
  font-weight: 700;
  color: var(--dk);
  margin-bottom: .9rem;
}
.trend-svg { width: 100%; height: 90px; display: block; }
@media (max-width: 480px) {
  .dash-card { flex-direction: column; text-align: center; gap: 1rem; }
  .dash-info { align-items: center; }
}

/* ═══════════════════════════════════════════
   نشان‌های دستاورد (badges - gamification)
   ═══════════════════════════════════════════ */
.badges-card {
  background: #fff;
  border-radius: 18px;
  border: 1px solid var(--br);
  box-shadow: 0 4px 20px rgba(19,30,58,.05);
  padding: 1.2rem 1.3rem;
  margin-bottom: 1rem;
}
.badges-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.badges-title { font-size: .9rem; font-weight: 700; color: var(--dk); }
.badges-count {
  font-size: .78rem;
  font-weight: 700;
  color: var(--pr);
  background: var(--prl);
  border-radius: 100px;
  padding: .25rem .8rem;
}
.badges-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: .6rem;
}
.badge-item {
  text-align: center;
  padding: .7rem .3rem;
  border-radius: 14px;
  transition: transform .25s, box-shadow .25s;
}
.badge-item.unlocked {
  background: linear-gradient(135deg, var(--prl), #fdf0fd);
  border: 1px solid rgba(129,0,127,.2);
}
.badge-item.unlocked:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 18px rgba(129,0,127,.15);
}
.badge-item.locked {
  background: var(--bg);
  border: 1px solid var(--br);
  opacity: .6;
}
.badge-icon {
  font-size: 1.7rem;
  line-height: 1;
  margin-bottom: .35rem;
  filter: grayscale(0);
}
.badge-item.locked .badge-icon { filter: grayscale(1); opacity: .5; }
.badge-title {
  font-size: .72rem;
  font-weight: 700;
  color: var(--tx);
  margin-bottom: .15rem;
}
.badge-desc {
  font-size: .62rem;
  color: var(--tm);
  line-height: 1.3;
}
.badge-item.unlocked .badge-title { color: var(--pr); }
@media (max-width: 480px) {
  .badges-grid { grid-template-columns: repeat(3, 1fr); }
  .badge-icon { font-size: 1.5rem; }
}

/* ═══════════════════════════════════════════
   ریزه‌کاری‌های کارت تمرین (سبک Physitrack)
   ═══════════════════════════════════════════ */
/* نوار پیشرفت جلسه */
.sess-progress-bar {
  display: flex;
  align-items: center;
  gap: .7rem;
  background: #fff;
  border: 1px solid var(--br);
  border-radius: 12px;
  padding: .7rem 1rem;
  margin-bottom: .9rem;
}
.spb-track {
  flex: 1;
  height: 8px;
  background: var(--bg2);
  border-radius: 100px;
  overflow: hidden;
}
.spb-fill {
  height: 100%;
  background: linear-gradient(90deg, #e040fb, #81007f);
  border-radius: 100px;
  transition: width .5s cubic-bezier(.4,0,.2,1);
}
.spb-text {
  font-size: .76rem;
  font-weight: 700;
  color: var(--pr);
  white-space: nowrap;
  min-width: fit-content;
}

/* شماره تمرین */
.ex-num {
  width: 26px; height: 26px;
  min-width: 26px;
  border-radius: 50%;
  background: var(--prl);
  color: var(--pr);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .8rem;
  font-weight: 800;
  flex-shrink: 0;
  transition: background .25s, color .25s;
}
.ex-card.ex-seen .ex-num {
  background: var(--pr);
  color: #fff;
}

/* چیپ ناحیه و سطح */
.ex-chips { display: flex; gap: .3rem; flex-wrap: wrap; margin: .3rem 0; }
.ex-chip {
  font-size: .66rem;
  font-weight: 700;
  padding: .12rem .5rem;
  border-radius: 100px;
}
.ex-chip-area { background: #e0f2fe; color: #0369a1; }
.ex-chip-lvl { background: #f0fdf4; color: #15803d; }

/* تیک دیده‌شده */
.ex-check {
  width: 22px; height: 22px;
  min-width: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .8rem;
  font-weight: 900;
  color: #fff;
  background: transparent;
  transition: background .25s;
}
.ex-card.ex-seen .ex-check {
  background: var(--gr);
}

/* badge های ست/تکرار بهتر */
.rep-badge {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  font-size: .72rem;
}

/* ═══════════════════════════════════════════
   صفحه اصلی premium (سبک Hinge Health)
   ═══════════════════════════════════════════ */
/* نوار اعتماد زیر دکمه‌های hero */
.hero-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.4rem;
  flex-wrap: wrap;
  margin-top: 1.6rem;
}
.ht-item {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .82rem;
  font-weight: 600;
  color: var(--tm);
}
.ht-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--grl);
  color: var(--gr);
  font-size: .7rem;
  font-weight: 900;
}
.hero:has(.hero-bg) .ht-item { color: rgba(255,255,255,.9); }
.hero:has(.hero-bg) .ht-check { background: rgba(255,255,255,.2); color: #fff; }

/* badge نبض‌دار (حس زنده و حرفه‌ای) */
.hb {
  position: relative;
}
.hb::before {
  content: '';
  display: inline-block;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--gr);
  margin-left: .15rem;
  animation: hbpulse 2s infinite;
}
@keyframes hbpulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(5,150,105,.5); }
  50% { box-shadow: 0 0 0 5px rgba(5,150,105,0); }
}

/* تایپوگرافی مینیمال‌تر hero */
.hero h1 {
  font-size: 2.7rem;
  letter-spacing: -.03em;
}
.hero p {
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
  font-size: 1.05rem;
}
@media (max-width: 600px) {
  .hero h1 { font-size: 2rem; }
  .hero p { font-size: .95rem; }
  .hero-trust { gap: .8rem; }
  .ht-item { font-size: .76rem; }
}

/* ═══════════════════════════════════════════
   سیستم نظرات مراجعین
   ═══════════════════════════════════════════ */
/* ستاره‌های امتیاز در فرم */
.star-rate {
  display: flex;
  gap: .2rem;
  font-size: 1.8rem;
  cursor: pointer;
  direction: ltr;
  justify-content: flex-start;
}
.star-rate span {
  color: #ddd;
  transition: color .15s, transform .15s;
}
.star-rate span.on { color: #f5a623; }
.star-rate span:hover { transform: scale(1.15); }

/* کارت مدیریت نظر */
.tst-admin-card {
  background: #fff;
  border: 1px solid var(--br);
  border-radius: 14px;
  padding: 1rem 1.1rem;
  margin-bottom: .8rem;
}
.tst-admin-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  flex-wrap: wrap;
}
.tst-st {
  font-size: .72rem;
  font-weight: 700;
  padding: .2rem .6rem;
  border-radius: 100px;
}
.tst-st-ok { background: var(--grl); color: var(--gr); }
.tst-st-pend { background: #fff7e6; color: #b45309; }
.tst-st-rej { background: #fee; color: #c00; }
.tst-admin-actions {
  display: flex;
  gap: .4rem;
  flex-wrap: wrap;
  margin-top: .6rem;
}
.tst-act {
  font-size: .76rem;
  font-weight: 700;
  padding: .35rem .8rem;
  border-radius: 8px;
  border: 1px solid var(--br);
  background: #fff;
  cursor: pointer;
  font-family: inherit;
  transition: .15s;
}
.tst-act-ok { background: var(--grl); color: var(--gr); border-color: transparent; }
.tst-act-rej { color: var(--tm); }
.tst-act-del { color: #c00; }
.tst-act-feat { color: var(--pr); border-color: rgba(129,0,127,.3); }
.tst-act-feat-on { background: var(--pr); color: #fff; border-color: transparent; }
.tst-act:hover { transform: translateY(-1px); }

/* ارتباط با ما در فوتر */
.footer-contact {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.footer-contact-title {
  font-size: .9rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: .3rem;
}
.footer-contact-link {
  color: rgba(255,255,255,.8);
  text-decoration: none;
  font-size: .85rem;
  transition: color .2s;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
}
.footer-contact-link:hover { color: #fff; }
@media (max-width: 600px) {
  .footer-contact { align-items: center; }
}

/* ═══ انیمیشن دو عکس شروع/پایان حرکت ═══ */
.ex-anim-img {
  transition: opacity 0.48s ease-in-out;
  will-change: opacity;
}
.ex-anim-img.ex-anim-fading {
  opacity: 0.12;
}
.ex-thumb { position: relative; }
.ex-anim-badge {
  position: absolute;
  bottom: 3px; left: 3px;
  background: rgba(129,0,127,.9);
  color: #fff;
  font-size: .6rem;
  width: 16px; height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}

/* ═══════════════════════════════════════════
   پنل پیامک
   ═══════════════════════════════════════════ */
.sms-main-toggle {
  display: flex;
  align-items: center;
  gap: .8rem;
  background: var(--prl);
  padding: .9rem 1rem;
  border-radius: 12px;
}
/* سوییچ روشن/خاموش */
.sms-switch {
  position: relative;
  display: inline-block;
  width: 46px; height: 26px;
  flex-shrink: 0;
}
.sms-switch input { opacity: 0; width: 0; height: 0; }
.sms-slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: #ccc;
  border-radius: 100px;
  transition: .3s;
}
.sms-slider::before {
  content: '';
  position: absolute;
  height: 20px; width: 20px;
  right: 3px; bottom: 3px;
  background: #fff;
  border-radius: 50%;
  transition: .3s;
}
.sms-switch input:checked + .sms-slider { background: var(--gr); }
.sms-switch input:checked + .sms-slider::before { transform: translateX(-20px); }
.sms-switch-sm { width: 40px; height: 23px; }
.sms-switch-sm .sms-slider::before { height: 17px; width: 17px; }
.sms-switch-sm input:checked + .sms-slider::before { transform: translateX(-17px); }

/* کارت رویداد پیامک */
.sms-event-card {
  border: 1px solid var(--br);
  border-radius: 12px;
  padding: .9rem;
  margin-bottom: .7rem;
  background: #fff;
}
.sms-event-head {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: .6rem;
}
.sms-event-title { font-size: .9rem; }
.sms-to {
  font-size: .68rem;
  font-weight: 700;
  padding: .12rem .5rem;
  border-radius: 100px;
  margin-right: .3rem;
}
.sms-to-team { background: #e0f2fe; color: #0369a1; }
.sms-to-pat { background: var(--prl); color: var(--pr); }
.sms-to-coach { background: #ede7f6; color: #5e35b1; }
.sms-pat-ok { font-size: .65rem; background: var(--grl); color: var(--gr); padding: .1rem .4rem; border-radius: 999px; }
.sms-pat-miss { font-size: .65rem; background: #fff3cd; color: #856404; padding: .1rem .4rem; border-radius: 999px; }
.sms-pat-rej { font-size: .65rem; background: var(--rel); color: var(--re); padding: .1rem .4rem; border-radius: 999px; }
.sms-pattern-report { margin-bottom: 1rem; }
.sms-pr-summary { background: var(--bg); border: 1px solid var(--br); border-radius: 10px; padding: .65rem .85rem; font-size: .82rem; margin-bottom: .5rem; }
.sms-pr-block { background: #fff; border: 1px solid var(--br); border-radius: 10px; padding: .5rem .8rem; margin-bottom: .5rem; font-size: .8rem; }
.sms-pr-block ul { margin: .4rem 0 0; padding-right: 1.2rem; line-height: 1.8; }
.sms-pr-rej { border-color: var(--re); background: #fff8f8; }
.sms-tpl { font-size: .82rem; line-height: 1.7; resize: vertical; }
.sms-vars {
  font-size: .72rem;
  color: var(--tm);
  margin-top: .4rem;
}
.sms-vars code {
  background: var(--bg2);
  padding: .1rem .4rem;
  border-radius: 5px;
  direction: ltr;
  display: inline-block;
}

/* جدول تاریخچه */
.sms-log-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .82rem;
}
.sms-log-table th {
  text-align: right;
  padding: .5rem;
  border-bottom: 2px solid var(--br);
  color: var(--tm);
  font-size: .76rem;
}
.sms-log-table td {
  padding: .5rem;
  border-bottom: 1px solid var(--br);
}
.sms-st-ok { color: var(--gr); font-weight: 700; font-size: .76rem; }
.sms-st-fail { color: #c00; font-weight: 700; font-size: .76rem; }

/* ═══ تنظیمات پیگیری‌ها ═══ */
.fu-setting-grid { display: flex; flex-direction: column; gap: .5rem; }
.fu-set {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .85rem;
  color: var(--tx);
  padding: .4rem .6rem;
  background: var(--bg);
  border-radius: 8px;
  flex-wrap: wrap;
}
.fu-days {
  width: 55px !important;
  padding: .2rem .4rem !important;
  font-size: .8rem !important;
  text-align: center;
  display: inline-block;
}
/* ═══ مودال ثبت بیمار جدید ═══ */
#mo-new-patient .mdl { border-radius: 16px; }

/* ═══ دسته‌بندی برنامه‌ها ═══ */
.prog-cat-group { margin-bottom: 1.5rem; }
.prog-cat-label {
  font-size: .9rem;
  font-weight: 700;
  color: var(--pr);
  padding: .5rem .7rem;
  background: var(--prl);
  border-radius: 10px;
  margin-bottom: .7rem;
  display: inline-block;
}

/* ═══ گواهی بیمه تکمیلی ═══ */
.ins-form { border-top: 1px solid var(--br); padding-top: 1rem; margin-top: 1rem; }
.ins-areas {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .4rem;
}
.ins-area-chk {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: var(--bg);
  border: 1px solid var(--br);
  border-radius: 8px;
  padding: .25rem .6rem;
  font-size: .82rem;
  cursor: pointer;
  transition: .15s;
}
.ins-area-chk:has(input:checked) {
  background: var(--prl);
  border-color: var(--pr);
  color: var(--pr);
  font-weight: 700;
}
.ins-preview {
  background: var(--bg);
  border-radius: 10px;
  padding: .7rem;
  min-height: 40px;
  margin-bottom: .8rem;
  font-size: .85rem;
}
.ins-doc .ins-cert-text {
  border: 1px solid var(--br);
  border-radius: 10px;
  padding: 1rem;
  line-height: 2.5;
}
.ins-sig { margin-top: 1.5rem; text-align: left; font-size: .82rem; }

/* ═══ مودال درخواست جدید — ۴ گزینه ═══ */
.newreq-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .7rem;
}
.newreq-opt {
  background: #fff;
  border: 2px solid var(--br);
  border-radius: 16px;
  padding: 1rem .8rem;
  cursor: pointer;
  text-align: center;
  transition: border-color .2s, transform .2s, box-shadow .2s;
  font-family: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .3rem;
}
.newreq-opt:hover {
  border-color: var(--pr);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(129,0,127,.12);
}
.newreq-ic { font-size: 1.8rem; }
.newreq-title { font-size: .88rem; font-weight: 700; color: var(--dk); }
.newreq-desc { font-size: .72rem; color: var(--tm); line-height: 1.4; }
@media (max-width: 440px) {
  .newreq-grid { grid-template-columns: 1fr; }
}

/* ═══ صفحه ورود مراجع ═══ */
#login-otp, #login-code, #login-forgot { padding: .3rem 0; }

/* ═══ مرور تمرینات در ساخت جلسه ═══ */
.ex-pick-tabs {
  display: flex;
  gap: .4rem;
  margin-bottom: .8rem;
  border-bottom: 2px solid var(--br);
  padding-bottom: .6rem;
}
.ex-pick-tab {
  background: none;
  border: 1px solid var(--br);
  border-radius: 10px;
  padding: .35rem .9rem;
  font-size: .82rem;
  font-family: inherit;
  cursor: pointer;
  color: var(--tm);
  transition: .15s;
}
.ex-pick-tab.on {
  background: var(--pr);
  color: #fff;
  border-color: var(--pr);
  font-weight: 700;
}

/* فیلترهای مرور */
.ep-filters {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  margin-bottom: .8rem;
  flex-wrap: wrap;
}
.ep-area-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  flex: 1;
}
.ep-chip {
  background: var(--bg);
  border: 1px solid var(--br);
  border-radius: 100px;
  padding: .25rem .7rem;
  font-size: .78rem;
  font-family: inherit;
  cursor: pointer;
  color: var(--tx);
  transition: .15s;
}
.ep-chip.on {
  background: var(--pr);
  color: #fff;
  border-color: var(--pr);
  font-weight: 700;
}

/* گرید تمرینات */
.ep-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: .6rem;
  max-height: 340px;
  overflow-y: auto;
  padding: 2px;
}
.ep-card {
  background: #fff;
  border: 1px solid var(--br);
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
.ep-card:hover {
  border-color: var(--pr);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(129,0,127,.15);
}
.ep-card-img {
  position: relative;
  aspect-ratio: 4/3;
  background: var(--bg2);
  overflow: hidden;
}
.ep-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ep-thumb-ph {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
}
.ep-plus {
  position: absolute;
  top: 4px; left: 4px;
  width: 22px; height: 22px;
  background: var(--pr);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
  opacity: 0;
  transition: opacity .15s;
}
.ep-card:hover .ep-plus { opacity: 1; }
.ep-card-body {
  padding: .5rem .5rem .4rem;
}
.ep-card-title {
  font-size: .78rem;
  font-weight: 700;
  color: var(--dk);
  line-height: 1.3;
  margin-bottom: .3rem;
}
.ep-card-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .2rem;
}
.ep-tag {
  font-size: .65rem;
  padding: .1rem .35rem;
  border-radius: 100px;
}
.ep-tag-area { background: var(--prl); color: var(--pr); }
.ep-tag-lvl { background: var(--grl); color: var(--gr); }
.ep-card-sub {
  font-size: .67rem;
  color: var(--tm);
  margin-top: .2rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 500px) {
  .ep-grid { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }
}

/* ═══ پیش‌نمایش عکس و ویدیو در مودال تمرین ═══ */
.ex-media-prev { margin-top: .5rem; }
.ex-prev-wrap {
  position: relative;
  display: inline-block;
  max-width: 100%;
}
.ex-prev-img {
  display: block;
  max-width: 100%;
  max-height: 200px;
  border-radius: 10px;
  border: 2px solid var(--gr);
  cursor: zoom-in;
  object-fit: cover;
}
.ex-prev-vid {
  display: block;
  max-width: 100%;
  max-height: 200px;
  border-radius: 10px;
  border: 2px solid var(--gr);
  background: #000;
}
.ex-prev-badge {
  display: inline-block;
  font-size: .7rem;
  font-weight: 700;
  color: var(--gr);
  background: var(--grl);
  padding: .15rem .5rem;
  border-radius: 100px;
  margin: .35rem .35rem 0 0;
  vertical-align: middle;
}
.ex-prev-hint {
  display: block;
  font-size: .68rem;
  color: var(--tm);
  margin-top: .2rem;
}
.ex-prev-del {
  display: inline-block;
  font-size: .72rem;
  color: var(--re, #c00);
  background: none;
  border: 1px solid currentColor;
  border-radius: 6px;
  padding: .15rem .5rem;
  cursor: pointer;
  margin-top: .3rem;
  font-family: inherit;
  transition: .15s;
}
.ex-prev-del:hover { background: #fee; }

/* دکمه‌های پیش‌نمایش (ردیف) */
.ex-prev-actions {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  margin-top: .35rem;
}

/* ═══════════════════════════════════════════════════════════
   📱 MOBILE REDESIGN — max-width 768px
   طراحی اختصاصی موبایل — دسکتاپ دست‌نخورده می‌ماند
   ═══════════════════════════════════════════════════════════ */

/* ── عناصر موبایل پنهان در دسکتاپ ── */
.m-hamburger,
.m-nav-overlay,
.m-nav-drawer,
.m-hero-img,
.m-hero-img-ph,
.m-bottom-cta,
.m-doc-avatar,
.m-hdr-login,
.m-hdr-auth,
.m-hdr-admin,
.m-hdr-logout,
.m-footer-btns,
.footer-admin-link { display: none !important; }
.user-portal-wrap { display: block !important; }

/* ══════════════════════════════════════
   HEADER MOBILE
   ══════════════════════════════════════ */
@media (max-width: 768px) {
  /* پنهان کردن منوی افقی */
  .nav-menu { display: none !important; }
  .admin-corner { display: none; }

  /* هامبرگر — غیرفعال (ناوبری از پورتال کاربری و کارت‌های صفحه) */
  .m-hamburger,
  .m-nav-overlay,
  .m-nav-drawer { display: none !important; }

  .nav-brand-wrap {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    padding: .55rem 1rem !important;
    border-bottom: 1.5px solid var(--br);
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 9000;
    gap: .5rem;
  }
  .nav-brand {
    flex: 1;
    justify-content: flex-start;
    padding: 0 !important;
    border: none !important;
  }
  .brand-name { font-size: .9rem; }
  .brand-sub { font-size: .65rem; }

  /* دکمه‌های ورود/پروفایل هدر — حذف؛ پورتال کاربری */
  .m-hdr-login, .m-hdr-auth, .m-hdr-admin, .m-hdr-logout { display: none !important; }

  /* پورتال کاربری — سمت چپ موبایل */
  .user-portal-wrap {
    position: static !important;
    transform: none !important;
    flex-shrink: 0;
    order: 3;
  }
  .user-portal-btn {
    padding: .4rem .65rem;
    font-size: .72rem;
    border-radius: 10px;
  }
  .user-portal-btn span { max-width: 88px; overflow: hidden; text-overflow: ellipsis; }
  .user-portal-menu {
    left: 0;
    right: auto;
    min-width: min(290px, calc(100vw - 1.5rem));
  }
  .nav-brand-wrap .nav-brand { padding-right: 0 !important; padding-left: 0 !important; }

  /* دکمه ورود/پروفایل در هدر موبایل */
  .m-header-profile-btn {
    background: var(--pr);
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: .38rem .65rem;
    font-size: .72rem;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(129,0,127,.3);
  }

  /* آواتار دکتر در هدر */
  .m-doc-avatar {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 38px; height: 38px;
    border-radius: 50%;
    background: var(--prl) center/cover no-repeat;
    font-size: 1.2rem;
    border: 2px solid var(--pr);
    flex-shrink: 0;
    cursor: pointer;
  }

  /* overlay پس‌زمینه */
  .m-nav-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 99990;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s;
  }
  .m-nav-overlay.open { display: block !important; opacity: 1; pointer-events: all; }

  /* منوی کشویی (drawer) */
  .m-nav-drawer {
    position: fixed;
    top: 0; right: -280px;
    width: 280px;
    height: 100vh;
    background: #fff;
    z-index: 99999;
    transition: right .3s cubic-bezier(.4,0,.2,1);
    display: flex !important;
    flex-direction: column;
    padding: 1.2rem 1rem;
    box-shadow: -8px 0 40px rgba(0,0,0,.18);
    overflow-y: auto;
  }
  .m-nav-drawer.open { right: 0; }
  .m-nav-close {
    align-self: flex-end;
    background: var(--bg);
    border: none;
    width: 34px; height: 34px;
    border-radius: 50%;
    font-size: 1.1rem;
    cursor: pointer;
    margin-bottom: 1rem;
  }
  .m-nav-item {
    width: 100%;
    text-align: right;
    background: none;
    border: none;
    border-radius: 12px;
    padding: .85rem 1rem;
    position: relative;
    z-index: 1;
    pointer-events: auto;
    font-size: 1rem;
    font-family: inherit;
    font-weight: 600;
    color: var(--dk);
    cursor: pointer;
    transition: background .15s;
    margin-bottom: .2rem;
  }
  .m-nav-item:hover { background: var(--prl); color: var(--pr); }
  .m-nav-danger { color: #c00 !important; }

  /* ══════════════════════════════════════
     HERO MOBILE
     ══════════════════════════════════════ */
  .hero {
    padding: .85rem 1rem .25rem !important;
    min-height: auto !important;
    background: linear-gradient(160deg, #f3eaff 0%, #faf0ff 40%, #ede8ff 100%) !important;
    border-bottom: none !important;
  }
  .hero::before { display: none; }
  .hero-bg { display: none !important; }
  .hero-overlay { display: none !important; }
  .hero-dots,
  .hero.hero--slides .hero-dots { display: none !important; }

  /* grid دو‌ستونه برای hero */
  .hc {
    display: grid !important;
    grid-template-columns: 42% 1fr;
    grid-template-rows: auto;
    gap: .6rem .8rem;
    text-align: right !important;
    max-width: 100% !important;
    margin: 0 !important;
    align-items: start;
  }

  /* عکس دکتر */
  .m-hero-img {
    display: block !important;
    grid-column: 1;
    grid-row: 1 / 7;
    width: 100%;
    height: 260px;
    object-fit: cover;
    object-position: top center;
    border-radius: 20px;
    box-shadow: 0 16px 48px rgba(129,0,127,.2);
    align-self: stretch;
  }
  .m-hero-img-ph {
    display: flex !important;
    grid-column: 1;
    grid-row: 1 / 7;
    width: 100%;
    height: 260px;
    background: var(--prl);
    border-radius: 20px;
    align-items: center;
    justify-content: center;
    font-size: 5rem;
  }
  /* متن‌های hero */
  .hc > .hb, #hero-badge { grid-column: 2; grid-row: 1; margin-bottom: 0 !important; font-size: .72rem !important; }
  .hc > h1, #hero-title { grid-column: 2; grid-row: 2; font-size: 1.6rem !important; line-height: 1.25 !important; letter-spacing: -.01em !important; margin-bottom: .3rem !important; }
  .hc .hero-doc-line {
    grid-column: 2; grid-row: 3;
    font-size: .72rem !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    text-fill-color: #fff !important;
    background: var(--pr) !important;
    border: none !important;
    border-radius: 10px !important;
    padding: .35rem .65rem !important;
    font-weight: 800 !important;
    margin: 0 0 .25rem !important;
    line-height: 1.4 !important;
    display: inline-block !important;
    box-shadow: 0 6px 18px rgba(129,0,127,.3) !important;
  }
  /* دکمه‌های هیرو در موبایل — تکراری با بخش دو مسیر پایین */
  #pg-home .hero .hbs { display: none !important; }
  .hc > p, #hero-sub { grid-column: 2; grid-row: 4; font-size: .84rem !important; line-height: 1.6 !important; margin-bottom: .4rem !important; }
  .hc > .hbs { grid-column: 2; grid-row: 5; flex-direction: column !important; gap: .5rem !important; justify-content: flex-start !important; }
  .hc > .hero-trust { grid-column: 2; grid-row: 6; justify-content: flex-start !important; gap: .35rem !important; }

  /* دکمه‌های hero */
  .hbs .bp, .hbs .bw {
    width: 100% !important;
    padding: .75rem 1rem !important;
    font-size: .88rem !important;
    border-radius: 14px !important;
  }
  .hbs .bp { font-size: .9rem !important; font-weight: 800 !important; }
  
  /* trust items */
  .hero-trust .ht-item { font-size: .7rem !important; padding: .22rem .6rem !important; }

  /* متن دکتر اعتبار */
  .hc .m-hero-cred {
    grid-column: 2;
    grid-row: 3;
    font-size: .75rem;
    color: var(--pr);
    font-weight: 700;
    line-height: 1.5;
    margin-bottom: .2rem;
  }
}

/* ══════════════════════════════════════
   RESULTS — بخش نتایج (فقط موبایل)
   ══════════════════════════════════════ */
.m-results-sec {
  display: block;
  background: #fff;
  padding: 2rem 0 1.5rem;
}
.m-results-head {
  text-align: center;
  padding: 0 1.2rem;
  margin-bottom: 1.2rem;
}
.m-results-head h2 {
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--dk);
  margin-bottom: .3rem;
}
.m-results-head p {
  font-size: .85rem;
  color: var(--tm);
}
.m-results-slider {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding: 0 1.2rem 1rem;
  scrollbar-width: none;
}
.m-results-slider::-webkit-scrollbar { display: none; }

.m-result-card {
  flex: 0 0 85vw;
  max-width: 340px;
  scroll-snap-align: start;
  background: var(--bg);
  border-radius: 20px;
  overflow: hidden;
  border: 1.5px solid var(--br);
}
.m-rc-label {
  background: var(--pr);
  color: #fff;
  font-size: .85rem;
  font-weight: 700;
  padding: .5rem 1rem;
  text-align: center;
}
.m-rc-imgs {
  display: flex;
  height: 220px;
  position: relative;
}
.m-rc-img {
  flex: 1;
  position: relative;
  background: var(--bg2) center/cover no-repeat;
  overflow: hidden;
}
.m-rc-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* رنگ placeholder برای قبل/بعد */
.m-rc-before {
  background-color: #e8e0f0;
  background-image: linear-gradient(135deg, #d4c8e8 0%, #e8e0f0 100%);
}
.m-rc-after {
  background-color: #d0f0d8;
  background-image: linear-gradient(135deg, #b8e8c8 0%, #d0f4dc 100%);
}
.m-rc-tag {
  position: absolute;
  bottom: 8px; right: 8px;
  background: rgba(0,0,0,.65);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  padding: .2rem .55rem;
  border-radius: 100px;
}
.m-rc-tag-after {
  right: auto; left: 8px;
  background: var(--pr);
}
.m-rc-imgs.swapped { flex-direction: row-reverse; }
.m-rc-arrow {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%,-50%);
  width: 34px; height: 34px;
  background: var(--pr);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  box-shadow: 0 4px 12px rgba(129,0,127,.4);
  transition: transform .2s;
}
.m-rc-arrow:hover { transform: translate(-50%,-50%) scale(1.1); }
.m-results-dots {
  display: flex;
  justify-content: center;
  gap: .4rem;
  margin: .5rem 0 1rem;
}
.m-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--br2);
  transition: background .2s, width .2s;
  cursor: pointer;
}
.m-dot.on { background: var(--pr); width: 18px; border-radius: 4px; }
.m-see-results-btn {
  display: block;
  margin: 0 auto;
  background: #fff;
  border: 1.5px solid var(--pr);
  color: var(--pr);
  font-family: inherit;
  font-size: .9rem;
  font-weight: 700;
  padding: .65rem 2rem;
  border-radius: 14px;
  cursor: pointer;
  transition: .2s;
}
.m-see-results-btn:hover { background: var(--prl); }

/* نتایج — همه سایزها (دسکتاپ در media پایین‌تر grid می‌شود) */
@media (max-width: 768px) {
  .m-bottom-cta { display: flex !important; }
  .m-results-sec {
    display: block !important;
    padding: 1rem 0 1.35rem !important;
    background: #fff !important;
    border-bottom: 1px solid var(--br);
  }
  #pg-home .home-paths-sec + .m-results-sec {
    padding-top: .65rem !important;
    margin-top: 0;
  }
  .m-results-head {
    margin-bottom: .85rem;
    padding: 0 1rem;
  }
  .m-results-head h2 { font-size: 1.25rem !important; }
  .m-results-slider {
    padding: 0 1rem .75rem;
    scroll-behavior: smooth;
  }
  .m-result-card {
    flex: 0 0 88vw;
    max-width: 360px;
    scroll-snap-align: center;
  }
  .m-results-dots { display: flex !important; margin: .35rem 0 .75rem; }
}

/* ══════════════════════════════════════
   STATS MOBILE
   ══════════════════════════════════════ */
@media (max-width: 768px) {
  .stats-band { padding: 2rem 1rem !important; }
  .stats-grid {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1rem !important;
  }
  .stats-grid .stat-item:nth-child(4) { display: none; }
  .stat-num { font-size: 2.2rem !important; }
  .stat-label { font-size: .75rem !important; }
  .stat-icon { font-size: 1.5rem !important; margin-bottom: .3rem !important; }

  /* ══════════════════════════════════════
     PACKAGES MOBILE
     ══════════════════════════════════════ */
  #hpkgs { grid-template-columns: 1fr !important; gap: 1rem !important; }
  #hpkgs .pkg-card-pro, #pgrid .pkg-card-pro {
    display: grid !important;
    grid-template-columns: 110px 1fr !important;
    grid-template-rows: auto !important;
    border-radius: 18px !important;
    overflow: visible !important;
    align-items: start;
  }
  #hpkgs .pkg-card-img, #pgrid .pkg-card-img {
    grid-column: 1;
    grid-row: 1 / 3;
    width: 110px !important;
    height: 130px !important;
    border-radius: 14px !important;
    margin: .7rem 0 .7rem .7rem !important;
    flex-shrink: 0;
  }
  #hpkgs .pkg-card-body, #pgrid .pkg-card-body {
    grid-column: 2;
    padding: .7rem .7rem .7rem .5rem !important;
  }
  #hpkgs .pkg-card-title, #pgrid .pkg-card-title {
    font-size: 1rem !important;
    font-weight: 800 !important;
    margin-bottom: .35rem !important;
  }
  #hpkgs .pkg-card-foot, #pgrid .pkg-card-foot {
    grid-column: 1 / 3;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    padding: .6rem .7rem .7rem !important;
    border-top: 1px solid var(--br);
    margin-top: .2rem;
  }
  #hpkgs .pkg-card-price, #pgrid .pkg-card-price {
    font-size: 1.15rem !important;
    font-weight: 900 !important;
  }
  #hpkgs .pkg-buy-btn, #pgrid .pkg-buy-btn {
    padding: .6rem 1.2rem !important;
    font-size: .88rem !important;
    border-radius: 12px !important;
  }
  #hpkgs .pkg-card-meta, #pgrid .pkg-card-meta { font-size: .75rem !important; }
  #hpkgs .pkg-card-tag, #pgrid .pkg-card-tag { font-size: .72rem !important; }

  /* ══════════════════════════════════════
     GENERAL MOBILE TYPOGRAPHY
     ══════════════════════════════════════ */
  .sec .sh h2 { font-size: 1.55rem !important; }
  .sec .sh .sl { font-size: .78rem !important; }
  .sec { padding: 2.5rem 1rem !important; }
  .si { padding: 0 !important; }
  .g3 { grid-template-columns: 1fr !important; }
  .cd { padding: 1.2rem 1rem !important; }
  .cd h3 { font-size: 1rem !important; }
  body { font-size: 17px !important; }
  .tst-grid { grid-template-columns: 1fr !important; }
  .faq-q span { font-size: .95rem !important; }
  .faq-a { font-size: .88rem !important; line-height: 1.8 !important; }

  /* CTA band */
  .cta-band { padding: 2.5rem 1.2rem !important; }
  .cta-band h2 { font-size: 1.4rem !important; }
  .cta-btn { width: 100% !important; font-size: 1rem !important; padding: .9rem !important; }

  /* footer mobile */
  .footer-inner { grid-template-columns: 1fr !important; text-align: center; }
  .footer-links { justify-content: center; }
  .footer-contact { align-items: center !important; }
  
  /* padding برای جلوگیری از پوشیده شدن توسط CTA ثابت */
  #pg-home { padding-bottom: calc(118px + env(safe-area-inset-bottom, 0px)); }
  #pg-home.m-bc-off { padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
}

/* ══════════════════════════════════════
   CTA ثابت پایین موبایل
   ══════════════════════════════════════ */
.m-bottom-cta {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: #fff;
  color: var(--dk);
  display: flex;
  flex-direction: column;
  gap: .45rem;
  padding: .55rem .75rem calc(.55rem + env(safe-area-inset-bottom, 0px));
  z-index: 8000;
  box-shadow: 0 -6px 28px rgba(0,0,0,.15);
  border-top: 2px solid var(--pr);
}
.m-bc-full {
  width: 100%;
  border: none;
  border-radius: 12px;
  padding: .78rem 1rem;
  font-size: .84rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  line-height: 1.35;
  text-align: center;
}
.m-bc-primary {
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%);
  color: #fff;
  box-shadow: 0 4px 16px rgba(129,0,127,.45);
}
.m-bc-secondary {
  background: #fff;
  color: var(--pr);
  border: 2px solid var(--pr);
}
.m-bc-club {
  background: linear-gradient(135deg, #0d9488 0%, #059669 100%);
  color: #fff;
  box-shadow: 0 4px 16px rgba(13, 148, 136, .4);
}
.m-bottom-cta.m-bc-hidden {
  transform: translateY(110%);
  opacity: 0;
  pointer-events: none;
}
.m-bottom-cta {
  transition: transform .28s ease, opacity .28s ease;
}
.m-bottom-cta-text,
.m-bc-btn,
.m-bc-icon { display: none; }

@media (min-width: 769px) {
  .m-bottom-cta { display: none !important; }
}

/* ═══ دکمه‌های ادمین و مراجع در footer موبایل ═══ */
.m-footer-btns { display: none; }

@media (max-width: 768px) {
  .m-footer-btns {
    display: flex !important;
    gap: .5rem;
    padding: 1rem;
    border-top: 1px solid rgba(255,255,255,.12);
    margin-bottom: .5rem;
  }
  .m-footer-admin-btn,
  .m-footer-login-btn {
    flex: 1;
    background: rgba(255,255,255,.1);
    color: #fff;
    border: 1.5px solid rgba(255,255,255,.2);
    border-radius: 12px;
    padding: .7rem .5rem;
    font-family: inherit;
    font-size: .82rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .2s;
    position: relative;
  }
  .m-footer-admin-btn:hover,
  .m-footer-login-btn:hover { background: rgba(255,255,255,.18); }
  .m-footer-login-btn { background: rgba(129,0,127,.4); border-color: var(--pr); }
  .m-fab-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e53e3e;
    color: #fff;
    border-radius: 50%;
    width: 16px; height: 16px;
    font-size: .65rem;
    font-weight: 900;
    vertical-align: middle;
  }
}

/* ═══════════════════════════════════════════════════════════
   🖥️ DESKTOP REDESIGN — min-width 769px
   طراحی اختصاصی دسکتاپ — موبایل دست‌نخورده می‌ماند
   ═══════════════════════════════════════════════════════════ */

/* عناصر desktop پنهان در موبایل */
.d-hero-side { display: none; }
.how-arrow { display: none; }

/* ══════════════════════════════════════
   HERO DESKTOP — دو ستونه
   ══════════════════════════════════════ */
@media (min-width: 769px) {

  /* Hero wrapper — flex RTL: photo (اول = راست) | text (دوم = چپ) */
  .hero {
    display: flex !important;
    align-items: center;
    padding: 3.5rem 4rem !important;
    min-height: 600px;
    gap: 4rem;
    max-width: 1280px;
    margin: 0 auto !important;
    border-bottom: none !important;
    background: linear-gradient(155deg, #faf8ff 0%, #f5eeff 40%, #fff 100%) !important;
    position: relative;
    overflow: hidden;
  }
  .hero::before {
    content: '';
    position: absolute;
    top: -80px; right: -80px;
    width: 500px; height: 500px;
    background: radial-gradient(circle, rgba(129,0,127,.08) 0%, transparent 70%);
    pointer-events: none;
  }
  /* hero-bg slides — hidden on desktop (photo shown via d-hero-doc-img) */
  .hero-bg { display: none !important; }
  .hero-overlay { display: none !important; }
  .hero-dots { display: none !important; }

  /* ستون عکس (راست — اول در RTL flex) */
  .d-hero-side {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    gap: 1.2rem;
    width: 42%;
    flex-shrink: 0;
    position: relative;
  }
  .d-hero-photo-wrap {
    position: relative;
    width: 100%;
    max-width: 400px;
  }
  .d-hero-glow {
    position: absolute;
    inset: -20px;
    background: radial-gradient(ellipse 70% 80% at 50% 60%, rgba(129,0,127,.12) 0%, transparent 70%);
    border-radius: 50%;
    z-index: 0;
  }
  .d-hero-doc-img {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 480px;
    object-fit: cover;
    object-position: top center;
    border-radius: 28px;
    box-shadow: 0 30px 80px rgba(129,0,127,.18), 0 8px 24px rgba(0,0,0,.1);
    display: block;
  }
  .d-hero-doc-ph {
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: var(--prl);
    font-size: 8rem;
    border-radius: 28px;
  }

  /* کارت آمار شناور */
  .d-hero-stats-card {
    display: flex;
    align-items: center;
    background: #fff;
    border-radius: 20px;
    padding: 1rem 1.5rem;
    gap: 1rem;
    box-shadow: 0 8px 32px rgba(0,0,0,.1), 0 2px 8px rgba(129,0,127,.08);
    border: 1px solid rgba(129,0,127,.1);
    width: 100%;
    max-width: 380px;
  }
  .d-hs-item { text-align: center; flex: 1; }
  .d-hs-num { font-size: 1.4rem; font-weight: 900; color: var(--pr); line-height: 1; margin-bottom: .2rem; }
  .d-hs-label { font-size: .72rem; color: var(--tm); font-weight: 500; }
  .d-hs-sep { width: 1px; height: 36px; background: var(--br); }

  /* ستون متن (چپ — دوم در RTL flex) */
  .hc {
    flex: 1;
    text-align: right !important;
    max-width: 580px !important;
    margin: 0 !important;
    display: block !important;
  }
  /* پنهان کردن عکس موبایل در دسکتاپ */
  .m-hero-img, .m-hero-img-ph { display: none !important; }
  .m-hero-text { display: block; }
  .hb { font-size: .85rem !important; margin-bottom: 1rem !important; }
  .hero h1, #hero-title {
    font-size: 3rem !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    color: var(--dk) !important;
    margin-bottom: .9rem !important;
    letter-spacing: -.02em !important;
    background: none !important;
    -webkit-text-fill-color: var(--dk) !important;
    text-fill-color: var(--dk) !important;
  }
  #hero-sub {
    font-size: 1.05rem !important;
    color: var(--tm) !important;
    line-height: 1.8 !important;
    margin-bottom: 1.5rem !important;
    background: none !important;
    -webkit-text-fill-color: var(--tm) !important;
    text-fill-color: var(--tm) !important;
  }
  /* متن اعتبار دکتر */
  .hc .hero-cred {
    font-size: .85rem;
    color: var(--pr);
    font-weight: 700;
    margin-bottom: 1.2rem;
    padding-bottom: .8rem;
    border-bottom: 1px solid var(--br);
  }
  .hbs {
    justify-content: flex-start !important;
    gap: .85rem !important;
  }
  .hbs .bp {
    padding: .85rem 2rem !important;
    font-size: 1rem !important;
    border-radius: 14px !important;
    min-width: 180px;
  }
  .hbs .bw {
    padding: .85rem 1.6rem !important;
    font-size: 1rem !important;
    border-radius: 14px !important;
  }
  .hero-trust {
    margin-top: 1.5rem !important;
    justify-content: flex-start !important;
  }
  .hero-doc-line {
    font-size: .88rem !important;
    margin-bottom: .85rem !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    text-fill-color: #fff !important;
    background: var(--pr) !important;
    border-radius: 12px !important;
    padding: .45rem 1rem !important;
    display: inline-block !important;
    font-weight: 700 !important;
    box-shadow: 0 8px 24px rgba(129, 0, 127, .35) !important;
  }
  .hero:has(.hero-bg) #hero-sub {
    color: #fff !important;
    background: var(--prm) !important;
    -webkit-text-fill-color: #fff !important;
    text-fill-color: #fff !important;
    border-radius: 12px;
    padding: .5rem 1.1rem;
    display: inline-block;
    box-shadow: 0 8px 24px rgba(129, 0, 127, .35);
  }
  .ht-item {
    font-size: .82rem !important;
    background: var(--bg) !important;
    color: var(--dk) !important;
    border: 1.5px solid var(--br) !important;
    padding: .4rem .9rem !important;
  }
  .ht-check {
    background: var(--pr) !important;
    color: #fff !important;
  }

  /* ══════════════════════════════════════
     RESULTS DESKTOP — 4 ستونه
     ══════════════════════════════════════ */
  .m-results-sec {
    display: block !important;
    padding: 5rem 2rem !important;
    background: #f9f7ff !important;
  }
  .m-results-head h2 { font-size: 2.5rem !important; }
  .m-results-head p { font-size: 1rem !important; }
  .m-results-slider {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1.25rem !important;
    overflow: visible !important;
    padding: 0 !important;
    max-width: 1200px !important;
    margin: 0 auto 1.5rem !important;
  }
  .m-result-card {
    flex: none !important;
    max-width: none !important;
    width: auto !important;
    border-radius: 20px !important;
    box-shadow: 0 6px 24px rgba(0,0,0,.08) !important;
    transition: transform .25s, box-shadow .25s !important;
    scroll-snap-align: none !important;
  }
  .m-result-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 16px 48px rgba(129,0,127,.15) !important;
  }
  .m-rc-imgs { height: 260px !important; }
  .m-rc-label { font-size: .95rem !important; padding: .65rem 1rem !important; }
  .m-results-dots { display: none !important; }
  .m-see-results-btn { font-size: 1rem !important; padding: .8rem 2.5rem !important; }

  /* ══════════════════════════════════════
     چطور کار می‌کنیم — DESKTOP
     ══════════════════════════════════════ */
  .how-steps {
    display: flex;
    align-items: flex-start;
    gap: 0;
    margin-top: 2rem;
  }
  .how-step {
    flex: 1;
    background: #fff;
    border-radius: 20px;
    padding: 2rem 1.5rem;
    text-align: center;
    border: 1.5px solid var(--br);
    box-shadow: 0 4px 16px rgba(0,0,0,.05);
    transition: .25s;
    position: relative;
  }
  .how-step:hover {
    border-color: rgba(129,0,127,.3);
    box-shadow: 0 12px 40px rgba(129,0,127,.12);
    transform: translateY(-4px);
  }
  .how-num {
    position: absolute;
    top: -14px; right: 50%;
    transform: translateX(50%);
    background: var(--pr);
    color: #fff;
    width: 28px; height: 28px;
    border-radius: 50%;
    font-size: .8rem;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(129,0,127,.35);
  }
  .how-icon { font-size: 2.5rem; margin-bottom: .7rem; display: block; }
  .how-step h3 { font-size: 1rem; font-weight: 800; color: var(--dk); margin-bottom: .5rem; }
  .how-step p { font-size: .83rem; color: var(--tm); line-height: 1.65; }
  .how-arrow {
    display: flex !important;
    align-items: center;
    font-size: 1.5rem;
    color: var(--br2);
    padding: 0 .2rem;
    margin-top: 3rem;
    flex-shrink: 0;
    transform: rotate(180deg); /* RTL */
  }

  /* ══════════════════════════════════════
     PACKAGES DESKTOP
     ══════════════════════════════════════ */
  #hpkgs .g3, #pgrid .g3 {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.5rem !important;
  }
  #hpkgs .pkg-card-pro, #pgrid .pkg-card-pro {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: unset !important;
    border-radius: 24px !important;
  }
  #hpkgs .pkg-card-img, #pgrid .pkg-card-img {
    width: auto !important; height: 180px !important;
    border-radius: 0 !important; margin: 0 !important;
  }
  #hpkgs .pkg-card-body, #pgrid .pkg-card-body { padding: 1.4rem !important; }
  #hpkgs .pkg-card-title, #pgrid .pkg-card-title { font-size: 1.25rem !important; }
  #hpkgs .pkg-card-foot, #pgrid .pkg-card-foot {
    display: flex !important; padding: 1rem 1.4rem !important;
    border-top: 1px solid var(--br) !important; margin-top: 0 !important;
    grid-column: unset !important;
  }
  #hpkgs .pkg-card-price, #pgrid .pkg-card-price { font-size: 1.4rem !important; }
  #hpkgs .pkg-buy-btn, #pgrid .pkg-buy-btn {
    padding: .7rem 1.5rem !important; font-size: .95rem !important;
  }
  /* ویژگی‌های پکیج */
  .pkg-features-list {
    list-style: none;
    padding: 0; margin: .6rem 0;
    display: flex; flex-direction: column; gap: .35rem;
  }
  .pkg-features-list li {
    font-size: .82rem; color: var(--tm);
    display: flex; align-items: center; gap: .4rem;
  }
  .pkg-features-list li::before {
    content: '✓';
    color: var(--gr); font-weight: 900; font-size: .8rem;
    flex-shrink: 0;
  }

  /* ══════════════════════════════════════
     TYPOGRAPHY DESKTOP
     ══════════════════════════════════════ */
  .sec .sh h2 { font-size: 2.4rem !important; }
  .sec .sh .sl { font-size: .9rem !important; }
  .sec { padding: 5rem 2rem !important; }
  .si { max-width: 1200px !important; margin: 0 auto !important; padding: 0 !important; }
  body { font-size: 18px !important; }
  .cd h3 { font-size: 1.1rem !important; }
  .cd p { font-size: .9rem !important; }

  /* TESTIMONIALS 3-column desktop */
  .tst-grid {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.5rem !important;
  }
  .tst-card {
    border-radius: 20px !important;
    padding: 1.75rem !important;
  }
  .tst-text { font-size: 1rem !important; line-height: 1.8 !important; }
  .tst-name { font-size: 1rem !important; font-weight: 800 !important; }

  /* CTA BAND DESKTOP */
  .cta-band {
    padding: 5rem 2rem !important;
  }
  .cta-band h2 { font-size: 2.8rem !important; margin-bottom: .7rem !important; }
  .cta-band p { font-size: 1.1rem !important; margin-bottom: 2rem !important; }
  .cta-btn {
    font-size: 1.1rem !important;
    padding: 1rem 3rem !important;
    border-radius: 18px !important;
  }

  /* STATS BAND DESKTOP */
  .stats-band { padding: 4rem 2rem !important; }
  .stats-grid { max-width: 1200px !important; grid-template-columns: repeat(4, 1fr) !important; }
  .stat-num { font-size: 3.2rem !important; }
  .stat-label { font-size: 1rem !important; }

  /* FAQ DESKTOP */
  .faq-wrap { max-width: 900px !important; }
  .faq-q span { font-size: 1.05rem !important; }
  .faq-a { font-size: .95rem !important; }
}

/* ══════════════════════════════════════
   «چطور کار می‌کنیم» — MOBILE
   ══════════════════════════════════════ */
@media (max-width: 768px) {
  .how-steps {
    display: flex;
    flex-direction: column;
    gap: .8rem;
  }
  .how-step {
    background: #fff;
    border-radius: 16px;
    padding: 1.2rem 1rem;
    border: 1.5px solid var(--br);
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    text-align: right;
    position: relative;
  }
  .how-num {
    position: static;
    transform: none;
    background: var(--pr);
    color: #fff;
    width: 28px; height: 28px;
    border-radius: 50%;
    font-size: .82rem;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: .2rem;
  }
  .how-icon { font-size: 1.5rem; display: none; }
  .how-step h3 { font-size: .95rem; font-weight: 800; color: var(--dk); margin-bottom: .3rem; }
  .how-step p { font-size: .82rem; color: var(--tm); line-height: 1.6; }
  .how-arrow { display: none !important; }
  .how-sec { padding: 1.5rem 1rem !important; }
}

/* ═══ پنل مدیریت نتایج قبل/بعد ═══ */
.results-admin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.res-admin-card {
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 14px;
  overflow: hidden;
}
.res-admin-imgs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 140px;
}
.res-admin-thumb {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.res-admin-ph {
  display: flex; align-items: center; justify-content: center;
  background: var(--bg2); color: var(--tm);
  font-size: .75rem; font-weight: 700;
}
.res-admin-info {
  padding: .6rem .8rem;
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  font-size: .85rem;
}
.res-admin-acts {
  padding: .4rem .8rem .7rem;
  display: flex; gap: .4rem;
}

/* ═══ اطلاعات مجموعه در footer ═══ */
.footer-brand-centered {
  text-align: center !important;
  align-items: center !important;
}
.footer-brand-centered .footer-clinic-row {
  text-align: center;
  direction: rtl;
}
.footer-clinic-row {
  font-size: .78rem;
  color: rgba(255,255,255,.65);
  margin-top: .35rem;
  line-height: 1.5;
}
.footer-clinic-row a:hover { color: #fff; }

/* ═══ نوار خلاصه کوچک بالای برنامه‌ها ═══ */
.pat-mini-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%);
  color: #fff;
  border-radius: 14px;
  padding: .75rem 1.1rem;
  margin-bottom: .9rem;
  min-height: 52px;
  box-shadow: 0 4px 16px rgba(129,0,127,.2);
}
.pmb-greeting {
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: -.01em;
}
.pmb-meta {
  display: flex;
  align-items: center;
  gap: .3rem;
  font-size: .8rem;
  opacity: .88;
  font-weight: 600;
}
.pmb-dot::before {
  content: '';
  display: inline-block;
  width: 7px; height: 7px;
  background: #a8ff78;
  border-radius: 50%;
  margin-left: .4rem;
  vertical-align: middle;
}
.pmb-pct { opacity: .8; }

@media (max-width: 768px) {
  .pat-mini-bar { flex-direction: column; align-items: flex-end; gap: .3rem; padding: .7rem 1rem; text-align: right; }
  .pmb-greeting { font-size: .95rem; text-align: right; width: 100%; }
  .pmb-meta { text-align: right; width: 100%; justify-content: flex-end; }
}

/* ══════════════════════════════════════════════════════
   🏋️ تمرینات — طراحی جدید mobile-first
   ══════════════════════════════════════════════════════ */

/* عنوان جلسه */
.sess-header-v2 {
  background: var(--pr);
  color: #fff;
  border-radius: 16px;
  padding: 1rem 1.2rem;
  margin-bottom: 1rem;
}
.shv2-title { font-size: 1.15rem; font-weight: 900; }
.shv2-sub { font-size: .82rem; opacity: .85; margin-top: .2rem; }

/* نوار پیشرفت جلسه */
.sess-prog-v2 {
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 14px;
  padding: .9rem 1rem;
  margin-bottom: 1rem;
}
.spv2-label {
  display: flex;
  justify-content: space-between;
  font-size: .85rem;
  font-weight: 600;
  margin-bottom: .5rem;
  color: var(--dk);
}
.spv2-track {
  background: var(--bg2);
  border-radius: 100px;
  height: 10px;
  overflow: hidden;
}
.spv2-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--gr) 0%, #a8ff78 100%);
  border-radius: 100px;
  transition: width .5s ease;
}

/* کارت تمرین جدید */
.ex-card-v2 {
  background: #fff;
  border: 2px solid var(--br);
  border-radius: 20px;
  margin-bottom: 1rem;
  overflow: hidden;
  transition: border-color .25s, box-shadow .25s;
}
.ex-card-v2.ex-active {
  border-color: var(--pr);
  box-shadow: 0 4px 20px rgba(129,0,127,.15);
}
.ex-card-v2.ex-completed {
  border-color: var(--gr);
  background: #f0fdf4;
  opacity: .85;
}
.ex-card-v2.ex-completed .ecv2-title { text-decoration: line-through; color: var(--tm); }

/* هدر کارت */
.ecv2-top {
  display: flex;
  align-items: center;
  gap: .7rem;
  padding: .9rem 1rem .7rem;
  border-bottom: 1px solid var(--br);
}
.ecv2-num {
  width: 30px; height: 30px;
  background: var(--pr);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  font-weight: 900;
  flex-shrink: 0;
}
.ex-completed .ecv2-num { background: var(--gr); }
.ecv2-title-wrap { flex: 1; }
.ecv2-title { font-size: 1rem; font-weight: 800; color: var(--dk); }
.ecv2-status { font-size: 1.3rem; flex-shrink: 0; }

/* تصویر */
.ecv2-img-wrap {
  position: relative;
  width: 100%;
  max-width: 380px;
  margin: 0 auto;
  aspect-ratio: 1 / 1;   /* مربعی — با max-width به‌جای max-height، در هر اندازه صفحه مربع می‌ماند */
  background: var(--bg2);
  overflow: hidden;
}
.ecv2-img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity .3s;
}
.ecv2-img-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4rem;
}
.ecv2-anim-badge {
  position: absolute;
  top: 8px; left: 8px;
  background: rgba(0,0,0,.55);
  color: #fff;
  font-size: .68rem;
  padding: .2rem .5rem;
  border-radius: 100px;
}

/* متا */
.ecv2-meta {
  padding: .7rem 1rem .4rem;
  font-size: .82rem;
  color: var(--tm);
  line-height: 1.7;
}
.ecv2-note {
  margin: .3rem 1rem;
  padding: .5rem .7rem;
  background: #fff7e6;
  border-radius: 10px;
  font-size: .82rem;
  color: #7a5800;
}
.ecv2-warn {
  margin: .3rem 1rem;
  padding: .5rem .7rem;
  background: #fff0f0;
  border-radius: 10px;
  font-size: .82rem;
  color: #c0392b;
}

/* دکمه‌های عمل */
.ecv2-actions {
  padding: .8rem 1rem 1rem;
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.ecv2-video-btn {
  width: 100%;
  background: #fff;
  border: 2px solid var(--pr);
  color: var(--pr);
  border-radius: 14px;
  padding: .8rem 1rem;
  font-size: .95rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  transition: .15s;
}
.ecv2-video-btn:hover { background: var(--prl); }

.ecv2-done-btn {
  width: 100%;
  background: var(--gr);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: .9rem 1rem;
  font-size: 1rem;
  font-weight: 900;
  font-family: inherit;
  cursor: pointer;
  transition: .2s;
  box-shadow: 0 4px 14px rgba(39,174,96,.3);
}
.ecv2-done-btn:disabled {
  background: var(--br2);
  color: var(--tm);
  box-shadow: none;
  cursor: default;
}
.ecv2-done-btn:active { transform: scale(.98); }

/* ویدیو داخلی */
.ecv2-video-panel {
  padding: 0 1rem .8rem;
}
.ecv2-video {
  width: 100%;
  border-radius: 12px;
  background: #000;
  max-height: 250px;
}
.ecv2-video-close {
  display: block;
  margin: .4rem auto 0;
  background: none;
  border: 1px solid var(--br);
  border-radius: 8px;
  padding: .3rem .8rem;
  font-size: .78rem;
  color: var(--tm);
  cursor: pointer;
  font-family: inherit;
}

/* دکمه پایان جلسه */
.ecv2-redo-btn {
  display: block;
  margin: .5rem auto 0;
  background: var(--bg);
  border: 1.5px solid var(--br);
  border-radius: 14px;
  padding: .7rem 2rem;
  font-size: .9rem;
  font-family: inherit;
  cursor: pointer;
  color: var(--dk);
}

@media (max-width: 480px) {
  .ecv2-title { font-size: .95rem; }
}

/* ═══ برنامه‌های accordion ═══ */
.all-progs-wrap { display: flex; flex-direction: column; gap: 1rem; }
.prog-sec {
  border: 2px solid var(--br);
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
}
.ps-head {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .9rem 1.1rem;
  background: linear-gradient(135deg, var(--prl) 0%, #f5eeff 100%);
  border-bottom: 1.5px solid var(--br);
}
.ps-icon { font-size: 1.5rem; flex-shrink: 0; }
.ps-info { flex: 1; }
.ps-title { font-size: 1.05rem; font-weight: 900; color: var(--dk); }
.ps-meta { font-size: .78rem; color: var(--tm); margin-top: .1rem; }
.ps-badge {
  background: var(--pr);
  color: #fff;
  font-size: .78rem;
  font-weight: 700;
  padding: .25rem .7rem;
  border-radius: 100px;
  flex-shrink: 0;
}
.ps-body { padding: .8rem; }
.ps-sess-header {
  background: var(--pr);
  color: #fff;
  border-radius: 12px;
  padding: .7rem 1rem;
  margin-bottom: .8rem;
}
.ps-sess-title { font-size: .95rem; font-weight: 800; }
.ps-sess-sub { font-size: .75rem; opacity: .85; margin-top: .15rem; }

/* ═══ دکمه درخواست جدید بزرگ ═══ */
.new-req-big-btn {
  display: block;
  width: 100%;
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%);
  color: #fff;
  border: none;
  border-radius: 16px;
  padding: 1rem 1.5rem;
  font-size: 1.05rem;
  font-weight: 900;
  font-family: inherit;
  cursor: pointer;
  margin: .7rem 0 1rem;
  box-shadow: 0 6px 20px rgba(129,0,127,.25);
  transition: transform .15s, box-shadow .15s;
  text-align: center;
}
.new-req-big-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(129,0,127,.35); }
.new-req-big-btn:active { transform: translateY(0); }

/* ═══ کارت برنامه — یک برنامه ═══ */
.prog-single-card {
  background: #fff;
  border: 2px solid var(--br);
  border-radius: 20px;
  padding: 1.5rem 1.2rem;
  text-align: center;
}
.psc-icon { font-size: 2.8rem; margin-bottom: .5rem; }
.psc-title { font-size: 1.3rem; font-weight: 900; color: var(--dk); margin-bottom: .3rem; }
.psc-meta { font-size: .83rem; color: var(--tm); margin-bottom: 1rem; }
.psc-bar-wrap { margin-bottom: .4rem; }
.psc-bar-track { background: var(--bg2); border-radius: 100px; height: 10px; overflow: hidden; margin-bottom: .3rem; }
.psc-bar-fill { height: 100%; background: linear-gradient(90deg,var(--gr),#a8ff78); border-radius: 100px; transition: width .5s; }
.psc-pct { font-size: .8rem; color: var(--tm); }
.psc-hint { font-size: .85rem; color: var(--tm); margin: 1rem 0 .7rem; line-height: 1.6; }
.psc-enter-btn {
  width: 100%;
  background: var(--pr);
  color: #fff;
  border: none;
  border-radius: 16px;
  padding: 1rem 1.5rem;
  font-size: 1.05rem;
  font-weight: 900;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(129,0,127,.25);
  transition: .15s;
}
.psc-enter-btn:hover { opacity: .9; transform: translateY(-2px); }

/* ═══ کارت‌های چند برنامه ═══ */
.prog-multi-list { display: flex; flex-direction: column; gap: .9rem; }
.prog-multi-card {
  background: #fff;
  border: 2px solid var(--br);
  border-radius: 18px;
  padding: 1.1rem 1.1rem .9rem;
  transition: border-color .2s;
}
.prog-multi-card:hover { border-color: rgba(129,0,127,.3); }
.pmc-head { display: flex; align-items: center; gap: .7rem; margin-bottom: .7rem; }
.pmc-icon { font-size: 1.6rem; flex-shrink: 0; }
.pmc-info { flex: 1; }
.pmc-title { font-size: 1.05rem; font-weight: 900; color: var(--dk); }
.pmc-meta { font-size: .78rem; color: var(--tm); margin-top: .15rem; }
.pmc-pct { font-size: 1.1rem; font-weight: 800; color: var(--pr); flex-shrink: 0; }
.pmc-bar { background: var(--bg2); border-radius: 100px; height: 8px; overflow: hidden; margin-bottom: .7rem; }
.pmc-fill { height: 100%; background: linear-gradient(90deg,var(--gr),#a8ff78); border-radius: 100px; transition: width .5s; }
.pmc-hint { font-size: .82rem; color: var(--tm); margin-bottom: .6rem; }
.pmc-btn {
  width: 100%;
  background: var(--pr);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: .8rem 1rem;
  font-size: .95rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  transition: .15s;
  box-shadow: 0 4px 14px rgba(129,0,127,.2);
}
.pmc-btn:hover { opacity: .9; }
.pml-exp { font-size: .75rem; }

/* ═══ بازخورد تمرین (داخل کارت) ═══ */
.ecv2-fb-panel {
  border-top: 1.5px solid var(--br);
  padding: .7rem .9rem .8rem;
  background: var(--bg);
}
.ecv2-fb-btns {
  display: flex;
  gap: .5rem;
  margin-bottom: .5rem;
}
.ecv2-fb-toggle {
  flex: 1;
  background: #fff;
  border: 1.5px solid var(--pr);
  color: var(--pr);
  border-radius: 10px;
  padding: .55rem .8rem;
  font-size: .83rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: .15s;
}
.ecv2-fb-toggle:hover { background: var(--prl); }
.ecv2-undo-btn {
  background: #fff;
  border: 1.5px solid var(--br2);
  color: var(--tm);
  border-radius: 10px;
  padding: .55rem .8rem;
  font-size: .82rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
}
.ecv2-undo-btn:hover { border-color: var(--am); color: var(--am); }

/* عنوان بخش بازخورد انتهای جلسه */
.sfb-section-title {
  text-align: center;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--gr);
  margin-bottom: 1rem;
  padding: 1rem;
  background: #f0fdf4;
  border-radius: 14px;
  border: 1.5px solid var(--gr);
}
.sess-feedback-wrap {
  background: #fff;
  border: 2px solid var(--br);
  border-radius: 18px;
  padding: 1.2rem;
  margin-top: .8rem;
}

/* ═══ صفحه جلسات عمودی ═══ */
.sv-head {
  padding: .6rem 0 .8rem;
}
.sv-prog-title {
  font-size: 1.2rem;
  font-weight: 900;
  color: var(--dk);
  margin: .5rem 0 .15rem;
}
.sv-prog-meta { font-size: .82rem; color: var(--tm); }

.sv-sess-list { display: flex; flex-direction: column; gap: .65rem; margin-top: .8rem; }

.sv-sess-card {
  background: #fff;
  border: 2px solid var(--br);
  border-radius: 16px;
  padding: .85rem 1rem;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s;
}
.sv-sess-card:not(.svc-locked):hover {
  border-color: var(--pr);
  box-shadow: 0 4px 16px rgba(129,0,127,.12);
}
.sv-sess-card.svc-current {
  border-color: var(--pr);
  background: linear-gradient(135deg, #faf5ff 0%, #fff 100%);
}
.sv-sess-card.svc-done {
  border-color: var(--gr);
  background: #f0fdf4;
}
.sv-sess-card.svc-locked {
  opacity: .55;
  cursor: not-allowed;
}

.svc-row {
  display: flex;
  align-items: center;
  gap: .7rem;
}
.svc-icon { font-size: 1.4rem; flex-shrink: 0; }
.svc-info { flex: 1; }
.svc-title { font-size: 1rem; font-weight: 800; color: var(--dk); }
.svc-count {
  display: inline-block;
  margin-top: .2rem;
  background: var(--grl);
  color: var(--gr);
  font-size: .75rem;
  font-weight: 700;
  padding: .12rem .55rem;
  border-radius: 100px;
}
.svc-arrow {
  font-size: 1.3rem;
  color: var(--pr);
  font-weight: 900;
  flex-shrink: 0;
}
.svc-hint {
  font-size: .78rem;
  color: var(--tm);
  margin-top: .4rem;
  padding-top: .4rem;
  border-top: 1px solid var(--br);
}
.svc-current .svc-hint { color: var(--pr); font-weight: 600; }

/* ═══ پنل کاستومایز برنامه ═══ */
.cust-prog-sec {
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 14px;
  margin-bottom: 1.2rem;
  overflow: hidden;
}
.cust-prog-head {
  background: linear-gradient(135deg,var(--prl),#f5eeff);
  font-weight: 800;
  font-size: .95rem;
  color: var(--dk);
  padding: .75rem 1rem;
  border-bottom: 1.5px solid var(--br);
}
.cust-sess-label {
  background: var(--bg2);
  font-size: .8rem;
  font-weight: 700;
  color: var(--tm);
  padding: .35rem 1rem;
  border-bottom: 1px solid var(--br);
}
.cust-ex-row {
  padding: .75rem 1rem;
  border-bottom: 1px solid var(--br);
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.cust-ex-row:last-child { border-bottom: none; }
.cust-ex-name {
  font-size: .9rem;
  font-weight: 700;
  color: var(--dk);
  display: flex;
  align-items: center;
  gap: .4rem;
  flex-wrap: wrap;
}
.cust-eq-badge {
  background: #fff3cd;
  color: #856404;
  font-size: .7rem;
  padding: .1rem .45rem;
  border-radius: 100px;
  font-weight: 600;
}
.cust-ex-inputs {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: .5rem;
  align-items: end;
}
.cust-inp-wrap label {
  display: block;
  font-size: .72rem;
  color: var(--tm);
  margin-bottom: .2rem;
}
.cust-save-btn {
  background: var(--pr);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: .55rem .8rem;
  font-size: 1rem;
  cursor: pointer;
  height: fit-content;
  align-self: flex-end;
  transition: .2s;
}
.cust-save-btn:hover { opacity: .85; }
@media (max-width: 480px) {
  .cust-ex-inputs { grid-template-columns: 1fr; }
}

/* ═══ کاستومایز برنامه — جدید ═══ */
.cust-info-box {
  background: #fffbeb; border: 1.5px solid #fcd34d;
  border-radius: 10px; padding: .75rem 1rem;
  font-size: .82rem; color: #78350f; margin-bottom: 1rem;
}
.cust-prog-list { display: flex; flex-direction: column; gap: .6rem; }
.cust-prog-item { border: 1.5px solid var(--br); border-radius: 14px; overflow: hidden; }
.cust-prog-hdr {
  display: flex; align-items: center; gap: .6rem;
  padding: .8rem 1rem; cursor: pointer;
  background: linear-gradient(135deg,var(--prl),#f9f7ff);
  transition: background .15s;
}
.cust-prog-hdr:hover { background: linear-gradient(135deg,#e8d8ff,#f0eaff); }
.cpi-icon { font-size: 1.1rem; flex-shrink: 0; }
.cpi-name { font-weight: 800; color: var(--dk); flex: 1; }
.cpi-sub { font-size: .75rem; color: var(--tm); }
.cpi-arrow { color: var(--pr); font-weight: 700; font-size: .9rem; flex-shrink: 0; }
.cpi-body { padding: .7rem; background: #fff; }

.cust-sess-block { margin-bottom: 1rem; }
.cust-sess-lbl {
  font-weight: 700; font-size: .82rem; color: var(--pr);
  padding: .4rem .6rem; background: var(--prl); border-radius: 8px;
  margin-bottom: .5rem;
}
.cust-ex-table { border: 1px solid var(--br); border-radius: 10px; overflow: hidden; }
.cust-th {
  display: grid;
  grid-template-columns: 2fr .6fr .6fr 1fr 1.4fr .4fr;
  gap: .3rem; padding: .4rem .6rem;
  background: var(--bg2); font-size: .72rem; font-weight: 700; color: var(--tm);
}
.cust-ex-row2 {
  display: grid;
  grid-template-columns: 2fr .6fr .6fr 1fr 1.4fr .4fr;
  gap: .3rem; padding: .45rem .6rem;
  align-items: center;
  border-top: 1px solid var(--br);
}
.cxr-name { font-size: .82rem; font-weight: 600; color: var(--dk); display: flex; align-items: center; flex-wrap: wrap; gap: .25rem; }
.cust-eq-sm { background: #fff3cd; color: #856404; font-size: .65rem; padding: .1rem .35rem; border-radius: 100px; }
.cxr-inp { min-width: 0; }
.cxr-save {
  background: var(--pr); color: #fff; border: none; border-radius: 7px;
  padding: .3rem .5rem; font-size: .85rem; cursor: pointer; width: 100%;
  transition: .15s;
}
.cxr-save:hover { opacity: .85; }
@media (max-width: 768px) {
  .cust-th { display: none; }
  .cust-ex-row2 { grid-template-columns: 1fr; gap: .35rem; }
  .cxr-name { font-size: .9rem; margin-bottom: .2rem; }
}

/* ═══ کارت‌های فاکتور بیمار ═══ */
.inv-list { display: flex; flex-direction: column; gap: .8rem; }
.inv-card {
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 14px;
  padding: 1rem 1.1rem;
}
.inv-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .5rem;
}
.inv-no { font-size: .82rem; color: var(--tm); font-weight: 600; font-family: monospace; }
.inv-status { font-size: .78rem; font-weight: 700; padding: .2rem .6rem; border-radius: 100px; }
.inv-st-paid { background: var(--grl); color: var(--gr); }
.inv-st-pending { background: #fff3cd; color: #856404; }
.inv-st-cancelled { background: #fee; color: #c00; }
.inv-title { font-size: 1rem; font-weight: 800; color: var(--dk); margin-bottom: .4rem; }
.inv-meta {
  display: flex;
  align-items: center;
  gap: .8rem;
  flex-wrap: wrap;
  margin-bottom: .4rem;
}
.inv-amount { font-size: 1.1rem; font-weight: 900; color: var(--pr); }
.money-inp {
  direction: ltr;
  text-align: left;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
}
.inv-ref { font-size: .75rem; color: var(--tm); font-family: monospace; }
.inv-date { font-size: .78rem; color: var(--tm); margin-bottom: .7rem; }
.inv-insurance {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .6rem .8rem;
  background: var(--bg);
  border-radius: 10px;
  border: 1.5px solid var(--br);
  cursor: pointer;
  font-size: .85rem;
  font-weight: 600;
  color: var(--dk);
  transition: .15s;
}
.inv-insurance:hover { border-color: var(--pr); }
.inv-insurance input[type="checkbox"] {
  width: 18px; height: 18px;
  accent-color: var(--pr);
  cursor: pointer;
}
.inv-ins-date { font-size: .72rem; color: var(--tm); margin-right: auto; }


/* ═══ بهبودهای موبایل برای انتشار ═══ */
/* جلوگیری از zoom خودکار iOS هنگام focus روی input */
@media (max-width: 768px) {
  .fc, input, select, textarea {
    font-size: 16px !important;
  }
  /* استثنا: input های کوچک کاستومایز که عمداً کوچک‌اند */
  .cxr-inp { font-size: 16px !important; }
}

/* جلوگیری از اسکرول افقی ناخواسته */
html, body {
  overflow-x: hidden;
}
img, video { max-width: 100%; height: auto; }

/* بهبود لمس‌پذیری دکمه‌ها در موبایل */
@media (max-width: 768px) {
  button, .nb, .ptab, .sbi {
    min-height: 44px; /* استاندارد Apple برای لمس */
  }
}

/* ═══ باکس ثبت‌نام در صفحه ورود ═══ */
.login-register-box {
  margin-top: 1.2rem;
  padding: 1.1rem;
  background: linear-gradient(135deg, #faf5ff 0%, #f0f9ff 100%);
  border: 1.5px dashed var(--pr);
  border-radius: 16px;
  text-align: center;
}
.lrb-text {
  font-size: .88rem;
  color: var(--tm);
  margin-bottom: .7rem;
  font-weight: 600;
}
.lrb-btn {
  width: 100%;
  background: linear-gradient(135deg, var(--gr) 0%, #1e9e5a 100%);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: .9rem 1.2rem;
  font-size: 1rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(39,174,96,.28);
  transition: transform .15s, box-shadow .15s;
}
.lrb-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(39,174,96,.38); }
.lrb-btn:active { transform: translateY(0); }

/* ═══ صفحه‌بندی بیماران ═══ */
.pat-pagination {
  margin-top: 1.2rem;
  padding-top: 1rem;
  border-top: 1px solid var(--br);
}
.pat-count {
  font-size: .82rem;
  color: var(--tm);
  margin-bottom: .7rem;
  text-align: center;
}
.pat-pg-btns {
  display: flex;
  gap: .35rem;
  justify-content: center;
  flex-wrap: wrap;
}
.pat-pg-btn {
  min-width: 38px;
  padding: .45rem .7rem;
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 10px;
  font-family: inherit;
  font-size: .85rem;
  font-weight: 600;
  color: var(--dk);
  cursor: pointer;
  transition: .15s;
}
.pat-pg-btn:hover { border-color: var(--pr); color: var(--pr); }
.pat-pg-btn.active { background: var(--pr); color: #fff; border-color: var(--pr); }
.pat-pg-dots { color: var(--tm); padding: 0 .2rem; align-self: center; }

/* ═══ بخش پشتیبان‌گیری ═══ */
.backup-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
}
.backup-card {
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 18px;
  padding: 1.8rem 1.5rem;
  text-align: center;
}
.backup-card-warn {
  background: #fffbeb;
  border-color: #fcd34d;
  text-align: right;
}
.backup-icon { font-size: 3rem; margin-bottom: .8rem; }
.backup-title { font-size: 1.15rem; font-weight: 900; color: var(--dk); margin-bottom: .6rem; }
.backup-desc { font-size: .88rem; color: var(--tm); line-height: 1.8; margin-bottom: 1.3rem; }
.backup-btn {
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: 1rem 2rem;
  font-size: 1.05rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(129,0,127,.28);
  transition: transform .15s, box-shadow .15s;
  width: 100%;
}
.backup-btn:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(129,0,127,.38); }
.backup-btn:disabled { opacity: .7; cursor: wait; }
.backup-note {
  margin-top: 1.2rem;
  padding: .8rem 1rem;
  background: var(--prl);
  border-radius: 12px;
  font-size: .82rem;
  color: var(--pr);
  line-height: 1.7;
}
.backup-list {
  list-style: none;
  padding: 0;
  margin: .5rem 0 0;
}
.backup-list li {
  font-size: .85rem;
  color: #78350f;
  line-height: 1.7;
  padding: .5rem 0;
  padding-right: 1.5rem;
  position: relative;
  border-bottom: 1px solid rgba(252,211,77,.3);
}
.backup-list li::before {
  content: '◀';
  position: absolute;
  right: 0;
  color: #d97706;
  font-size: .7rem;
  top: .65rem;
}
.backup-list li:last-child { border-bottom: none; }
.backup-list code {
  background: #fef3c7;
  padding: .1rem .4rem;
  border-radius: 5px;
  font-size: .8rem;
  color: #92400e;
}
@media (max-width: 768px) {
  .backup-wrap { grid-template-columns: 1fr; }
}

/* ═══ سیستم بکاپ کامل ═══ */
.bk-section {
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 16px;
  padding: 1.3rem 1.5rem;
  margin-bottom: 1.2rem;
}
.bk-sec-title { font-size: 1.05rem; font-weight: 800; color: var(--dk); margin-bottom: 1rem; }
.bk-warn { background: #fffbeb; border-color: #fcd34d; }
.bk-row { margin-bottom: .6rem; }
.bk-btn-main {
  width: 100%;
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%);
  color: #fff; border: none; border-radius: 14px;
  padding: 1rem; font-size: 1.05rem; font-weight: 800;
  font-family: inherit; cursor: pointer;
  box-shadow: 0 6px 20px rgba(129,0,127,.25);
  transition: transform .15s;
}
.bk-btn-main:hover:not(:disabled) { transform: translateY(-2px); }
.bk-btn-main:disabled { opacity: .7; cursor: wait; }
.bk-hint { font-size: .8rem; color: var(--tm); margin-top: .7rem; line-height: 1.6; }

.bk-toggle {
  display: flex; align-items: center; gap: .6rem;
  font-size: .95rem; font-weight: 600; cursor: pointer; margin-bottom: 1rem;
}
.bk-toggle input { width: 20px; height: 20px; accent-color: var(--pr); cursor: pointer; }

.bk-freq-wrap { transition: opacity .2s; }
.bk-freq-label { font-size: .85rem; color: var(--tm); margin-bottom: .6rem; }
.bk-freq-opts { display: flex; gap: .8rem; flex-wrap: wrap; }
.bk-freq-opt {
  display: flex; align-items: center; gap: .35rem;
  font-size: .88rem; cursor: pointer;
  padding: .5rem .9rem; background: var(--bg);
  border: 1.5px solid var(--br); border-radius: 100px;
  transition: .15s;
}
.bk-freq-opt:has(input:checked) { background: var(--prl); border-color: var(--pr); color: var(--pr); font-weight: 700; }
.bk-freq-opt input { accent-color: var(--pr); }

.bk-item {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: .85rem 1rem;
  border: 1.5px solid var(--br); border-radius: 12px;
  margin-bottom: .6rem; flex-wrap: wrap;
}
.bk-item-fail { background: #fff5f5; border-color: #fcc; opacity: .7; }
.bk-item-info { flex: 1; min-width: 200px; }
.bk-item-name { font-size: .85rem; font-weight: 700; color: var(--dk); font-family: monospace; word-break: break-all; }
.bk-item-meta { font-size: .75rem; color: var(--tm); margin-top: .2rem; }
.bk-item-actions { display: flex; gap: .5rem; }
.bk-dl-btn, .bk-restore-btn {
  border: none; border-radius: 10px; padding: .5rem .9rem;
  font-size: .8rem; font-weight: 700; font-family: inherit; cursor: pointer;
  white-space: nowrap; transition: .15s;
}
.bk-dl-btn { background: var(--prl); color: var(--pr); }
.bk-dl-btn:hover { background: var(--pr); color: #fff; }
.bk-restore-btn { background: #fff3cd; color: #856404; border: 1px solid #fcd34d; }
.bk-restore-btn:hover { background: #f59e0b; color: #fff; }

/* ═══ واترمارک محافظت از محتوا ═══ */
.wm-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;  /* کلیک از واترمارک عبور می‌کند */
  overflow: hidden;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* متن مرکزی نیمه‌شفاف */
.wm-center {
  color: rgba(255,255,255,.38);
  font-size: clamp(.85rem, 3.5vw, 1.3rem);
  font-weight: 800;
  text-align: center;
  transform: rotate(-22deg);
  text-shadow: 0 1px 3px rgba(0,0,0,.45), 0 0 1px rgba(0,0,0,.6);
  white-space: nowrap;
  letter-spacing: .03em;
  user-select: none;
  padding: 0 1rem;
}
/* الگوی تکراری کم‌رنگ در پس‌زمینه (تشخیص دزدی) */
.wm-tile {
  display: none;  /* فعلاً فقط متن مرکزی؛ در صورت نیاز فعال شود */
}

/* محافظت عکس‌های تمرین: جلوگیری از drag و ذخیره */
.ecv2-img, .ecv2-img-wrap img {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
  user-select: none;
  -webkit-touch-callout: none;  /* جلوگیری از منوی long-press در iOS */
  pointer-events: auto;
}
.ecv2-img-wrap { position: relative; }

/* محافظت ویدیو */
.ecv2-video-shield {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}
.ecv2-video-shield .wm-overlay {
  /* واترمارک روی ویدیو در گوشه بالا تا کنترل‌ها را نپوشاند */
  align-items: flex-start;
  justify-content: center;
  padding-top: 12%;
}
.ecv2-video-shield .wm-center {
  font-size: clamp(.7rem, 2.8vw, 1.1rem);
  color: rgba(255,255,255,.32);
  transform: rotate(-18deg);
}

/* واترمارک در modal عکس بزرگ */
#mo-img-wm.wm-overlay { z-index: 10; }
#mo-img-wm .wm-center {
  font-size: clamp(1rem, 4vw, 1.6rem);
  color: rgba(255,255,255,.42);
}

/* ═══ آپلود و نمایش نسخه پزشک ═══ */
.presc-upload {
  background: linear-gradient(135deg, #faf5ff, #f0f9ff);
  border: 1.5px dashed var(--pr);
  border-radius: 16px;
  padding: 1.3rem;
  margin-bottom: 1.5rem;
}
.presc-upload-title { font-size: 1rem; font-weight: 800; color: var(--dk); margin-bottom: 1rem; }
.presc-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.presc-file-row {
  display: flex;
  gap: .6rem;
  margin-top: .7rem;
  align-items: center;
  flex-wrap: wrap;
}
.presc-file-input {
  flex: 1;
  min-width: 180px;
  padding: .5rem;
  border: 1.5px solid var(--br);
  border-radius: 10px;
  background: #fff;
  font-family: inherit;
  font-size: .85rem;
}
.presc-up-btn {
  background: var(--gr);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: .7rem 1.4rem;
  font-size: .9rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  transition: .15s;
}
.presc-up-btn:hover:not(:disabled) { opacity: .88; }
.presc-up-btn:disabled { opacity: .6; cursor: wait; }
.presc-hint { font-size: .75rem; color: var(--tm); margin-top: .6rem; }

.presc-empty { text-align: center; color: var(--tm); padding: 2rem; font-size: .95rem; }
.presc-list { display: flex; flex-direction: column; gap: .8rem; }
.presc-card {
  display: flex;
  gap: 1rem;
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 14px;
  padding: 1rem;
}
.presc-card-thumb { flex-shrink: 0; }
.presc-thumb {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 10px;
  cursor: pointer;
  border: 1px solid var(--br);
}
.presc-pdf-icon {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--prl);
  border-radius: 10px;
  font-size: .8rem;
  font-weight: 700;
  color: var(--pr);
  text-align: center;
}
.presc-card-body { flex: 1; min-width: 0; }
.presc-card-title { font-size: .95rem; font-weight: 800; color: var(--dk); margin-bottom: .3rem; }
.presc-card-doc { font-size: .82rem; color: var(--tm); margin-bottom: .3rem; }
.presc-card-notes {
  font-size: .82rem;
  color: var(--dk);
  background: var(--bg);
  padding: .4rem .6rem;
  border-radius: 8px;
  margin-bottom: .4rem;
}
.presc-card-date { font-size: .75rem; color: var(--tm); margin-bottom: .5rem; }
.presc-card-actions { display: flex; gap: .5rem; }
.presc-view-btn, .presc-del-btn {
  border: none;
  border-radius: 9px;
  padding: .45rem .9rem;
  font-size: .8rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  text-decoration: none;
  transition: .15s;
}
.presc-view-btn { background: var(--prl); color: var(--pr); }
.presc-view-btn:hover { background: var(--pr); color: #fff; }
.presc-del-btn { background: #fee; color: #c00; }
.presc-del-btn:hover { background: #c00; color: #fff; }
@media (max-width: 600px) {
  .presc-form-grid { grid-template-columns: 1fr; }
  .presc-card { flex-direction: column; }
  .presc-thumb, .presc-pdf-icon { width: 100%; height: 120px; }
}

/* ══════════════════════════════════════════════════
   دکمه‌های ورود/خروج موبایل — هدر
   ══════════════════════════════════════════════════ */
.m-hdr-auth {
  display: flex;
  align-items: center;
  gap: .35rem;
  flex-shrink: 0;
}
/* دکمه پروفایل (وقتی لاگین) */
.m-hdr-profile {
  display: flex;
  align-items: center;
  gap: .35rem;
  background: var(--prl);
  color: var(--pr);
  border: 1.5px solid var(--pr);
  border-radius: 100px;
  padding: .38rem .75rem;
  font-size: .72rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: .15s;
}
.m-hdr-profile:hover { background: var(--pr); color: #fff; }
.m-hdr-avatar { font-size: .9rem; }
/* دکمه خروج */
.m-hdr-logout {
  background: #fee2e2;
  color: #dc2626;
  border: 1.5px solid #fca5a5;
  border-radius: 100px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
  cursor: pointer;
  flex-shrink: 0;
  transition: .15s;
}
.m-hdr-logout:hover { background: #dc2626; color: #fff; }
/* دکمه ورود (وقتی لاگ‌اوت) */
.m-hdr-login {
  display: flex;
  align-items: center;
  gap: .4rem;
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%);
  color: #fff;
  border: none;
  border-radius: 100px;
  padding: .42rem 1rem;
  font-size: .78rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  flex-shrink: 0;
  box-shadow: 0 3px 12px rgba(129,0,127,.32);
  transition: .15s;
  white-space: nowrap;
}
.m-hdr-login:hover { box-shadow: 0 5px 16px rgba(129,0,127,.45); transform: translateY(-1px); }

/* دکمه ورود دسکتاپ — CTA برجسته */
.nb-login-cta {
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%) !important;
  color: #fff !important;
  border-radius: 100px !important;
  padding: .48rem 1.2rem !important;
  font-weight: 800 !important;
  box-shadow: 0 4px 14px rgba(129,0,127,.3);
  transition: box-shadow .15s, transform .15s;
}
.nb-login-cta:hover { box-shadow: 0 7px 20px rgba(129,0,127,.45); transform: translateY(-2px); }

/* ══════════════════════════════════════════════════
   footer — کارت اطلاعات تماس حرفه‌ای
   ══════════════════════════════════════════════════ */
.footer-info-card {
  text-align: right;
  direction: rtl;
}
.fic-title {
  font-size: 1.1rem;
  font-weight: 900;
  color: #fff;
  margin-bottom: 1.1rem;
  letter-spacing: .02em;
}
.fic-row {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  margin-bottom: .75rem;
  direction: rtl;
}
.fic-icon {
  width: 32px;
  height: 32px;
  background: rgba(255,255,255,.1);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: .05rem;
}
.fic-icon svg {
  stroke: rgba(255,255,255,.75);
}
.fic-text {
  font-size: .88rem;
  color: rgba(255,255,255,.78);
  line-height: 1.6;
  padding-top: .35rem;
}
.fic-link {
  font-size: .9rem;
  color: rgba(255,255,255,.88);
  text-decoration: none;
  font-weight: 600;
  padding-top: .35rem;
  display: block;
  transition: color .15s;
  direction: ltr;
  text-align: right;
}
.fic-link:hover { color: #fff; }

/* ══════════════════════════════════════════════════
   صفحه ورود — بازطراحی کامل
   ══════════════════════════════════════════════════ */
.login-page-wrap {
  min-height: calc(100vh - 130px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  background: linear-gradient(160deg, #faf5ff 0%, #f0f0ff 50%, #fff 100%);
}

/* ── کارت اصلی ── */
.login-card {
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 24px;
  padding: 2.2rem 2rem;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 8px 40px rgba(129,0,127,.08), 0 2px 8px rgba(0,0,0,.04);
}

/* ── هدر ── */
.login-header { text-align: center; margin-bottom: 1.8rem; }
.login-logo-wrap {
  width: 68px; height: 68px;
  margin: 0 auto 1rem;
  background: var(--prl);
  border-radius: 20px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.login-logo-img { width: 100%; height: 100%; object-fit: cover; }
.login-logo-ph { font-size: 2rem; }
.login-title {
  font-size: 1.4rem;
  font-weight: 900;
  color: var(--dk);
  margin: 0 0 .4rem;
}
.login-subtitle { font-size: .85rem; color: var(--tm); margin: 0; }

/* ── فیلدها ── */
.login-field { margin-bottom: 1.1rem; }
.login-lbl {
  display: block;
  font-size: .82rem;
  font-weight: 700;
  color: var(--tm);
  margin-bottom: .4rem;
}
.login-inp {
  font-size: 1rem !important;  /* جلوگیری از zoom موبایل */
  border-radius: 12px !important;
  border: 1.5px solid var(--br) !important;
  padding: .75rem 1rem !important;
  transition: border-color .15s, box-shadow .15s;
}
.login-inp:focus {
  border-color: var(--pr) !important;
  box-shadow: 0 0 0 3px rgba(129,0,127,.1) !important;
  outline: none;
}

/* ── دکمه اصلی ── */
.login-btn-main {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: .95rem 1.5rem;
  font-size: 1.05rem;
  font-weight: 900;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(129,0,127,.28);
  transition: transform .15s, box-shadow .15s;
  margin-top: .3rem;
}
.login-btn-main:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(129,0,127,.38); }
.login-btn-main:active { transform: translateY(0); }

/* ── لینک فراموشی ── */
.login-forgot-link {
  text-align: center;
  margin-top: 1.2rem;
  font-size: .82rem;
  color: var(--tm);
}
.login-forgot-btn {
  background: none;
  border: none;
  color: var(--pr);
  font-weight: 700;
  font-family: inherit;
  font-size: .82rem;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
  margin-right: .2rem;
}
.login-forgot-btn:hover { color: var(--prm); }

/* ── فرم دریافت کد ── */
.login-forgot-header {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: 1.2rem;
}
.login-back-btn {
  background: none;
  border: 1.5px solid var(--br);
  border-radius: 10px;
  padding: .4rem .8rem;
  font-size: .82rem;
  font-family: inherit;
  cursor: pointer;
  color: var(--tm);
  transition: .15s;
}
.login-back-btn:hover { border-color: var(--pr); color: var(--pr); }
.login-forgot-title {
  font-size: 1rem;
  font-weight: 800;
  color: var(--dk);
  flex: 1;
}
.login-forgot-desc {
  font-size: .83rem;
  color: var(--tm);
  line-height: 1.7;
  margin-bottom: 1.2rem;
  padding: .75rem;
  background: var(--bg);
  border-radius: 10px;
}

/* ── جداکننده ── */
.login-divider {
  width: 100%;
  max-width: 420px;
  text-align: center;
  position: relative;
  margin: 1.4rem 0;
}
.login-divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0; right: 0;
  height: 1.5px;
  background: var(--br);
}
.login-divider span {
  background: linear-gradient(160deg, #faf5ff, #f0f0ff);
  position: relative;
  padding: 0 1rem;
  font-size: .82rem;
  color: var(--tm);
  font-weight: 600;
}

/* ── کارت ثبت‌نام ── */
.login-register-card {
  width: 100%;
  max-width: 420px;
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
  border: 1.5px solid #86efac;
  border-radius: 20px;
  padding: 1.5rem;
  text-align: center;
}
.lrc-text {
  font-size: .88rem;
  color: #166534;
  margin-bottom: 1rem;
  line-height: 1.6;
  font-weight: 600;
}
.lrc-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: .95rem 1.5rem;
  font-size: 1.05rem;
  font-weight: 900;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(22,163,74,.28);
  transition: transform .15s, box-shadow .15s;
}
.lrc-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(22,163,74,.38); }

@media (max-width: 480px) {
  .login-card { padding: 1.8rem 1.3rem; border-radius: 20px; }
  .login-title { font-size: 1.2rem; }
}

/* ══════════════════════════════════════════════════
   صفحه ورود — layout دو ستونه
   ══════════════════════════════════════════════════ */

/* بازنویسی layout اصلی */
.login-page-wrap {
  min-height: calc(100vh - 130px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1rem;
  background: linear-gradient(160deg, #faf5ff 0%, #f0f0ff 60%, #f0fdf4 100%);
}

/* Grid دو ستونه */
.login-two-col {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0;
  width: 100%;
  max-width: 860px;
  background: #fff;
  border-radius: 28px;
  box-shadow: 0 12px 48px rgba(129,0,127,.1), 0 2px 8px rgba(0,0,0,.04);
  border: 1.5px solid var(--br);
  overflow: hidden;
}

/* ── ستون ورود ── */
.login-card {
  padding: 2.2rem 2rem;
  border-radius: 0;
  border: none;
  box-shadow: none;
  background: transparent;
}

/* هدر فشرده */
.login-header-mini {
  display: flex;
  align-items: center;
  gap: .9rem;
  margin-bottom: 1.6rem;
}
.login-icon-wrap {
  width: 46px; height: 46px;
  background: var(--prl);
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.login-icon-wrap svg { stroke: var(--pr); }
.login-title { font-size: 1.2rem; font-weight: 900; color: var(--dk); margin: 0 0 .15rem; }
.login-subtitle { font-size: .78rem; color: var(--tm); margin: 0; }

/* ── جداکننده عمودی ── */
.login-vsep {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 2rem 0;
  width: 48px;
}
.login-vsep-line { flex: 1; width: 1.5px; background: var(--br); }
.login-vsep-text {
  font-size: .78rem;
  color: var(--tm);
  padding: .6rem 0;
  font-weight: 600;
  white-space: nowrap;
}

/* ── ستون ثبت‌نام ── */
.login-register-panel {
  padding: 2.2rem 2rem;
  background: linear-gradient(160deg, #f0fdf4 0%, #dcfce7 100%);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.lrp-icon { font-size: 2.5rem; margin-bottom: .7rem; text-align: center; }
.lrp-title {
  font-size: 1.15rem;
  font-weight: 900;
  color: #14532d;
  margin: 0 0 .6rem;
  text-align: center;
}
.lrp-desc {
  font-size: .84rem;
  color: #166534;
  line-height: 1.65;
  margin-bottom: 1rem;
  text-align: center;
}
.lrp-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.3rem;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}
.lrp-list li {
  font-size: .84rem;
  color: #166534;
  font-weight: 600;
}
.lrc-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);
  color: #fff;
  border: none;
  border-radius: 14px;
  padding: .95rem 1.5rem;
  font-size: 1rem;
  font-weight: 900;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 6px 20px rgba(22,163,74,.28);
  transition: transform .15s, box-shadow .15s;
}
.lrc-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(22,163,74,.38); }

/* ── موبایل: یک ستون ── */
@media (max-width: 680px) {
  .login-page-wrap { padding: 1rem .7rem; align-items: flex-start; }
  .login-two-col {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    border-radius: 20px;
  }
  .login-card { padding: 1.6rem 1.3rem; }
  .login-register-panel { padding: 1.5rem 1.3rem; border-top: 1.5px solid #86efac; }
  .login-vsep { flex-direction: row; width: 100%; padding: 0 1.3rem; height: 36px; }
  .login-vsep-line { flex: 1; width: auto; height: 1.5px; }
  .login-vsep-text { padding: 0 .8rem; }
}

/* ═══════════════════════════════════════════════════
   📝 پست‌های محتوایی (بنرهای آموزشی)
   ═══════════════════════════════════════════════════ */

/* بخش عمومی */
.posts-pub-sec { background: var(--bg2, #f8f5ff); }

/* گرید پست‌ها — دسکتاپ: ۲ ستون */
.posts-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.4rem;
}

/* کارت پست */
.post-card {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  cursor: pointer;
  display: flex;
  align-items: flex-end;
  background: #1a1a2e;
  box-shadow: 0 4px 24px rgba(0,0,0,.18);
  transition: transform .25s, box-shadow .25s;
  text-decoration: none;
}
.post-card:hover { transform: translateY(-4px); box-shadow: 0 10px 36px rgba(129,0,127,.22); }

/* تصویر پس‌زمینه */
.post-card-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform .4s ease;
  filter: brightness(.7) saturate(.85);
}
.post-card:hover .post-card-bg { transform: scale(1.04); }

/* گرادیان تاریک از پایین */
.post-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10,5,20,.92) 0%,
    rgba(10,5,20,.55) 50%,
    rgba(10,5,20,.1) 100%
  );
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.2rem 1.3rem;
  gap: .55rem;
}

/* برچسب بالای عنوان */
.post-card-label {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--pr, #81007f);
  background: rgba(255,255,255,.13);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 100px;
  padding: .18rem .65rem;
  display: inline-block;
  width: fit-content;
  text-transform: uppercase;
  margin: 0;
}

/* عنوان */
.post-card-title {
  font-size: 1.08rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.45;
  margin: 0;
  text-shadow: 0 2px 8px rgba(0,0,0,.5);
}

/* زیرعنوان */
.post-card-sub {
  font-size: .78rem;
  color: rgba(255,255,255,.78);
  margin: 0;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ردیف پایین: دکمه */
.post-card-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-top: .3rem;
}
.post-card-btn {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: var(--pr, #81007f);
  color: #fff;
  border: none;
  border-radius: 100px;
  padding: .38rem 1rem;
  font-size: .75rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: background .15s, box-shadow .15s;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 2px 10px rgba(129,0,127,.35);
}
.post-card-btn:hover { background: var(--prm, #5a0059); box-shadow: 0 4px 16px rgba(129,0,127,.45); }

/* — موبایل: ۱ ستون — */
@media (max-width: 768px) {
  .posts-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .post-card {
    aspect-ratio: 1 / 1;
    border-radius: 14px;
  }
  .post-card-overlay { padding: .9rem 1rem; }
  .post-card-title { font-size: .95rem; }
}

/* ادمین: لیست پست‌ها */
.posts-admin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.post-admin-card {
  border: 1.5px solid var(--br);
  border-radius: 14px;
  overflow: hidden;
  background: var(--bg);
  transition: border-color .2s;
}
.post-admin-card:hover { border-color: var(--pr); }
.post-admin-thumb {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: var(--bg2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  color: var(--tm);
}
.post-admin-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.post-admin-body { padding: .75rem .9rem; }
.post-admin-title { font-weight: 700; font-size: .88rem; margin: 0 0 .3rem; line-height: 1.4; }
.post-admin-sub { font-size: .75rem; color: var(--tm); margin: 0 0 .6rem; }
.post-admin-foot { display: flex; gap: .4rem; }

/* ═══ SEO / دسترسی‌پذیری / تماس شناور ═══ */
.skip-link {
  position: absolute;
  top: -100px;
  right: 1rem;
  z-index: 10000;
  background: var(--pr);
  color: #fff;
  padding: .55rem 1rem;
  border-radius: 8px;
  font-size: .85rem;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(0,0,0,.2);
  transition: top .2s;
}
.skip-link:focus {
  top: .75rem;
  outline: 3px solid #fff;
  outline-offset: 2px;
}

.float-contact {
  position: fixed;
  left: 1rem;
  bottom: 5.5rem;
  z-index: 900;
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.float-btn {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 4px 18px rgba(0,0,0,.22);
  transition: transform .2s, box-shadow .2s;
}
.float-btn:hover { transform: scale(1.06); box-shadow: 0 6px 22px rgba(0,0,0,.28); }
.float-wa { background: #25d366; }
.float-tel { background: var(--pr); }

.breadcrumb {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .8rem;
  color: var(--tm);
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.breadcrumb a {
  color: var(--pr);
  text-decoration: none;
  font-weight: 600;
}
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb span:last-child { color: var(--tx); font-weight: 600; }

.page-lead {
  color: var(--tm);
  font-size: .92rem;
  margin-top: .5rem;
  max-width: 560px;
  line-height: 1.8;
}

/* فوکوس کیبورد برای دسترسی‌پذیری */
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--pr);
  outline-offset: 2px;
}

@media (max-width: 768px) {
  .float-contact { bottom: 6.5rem; left: .75rem; }
  .float-btn { width: 48px; height: 48px; }
}
@media (min-width: 769px) {
  .float-contact { bottom: 1.5rem; }
}

/* ═══ پورتال کاربری — دکمه واحد ورود ═══ */
.user-portal-wrap {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 220;
}
.user-portal-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: .48rem .9rem;
  font-size: .82rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(129,0,127,.32);
  transition: transform .15s, box-shadow .15s;
  white-space: nowrap;
}
.user-portal-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(129,0,127,.4);
}
.user-portal-chevron {
  transition: transform .22s ease;
  flex-shrink: 0;
}
.user-portal-wrap.open .user-portal-chevron {
  transform: rotate(180deg);
}
.user-portal-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 270px;
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 14px;
  box-shadow: 0 16px 48px rgba(19,30,58,.14);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px) scale(.98);
  transform-origin: top left;
  transition: opacity .22s ease, transform .22s ease, visibility .22s;
  pointer-events: none;
}
.user-portal-wrap.open .user-portal-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.user-portal-item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: .35rem;
  width: 100%;
  text-align: right;
  padding: .82rem 1rem;
  border: none;
  border-top: 1px solid var(--br);
  background: transparent;
  font-family: inherit;
  font-size: .86rem;
  font-weight: 700;
  color: var(--dk);
  cursor: pointer;
  line-height: 1.45;
  transition: background .15s, color .15s;
}
.user-portal-item:first-child { border-top: none; }
.user-portal-item:hover {
  background: var(--prl);
  color: var(--pr);
}
.user-portal-item--danger { color: var(--re); }
.user-portal-item--danger:hover { background: var(--rel); color: var(--re); }
@media (min-width: 769px) {
  .nav-brand-wrap .nav-brand {
    padding-right: 9.5rem;
    padding-left: 9.5rem;
  }
}

/* ═══ ناوبری — دکمه‌های ورود/خروج یکپارچه (قدیمی — پنهان) ═══ */
.nav-auth { display: none !important; }
.nav-menu {
  justify-content: center;
  flex-wrap: wrap;
  gap: .35rem .2rem;
}
.nb-user {
  display: inline-flex !important;
  align-items: center;
  gap: .35rem;
  background: var(--prl) !important;
  color: var(--pr) !important;
  border: 1.5px solid rgba(129,0,127,.25) !important;
  border-radius: 100px !important;
  font-weight: 700 !important;
  padding: .42rem 1rem !important;
}
.nb-logout {
  display: inline-flex !important;
  align-items: center;
  gap: .3rem;
  background: #fff5f5 !important;
  color: #dc2626 !important;
  border: 1.5px solid #fecaca !important;
  border-radius: 100px !important;
  font-weight: 700 !important;
  padding: .42rem .9rem !important;
}
.nb-logout:hover { background: #dc2626 !important; color: #fff !important; }
.nb-admin {
  display: inline-flex !important;
  align-items: center;
  gap: .3rem;
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%) !important;
  color: #fff !important;
  border-radius: 100px !important;
  font-weight: 800 !important;
  padding: .45rem 1rem !important;
  box-shadow: 0 3px 12px rgba(129,0,127,.28);
}
.nb-admin:hover { transform: translateY(-1px); box-shadow: 0 5px 16px rgba(129,0,127,.38); }
.nb-admin-subtle {
  color: var(--tm) !important;
  border: 1.5px dashed var(--br) !important;
  border-radius: 100px !important;
  font-size: .75rem !important;
  padding: .38rem .75rem !important;
}
.nb-admin-subtle:hover { border-color: var(--pr) !important; color: var(--pr) !important; background: var(--prl) !important; }

.m-hdr-admin {
  background: var(--prl);
  color: var(--pr);
  border: 1.5px solid var(--pr);
  border-radius: 100px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  cursor: pointer;
  flex-shrink: 0;
}
.m-nav-cta {
  background: var(--prl) !important;
  color: var(--pr) !important;
  font-weight: 800 !important;
}

.footer-admin-link {
  text-align: center;
  padding: .85rem 1rem;
  border-top: 1px solid rgba(255,255,255,.1);
}
.footer-admin-btn {
  background: rgba(255,255,255,.08);
  border: 1.5px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.85);
  font-family: inherit;
  font-size: .8rem;
  font-weight: 700;
  padding: .55rem 1.2rem;
  border-radius: 100px;
  cursor: pointer;
  transition: .15s;
}
.footer-admin-btn:hover {
  background: rgba(129,0,127,.45);
  border-color: var(--pr);
  color: #fff;
}

/* ═══ صفحه اصلی — انسجام بصری و فاصله‌گذاری ═══ */
#pg-home {
  background: var(--bg);
  overflow-x: hidden;
}
#pg-home .hero {
  margin-bottom: 0;
  border-bottom: none;
}
#pg-home .home-proof-sec.m-results-sec {
  margin-top: 0;
  padding-top: 2.25rem;
  padding-bottom: 1.75rem;
}
#pg-home .home-sec {
  padding: 3.25rem 1.25rem;
  margin: 0;
}
#pg-home .home-sec--white { background: #fff; }
#pg-home .home-sec--light { background: var(--bg); }
#pg-home .home-sec .sh { margin-bottom: 2rem; }
#pg-home .testimonials.home-sec { background: var(--bg); }
#pg-home .cta-band {
  margin-top: 0;
  border-radius: 0;
}
#pg-home .site-footer {
  margin-top: 0;
}

@media (max-width: 768px) {
  #pg-home .home-sec { padding: 2.25rem 1rem !important; }
  #pg-home .hero { min-height: auto !important; margin-bottom: 0; }
  #pg-home .home-proof-sec.m-results-sec {
    padding-top: .65rem !important;
    padding-bottom: 1.25rem !important;
  }
  #pg-home .m-results-sec { padding-top: .65rem !important; }
  .nav-auth { display: none !important; }
}
@media (min-width: 769px) {
  #pg-home .home-sec { padding: 4rem 2rem; }
  #pg-home .m-results-sec {
    padding: 3.5rem 2rem 2.5rem !important;
    background: linear-gradient(180deg, #fff 0%, #f9f7ff 100%) !important;
  }
}

/* ═══ پنل مراجع — هشدار فاکتور و دسترسی سریع ═══ */
.pat-inv-alert {
  display: flex;
  align-items: center;
  gap: .85rem;
  background: linear-gradient(135deg, #fff8e6 0%, #fff3cd 100%);
  border: 2px solid #f0b429;
  border-radius: 16px;
  padding: .9rem 1rem;
  margin-bottom: .85rem;
  cursor: pointer;
  transition: transform .15s, box-shadow .15s;
  box-shadow: 0 4px 16px rgba(240, 180, 41, .2);
}
.pat-inv-alert:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(240, 180, 41, .28);
}
.pat-inv-alert-icon { font-size: 1.6rem; flex-shrink: 0; }
.pat-inv-alert-body { flex: 1; min-width: 0; }
.pat-inv-alert-body strong {
  display: block;
  color: #92400e;
  font-size: .92rem;
  margin-bottom: .2rem;
}
.pat-inv-alert-body p {
  font-size: .8rem;
  color: #a16207;
  line-height: 1.5;
  margin: 0;
}
.pat-inv-alert-amt {
  display: inline-block;
  margin-top: .35rem;
  font-weight: 900;
  color: var(--pr);
  font-size: .95rem;
}
.pat-inv-alert-cta {
  flex-shrink: 0;
  background: var(--pr);
  color: #fff;
  font-size: .78rem;
  font-weight: 800;
  padding: .5rem .85rem;
  border-radius: 100px;
  white-space: nowrap;
}

.pat-quick-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 14px;
  padding: .75rem .9rem;
  margin-bottom: .85rem;
  box-shadow: 0 2px 12px rgba(0,0,0,.04);
}
.pat-quick-primary {
  flex: 1;
  min-width: 200px;
  background: linear-gradient(135deg, var(--gr) 0%, #5cb85c 100%);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: .75rem 1rem;
  font-family: inherit;
  font-size: .88rem;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(92, 184, 92, .35);
  transition: transform .15s, box-shadow .15s;
}
.pat-quick-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(92, 184, 92, .45);
}
.pat-quick-label {
  font-size: .78rem;
  font-weight: 700;
  color: var(--tm);
  width: 100%;
}
.pat-quick-pills {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  width: 100%;
}
.pat-quick-pill {
  background: var(--prl);
  color: var(--pr);
  border: 1.5px solid rgba(129,0,127,.25);
  border-radius: 100px;
  padding: .45rem .9rem;
  font-family: inherit;
  font-size: .8rem;
  font-weight: 700;
  cursor: pointer;
  transition: .15s;
}
.pat-quick-pill:hover {
  background: var(--pr);
  color: #fff;
}

.pat-sess-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
  background: #fff;
  border: 1.5px solid var(--br);
  border-radius: 14px;
  padding: .65rem .85rem;
  margin-bottom: 1rem;
  position: sticky;
  top: .5rem;
  z-index: 50;
  box-shadow: 0 4px 16px rgba(0,0,0,.06);
}
.pat-stb-btn {
  background: var(--pr);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: .45rem .75rem;
  font-family: inherit;
  font-size: .76rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.pat-stb-btn.pat-stb-ghost {
  background: var(--prl);
  color: var(--pr);
  border: 1.5px solid rgba(129,0,127,.2);
}
.pat-stb-info { flex: 1; min-width: 120px; text-align: left; }
.pat-stb-title {
  font-size: .88rem;
  font-weight: 800;
  color: var(--dk);
}
.pat-stb-sub {
  font-size: .72rem;
  color: var(--tm);
  margin-top: .1rem;
}

.inv-card-pending {
  border: 2px solid #f0b429 !important;
  background: #fffdf5 !important;
}
.inv-card-highlight {
  animation: invPulse 1.2s ease 2;
  box-shadow: 0 0 0 3px rgba(129,0,127,.35);
}
@keyframes invPulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(129,0,127,.35); }
  50% { box-shadow: 0 0 0 8px rgba(129,0,127,.12); }
}

@media (max-width: 600px) {
  .pat-inv-alert { flex-wrap: wrap; }
  .pat-inv-alert-cta { width: 100%; text-align: center; }
  .pat-sess-toolbar { top: 0; border-radius: 12px; }
  .pat-stb-info { width: 100%; text-align: right; order: -1; margin-bottom: .25rem; }
}

/* ── پنل باشگاه‌داران ── */
.club-wrap { max-width: 1100px; margin: 0 auto; padding: 1.5rem 1rem 3rem; }
.club-hero { display: grid; grid-template-columns: 1.2fr .9fr; gap: 1.5rem; align-items: start; }
@media (max-width: 900px) { .club-hero { grid-template-columns: 1fr; } }
.club-badge-pill { display: inline-block; background: var(--pll); color: var(--pr); font-size: .72rem; font-weight: 700; padding: .25rem .7rem; border-radius: 999px; margin-bottom: .6rem; }
.club-hero-text h1 { font-size: 1.65rem; margin: 0 0 .5rem; color: var(--dk); }
.club-hero-text p { color: var(--tm); line-height: 1.8; font-size: .9rem; }
.club-benefits { margin: 1rem 0; padding: 0; list-style: none; display: grid; gap: .35rem; font-size: .86rem; }
.club-hero-actions { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: 1rem; }
.club-price-hint { font-size: .78rem; color: var(--tm); margin-top: .8rem; }
.club-hero-card { background: #fff; border-radius: var(--ra); box-shadow: var(--sh); padding: 1.1rem; border: 1px solid var(--bd); }
.club-tabs { display: flex; gap: .35rem; margin-bottom: 1rem; }
.club-tab { flex: 1; border: 1px solid var(--bd); background: var(--bg); border-radius: 10px; padding: .45rem; font-family: inherit; cursor: pointer; font-size: .82rem; }
.club-tab.on { background: var(--pr); color: #fff; border-color: var(--pr); }
.club-pane { display: none; }
.club-pane.on { display: block; }
.club-submit-btn { width: 100%; margin-top: 1rem; }
.club-sports-preview { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1.5rem; }
.club-sport-chip { background: #fff; border: 1px solid var(--bd); border-radius: 999px; padding: .35rem .75rem; font-size: .78rem; }
.club-portal-wrap { max-width: 960px; margin: 0 auto; padding: 1.2rem 1rem 3rem; }
.club-portal-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.club-portal-head h1 { margin: 0; font-size: 1.35rem; }
#club-portal-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .75rem; }
.club-card { background: #fff; border: 1px solid var(--bd); border-radius: var(--ra); padding: .9rem; cursor: pointer; transition: box-shadow .2s, transform .15s; }
.club-card:hover { box-shadow: var(--sh); transform: translateY(-2px); }
.club-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: .35rem; }
.club-card-sport { font-size: .78rem; color: var(--tm); }
.club-card-name { font-weight: 700; font-size: 1rem; margin-bottom: .25rem; }
.club-card-st { font-size: .78rem; color: var(--pr); font-weight: 600; }
.club-card-date { font-size: .72rem; color: var(--tm); margin-top: .2rem; }
.club-card-actions { margin-top: .6rem; }
.club-st-new { border-right: 3px solid var(--bl); }
.club-st-pay { border-right: 3px solid var(--oc); }
.club-st-prog { border-right: 3px solid var(--pr); }
.club-st-done { border-right: 3px solid var(--gr); }
.club-st-cancel { border-right: 3px solid var(--tm); opacity: .75; }
.club-st-pill { display: inline-block; font-size: .72rem; padding: .2rem .55rem; border-radius: 999px; background: var(--bg); }
.club-empty { text-align: center; padding: 2.5rem 1rem; background: #fff; border-radius: var(--ra); border: 1px dashed var(--bd); }
.club-empty-icon { font-size: 2.2rem; margin-bottom: .5rem; }
.club-wizard { background: #fff; border-radius: var(--ra); border: 1px solid var(--bd); padding: 1rem; margin-top: .5rem; }
.club-wiz-head h2 { margin: 0 0 .6rem; font-size: 1.05rem; }
.club-wiz-steps { display: flex; flex-wrap: wrap; gap: .3rem; margin-bottom: 1rem; }
.club-wiz-step { font-size: .68rem; padding: .2rem .45rem; border-radius: 6px; background: var(--bg); color: var(--tm); }
.club-wiz-step.on { background: var(--pr); color: #fff; }
.club-wiz-step.done { background: var(--grl); color: var(--gr); }
.club-wiz-hint { font-size: .82rem; color: var(--tm); margin-bottom: .7rem; }
.club-sport-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: .5rem; }
.club-sport-btn { border: 1px solid var(--bd); background: #fff; border-radius: 12px; padding: .7rem .4rem; cursor: pointer; font-family: inherit; display: flex; flex-direction: column; align-items: center; gap: .25rem; font-size: .75rem; }
.club-sport-btn.on { border-color: var(--pr); background: var(--pll); box-shadow: 0 0 0 2px rgba(129,0,127,.15); }
.club-sport-btn .csi { font-size: 1.4rem; }
.club-mode-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
@media (max-width: 600px) { .club-mode-grid { grid-template-columns: 1fr; } }
.club-mode-card { text-align: right; border: 1px solid var(--bd); background: #fff; border-radius: 12px; padding: .8rem; cursor: pointer; font-family: inherit; }
.club-mode-card.on { border-color: var(--pr); background: var(--pll); }
.club-mode-card p { margin: .35rem 0 0; font-size: .75rem; color: var(--tm); }
.club-chk-grid { display: flex; flex-wrap: wrap; gap: .35rem .7rem; }
.club-chk { font-size: .8rem; display: flex; align-items: center; gap: .25rem; }
.club-scale-val { display: inline-block; min-width: 1.5rem; text-align: center; font-weight: 700; color: var(--pr); }
.club-media-prev { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.club-media-item { position: relative; width: 100px; height: 100px; }
.club-media-item img, .club-media-item video { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
.club-media-rm { position: absolute; top: 2px; left: 2px; width: 22px; height: 22px; border: none; border-radius: 50%; background: rgba(0,0,0,.55); color: #fff; cursor: pointer; font-size: .7rem; }
.club-wiz-foot { display: flex; justify-content: space-between; margin-top: 1rem; }
.club-summary { background: var(--bg); border-radius: 10px; padding: .9rem; line-height: 2; font-size: .84rem; margin-bottom: .8rem; }
.club-detail-panel { background: #fff; border-radius: var(--ra); border: 1px solid var(--bd); padding: 1rem; margin-top: .5rem; }
.club-detail-head { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .5rem; margin: .6rem 0; }
.club-detail-grid { font-size: .84rem; line-height: 1.9; margin-bottom: .8rem; }
.club-detail-full { margin-top: .4rem; }
.club-det-media-wrap { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.club-det-media { max-width: 160px; max-height: 140px; border-radius: 8px; object-fit: cover; }
.club-report-box { margin-top: 1rem; border: 1px solid var(--gr); background: var(--grl); border-radius: var(--ra); padding: 1rem; }
.club-report-body { font-size: .88rem; line-height: 1.85; margin-top: .5rem; }
.club-admin-row { background: #fff; border: 1px solid var(--bd); border-radius: 10px; padding: .75rem .9rem; cursor: pointer; display: grid; gap: .2rem; }
.club-admin-row:hover { border-color: var(--pr); }
.club-admin-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
@media (max-width: 700px) { .club-admin-detail-grid { grid-template-columns: 1fr; } }

.club-chat-sec { margin-top: 1rem; }
.club-chat-title { font-size: .92rem; margin: 0 0 .55rem; font-weight: 800; color: var(--dk); }
.club-chat-hint { font-size: .72rem; font-weight: 600; color: var(--tm); margin-right: .35rem; }
.club-chat-wrap { height: 360px; }
.club-chat-wrap .msglist { min-height: 240px; max-height: 280px; }
.club-chat-empty { text-align: center; color: var(--tm); padding: 1.2rem .5rem; font-size: .82rem; }
.club-chat-badge { display: inline-block; background: var(--pr); color: #fff; font-size: .68rem; font-weight: 700; padding: .12rem .45rem; border-radius: 999px; margin-right: .25rem; vertical-align: middle; }
.msg-sender-label { display: block; font-size: .68rem; font-weight: 700; opacity: .85; margin-bottom: .25rem; }
.msgbubble.me .msg-sender-label { opacity: .9; }

.club-notify-opt {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  margin: .8rem 0;
  padding: .7rem .85rem;
  background: var(--bg);
  border: 1px solid var(--bd);
  border-radius: 10px;
  font-size: .82rem;
  line-height: 1.6;
  cursor: pointer;
}
.club-notify-opt input { margin-top: .2rem; flex-shrink: 0; }
.club-media-box {
  margin-top: 1rem;
  padding: .85rem;
  background: var(--bg);
  border: 1px dashed var(--bd);
  border-radius: 12px;
}
.club-media-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: .5rem;
}
.club-media-btn {
  position: relative;
  cursor: pointer;
  font-size: .78rem !important;
  padding: .45rem .75rem !important;
}
.club-media-btn input { display: none; }
.club-media-status {
  font-size: .75rem;
  color: var(--tm);
  min-height: 1.1rem;
  margin-bottom: .4rem;
}
.sms-to-coach {
  background: #ede7f6;
  color: #5e35b1;
  font-size: .68rem;
  padding: .15rem .45rem;
  border-radius: 999px;
}

/* ═══════════════════════════════════════════════════════════
   صفحه اصلی — بازطراحی اعتماد + مخاطب هدف
   ═══════════════════════════════════════════════════════════ */
.sh-lead {
  max-width: 560px;
  margin: .65rem auto 0;
  font-size: .92rem;
  color: var(--tm);
  line-height: 1.75;
  font-weight: 500;
}
.hero-doc-line {
  font-size: .82rem;
  color: var(--pr);
  font-weight: 700;
  margin: -.35rem 0 .75rem;
  line-height: 1.5;
}

/* دو مسیر — بلافاصله زیر هیرو */
.home-paths-sec {
  background: linear-gradient(180deg, #fff 0%, #f3e8ff 100%);
  padding: 1.25rem 1rem 1.75rem;
  border-bottom: 3px solid var(--pr);
}
.home-paths-inner {
  max-width: 960px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  align-items: stretch;
}
.home-paths-inner--2 {
  grid-template-columns: 1fr auto 1fr;
}
.path-card {
  background: #fff;
  border-radius: 18px;
  padding: 1.35rem 1.25rem;
  border: 2px solid var(--br);
  box-shadow: 0 8px 32px rgba(129, 0, 127, .12);
  display: flex;
  flex-direction: column;
}
.path-card--custom {
  border-color: var(--pr);
  background: linear-gradient(160deg, #fff 0%, #fce8fc 100%);
  box-shadow: 0 10px 36px rgba(129, 0, 127, .22);
}
.path-card--ready {
  border-color: var(--dk);
}
.path-card--club {
  border-color: #0d9488;
  background: linear-gradient(160deg, #fff 0%, #ecfdf5 100%);
  box-shadow: 0 10px 36px rgba(13, 148, 136, .18);
}
.path-badge {
  display: inline-block;
  align-self: flex-start;
  background: var(--pr);
  color: #fff;
  font-size: .7rem;
  font-weight: 800;
  padding: .3rem .75rem;
  border-radius: 999px;
  margin-bottom: .65rem;
}
.path-badge--ready {
  background: var(--dk);
}
.path-badge--club {
  background: #0d9488;
}
.path-card h3 {
  font-size: 1.05rem;
  font-weight: 900;
  color: var(--dk);
  line-height: 1.4;
  margin-bottom: .5rem;
}
.path-card p {
  font-size: .84rem;
  color: #334155;
  line-height: 1.75;
  margin-bottom: .65rem;
  flex: 1;
}
.path-points {
  list-style: none;
  padding: 0;
  margin: 0 0 .85rem;
  font-size: .78rem;
  font-weight: 700;
  color: var(--prm);
  line-height: 1.9;
}
.path-btn {
  width: 100%;
  padding: .85rem 1rem;
  border-radius: 14px;
  font-size: .88rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  border: none;
  transition: transform .15s, box-shadow .15s;
}
.path-btn:active { transform: scale(.98); }
.path-btn--primary {
  background: linear-gradient(135deg, var(--pr) 0%, var(--prm) 100%);
  color: #fff;
  box-shadow: 0 6px 20px rgba(129, 0, 127, .4);
}
.path-btn--secondary {
  background: var(--dk);
  color: #fff;
  box-shadow: 0 6px 20px rgba(15, 23, 42, .25);
}
.path-btn--club {
  background: linear-gradient(135deg, #0d9488 0%, #059669 100%);
  color: #fff;
  box-shadow: 0 6px 20px rgba(13, 148, 136, .35);
}
.path-divider {
  display: flex;
  align-items: center;
  justify-content: center;
}
.path-divider span {
  background: var(--pr);
  color: #fff;
  font-weight: 900;
  font-size: .8rem;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(129, 0, 127, .35);
}
.path-fade {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .5s cubic-bezier(.22,1,.36,1), transform .5s cubic-bezier(.22,1,.36,1);
}
.path-fade.visible { opacity: 1; transform: translateY(0); }
.path-card { height: 100%; }

/* مخاطبان — جدول با انیمیشن پله‌ای */
.aud-fade {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .55s cubic-bezier(.22, 1, .36, 1), transform .55s cubic-bezier(.22, 1, .36, 1);
}
.aud-fade.visible {
  opacity: 1;
  transform: translateY(0);
}

/* مخاطبان — فقط عنوان در چیپ بنفش */
.aud-simple-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
  max-width: 920px;
  margin: 1.25rem auto 0;
}
.aud-chip {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  background: linear-gradient(135deg, var(--pr) 0%, #5c005a 100%);
  color: #fff;
  padding: .7rem 1.15rem;
  border-radius: 999px;
  font-size: .88rem;
  font-weight: 800;
  box-shadow: 0 6px 22px rgba(129, 0, 127, .28);
  border: 1.5px solid rgba(255, 255, 255, .2);
  transition: transform .2s, box-shadow .2s;
}
.aud-chip:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(129, 0, 127, .35);
}
.aud-chip-icon {
  font-size: 1.25rem;
  line-height: 1;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.2));
}
.aud-chip-title {
  color: #fff;
  line-height: 1.35;
}

.aud-table {
  max-width: 1000px;
  margin: 0 auto;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(15, 23, 42, .08);
  border: 1.5px solid var(--br);
  background: #fff;
}
.aud-thead {
  display: grid;
  grid-template-columns: 190px 1fr 210px;
  background: linear-gradient(135deg, var(--pr) 0%, #5c005a 100%);
  color: #fff;
}
.aud-th {
  padding: .9rem 1.1rem;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .02em;
  border-left: 1px solid rgba(255, 255, 255, .25);
  color: #fff;
}
.aud-th:first-child { border-left: none; }
.aud-tr {
  display: grid;
  grid-template-columns: 190px 1fr 210px;
  border-top: 2px solid var(--pr);
  background: #fff;
  transition: background .2s;
}
.aud-tr:nth-child(even) { background: #faf5ff; }
.aud-tr:hover { background: #f3e8ff; }
.aud-tr--corp { background: linear-gradient(90deg, #ede0f5 0%, #fff 50%) !important; }
.aud-td {
  padding: 1.15rem 1.1rem;
  border-left: 1px solid rgba(129, 0, 127, .2);
  display: flex;
  align-items: center;
}
.aud-td:first-child { border-left: none; }
.aud-td-head {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: .4rem;
  background: var(--pr);
  color: #fff;
}
.aud-td-head strong {
  font-size: .92rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.35;
}
.aud-icon { font-size: 1.75rem; line-height: 1; filter: drop-shadow(0 1px 2px rgba(0,0,0,.2)); }
.aud-td-desc {
  background: #fff;
}
.aud-td-desc p {
  margin: 0;
  font-size: .86rem;
  color: #1e293b;
  font-weight: 500;
  line-height: 1.75;
}
.aud-td-tags {
  align-items: flex-start;
  background: var(--dk);
}
.aud-tags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .4rem;
  width: 100%;
}
.aud-tags li {
  font-size: .72rem;
  font-weight: 800;
  background: #fff;
  color: var(--pr);
  padding: .35rem .65rem;
  border-radius: 8px;
  border: none;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
}

/* بخش‌های اثبات اجتماعی */
.home-proof-sec { background: #fff; }
#pg-home .testimonials.home-proof-sec { background: linear-gradient(180deg, #faf8ff 0%, #fff 100%); }

/* باند همکاری سازمانی */
.corp-band {
  background: linear-gradient(135deg, var(--dk) 0%, #1a0a2e 55%, var(--dk) 100%);
  padding: 2.5rem 1.25rem;
  position: relative;
  overflow: hidden;
}
.corp-band::before {
  content: '';
  position: absolute;
  top: -40%;
  left: -10%;
  width: 50%;
  height: 180%;
  background: radial-gradient(ellipse, rgba(129,0,127,.35) 0%, transparent 70%);
  pointer-events: none;
}
.corp-inner {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}
.corp-badge {
  display: inline-block;
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.9);
  font-size: .72rem;
  font-weight: 800;
  padding: .25rem .75rem;
  border-radius: 999px;
  margin-bottom: .6rem;
  border: 1px solid rgba(255,255,255,.15);
}
.corp-text h2 {
  color: #fff;
  font-size: 1.45rem;
  font-weight: 900;
  line-height: 1.35;
  margin-bottom: .5rem;
}
.corp-text p {
  color: rgba(255,255,255,.78);
  font-size: .88rem;
  line-height: 1.75;
  max-width: 520px;
}
.corp-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: .65rem;
  min-width: 200px;
}
.corp-phone {
  display: block;
  text-align: center;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: .9rem;
  padding: .55rem 1rem;
  border: 1.5px solid rgba(255,255,255,.25);
  border-radius: 12px;
  transition: .2s;
}
.corp-phone:hover { background: rgba(255,255,255,.1); }
.corp-actions .bp { width: 100%; text-align: center; }

.m-results-head .sl { margin-bottom: .5rem; }

@media (max-width: 768px) {
  .home-paths-inner {
    grid-template-columns: 1fr;
    gap: .65rem;
  }
  .home-paths-sec {
    padding: .35rem 1rem 1.25rem;
    border-top: none;
  }
  .path-divider { padding: .15rem 0; }
  .path-divider span { width: 32px; height: 32px; font-size: .75rem; }
  .path-card { padding: 1.1rem 1rem; }
  .path-card h3 { font-size: .98rem; }
  .path-btn { font-size: .85rem; padding: .8rem; }
  .aud-simple-grid { gap: .55rem; margin-top: 1rem; }
  .aud-chip { font-size: .8rem; padding: .6rem .95rem; width: 100%; justify-content: center; border-radius: 14px; }
  .corp-inner { flex-direction: column; text-align: center; }
  .corp-text p { margin: 0 auto; }
  .corp-actions { width: 100%; max-width: 320px; }
  .sh-lead { font-size: .85rem; padding: 0 .5rem; }
  #pg-home .m-results-head h2 { font-size: 1.35rem !important; }
}

@media (min-width: 769px) {
  .home-paths-sec { padding: 2rem 2rem 2.5rem; }
  .home-paths-inner--3 {
    max-width: 1200px;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.1rem;
  }
  .home-paths-inner--3 .path-divider { display: none; }
  .home-paths-inner--2 {
    grid-template-columns: 1fr auto 1fr;
  }
  .path-card h3 { font-size: 1.15rem; }
  .path-card p { font-size: .88rem; }
  .corp-text h2 { font-size: 1.75rem; }
  .audience-sec .sh h2 { font-size: 2.1rem !important; }
  .aud-simple-grid { margin-top: 1.5rem; gap: .85rem; }
  .aud-chip { font-size: .95rem; padding: .75rem 1.35rem; }
}
