/**
 * تنسيقاتُ الصفحات **العامّة** — ما يراه زائرٌ لم يسجّل دخولًا.
 *
 * ══════════════════════════════════════════════════════════════════════
 * لماذا ملفٌّ ثالث
 * ══════════════════════════════════════════════════════════════════════
 * عندنا الآن ثلاثُ طبقاتٍ لثلاثة جماهير، ولكلٍّ ملفُّها:
 *
 *   `tokens.css`   ← الهويّة. يحمّلها **الكلُّ** (الموقعُ والتطبيق).
 *   `style.css`    ← الهيكلُ المشترك: ترويسةٌ وفوترٌ وأزرارٌ وحالات.
 *   `public.css`   ← صفحاتُ الاكتشاف: الكورساتُ والمدرّسون وصفحةُ المدرّس.
 *   `portals.css`  ← البوابات. **لمن سجّل دخولَه وحدَه.**
 *
 * والفصلُ ليس ترتيبًا: زائرٌ يبحث عن مدرّسٍ لا يحتاج تنسيقَ بنّاء الكورس،
 * ومدرّسٌ في بوابته لا يحتاج تنسيقَ بطاقات الدليل.
 *
 * (وبدأ الفصلُ حين بلغ `style.css` سقفَ حارس البنية — للمرّة الثانية.
 *  والحدُّ يعمل: كلُّ مرّةٍ أطلقه فيها كان الفصلُ صحيحًا بذاته.)
 */

/* ── الصفحات العامة (#57) ──
   تبقى هنا لا في portals.css: ذاك يُحمَّل لمن سجّل دخولَه وحدَه، وهذه
   الصفحاتُ أوّلُ ما يراه زائرٌ لم يسجّل. (وقع هذا فعلًا عند فصل الملفّين.) */
.rw-pub-head{text-align:center;margin-bottom:26px}
.rw-pub-head h1{font-size:clamp(26px,4.5vw,38px);font-weight:900;margin:0 0 8px}
.rw-pub-head p{color:var(--rw-text-2);margin:0;font-size:15.5px}
.rw-pub-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;
  max-width:760px;margin:0 auto 22px}
.rw-pub-count{color:var(--rw-text-3);font-size:13.5px;margin:0 0 12px}
.rw-ccard-by{font-size:12.5px;color:var(--rw-text-3);margin-top:6px}
@media (max-width:620px){
  .rw-pub-bar{flex-direction:column;align-items:stretch}
  .rw-pub-bar .rw-btn{width:100%;text-align:center}
}

/* ── مبدّلُ الوضع (#55) ── */
.rw-theme-btn{background:none;border:1px solid var(--rw-border);border-radius:999px;
  width:34px;height:34px;display:grid;place-items:center;cursor:pointer;
  font-size:15px;line-height:1;padding:0;color:var(--rw-text-2);
  transition:border-color .15s,background .15s}
.rw-theme-btn:hover{border-color:var(--rw-primary);background:var(--rw-surface-2)}

/* ── تضمينُ الفيديو المشترك (#22) ── */
.rw-embed{position:relative;padding-top:56.25%;border-radius:var(--rw-radius-sm);
  overflow:hidden;background:var(--rw-video-bg)}
.rw-embed iframe,.rw-embed video{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ============================================================
   صفحةُ المدرّس العامّة  (#22 · #24)
   ------------------------------------------------------------
   عامّةٌ فمكانُها هنا لا في portals.css — أوّلُ ما يبلغه زائرٌ لم يسجّل.
   ============================================================ */
.rw-tp-head{background-size:cover;background-position:center;
  border-bottom:1px solid var(--rw-border);padding:44px 0 26px}
.rw-tp-head-in{display:flex;gap:22px;align-items:flex-end;flex-wrap:wrap}
.rw-tp-av{width:118px;height:118px;flex:0 0 auto;border-radius:50%;
  background:var(--rw-primary);background-size:cover;background-position:center;
  color:var(--rw-on-primary);display:grid;place-items:center;
  font-size:44px;font-weight:900;border:4px solid var(--rw-bg);box-shadow:var(--rw-shadow)}
.rw-tp-id{flex:1;min-width:260px}
.rw-tp-id h1{margin:0 0 4px;font-size:clamp(24px,4vw,34px);font-weight:900;
  display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.rw-verified{width:23px;height:23px;border-radius:50%;background:var(--rw-accent);
  color:var(--rw-on-primary);font-size:13px;display:grid;place-items:center;flex:0 0 auto}
.rw-tp-sub{margin:0 0 12px;color:var(--rw-text-2);font-size:16px}
.rw-tp-facts{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;
  color:var(--rw-text-2);margin-bottom:16px}
.rw-tp-facts strong{color:var(--rw-text)}
.rw-tp-cta{display:none}
.rw-tp-body{display:grid;grid-template-columns:1fr 380px;gap:22px;
  align-items:start;padding-block:26px 60px}
.rw-tp-side{position:sticky;top:86px}
.rw-tp-block{margin-bottom:16px}
.rw-tp-block:last-child{margin-bottom:0}
.rw-tp-block h3{margin:0 0 8px;font-size:14.5px;font-weight:800}
.rw-prose{color:var(--rw-text-2);line-height:1.9}
.rw-prose p{margin:0 0 12px}
.rw-prose p:last-child{margin:0}
.rw-chips{display:flex;gap:7px;flex-wrap:wrap}
.rw-chip{background:var(--rw-surface-2);border:1px solid var(--rw-border);
  border-radius:999px;padding:5px 12px;font-size:13px;color:var(--rw-text-2)}
.rw-book-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:980px){
  .rw-tp-body{grid-template-columns:1fr}
  /* الحجزُ أوّلًا على الشاشة الضيّقة: هو الفعلُ لا القراءة */
  .rw-tp-side{position:static;order:-1}
}
@media (max-width:620px){
  .rw-tp-head{padding:26px 0 18px}
  .rw-tp-av{width:84px;height:84px;font-size:32px}
  .rw-tp-facts{gap:10px;font-size:13px}
  .rw-book-grid{grid-template-columns:1fr}
}
.rw-tp-sec{margin-block-end:18px}
.rw-book-price{margin:0 0 16px}
.rw-book-foot{font-size:12.5px;margin:10px 0 0;text-align:center}
.rw-book-send{width:100%}
.rw-free{color:var(--rw-accent)}
.rw-cell-tel{font-size:13px}
.rw-cell-warn{color:var(--rw-red);font-size:13px}
.rw-cell-dim{color:var(--rw-text-3)}
.rw-cell-main{font-weight:700}
.rw-cell-sub{color:var(--rw-text-2);font-size:13px}

/* ── بطاقاتُ باقات الحصص (#17) — عامّةٌ فمكانُها هنا ── */
.rw-pkgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px}
.rw-pkg{border:1px solid var(--rw-border);border-radius:var(--rw-radius-sm);
  padding:16px 14px;text-align:center;background:var(--rw-surface-2)}
.rw-pkg-n{font-size:34px;font-weight:900;line-height:1;color:var(--rw-primary)}
.rw-pkg-l{font-size:13px;color:var(--rw-text-2);margin-bottom:8px}
.rw-pkg-p{font-size:19px;font-weight:800}
.rw-pkg-m{font-size:12px;color:var(--rw-text-3);margin:4px 0 12px;line-height:1.6}
.rw-pkg-hint{display:block;font-size:11.5px;color:var(--rw-text-3);margin-top:7px;line-height:1.6}
.rw-pkg-status{display:flex;align-items:center;gap:12px;margin-bottom:16px;
  padding:13px 17px;border-radius:var(--rw-radius-sm);
  background:color-mix(in srgb,var(--rw-primary) 10%,transparent);
  border:1px solid color-mix(in srgb,var(--rw-primary) 26%,transparent)}
.rw-pkg-status.low{background:color-mix(in srgb,var(--rw-yellow) 12%,transparent);
  border-color:color-mix(in srgb,var(--rw-yellow) 34%,transparent)}
.rw-pkg-status-n{font-size:27px;font-weight:900;line-height:1;color:var(--rw-primary)}
.rw-pkg-status.low .rw-pkg-status-n{color:var(--rw-yellow)}
.rw-pkg-status-t{font-size:14px;color:var(--rw-text-2)}
.rw-hint-tight{margin:0 0 6px}
.rw-hint-gap{margin:0 0 14px}
.rw-hint-sm{font-size:12.5px}
.rw-cell-dim2{font-size:12.5px;color:var(--rw-text-3)}
.rw-mt14{margin-block-start:14px}

/* ── دليلُ المدرّسين (بديلُ عُرف `mkt-`) ── */
.rw-pub-page{padding:34px 22px 60px}
.rw-tfilters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:22px}
.rw-tfilters-q{flex:1 1 240px;min-width:0}
.rw-tfilters-max{width:150px;flex:0 0 auto}
.rw-tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px;
  margin-block:6px 26px}
.rw-tcard{display:flex;flex-direction:column;gap:11px;padding:17px;
  background:var(--rw-surface);border:1px solid var(--rw-border);
  border-radius:var(--rw-radius);transition:border-color .18s,transform .18s,box-shadow .18s}
.rw-tcard:hover{border-color:var(--rw-primary);transform:translateY(-3px);box-shadow:var(--rw-shadow)}
.rw-tcard-top{display:flex;align-items:center;gap:12px}
.rw-tcard-av{width:54px;height:54px;flex:0 0 auto;border-radius:50%;
  background:var(--rw-primary);background-size:cover;background-position:center;
  color:var(--rw-on-primary);display:grid;place-items:center;font-size:21px;font-weight:900}
.rw-tcard-id{min-width:0;flex:1}
.rw-tcard-id h3{margin:0;font-size:15.5px;font-weight:800;display:flex;align-items:center;gap:6px}
.rw-tcard-id p{margin:2px 0 0;font-size:13px;color:var(--rw-text-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rw-verified{display:inline-grid;place-items:center;width:17px;height:17px;flex:0 0 auto;
  border-radius:50%;background:var(--rw-accent);color:var(--rw-on-primary)}
.rw-tcard-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--rw-text-2)}
.rw-tcard-meta span{display:inline-flex;align-items:center;gap:5px}
.rw-tcard-foot{display:flex;align-items:center;justify-content:space-between;gap:9px;
  margin-block-start:auto;padding-block-start:11px;border-top:1px solid var(--rw-border)}
.rw-tcard-price{font-weight:800;color:var(--rw-primary);font-size:15px}
@media (max-width:620px){
  .rw-tfilters{flex-direction:column;align-items:stretch}
  .rw-tfilters-max{width:100%}
  .rw-tfilters .rw-btn{width:100%}
}

/* ══════ تخفيضُ السعر — بطاقةُ الكورس ══════
   الشطبُ لا يكفي وحدَه: `<del>` رماديٌّ باهتٌ يُقرَأ سعرًا ثانيًا، والنسبةُ
   بجانبه هي التي تقول «هذا خصم» في لمحة. */
.mg-cc-was{opacity:.5;font-size:.82em;font-weight:600;margin-inline-start:6px;
  text-decoration-thickness:1.5px}
.mg-cc-off{display:inline-block;margin-inline-start:6px;padding:1px 7px;border-radius:999px;
  font-size:.72em;font-weight:800;letter-spacing:.02em;
  background:var(--mg-acc,#e8590c);color:#fff;
  /* الرقمُ والإشارةُ لاتينيّان فيُعزَلان عن اتّجاه السطر */
  direction:ltr;unicode-bidi:isolate}

/* ══════ الشروط والأحكام (#44) ══════
   عرضٌ محدودٌ لا كاملُ الشاشة: سطرٌ قانونيٌّ يمتدُّ ١٢٠ حرفًا لا يُقرَأ —
   العينُ تفقد أوّلَ السطر التالي. و٦٥ حرفًا هو ما تتبعه بلا جهد. */
.mg-terms{max-width:62ch;margin-inline:auto;padding:56px 24px 96px;line-height:1.9}
.mg-terms-head{margin-bottom:48px;padding-bottom:24px;border-bottom:1px solid var(--mg-line,#e5e0d8)}
.mg-terms-head h1{margin:0;font-size:clamp(26px,3.4vw,38px);line-height:1.35}
.mg-terms-ver{margin:8px 0 0;font-size:13px;opacity:.55;letter-spacing:.08em}
/* البندُ الرئيسيُّ يفصل نفسَه عمّا قبله بمسافةٍ أوسعَ من فرعه — الفرقُ
   وحدَه هو ما يقول «هذا بابٌ جديد» بلا أرقامٍ ولا خطوط. */
.mg-terms h2{margin:48px 0 16px;font-size:clamp(19px,2.2vw,23px);line-height:1.45}
.mg-terms h3{margin:28px 0 8px;font-size:16px;font-weight:700;opacity:.9}
.mg-terms p{margin:0 0 16px}
.mg-terms-list{margin:0 0 16px;padding-inline-start:24px}
.mg-terms-list li{margin-bottom:8px}
.mg-terms-note{padding:12px 16px;border-inline-start:3px solid var(--mg-acc,#e8590c);
  background:var(--mg-surface-2,rgba(0,0,0,.03));border-radius:0 8px 8px 0}
.mg-terms-back{margin-top:48px;padding-top:24px;border-top:1px solid var(--mg-line,#e5e0d8)}

/* ══════════════════════════════════════════════════════════════════
   صفحةُ الدفع (#46) — خلفيّةٌ داكنةٌ كما رسمها محمد
   ══════════════════════════════════════════════════════════════════ */
.mg-pay{--pd-bg:#0e0d0c;--pd-card:#1a1917;--pd-line:#2e2c29;--pd-ink:#f5f2ee;--pd-dim:#a8a29a;
  background:var(--pd-bg);color:var(--pd-ink);min-height:70vh;padding:48px 24px 96px}
.mg-pay-head{max-width:640px;margin-inline:auto;text-align:center}
.mg-pay-eyebrow{margin:0;font-size:12px;letter-spacing:.3em;color:var(--pd-dim);
  direction:ltr;unicode-bidi:isolate}
.mg-pay-head h1{margin:8px 0 20px;font-size:clamp(24px,3.4vw,34px)}
.mg-pay-badge{display:inline-flex;align-items:center;gap:12px;margin:0;padding:8px 8px 8px 20px;
  border:1px solid var(--pd-line);border-radius:999px;background:var(--pd-card)}
.mg-pay-badge .p{padding:4px 14px;border-radius:999px;font-weight:800;
  background:color-mix(in srgb,var(--mg-acc,#e8590c) 22%,transparent);color:var(--mg-acc,#ff7a3d);
  direction:ltr;unicode-bidi:isolate}
.mg-pay-badge .w{opacity:.45;font-size:.85em}

/* الخطوات: الحاليّةُ ملوّنةٌ والماضيةُ باهتةٌ — الموضعُ يُقرَأ بلا عدّ */
.mg-pay-steps{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;
  list-style:none;margin:26px 0 0;padding:0;font-size:13px;color:var(--pd-dim)}
.mg-pay-step{display:flex;align-items:center;gap:6px}
.mg-pay-step .n{font-weight:800;direction:ltr;unicode-bidi:isolate}
.mg-pay-step.is-now{color:var(--mg-acc,#ff7a3d);font-weight:800}
.mg-pay-step.is-done{opacity:.55}

.mg-pay-back{max-width:760px;margin:32px auto 0;text-align:end}
.mg-pay-back a{display:inline-block;padding:8px 16px;border:1px solid var(--pd-line);
  border-radius:999px;color:var(--pd-dim);text-decoration:none;font-size:13.5px}
.mg-pay-back a:hover{color:var(--pd-ink);border-color:var(--pd-ink)}

/* الخطوة ١ — بطاقتان */
.mg-pay-cards{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  max-width:760px;margin:40px auto 0}
.mg-pay-card{display:block;padding:24px;border:1px solid var(--pd-line);border-radius:16px;
  background:var(--pd-card);color:inherit;text-decoration:none;transition:border-color .2s,transform .2s}
.mg-pay-card:hover{transform:translateY(-2px)}
.mg-pay-card.is-eg:hover{border-color:#16a34a}
.mg-pay-card.is-intl:hover{border-color:var(--mg-acc,#e8590c)}
.mg-pay-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;
  font-weight:800;font-size:15px;direction:ltr;unicode-bidi:isolate}
.is-eg .mg-pay-mark{background:color-mix(in srgb,#16a34a 26%,transparent);color:#4ade80}
.is-intl .mg-pay-mark{background:color-mix(in srgb,var(--mg-acc,#e8590c) 26%,transparent)}
.mg-pay-card strong{display:block;margin:14px 0 6px;font-size:17px}
.mg-pay-card p{margin:0;color:var(--pd-dim);font-size:13.5px;line-height:1.75}
.mg-pay-card .go{display:inline-block;margin-top:14px;font-weight:800;font-size:13.5px}
.is-eg .go{color:#4ade80}
.is-intl .go{color:var(--mg-acc,#ff7a3d)}

/* الخطوة ٢ — داخل مصر */
.mg-pay-eg,.mg-pay-intl{max-width:660px;margin:18px auto 0;border-radius:16px;overflow:hidden;
  background:#fff;color:#1a1a1a}
.mg-pay-eg>header{padding:22px;text-align:center;color:#fff;
  background:linear-gradient(135deg,#15803d,#166534)}
.mg-pay-eg>header h2{margin:0;font-size:20px}
.mg-pay-eg>header p{margin:4px 0 0;font-size:13px;opacity:.85}
.mg-pay-how{list-style:none;margin:0;padding:22px;counter-reset:s}
.mg-pay-how li{position:relative;padding-inline-start:44px;margin-bottom:18px;counter-increment:s}
.mg-pay-how li::before{content:counter(s);position:absolute;inset-inline-start:0;top:0;
  width:28px;height:28px;display:grid;place-items:center;border-radius:50%;
  border:1px solid #d6d3cd;font-size:13px;font-weight:800;color:#57534e}
.mg-pay-how strong{display:block;font-size:15.5px}
.mg-pay-how span{display:block;margin-top:3px;font-size:13.5px;color:#6b6660;line-height:1.7}
.mg-pay-wa{display:block;width:calc(100% - 44px);margin:0 22px;padding:16px;border:0;
  border-radius:12px;background:#22c55e;color:#fff;font:inherit;font-size:16px;font-weight:800;
  cursor:pointer}
.mg-pay-wa:hover{background:#16a34a}
.mg-pay-prev{margin:16px 22px 0;padding:14px 16px;border:1px dashed #d6d3cd;border-radius:12px}
.mg-pay-prev .k{display:block;font-size:11.5px;letter-spacing:.08em;color:#8a8580;margin-bottom:6px}
.mg-pay-prev p{margin:0;font-size:13.5px;line-height:1.8;white-space:pre-line}
.mg-pay-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:18px 22px 22px}
.mg-pay-chips li{padding:5px 12px;border:1px solid #e5e0d8;border-radius:999px;
  font-size:12.5px;color:#6b6660}

/* الخطوة ٢ — خارج مصر */
.mg-pay-intl{padding:24px}
.mg-pay-intl h2{margin:0 0 18px;font-size:19px;text-align:center;color:#2563eb}
.mg-pay-sum{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:20px}
.mg-pay-sum th,.mg-pay-sum td{padding:10px 8px;text-align:start;border-bottom:1px solid #e5e0d8}
.mg-pay-sum thead th{font-size:12px;color:#8a8580;font-weight:700}
.mg-pay-sum tfoot th{border-bottom:0;font-size:16px;font-weight:800}
.mg-pay-sum tr.is-off td{color:#16a34a}
.mg-pay-go{display:block;width:100%;padding:16px;border:0;border-radius:12px;
  background:#2563eb;color:#fff;font:inherit;font-size:16px;font-weight:800;cursor:pointer}
.mg-pay-note{margin:10px 0 0;text-align:center;font-size:12.5px;color:#8a8580}

/* ما ينقص يُقال، ولا يُترَك زرٌّ يخيّب */
.mg-pay-warn{padding:16px;border:1px solid #f0c674;border-radius:12px;background:#fdf6e3;color:#7c5b12}
.mg-pay-warn strong{display:block;margin-bottom:4px}
.mg-pay-warn p{margin:0 0 10px;font-size:13.5px;line-height:1.7}
.mg-pay-alt{display:inline-block;padding:10px 18px;border-radius:999px;background:#22c55e;
  color:#fff;text-decoration:none;font-weight:800;font-size:13.5px}
/* ── حساباتُ التحويل ── */
.mg-tr-accounts{padding:0 22px 4px}
.mg-tr-accounts h3{margin:0 0 10px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#8a847c}
.mg-tr-accounts ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.mg-tr-accounts li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:11px 14px;
  border:1px solid #e5e0d8;border-radius:12px;background:#fbfaf8}
.mg-tr-accounts .ic{font-size:16px}
.mg-tr-accounts .nm{font-weight:800;font-size:13.5px;color:#141210}
/* الرقمُ زرٌّ لأنّه يُنقَر — ومظهرُه حقلٌ لأنّه بيانةٌ تُقرَأ. */
.mg-tr-accounts .ac{margin-inline-start:auto;padding:5px 12px;border:1px solid #d9d3c9;
  border-radius:999px;background:#fff;font:inherit;font-weight:800;font-size:13.5px;
  color:#141210;cursor:pointer;transition:background .15s,border-color .15s}
.mg-tr-accounts .ac:hover{border-color:#141210}
.mg-tr-accounts .ac.is-copied{background:#dcfce7;border-color:#22c55e}
.mg-tr-accounts .ac.is-copied::after{content:" ✓";color:#15803d}
.mg-tr-accounts .ho,.mg-tr-accounts .no{flex-basis:100%;font-size:12.5px;color:#6b6660}
@media (max-width:520px){ .mg-tr-accounts{padding-inline:14px} .mg-tr-accounts .ac{margin-inline-start:0} }

/* ── الخطوة ٣ — تفعيلُ الوصول ── */
.mg-pay-done{max-width:640px;margin-inline:auto;background:#fff;color:#141210;border-radius:20px;
  overflow:hidden;text-align:center;padding-bottom:8px}
.mg-pay-tick{display:grid;place-items:center;width:56px;height:56px;margin:26px auto 0;
  border-radius:50%;background:#dcfce7;color:#15803d;font-size:26px;font-weight:900}
.mg-pay-done h2{margin:14px 0 4px;font-size:21px;color:#141210}
.mg-pay-oid{margin:0;font-size:13.5px;color:#6b6660}
.mg-pay-oid b{color:#141210}
/* القائمةُ نفسُها في الخطوتين — لكنّها هنا تحت عنوانٍ موسَّط، فتُحاذى للنصّ. */
.mg-pay-done .mg-pay-how{text-align:start;padding-top:18px}
.mg-pay-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0;padding:0 22px 24px}
.mg-pay-links .mg-pay-alt{background:#141210}
.mg-pay-links .mg-pay-alt.is-wa{background:#22c55e}
@media (max-width:520px){ .mg-pay{padding:32px 14px 64px} .mg-pay-wa{width:calc(100% - 28px);margin-inline:14px} }
