:root{
  --ink:#F2EFE9; --ink-2:#A5A099; --muted:#6E6A63; --dim:#4E4A45; --faint:#3E3B37;
  --gold:#D4AF37; --gold-2:#E8D48A;
  --bg:#0B0B0C; --panel:#141416;
  --line:rgba(242,239,233,0.11); --line-2:rgba(242,239,233,0.07);
  --pad:104px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; direction:rtl; font-family:Vazirmatn,system-ui,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.85; -webkit-font-smoothing:antialiased;
}
a{color:var(--gold); text-decoration:none} a:hover{color:var(--gold-2)}
img{max-width:100%; display:block}
.wrap{max-width:1440px; margin:0 auto; padding:0 var(--pad)}
.narrow{max-width:760px}
.muted{color:var(--muted)}
.eyebrow{font-size:11px; letter-spacing:0.3em; color:var(--muted)}

/* header */
header.site{position:sticky; top:0; z-index:30; background:rgba(11,11,12,0.86); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line)}
.bar{display:flex; align-items:center; justify-content:space-between; height:76px}
.brand{display:flex; align-items:center; gap:11px; color:var(--ink)}
.brand b{font-size:15.5px; font-weight:700; letter-spacing:-0.2px; display:block; line-height:1.3}
.brand small{font-size:9.5px; color:var(--dim); letter-spacing:0.1em}
nav{display:flex; align-items:center; gap:2px}
nav > a{position:relative; padding:9px 13px; font-size:14px; font-weight:400; color:var(--ink-2);
  line-height:1; transition:.15s}
nav > a:hover{color:var(--ink)}
nav > a.on{color:var(--gold); font-weight:500}
nav > a.on::after{content:""; position:absolute; right:13px; left:13px; bottom:-1px; height:2px; background:var(--gold)}
nav .sep{width:1px; height:22px; background:var(--line); margin:0 11px; flex:none}
nav > a.nav-admin{display:flex; align-items:center; gap:7px; color:var(--gold)}
nav > a.nav-admin:hover{color:var(--gold-2)}

/* ورود/ثبت‌نام در نوار بالا — بیرون از nav می‌ماند تا در موبایل هم دیده شود */
.bar-auth{display:flex; align-items:center; gap:20px; flex-shrink:0}
.bar-link{font-size:13.5px; color:var(--ink-2); white-space:nowrap}
.bar-link:hover{color:var(--gold)}
.bar-btn{height:44px; padding:0 22px; font-size:13.5px; white-space:nowrap}

/* buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; height:58px; padding:0 34px;
  background:var(--gold); color:#0B0B0C; font-family:inherit; font-size:15px; font-weight:700;
  border:0; cursor:pointer; transition:.18s}
.btn:hover{background:var(--gold-2); color:#0B0B0C}
.btn.ghost{background:transparent; color:var(--ink); border:1px solid var(--line)}
.btn.ghost:hover{border-color:rgba(212,175,55,0.5); color:var(--gold-2)}
.btn.block{width:100%}

/* hero */
.hero{position:relative; min-height:min(88vh,860px); display:grid;
  grid-template-columns:minmax(0,0.46fr) minmax(0,1fr)}
.hero-img{position:relative; overflow:hidden; background:var(--panel)}
.hero-img img{width:100%; height:100%; object-fit:cover; object-position:50% 22%;
  filter:contrast(1.12) brightness(0.82)}
.hero-img::after{content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(11,11,12,0) 42%,rgba(11,11,12,0.88) 84%,var(--bg) 100%)}
.hero-marks{position:absolute; inset:0; width:100%; height:100%}
.hero-body{display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding:80px var(--pad) 80px 60px}
.hero h1{margin:0; font-size:clamp(38px,6.4vw,96px); font-weight:900; line-height:1.0;
  letter-spacing:-3.6px; text-wrap:balance}
.hero .rule{width:64px; height:1px; background:var(--gold); margin:38px 0 30px}
.hero p{margin:0; font-size:clamp(15px,1.4vw,18px); font-weight:300; line-height:2; color:var(--ink-2); max-width:46ch}
.hero .cta{display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:44px}
.hero .note{font-size:13.5px; color:var(--muted)}

/* angle strip */
.strip{display:flex; align-items:center; gap:0; border-top:1px solid var(--line); padding:22px var(--pad)}
.strip .lbl{font-size:10.5px; letter-spacing:0.26em; color:var(--dim); margin-left:38px}
.angles{display:flex; align-items:baseline; gap:30px}
.angles span{font-size:20px; font-weight:300; color:var(--dim)}
.angles .on{font-size:30px; font-weight:700; color:var(--gold); letter-spacing:-0.5px}
.strip .count{margin-right:auto; display:flex; align-items:baseline; gap:9px}
.strip .count b{font-size:22px; font-weight:700; color:var(--ink)}
.strip .count span{font-size:11px; letter-spacing:0.2em; color:var(--dim)}

/* sections */
section{padding:92px 0}
h2.t{margin:22px 0 0; font-size:clamp(28px,3.6vw,52px); font-weight:800; line-height:1.22; letter-spacing:-2px}
.lede{margin:28px 0 0; font-size:17px; font-weight:300; line-height:2; color:var(--ink-2); max-width:48ch}
.split{display:grid; grid-template-columns:minmax(0,0.85fr) minmax(0,1fr); gap:80px; align-items:center}

/* rule-based columns, no cards */
.cols{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line)}
.cols > div{padding:44px}
.cols > div:not(:last-child){border-left:1px solid var(--line)}
.cols > div:first-child{padding-right:0}
.cols > div:last-child{padding-left:0}
.cols h3{margin:0 0 16px; font-size:clamp(20px,2vw,29px); font-weight:700; letter-spacing:-0.9px}
.cols p{margin:0; font-size:15.5px; font-weight:300; line-height:1.95; color:var(--muted)}
.cols .k{font-size:11px; letter-spacing:0.26em; color:var(--gold); margin-bottom:16px}
.cols svg{margin-bottom:26px}

/* course band */
.band{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); align-items:stretch}
.band-img{position:relative; min-height:520px; overflow:hidden}
.band-img img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:contrast(1.1) brightness(0.78)}
.band-img::after{content:""; position:absolute; inset:0;
  background:linear-gradient(270deg,rgba(11,11,12,0) 44%,rgba(11,11,12,0.92) 92%,var(--bg) 100%)}
.band-body{padding:88px var(--pad) 88px 72px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start}
.price{display:flex; align-items:baseline; gap:12px; margin:34px 0 30px}
.price b{font-size:clamp(32px,4.4vw,54px); font-weight:800; letter-spacing:-2.4px}
.price span{font-size:15px; color:var(--muted)}
.facts{display:flex; gap:40px; padding-bottom:34px; border-bottom:1px solid var(--line); width:100%}
.facts b{font-size:26px; font-weight:800; letter-spacing:-1px; display:block}
.facts span{font-size:11.5px; color:var(--dim); margin-top:5px; display:block}
ul.out{margin:26px 0 0; padding:0; list-style:none; width:100%}
ul.out li{display:flex; gap:13px; padding:11px 0; font-size:15px; font-weight:300; color:var(--ink-2); line-height:1.85}
ul.out li::before{content:"—"; color:var(--gold); flex-shrink:0}

/* form */
form.buy{display:flex; flex-direction:column; gap:26px; width:100%; max-width:460px; margin-top:34px}
.field{display:flex; flex-direction:column; gap:12px}
.field label{font-size:11.5px; letter-spacing:0.24em; color:var(--ink-2)}
.field input{width:100%; padding:0 0 13px; background:transparent; border:0;
  border-bottom:1px solid rgba(242,239,233,0.16); color:var(--ink);
  font-family:inherit; font-size:19px; font-weight:300}
.field input:focus{outline:0; border-bottom-color:var(--gold)}
.field input::placeholder{color:#5A5651}
.field .hint{padding:0; margin:0; border:0; background:none;
  font-size:12.5px; font-weight:300; line-height:1.9; color:var(--muted)}

/* notices */
.notice{padding:24px; margin:28px 0; border:1px solid var(--line); font-size:14.5px; line-height:1.9}
.notice.ok{border-color:rgba(212,175,55,0.34); background:rgba(212,175,55,0.05)}
.notice.error{border-color:rgba(239,68,68,0.34); background:rgba(239,68,68,0.06); color:#F0A8A8}
.notice ul{margin:0; padding-right:18px}
code.license{display:block; direction:ltr; text-align:left; word-break:break-all;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; line-height:2;
  color:var(--gold); background:#000; border:1px solid var(--line); padding:20px; margin:16px 0}

/* my courses */
.mc{padding-top:70px; padding-bottom:90px}
.mc-title{font-size:clamp(30px,4vw,52px); font-weight:900; letter-spacing:-2px; margin:0 0 14px}
.mc-head{display:flex; justify-content:space-between; align-items:center;
  padding-bottom:18px; margin-bottom:28px; border-bottom:1px solid var(--line)}
.mc-item{border-top:1px solid var(--line); padding:32px 0}
.mc-item h2{margin:0 0 6px; font-size:22px; font-weight:700; letter-spacing:-0.6px}
.small{font-size:12.5px}
.linklike{background:none; border:0; color:var(--muted); font-family:inherit; font-size:13px; cursor:pointer; padding:0}
.linklike:hover{color:var(--gold)}

/* footer */
footer.site{border-top:1px solid var(--line); padding:64px 0 30px; margin-top:80px}
.foot{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,0.8fr) minmax(0,1.1fr) auto;
  gap:56px; align-items:start}

.foot-brand .brand{margin-bottom:18px}
.foot-brand p{margin:0 0 22px; font-size:13.5px; font-weight:300; line-height:1.9;
  color:var(--muted); max-width:34ch}

/* آیکون‌های شبکه اجتماعی */
.socs{display:flex; align-items:center; gap:10px}
.soc{display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px;
  border:1px solid var(--line); color:var(--ink-2); transition:.18s}
.soc:hover{border-color:rgba(212,175,55,0.55); color:var(--gold); background:rgba(212,175,55,0.06)}
.soc:focus-visible{outline:2px solid var(--gold); outline-offset:2px}
.bar-socs{gap:4px}
.bar-socs .soc{width:32px; height:32px; padding:0; border:0; color:var(--ink-2)}
.socs svg{flex:none}
.bar-socs .soc:hover{background:transparent; color:var(--gold)}

/* ستون‌های فوتر */
.foot-col{display:flex; flex-direction:column; gap:13px; font-size:13.5px; font-weight:300}
.foot-col .eyebrow{margin-bottom:5px}
.foot-col a{color:var(--muted)}
.foot-col a:hover{color:var(--gold)}
.foot-contact .addr{margin:0; color:var(--muted); line-height:2; max-width:34ch}
.foot-contact .tel{direction:ltr; unicode-bidi:embed; text-align:right; color:var(--ink-2)}
.foot-contact .tel:hover{color:var(--gold)}

/* نماد اعتماد — اگر تصویرش نیامد کادر سفید خالی نمی‌ماند */
.seal{width:104px; min-height:104px; background:#fff; padding:8px; display:flex;
  align-items:center; justify-content:center; flex-shrink:0; border-radius:2px}
.seal img{max-width:76px; height:auto}
.seal .seal-fallback{display:none}
.seal.seal-off{background:transparent; border:1px solid var(--line)}
.seal.seal-off img{display:none}
.seal.seal-off .seal-fallback{display:block; font-size:10px; letter-spacing:0.1em;
  color:var(--dim); text-align:center; line-height:1.7}

.foot-bottom{display:flex; justify-content:space-between; align-items:center; gap:20px;
  flex-wrap:wrap; margin-top:52px; padding-top:26px; border-top:1px solid var(--line-2)}
.copy{font-size:11px; letter-spacing:0.14em; color:var(--faint)}

@media (max-width:1100px){
  :root{--pad:56px}
  .foot{grid-template-columns:1fr 1fr; gap:44px}
  .crd{padding:26px}
  .bar-socs{display:none}
  .hero{grid-template-columns:1fr; min-height:0}
  .hero-img{height:52vh; min-height:340px}
  .hero-body{padding:56px var(--pad)}
  .split,.band{grid-template-columns:1fr; gap:44px}
  .band-img{min-height:320px; order:-1}
  .band-body{padding:56px var(--pad)}
  .cols{grid-template-columns:1fr}
  .cols > div{padding:34px 0 !important; border-left:0 !important; border-bottom:1px solid var(--line)}
  .cols > div:last-child{border-bottom:0}
  nav{display:none}
  section{padding:64px 0}
  .strip{flex-wrap:wrap; gap:16px; padding:20px var(--pad)}
  .strip .lbl{margin-left:0; width:100%}
  .facts{gap:26px}
}
@media (max-width:560px){
  :root{--pad:22px}
  .bar-auth{gap:13px}
  .bar-btn{padding:0 15px; font-size:12.5px}
  .brand small{display:none}
  .foot{grid-template-columns:1fr; gap:36px}
  .crd{padding:20px}
  .btn-lg{width:100%; padding:0 20px; font-size:15px}
  .crd-foot{flex-direction:column; align-items:flex-start; gap:12px}
  .crd-go-row{gap:16px}
  .pnl-help-body{padding:6px 18px 24px}
  .foot-bottom{flex-direction:column; align-items:flex-start; gap:10px}
  .hero h1{letter-spacing:-1.6px}
  .angles{gap:18px}
  .foot{gap:30px}
}

/* ── course room (course.php) ───────────────────────────── */
.cr{padding-top:44px; padding-bottom:90px}
.cr section{padding:0}
.crumb{font-size:13px; color:var(--muted)} .crumb:hover{color:var(--gold)}
.cr-head{padding:26px 0 40px}
.cr-head h1{font-size:clamp(30px,4.4vw,56px); font-weight:900; letter-spacing:-2px; margin:14px 0 12px}
.cr-head .lede{margin:0; max-width:60ch}

/* key + how to watch */
.cr-key{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.cr-key > div{padding:40px 0}
.cr-key > div:first-child{padding-left:52px}
.cr-key > div:last-child{padding-right:52px; border-right:1px solid var(--line)}
.cr-key h2{margin:14px 0 12px; font-size:clamp(21px,2.1vw,30px); font-weight:700; letter-spacing:-1px}
.cr-key p{margin:0 0 24px; font-size:15px; font-weight:300; line-height:1.95; color:var(--muted)}
.cr-key .alt{margin:18px 0 0; font-size:13.5px}
.cr-key code.license{margin:16px 0 20px}

/* syllabus — سرفصل به‌صورت دو ستون: عنوان فصل راست، جلسه‌ها چپ */
.cr-syl{padding:64px 0 12px}
.cr-syl .t{font-size:clamp(26px,3vw,40px); font-weight:900; letter-spacing:-1.6px; margin:14px 0 46px}
.ch{display:grid; grid-template-columns:minmax(0,320px) minmax(0,1fr); gap:0 64px;
  border-top:1px solid var(--line); padding:38px 0}
.ch-head{padding-bottom:8px}
.ch-num{display:block; font-size:11px; letter-spacing:0.26em; color:var(--gold); margin-bottom:14px}
.ch-head h3{margin:0 0 10px; font-size:23px; font-weight:700; letter-spacing:-0.7px}
.ch-head p{margin:0; font-size:14px; font-weight:300; line-height:1.9; color:var(--muted)}
.ch-list{list-style:none; margin:0; padding:0}
.ch-list li{display:flex; align-items:center; gap:20px; padding:12px 0;
  border-bottom:1px solid var(--line-2); font-size:15.5px}
.ch-list li:first-child{padding-top:2px}
.ch-list li:last-child{border-bottom:0}
.ch-list .ln{font-family:ui-monospace,Menlo,monospace; font-size:11.5px; color:var(--dim); flex:none}
.ch-list .lt{flex:1; font-weight:300}
.ch-list .ld{font-size:12.5px; color:var(--dim); flex:none; opacity:0; transition:.16s}
.ch-list li:hover .ld, .ch-list .ld:focus{opacity:1; color:var(--gold)}

@media (max-width:1100px){
  .cr-key{grid-template-columns:1fr}
  .cr-key > div:first-child{padding-left:0}
  .cr-key > div:last-child{padding-right:0; border-right:0; border-top:1px solid var(--line)}
  .ch{grid-template-columns:1fr; gap:22px}
  .ch-list .ld{opacity:1}          /* بدون هاور روی لمسی */
}
@media (max-width:560px){
  .ch-list li{gap:12px; font-size:14.5px}
}

/* ── panel (panel.php) ──────────────────────────────────── */
.pnl{padding-top:44px; padding-bottom:96px; max-width:1080px}
.pnl-top{display:flex; justify-content:space-between; align-items:flex-end; gap:24px;
  padding-bottom:22px; margin-bottom:38px; border-bottom:1px solid var(--line)}
.pnl-top h1{font-size:clamp(26px,3.2vw,40px); font-weight:900; letter-spacing:-1.6px; margin:12px 0 8px}

.pnl-empty{border:1px solid var(--line); padding:64px 44px; text-align:center}
.pnl-empty h2{font-size:26px; font-weight:700; letter-spacing:-0.8px; margin:0 0 12px}
.pnl-empty p{color:var(--muted); font-weight:300; margin:0 0 30px}

/* کارت دوره — همه‌چیزِ یک دوره در یک جا */
.crd{border:1px solid var(--line); background:var(--panel); padding:34px; margin-top:20px}
.crd-head{display:flex; justify-content:space-between; align-items:flex-start; gap:20px}
.crd-head h2{margin:0 0 8px; font-size:23px; font-weight:700; letter-spacing:-0.7px}
.crd-meta{margin:0; font-size:12.5px; font-weight:300; color:var(--muted)}
.dot{color:var(--faint); margin:0 4px}
.badge{flex:none; font-size:10.5px; letter-spacing:0.18em; color:var(--gold);
  border:1px solid rgba(212,175,55,0.4); padding:6px 12px}

/* کنش اصلی */
.crd-go{margin-top:28px; padding-top:26px; border-top:1px solid var(--line-2)}
.btn-lg{height:64px; padding:0 42px; font-size:16.5px}
.crd-go-row{display:flex; align-items:center; gap:28px; flex-wrap:wrap}
.crd-go-row .btn-lg{flex:none}
.crd-go-note{margin:0; flex:1; min-width:230px; font-size:13.5px; font-weight:300;
  line-height:1.95; color:var(--muted)}

/* کلید — پیش‌فرض محو */
.crd-key{margin-top:26px; border:1px solid var(--line); background:#000; padding:18px 20px}
.crd-key-bar{display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:12px}
.crd-key-acts{display:flex; gap:8px}
code.key{display:block; direction:ltr; text-align:left; word-break:break-all;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11.5px; line-height:2;
  color:var(--gold); transition:filter .18s}
code.key.masked{filter:blur(5px); user-select:none}
.copy-btn{background:transparent; border:1px solid var(--line); color:var(--ink);
  font-family:inherit; font-size:12px; padding:7px 14px; cursor:pointer; transition:.16s}
.copy-btn:hover{border-color:rgba(212,175,55,0.55); color:var(--gold-2)}
.copy-btn.ok{border-color:var(--gold); color:var(--gold)}

.crd-foot{display:flex; justify-content:space-between; align-items:center; gap:20px;
  flex-wrap:wrap; margin-top:24px; padding-top:20px; border-top:1px solid var(--line-2);
  font-size:13px; font-weight:300}
.crd-link{color:var(--gold)}
.crd-inst{color:var(--muted)}
.crd-inst a{color:var(--ink-2)}
.crd-inst a:hover{color:var(--gold)}

/* راهنما — جمع‌شده */
.pnl-help{margin-top:34px; border:1px solid var(--line)}
.pnl-help summary{cursor:pointer; padding:20px 26px; font-size:14.5px; color:var(--ink-2);
  list-style:none; display:flex; align-items:center; gap:10px}
.pnl-help summary::-webkit-details-marker{display:none}
.pnl-help summary::before{content:"+"; color:var(--gold); font-size:17px; line-height:1}
.pnl-help[open] summary::before{content:"−"}
.pnl-help summary:hover{color:var(--gold-2)}
.pnl-help-body{padding:6px 26px 30px; border-top:1px solid var(--line-2)}
.steps{list-style:none; margin:22px 0 0; padding:0}
.steps li{display:flex; gap:20px; padding:16px 0; border-bottom:1px solid var(--line-2)}
.steps li:last-child{border-bottom:0}
.steps .sn{font-size:11px; letter-spacing:0.2em; color:var(--gold); flex:none; padding-top:5px}
.steps h3{margin:0 0 6px; font-size:16.5px; font-weight:700; letter-spacing:-0.4px}
.steps p{margin:0; font-size:13.5px; font-weight:300; line-height:1.9; color:var(--muted)}
.tips{margin:24px 0 0; padding-right:18px; font-size:13.5px; font-weight:300;
  line-height:2.1; color:var(--muted)}
.tips a{color:var(--ink-2)}

@media (max-width:1100px){
}
@media (max-width:560px){
  .pnl-top{flex-direction:column; align-items:flex-start; gap:14px}
  .steps li{gap:14px}
}

/* کسی که دوره را خریده — به‌جای دکمه خرید */
.owned{margin-top:34px; padding:26px 28px; border:1px solid rgba(212,175,55,0.34);
  background:rgba(212,175,55,0.05)}
.owned .lede{color:var(--ink-2)}
@media (max-width:560px){ .owned{padding:20px} .owned .btn{width:100%} }

/* راهنمای بعد از کپی */
.hint{margin:22px 0 0; padding:16px 18px; border:1px solid rgba(212,175,55,0.34);
  background:rgba(212,175,55,0.05); font-size:14.5px; line-height:1.9}
.hint b{color:var(--gold)}
.hint.bad{border-color:rgba(239,68,68,0.34); background:rgba(239,68,68,0.06)}
.hint.bad b{color:#F0A8A8}
.cr-key .alt.muted{color:var(--muted); font-size:13px}


/* نوار عکس تمام‌عرض */
.plate{position:relative; margin:0; overflow:hidden;
  height:clamp(260px,40vw,500px); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.plate img{width:100%; height:100%; object-fit:cover; object-position:50% 18%;
  filter:contrast(1.08) brightness(0.66) saturate(0.85)}
.plate::after{content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg,rgba(11,11,12,0.94) 0%,rgba(11,11,12,0.12) 58%,rgba(11,11,12,0.4) 100%)}
.plate figcaption{position:absolute; z-index:2; right:var(--pad); left:var(--pad); bottom:34px;
  font-size:15.5px; font-weight:300; line-height:1.9; color:var(--ink-2); max-width:54ch}
.plate figcaption .eyebrow{display:block; margin-bottom:10px}
@media (max-width:560px){ .plate figcaption{bottom:22px; font-size:14px} }


/* کد تخفیف */
.field.promo{margin-top:22px}
.field.promo input{letter-spacing:.12em; text-transform:uppercase}


/* ثبت لایسنسی که کاربر از قبل دارد */
.pnl-help.redeem{margin-top:20px}
.redeem-lede{margin:18px 0 0; font-size:14px; font-weight:300; line-height:1.95; color:var(--muted); max-width:62ch}
.redeem-form{display:flex; flex-direction:column; gap:11px; margin-top:20px; max-width:640px}
.redeem-form textarea{background:#000; border:1px solid var(--line); color:var(--gold);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; line-height:1.9;
  padding:14px; resize:vertical; outline:none}
.redeem-form textarea:focus{border-color:rgba(212,175,55,.55)}
.redeem-form .btn{align-self:flex-start; height:52px; padding:0 30px}
.redeem-note{margin:14px 0 0; font-size:12.5px; color:var(--dim)}


/* ورود و ثبت‌نام — کارت جمع‌وجور. ورودی‌ها کادردارند، نه خط زیرین. */
.authpage{padding-top:52px; padding-bottom:80px}
.auth-card{max-width:560px; margin:0 auto; background:#0F0F11;
  border:1px solid var(--line); border-radius:16px; padding:38px}
.auth-head{margin-bottom:26px}
.auth-head .mc-title{font-size:26px; font-weight:700; letter-spacing:-0.6px; margin:0 0 6px}
.auth-head .small{font-size:13.5px}
.authpage .notice{margin:0 0 20px; padding:15px 17px; border-radius:10px; font-size:13.5px; line-height:1.8}

form.auth-form{display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 16px; margin:0; max-width:none}
form.auth-form .field{gap:8px}
form.auth-form .field.wide{grid-column:1 / -1}
form.auth-form .field label{font-size:12.5px; font-weight:500; letter-spacing:0; color:var(--ink-2)}
/* کادر واقعی به‌جای خط زیرین: هدف لمسی بزرگ‌تر و مرز روشن‌تر */
form.auth-form .field input{height:50px; padding:0 15px; background:var(--panel);
  border:1px solid var(--line); border-radius:9px; font-size:15px}
form.auth-form .field input:focus{border-color:rgba(212,175,55,0.55)}
form.auth-form .field .hint{font-size:12px; line-height:1.8}
form.auth-form .hint.mismatch{padding:0; margin:0; border:0; background:none;
  font-size:12px; font-weight:300; line-height:1.8; color:#F0A8A8}

.auth-go{grid-column:1 / -1; display:block; margin-top:6px}
.auth-go .btn{width:100%; height:52px; border-radius:9px; font-size:15px}
.auth-go .small{display:block; margin-top:14px; text-align:center; font-size:12px}

@media (max-width:640px){
  .authpage{padding-top:26px; padding-bottom:52px}
  .auth-card{padding:26px 20px; border-radius:14px}
  .auth-head{margin-bottom:22px}
  .auth-head .mc-title{font-size:23px}
  form.auth-form{grid-template-columns:1fr; gap:16px}
}


/* ─── سمینارها: فهرست ──────────────────────────────────── */
:root{ --ok:#4ADE80; --bad:#EF4444; }
.gold{color:var(--gold)}
.sems{padding-bottom:100px}
.sems-head{display:flex; align-items:flex-end; justify-content:space-between; gap:40px; flex-wrap:wrap;
  padding:14px 0 40px; border-bottom:1px solid var(--line); margin-bottom:52px}
.sems-head .mc-title{margin:14px 0 0}
.sems-lede{margin:0 0 8px; max-width:430px; font-size:15px; font-weight:300; color:var(--ink-2);
  line-height:1.9; text-wrap:pretty}

.sem-lead{display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line);
  background:#0F0F11; overflow:hidden; margin-bottom:34px}
.sem-lead-img{position:relative; min-height:430px; background:var(--panel)}
.sem-lead-img img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.sem-shade{position:absolute; inset:0;
  background:linear-gradient(270deg, rgba(15,15,17,.96) 0%, rgba(15,15,17,.35) 46%, transparent 100%)}
.sem-shade.sm{background:linear-gradient(0deg, rgba(15,15,17,.9), transparent 62%)}
.datechip{position:absolute; top:26px; right:26px; display:flex; align-items:stretch;
  background:rgba(11,11,12,.82); border:1px solid rgba(212,175,55,.34); backdrop-filter:blur(8px)}
.datechip > div{padding:13px 18px; text-align:center}
.datechip b{display:block; font-size:26px; font-weight:800; letter-spacing:-1px; line-height:1}
.datechip span{font-size:11px; color:var(--ink-2)}
.datechip i{width:1px; background:rgba(212,175,55,.28)}
.sem-lead-body{padding:46px 44px; display:flex; flex-direction:column; justify-content:space-between}
.sem-lead-body h2{margin:16px 0 0; font-size:34px; font-weight:800; letter-spacing:-1.2px;
  line-height:1.3; text-wrap:balance}
.sem-desc{margin:18px 0 0; font-size:15px; font-weight:300; color:var(--ink-2); line-height:2; text-wrap:pretty}
.sem-facts{display:flex; flex-wrap:wrap; gap:32px; margin-top:30px; padding-top:26px; border-top:1px solid var(--line-2)}
.sem-facts b{display:block; margin-top:7px; font-size:15px; font-weight:500}
.sem-go{display:flex; align-items:center; gap:22px; margin-top:38px; flex-wrap:wrap}
.sem-go .btn{flex:none; height:52px}
.cap{flex:1; min-width:200px}
.cap-row{display:flex; justify-content:space-between; font-size:12px; color:var(--muted); margin-bottom:8px}
.cap-bar{height:4px; background:rgba(242,239,233,.07)}
.cap-bar i{display:block; height:100%; background:var(--gold)}

.sem-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:34px}
.sem-card{border:1px solid var(--line); background:#0F0F11}
.sem-card.is-full{opacity:.62}
.sem-card-img{position:relative; height:210px; background:var(--panel)}
.sem-card-img img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.9}
.is-full .sem-card-img img{filter:grayscale(1); opacity:.35}
.stamp{position:absolute; inset:0; margin:auto; width:max-content; height:max-content;
  padding:9px 20px; font-size:12.5px; letter-spacing:.2em; color:var(--ink-2);
  border:1px solid rgba(242,239,233,.16); background:rgba(11,11,12,.7)}
.datepill{position:absolute; top:18px; right:18px; padding:7px 13px; font-size:12px;
  background:rgba(11,11,12,.82); border:1px solid rgba(212,175,55,.34); color:var(--gold-2)}
.sem-card-body{padding:28px 26px}
.sem-card-body h3{margin:0; font-size:21px; font-weight:700; letter-spacing:-.6px}
.sem-card-body p{margin:11px 0 0; font-size:14px; font-weight:300; color:var(--ink-2); line-height:1.95}
.sem-card-foot{display:flex; align-items:center; justify-content:space-between; gap:16px;
  margin-top:24px; padding-top:20px; border-top:1px solid var(--line-2); font-size:13.5px}

/* ─── صفحه سمینار ──────────────────────────────────────── */
.sem-hero{position:relative; height:340px}
.sem-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.sem-hero-shade{position:absolute; inset:0;
  background:linear-gradient(0deg,var(--bg) 4%, rgba(11,11,12,.55) 52%, rgba(11,11,12,.72) 100%)}
.sem-hero-body{position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end;
  padding-bottom:34px}
.sem-hero-body h1{margin:14px 0 0; font-size:clamp(28px,3.6vw,46px); font-weight:900; letter-spacing:-1.8px; line-height:1.2}
.sem-hero-meta{display:flex; flex-wrap:wrap; gap:14px; margin-top:16px; font-size:14.5px; color:var(--ink-2)}
.sem.has-hero{padding-top:40px}

/* شرح و جزئیات زیر نقشه می‌آیند — اول کاری که آمده‌اند بکنند */
.sem-info{display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:44px;
  margin-top:64px; padding-top:44px; border-top:1px solid var(--line)}
.sem-info-main h2{margin:0 0 18px; font-size:22px; font-weight:700; letter-spacing:-.6px}
.sem-about{font-size:15px; font-weight:300; color:var(--ink-2); line-height:2.1; text-wrap:pretty}
.sem-info-side{display:flex; flex-direction:column; gap:16px}
.sem-side-box{padding:22px; border:1px solid var(--line); background:#0F0F11}
.sem-side-box b{display:block; margin-top:9px; font-size:15px; font-weight:600}
.sem-side-box p{margin:8px 0 0; font-size:14px; font-weight:300; color:var(--ink-2); line-height:1.95}

/* ─── نقشه صندلی ───────────────────────────────────────── */
.sem{padding-bottom:90px}
.stage{margin:30px auto 34px; max-width:520px; text-align:center; font-size:12px; letter-spacing:.28em;
  color:var(--muted); padding:12px; border:1px solid var(--line); border-radius:0 0 60px 60px;
  background:linear-gradient(180deg, rgba(212,175,55,.10), transparent)}
.seatmap{display:flex; flex-direction:column; gap:10px; align-items:center; overflow-x:auto; padding:4px 2px 10px}
.seatrow{display:flex; align-items:center; gap:7px; white-space:nowrap}
.rowlab,.rowprice{font-size:11.5px; color:var(--muted); flex:none}
.rowlab{width:26px; text-align:center; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.04em}
.rowprice{width:96px; text-align:left; padding-right:10px}
.seat{position:relative; flex:none}
.seat input{position:absolute; inset:0; opacity:0; cursor:pointer; margin:0}
.seat span{display:flex; align-items:center; justify-content:center; width:30px; height:28px;
  border-radius:7px 7px 4px 4px; font-size:11px; border:1px solid var(--line);
  background:var(--panel); color:var(--ink-2); transition:.14s}
.seat-free span:hover{border-color:rgba(212,175,55,.55); color:var(--ink)}
.seat input:focus-visible + span{outline:2px solid var(--gold); outline-offset:2px}
/* انتخاب شما سبز، فروخته‌شده قرمز */
.seat input:checked + span{background:var(--ok); border-color:var(--ok); color:#06240F; font-weight:700}
.seat-sold span,.seat-blocked span,.seat-held span{cursor:not-allowed}
.seat-sold span{background:rgba(239,68,68,.20); border-color:rgba(239,68,68,.52); color:#F0A8A8}
.seat-blocked span{background:rgba(239,68,68,.07); border-color:rgba(239,68,68,.30); color:#7A4A4A;
  text-decoration:line-through}
.seat-held span{background:repeating-linear-gradient(45deg,#1a1a1d,#1a1a1d 3px,#242428 3px,#242428 6px); color:var(--dim)}
.seat-mine span{background:var(--ok); border-color:var(--ok); color:#06240F; font-weight:700}
.seat input:disabled + span{opacity:.9}

.legend{display:flex; gap:20px; justify-content:center; flex-wrap:wrap; margin:22px 0 6px;
  font-size:12px; color:var(--muted)}
.legend span{display:flex; align-items:center; gap:7px}
.legend i{width:14px; height:13px; border-radius:4px 4px 2px 2px; border:1px solid var(--line); display:block}
.legend .k-free{background:var(--panel)}
.legend .k-sel{background:var(--ok); border-color:var(--ok)}
.legend .k-held{background:repeating-linear-gradient(45deg,#1a1a1d,#1a1a1d 3px,#242428 3px,#242428 6px)}
.legend .k-sold{background:rgba(239,68,68,.20); border-color:rgba(239,68,68,.52)}
.legend .k-blocked{background:rgba(239,68,68,.07); border-color:rgba(239,68,68,.30)}

.sem-bar{position:sticky; bottom:0; z-index:20; display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap; margin-top:26px; padding:18px 22px; background:rgba(11,11,12,.94);
  backdrop-filter:blur(12px); border:1px solid var(--line)}
.sem-bar b{display:block; font-size:15px; margin-top:4px; font-weight:600}
.sem-bar .btn{flex:none; height:52px; min-width:170px}
.bar-pick{flex:1; min-width:180px}
.bar-sum{flex:none; padding-left:26px; border-left:1px solid var(--line)}
.bar-sum b{color:var(--gold); font-size:19px; letter-spacing:-.4px}
.badge-off{opacity:.55}

/* ─── مدیریت ───────────────────────────────────────────── */
.adm-table{width:100%; border-collapse:collapse; margin-top:8px; font-size:13.5px}
.adm-table th{text-align:right; font-size:11px; letter-spacing:.18em; color:var(--muted);
  font-weight:400; padding:0 12px 12px; border-bottom:1px solid var(--line)}
.adm-table td{padding:15px 12px; border-bottom:1px solid var(--line-2); vertical-align:middle}
.adm-table tr:hover td{background:rgba(242,239,233,.02)}
.adm-table .ltr{direction:ltr; text-align:left; font-size:12.5px}
.adm-table select{background:var(--panel); color:var(--ink); border:1px solid var(--line);
  border-radius:7px; padding:7px 10px; font-family:inherit; font-size:12.5px}
.inline-form{margin:0}
.adm-stats{display:flex; gap:44px; flex-wrap:wrap; padding:24px 0 30px; margin-bottom:12px;
  border-bottom:1px solid var(--line)}
.adm-stats b{display:block; margin-top:6px; font-size:23px; font-weight:700; letter-spacing:-.6px}

.rev{margin-top:8px}
.rev-total{padding:30px 0 26px; border-bottom:1px solid var(--line); margin-bottom:26px}
.rev-total b{display:block; margin:8px 0 4px; font-size:44px; font-weight:900; letter-spacing:-2px; color:var(--gold)}
.rev-split{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:26px}
.rev-card{border:1px solid var(--line); background:#0F0F11; padding:26px}
.rev-head{display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding-bottom:18px; border-bottom:1px solid var(--line-2)}
.rev-head b{font-size:21px; font-weight:700; letter-spacing:-.6px}
.rev-list{list-style:none; margin:0; padding:0}
.rev-list li{display:flex; align-items:center; gap:14px; padding:13px 0; font-size:13.5px;
  border-bottom:1px solid var(--line-2)}
.rev-list li:last-child{border-bottom:0}
.rev-list li span{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.rev-list li em{font-style:normal; font-size:12px; color:var(--muted); flex:none}
.rev-list li b{font-weight:600; flex:none}
.rev-note{margin:14px 0 0; font-size:12px; color:var(--dim); line-height:1.9}

/* فرم مدیر */
.admform .card-form{border:1px solid var(--line); background:#0F0F11; border-radius:16px;
  padding:34px; margin-bottom:26px}
.f-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px 16px; margin-top:20px}
.f-grid .fld.wide{grid-column:1 / -1}
.fld{display:flex; flex-direction:column; gap:8px}
.fld label{font-size:12.5px; font-weight:500; color:var(--ink-2)}
.card-form input[type=text],.card-form input[type=number],.card-form input:not([type]),
.card-form textarea{width:100%; background:var(--panel); border:1px solid var(--line); border-radius:9px;
  color:var(--ink); font-family:inherit; font-size:15px; font-weight:300; padding:13px 15px}
.card-form input:not([type=file]){height:50px}
.card-form textarea{min-height:120px; line-height:1.9; resize:vertical}
.card-form input:focus,.card-form textarea:focus{outline:0; border-color:rgba(212,175,55,.55)}
.f-hint{margin:8px 0 0; font-size:12px; color:var(--muted); line-height:1.85}
.f-block{margin-bottom:6px}
.card-form .go{width:100%; height:52px; border-radius:9px; margin-top:24px}
.img-pick{display:flex; gap:16px; align-items:stretch; margin-top:12px}
.img-prev{width:230px; height:126px; border:1px solid var(--line); border-radius:9px; overflow:hidden;
  flex:none; background:var(--panel)}
.img-prev img{width:100%; height:100%; object-fit:cover}
.img-prev.none{display:none}
.img-drop{flex:1; border:1px dashed rgba(242,239,233,.22); border-radius:9px; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px;
  background:rgba(242,239,233,.02); padding:18px; text-align:center; transition:.15s}
.img-drop:hover{border-color:rgba(212,175,55,.45); background:rgba(212,175,55,.03)}
.img-drop input{position:absolute; width:1px; height:1px; opacity:0}
.img-drop b{font-size:13px; font-weight:500; color:var(--ink-2)}
.img-drop span{font-size:11.5px; color:var(--dim)}
.drop-img{display:inline-flex; align-items:center; gap:8px; margin-top:14px; font-size:12.5px; color:var(--muted)}
.rows-table input{padding:11px 12px; height:auto}
.rows-table .rn{color:var(--muted); width:44px}
.rows-acts{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px}
.rows-acts .btn{height:48px; border-radius:9px; font-size:14px}
.admin-map{margin-top:18px; align-items:flex-start}
.admin-map .seat input:checked + span{background:rgba(239,68,68,.20); border-color:rgba(239,68,68,.62);
  color:#F0A8A8; text-decoration:line-through}
.admin-map .seat-sold span{cursor:not-allowed}

/* ─── تقویم شمسی ───────────────────────────────────────── */
.jd{position:relative}
.jd-field{width:100%; height:50px; padding:0 15px; text-align:right; background:var(--panel);
  border:1px solid var(--line); border-radius:9px; color:var(--ink); font-family:inherit;
  font-size:15px; font-weight:300; cursor:pointer}
.jd-field.empty{color:#5A5651}
.jd-field:hover{border-color:rgba(212,175,55,.45)}
.jd-pop{display:none; position:absolute; z-index:60; top:calc(100% + 8px); right:0; width:288px;
  background:#141416; border:1px solid rgba(242,239,233,.16); border-radius:12px; padding:14px;
  box-shadow:0 18px 44px rgba(0,0,0,.6)}
.jd.open .jd-pop{display:block}
.jd-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px}
.jd-top b{font-size:14px; font-weight:600}
.jd-nav{width:30px; height:30px; border:1px solid var(--line); border-radius:7px; background:transparent;
  color:var(--ink-2); font-size:17px; line-height:1; cursor:pointer; font-family:inherit}
.jd-nav:hover{border-color:rgba(212,175,55,.5); color:var(--gold)}
.jd-grid{display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:3px}
.jd-dow{font-size:10.5px; color:var(--muted); text-align:center; padding-bottom:5px}
.jd-day{height:32px; border:0; border-radius:7px; background:transparent; color:var(--ink-2);
  font-family:inherit; font-size:12.5px; cursor:pointer}
.jd-day:hover{background:rgba(242,239,233,.06); color:var(--ink)}
.jd-day.on{background:var(--gold); color:#0B0B0C; font-weight:700}
.jd-time{display:flex; align-items:center; gap:8px; margin-top:12px; padding-top:12px;
  border-top:1px solid var(--line-2); font-size:12.5px; color:var(--muted)}
.jd-time select{background:#0B0B0C; color:var(--ink); border:1px solid var(--line); border-radius:7px;
  padding:7px 9px; font-family:inherit; font-size:13px}
.jd-colon{color:var(--dim)}
.jd-done{margin-right:auto; padding:8px 16px; border:0; border-radius:7px; background:var(--gold);
  color:#0B0B0C; font-family:inherit; font-size:12.5px; font-weight:700; cursor:pointer}

/* ─── بلیت ─────────────────────────────────────────────── */
.tk-page{padding-bottom:80px}
.ticket{margin-top:26px; background:#0F0F11; border:1px solid var(--line); border-radius:14px; overflow:hidden}
.tk-top{display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
  padding:26px 28px; border-bottom:1px solid var(--line)}
.tk-top h1{margin:9px 0 0; font-size:23px; font-weight:700; letter-spacing:-.6px; line-height:1.35}
.tk-when{margin:9px 0 0; font-size:13.5px; font-weight:300; color:var(--ink-2)}
.tk-mark{flex:none; opacity:.9}
.tk-body{display:grid; grid-template-columns:1fr auto; gap:28px; padding:26px 28px}
.tk-seats{padding-bottom:18px; margin-bottom:4px; border-bottom:1px solid var(--line-2)}
.tk-seats b{display:block; margin-top:8px; font-size:30px; font-weight:800; letter-spacing:-1px; color:var(--gold)}
.tk-rows{margin:0}
.tk-rows > div{display:flex; justify-content:space-between; gap:18px; padding:9px 0;
  border-bottom:1px solid var(--line-2); font-size:13.5px}
.tk-rows > div:last-child{border-bottom:0}
.tk-rows dt{color:var(--muted); margin:0}
.tk-rows dd{margin:0}
.tk-qr{flex:none; width:170px; display:flex; flex-direction:column; align-items:center; gap:10px;
  padding-right:26px; border-right:1px dashed var(--line)}
.qr-box{width:150px; height:150px; padding:9px; background:#fff; border-radius:8px}
.qr-box svg{width:100%; height:100%; display:block; shape-rendering:crispEdges}
.tk-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:17px;
  letter-spacing:.18em; color:var(--gold)}
.tk-scan{font-size:11px; color:var(--muted)}
.tk-foot{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding:14px 28px; border-top:1px dashed var(--line); font-size:11.5px; color:var(--muted)}
.tk-acts{display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:24px}
.tk-acts .btn{height:50px; border-radius:9px}

/* ─── بررسی بلیت ───────────────────────────────────────── */
.vfy{padding-bottom:90px}
.vfy-form{display:flex; gap:12px; margin:8px 0 26px}
.vfy-form input{flex:1; height:54px; padding:0 17px; background:var(--panel); border:1px solid var(--line);
  border-radius:10px; color:var(--ink); font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:19px; letter-spacing:.14em; text-align:center}
.vfy-form input:focus{outline:0; border-color:rgba(212,175,55,.55)}
.vfy-form .btn{height:54px; border-radius:10px; flex:none}
.vfy-card{padding:30px; border-radius:14px; border:1px solid var(--line); background:#0F0F11; text-align:center}
.vfy-card h2{margin:16px 0 0; font-size:24px; font-weight:800; letter-spacing:-.7px}
.vfy-card p{margin:9px 0 0; font-size:14px; color:var(--ink-2); line-height:1.9}
.vfy-mark{width:60px; height:60px; margin:0 auto; border-radius:50%; display:flex;
  align-items:center; justify-content:center}
.vfy-card.ok{border-color:rgba(74,222,128,.42); background:rgba(74,222,128,.05)}
.vfy-card.ok .vfy-mark{background:rgba(74,222,128,.16); color:var(--ok)}
.vfy-card.ok h2{color:var(--ok)}
.vfy-card.bad{border-color:rgba(239,68,68,.42); background:rgba(239,68,68,.05)}
.vfy-card.bad .vfy-mark{background:rgba(239,68,68,.16); color:#F0A8A8}
.vfy-card.bad h2{color:#F0A8A8}
.vfy-sem{font-size:16px !important; color:var(--ink) !important; font-weight:600}
.vfy-seats{margin:22px 0 4px; padding:16px; border:1px solid var(--line); border-radius:10px; background:#0B0B0C}
.vfy-seats b{display:block; margin-top:7px; font-size:26px; font-weight:800; letter-spacing:-.8px; color:var(--gold)}
.vfy-card .tk-rows{margin-top:18px; text-align:right}
.vfy-note{font-size:12.5px !important; color:var(--muted) !important}
.vfy-hint{font-size:13.5px; color:var(--muted); line-height:2}
.vfy-mine{margin-top:26px; font-size:13.5px}

@media (max-width:640px){
  .tk-body{grid-template-columns:1fr; gap:22px}
  .tk-qr{width:100%; padding-right:0; border-right:0; padding-top:22px; border-top:1px dashed var(--line)}
  .ticket{border-radius:12px}
  .tk-top,.tk-body{padding:20px}
  .tk-seats b{font-size:25px}
  .vfy-form{flex-direction:column}
  .vfy-form .btn{width:100%}
}

/* ─── چاپ: یک صفحه، بدون رنگ زمینه تیره ─────────────────── */
@media print{
  @page{size:A4; margin:14mm}
  header.site, footer.site, .tk-acts, .crumb, .vfy-form, .vfy-mine{display:none !important}
  html,body{background:#fff !important; color:#111 !important}
  .wrap{padding:0 !important; max-width:none !important}
  .mc{padding:0 !important}
  .ticket{margin:0; border:1.5px solid #111; border-radius:0; background:#fff !important;
    break-inside:avoid; page-break-inside:avoid}
  .tk-top{border-bottom:1.5px solid #111; padding:18px 20px}
  .tk-top h1{font-size:20pt; color:#000}
  .tk-when{color:#333}
  .tk-body{padding:18px 20px; gap:20px}
  .tk-seats{border-bottom:1px solid #bbb}
  .tk-seats b{color:#000; font-size:26pt}
  .tk-rows > div{border-bottom:1px solid #ddd}
  .tk-rows dt{color:#555}
  .tk-rows dd{color:#000}
  .tk-qr{border-right:1.5px dashed #111; width:180px}
  .qr-box{width:160px; height:160px; padding:0; background:#fff; border-radius:0}
  .tk-code{color:#000; font-size:15pt}
  .tk-scan{color:#444}
  .tk-foot{border-top:1.5px dashed #111; color:#444; padding:11px 20px}
  .eyebrow{color:#555 !important}
  .vfy-card{border:1.5px solid #111; background:#fff !important}
  .vfy-card h2, .vfy-seats b{color:#000 !important}
  .vfy-seats{border:1px solid #999; background:#fff}
}

}

/* ─── پرداخت‌ها و پرونده مشتری ─────────────────────────── */
.block{display:block}
.mt{margin-top:44px; margin-bottom:14px}
.nowrap{white-space:nowrap}
.head-acts{display:flex; gap:12px; flex-wrap:wrap}
.pay-filters{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:8px 0 4px}
.seg{display:flex; border:1px solid var(--line); border-radius:9px; overflow:hidden}
.seg a{padding:10px 16px; font-size:13px; color:var(--ink-2); border-left:1px solid var(--line)}
.seg a:last-child{border-left:0}
.seg a:hover{background:rgba(242,239,233,.04); color:var(--ink)}
.seg a.on{background:var(--gold); color:#0B0B0C; font-weight:600}
.pay-q{flex:1; min-width:240px; height:44px; padding:0 15px; background:var(--panel);
  border:1px solid var(--line); border-radius:9px; color:var(--ink); font-family:inherit; font-size:14px; font-weight:300}
.pay-q:focus{outline:0; border-color:rgba(212,175,55,.55)}
.pay-table td{vertical-align:top}
.pay-table .block{margin-top:3px}
.kind{display:inline-block; padding:3px 9px; border-radius:5px; font-size:11px; margin-bottom:6px}
.kind-course{background:rgba(212,175,55,.14); color:var(--gold-2)}
.kind-seminar{background:rgba(74,222,128,.12); color:#8FE3AC}

.cust-id{display:flex; flex-wrap:wrap; gap:38px; padding:26px; margin:8px 0 10px;
  border:1px solid var(--line); background:#0F0F11}
.cust-id b{display:block; margin-top:6px; font-size:15px; font-weight:600}
.cust-id .ltr{direction:ltr; text-align:left}
.rec{border:1px solid var(--line); background:#0F0F11; padding:24px; margin-bottom:16px}
.rec-head{display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding-bottom:16px; border-bottom:1px solid var(--line-2)}
.rec-head b{font-size:17px; font-weight:600; letter-spacing:-.4px}
.rec-rows{display:grid; grid-template-columns:repeat(auto-fit, minmax(190px,1fr)); gap:2px 26px; margin:16px 0 0}
.rec-rows > div{display:flex; justify-content:space-between; gap:14px; padding:9px 0;
  border-bottom:1px solid var(--line-2); font-size:13.5px}
.rec-rows dt{color:var(--muted); margin:0}
.rec-rows dd{margin:0}
.rec-rows .ltr{direction:ltr; text-align:left; font-size:12.5px}
.rec-key{margin-top:18px}
.rec-key .license{margin-top:8px}
@media (max-width:640px){
  .pay-filters{gap:8px}
  .seg a{padding:9px 12px; font-size:12px}
  .cust-id{gap:22px; padding:20px}
  .rec{padding:18px}
  .pay-table td,.pay-table th{padding:10px 6px}
}

/* مبلغ: جداکننده هزار + واحد داخل کادر */
.money-wrap{position:relative; display:block}
.money-wrap input{padding-left:52px !important; font-variant-numeric:tabular-nums; letter-spacing:.02em}
.money-wrap i{position:absolute; left:13px; top:50%; transform:translateY(-50%);
  font-style:normal; font-size:11.5px; color:var(--muted); pointer-events:none}

/* ─── اطلاعات حساب ─────────────────────────────────────── */
.acct{padding-bottom:90px}
.acct-head{margin-bottom:26px}
.acct-head .mc-title{font-size:clamp(26px,3.2vw,34px); margin:12px 0 0}
.acct .card-form{border:1px solid var(--line); background:#0F0F11; border-radius:16px;
  padding:34px; margin-bottom:22px}
.acct .card-form h2{margin:0 0 4px; font-size:20px; font-weight:700; letter-spacing:-.5px}
.acct .card-form .f-hint{margin:0 0 22px}
.acct .card-form .f-grid{margin-top:0}
.pnl-acts{display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.pnl-acts form{margin:0}
.acct .hint.mismatch{padding:0; margin:0; border:0; background:none;
  font-size:12px; font-weight:300; line-height:1.8; color:#F0A8A8}
@media (max-width:640px){ .acct .card-form{padding:24px 20px} }
.rows-acts .acts-gap{flex:1}
@media (max-width:640px){ .rows-acts .acts-gap{display:none} .rows-acts .btn{width:100%} }
.notice.preview{border-color:rgba(212,175,55,.42); background:rgba(212,175,55,.07); color:var(--ink-2)}
.notice.preview b{display:block; margin-bottom:5px; color:var(--gold)}

/* دکمه نمایش رمز — در RTL سمت چپ کادر می‌نشیند */
.pw-wrap{position:relative; display:block}
.pw-wrap input{padding-left:46px !important; width:100%}
.pw-eye{position:absolute; left:6px; top:50%; transform:translateY(-50%);
  width:34px; height:34px; display:flex; align-items:center; justify-content:center;
  padding:0; border:0; border-radius:8px; background:transparent; color:var(--muted);
  cursor:pointer; transition:.14s}
.pw-eye svg{width:19px; height:19px; display:block}
.pw-eye:hover{color:var(--gold); background:rgba(212,175,55,.08)}
.pw-eye:focus-visible{outline:2px solid var(--gold); outline-offset:2px}
.pw-eye[aria-pressed="true"]{color:var(--gold)}

/* ─── ویترین سمینار روی صفحه اصلی ──────────────────────── */
.home-sems{padding:96px 0}
.hs-head{display:flex; align-items:flex-end; justify-content:space-between; gap:40px; flex-wrap:wrap;
  padding-bottom:34px; margin-bottom:40px; border-bottom:1px solid var(--line)}
.hs-head h2{margin:14px 0 0; font-size:clamp(28px,3.4vw,42px); font-weight:900; letter-spacing:-1.6px}
.hs-head p{margin:0 0 6px; max-width:420px; font-size:15px; font-weight:300; color:var(--ink-2);
  line-height:1.95; text-wrap:pretty}
.hs-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(300px,1fr)); gap:30px}
.hs-card{border:1px solid var(--line); background:#0F0F11; display:flex; flex-direction:column}
.hs-img{position:relative; display:block; height:200px; background:var(--panel); overflow:hidden}
.hs-img img{width:100%; height:100%; object-fit:cover; transition:.4s}
.hs-card:hover .hs-img img{transform:scale(1.04)}
.hs-shade{position:absolute; inset:0; background:linear-gradient(0deg, rgba(15,15,17,.85), transparent 58%)}
.hs-date{position:absolute; top:16px; right:16px; padding:9px 13px; text-align:center; line-height:1.1;
  background:rgba(11,11,12,.84); border:1px solid rgba(212,175,55,.34); backdrop-filter:blur(6px)}
.hs-date b{display:block; font-size:19px; font-weight:800; letter-spacing:-.6px}
.hs-date i{font-style:normal; font-size:10.5px; color:var(--ink-2)}
.hs-body{padding:24px; display:flex; flex-direction:column; flex:1}
.hs-body h3{margin:0; font-size:20px; font-weight:700; letter-spacing:-.5px; line-height:1.4}
.hs-body h3 a{color:var(--ink)} .hs-body h3 a:hover{color:var(--gold)}
.hs-meta{margin:10px 0 0; font-size:13.5px; font-weight:300; color:var(--ink-2); line-height:1.9}
.hs-foot{display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:auto;
  padding-top:18px; font-size:13.5px}
.hs-price{color:var(--gold); font-weight:500}
.hs-left{color:var(--muted); font-size:12.5px}
.hs-left.off{color:#F0A8A8}
.hs-btn{width:100%; margin-top:18px; height:48px; font-size:14px}
.hs-note{margin:34px 0 0; font-size:13.5px; color:var(--muted); line-height:2}
@media (max-width:640px){
  .home-sems{padding:64px 0}
  .hs-head{padding-bottom:24px; margin-bottom:28px}
  .hs-grid{grid-template-columns:1fr; gap:22px}
}

/* رمز و ایمیل لاتین‌اند، ولی صفحه راست‌به‌چپ است. «@» و «.» خنثی‌اند و در
   جهت RTL به ابتدای کادر پرت می‌شوند — «S7618…@» شبیه «@S7618…» دیده می‌شود.
   مقدار درست ذخیره شده، فقط نمایش غلط بود. تا وقتی کادر خالی است RTL می‌ماند
   تا راهنمای فارسی درست بخواند؛ به‌محض تایپ، LTR می‌شود. */
.pw-wrap input,
input[type="email"]{direction:ltr; text-align:left}
.pw-wrap input:placeholder-shown,
input[type="email"]:placeholder-shown{direction:rtl; text-align:right}
