/* dr-v2.css — نظام تصميم «حجزك» (Hajzak Clinical Interface System). كل شيء تحت .drv2 (لا يمسّ أي صفحة أخرى).
   مصدر الحقيقة: docs/design/DESIGN.md. بلا ظلال ولا ضباب ولا تدرّجات؛ العمق بحدود 1px فقط.
   الخط مستضاف محلياً (public/fonts/ibm-plex-sans-arabic، رخصة OFL): لا Google Fonts ولا CDN. */

/* ── الخط: IBM Plex Sans Arabic 400/500/600/700، woff2 فقط، swap. ثلاث مجموعات محارف لكل وزن،
      والمتصفح لا ينزّل إلا ما تحتاجه الصفحة (unicode-range). latin-ext لرمز الشيكل ₪. ── */
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-arabic-400-normal.woff2') format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-arabic-500-normal.woff2') format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-arabic-600-normal.woff2') format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-arabic-700-normal.woff2') format('woff2'); unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-latin-400-normal.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-latin-500-normal.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-latin-600-normal.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-latin-700-normal.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-latin-ext-400-normal.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-latin-ext-500-normal.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-latin-ext-600-normal.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113; }
@font-face { font-family: 'IBM Plex Sans Arabic'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/ibm-plex-sans-arabic/ibm-plex-sans-arabic-latin-ext-700-normal.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113; }

.drv2 {
  /* ألوان (الأسماء الدلالية من DESIGN.md؛ لا أسماء Material) */
  --ink: #1C2B5B; --ink-2: #3D4768; --muted: #5A6382;
  --coral: #F86A5B;
  --canvas: #F6F7FB; --card: #FFFFFF; --chip: #E9ECF6;
  --border: #E3E6EF; --border-strong: #D6DAE6;
  --star: #C98A0B; --error: #BA1A1A;
  /* الحالات الست (خلفية / نص). «بانتظار رد الطبيب»: النص #8A5E00 بدل #C98A0B لأن الأخير على #FEF6E7
     تباينه 3.3:1 فقط (أقل من AA لنص 12px)؛ #C98A0B يبقى للنجمة. انظر docs/design/DESIGN_TOKENS.md */
  --st-new-bg: #EFF2F9;      --st-new-fg: #3D4768;
  --st-wait-bg: #FEF6E7;     --st-wait-fg: #8A5E00;
  --st-ok-bg: #E8F5EE;       --st-ok-fg: #0F6B45;
  --st-done-bg: #DDF0E6;     --st-done-fg: #094C30;
  --st-post-bg: #EBF1FD;     --st-post-fg: #1E50A0;
  --st-bad-bg: #FDEEEB;      --st-bad-fg: #A63A1E;
  /* أسماء قديمة (ج-1…ج-5 والصفحات المبنية) — أسماء بديلة لا قيم جديدة */
  --line: var(--border); --line-strong: var(--border-strong); --rating: var(--star);
  /* مقاييس الخط: حجم / ارتفاع سطر */
  --fs-headline-xl: 32px;  --lh-headline-xl: 48px;
  --fs-headline-xl-m: 26px; --lh-headline-xl-m: 38px;
  --fs-headline-lg: 24px;  --lh-headline-lg: 38px;
  --fs-headline-md: 20px;  --lh-headline-md: 32px;
  --fs-headline-sm: 18px;  --lh-headline-sm: 28px;
  --fs-body-lg: 16px;      --lh-body-lg: 26px;
  --fs-body-md: 15px;      --lh-body-md: 24px;
  --fs-body-sm: 13px;      --lh-body-sm: 21px;
  --fs-label-lg: 15px;     --lh-label-lg: 24px;
  --fs-label-md: 14px;     --lh-label-md: 22px;
  --fs-label-sm: 12px;     --lh-label-sm: 18px;
  --fs-caption: 11px;      --lh-caption: 16px;
  /* المسافات (إيقاع 8px) */
  --space-xs: 4px; --space-sm: 8px; --space-md: 16px; --space-lg: 24px; --space-xl: 32px;
  /* الحواف */
  --r-sm: 8px; --r-md: 10px; --r-12: 12px; --r-lg: 16px; --r-full: 9999px;
  --r-card: var(--r-lg); --r-btn: var(--r-md); --r-chip: var(--r-sm);
  /* الشبكة: 4 أعمدة/16px (جوال) ← 8/24px (لوحي) ← 12/32px (مكتب)، أقصى عرض 1200px */
  --grid-cols: 4; --grid-gap: 16px; --margin: 16px; --container: 1200px;
  --gutter: 16px; /* حشوة الصفحة الجانبية على الجوال (مستعملة في الصفحات المبنية) */
  font-family: 'IBM Plex Sans Arabic', system-ui, 'Segoe UI', Tahoma, sans-serif;
  color: var(--ink); background: var(--canvas);
  font-size: var(--fs-body-md);
  line-height: 1.6; direction: rtl; text-align: right;
  -webkit-text-size-adjust: 100%;
}
@media (min-width: 768px) { .drv2 { --grid-cols: 8; --grid-gap: 24px; --margin: 32px; } }
@media (min-width: 1024px) { .drv2 { --grid-cols: 12; --grid-gap: 32px; --margin: 48px; } }
.drv2 *, .drv2 *::before, .drv2 *::after { box-sizing: border-box; }
/* الخاصية hidden تغلب أي display من الفئات (.v2-stack/.v2-row…) */
.drv2 [hidden] { display: none !important; }
.drv2 a { color: inherit; text-decoration: none; }
.drv2 .v2-wrap { max-width: var(--container); margin: 0 auto; padding: 0 16px; }
@media (min-width: 1024px) { .drv2 .v2-wrap { padding: 0 3rem; } }
.drv2 .v2-grid { display: grid; grid-template-columns: repeat(var(--grid-cols), minmax(0, 1fr)); gap: var(--grid-gap); }

/* مقاييس الخط كفئات */
.drv2 .t-headline-xl { font-size: var(--fs-headline-xl-m); line-height: var(--lh-headline-xl-m); font-weight: 700; }
@media (min-width: 768px) { .drv2 .t-headline-xl { font-size: var(--fs-headline-xl); line-height: var(--lh-headline-xl); } }
.drv2 .t-headline-lg { font-size: var(--fs-headline-lg); line-height: var(--lh-headline-lg); font-weight: 700; }
.drv2 .t-headline-md { font-size: var(--fs-headline-md); line-height: var(--lh-headline-md); font-weight: 600; }
.drv2 .t-headline-sm { font-size: var(--fs-headline-sm); line-height: var(--lh-headline-sm); font-weight: 600; }
.drv2 .t-body-lg { font-size: var(--fs-body-lg); line-height: var(--lh-body-lg); font-weight: 400; }
.drv2 .t-body-md { font-size: var(--fs-body-md); line-height: var(--lh-body-md); font-weight: 400; }
.drv2 .t-body-sm { font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); font-weight: 400; }
.drv2 .t-label-lg { font-size: var(--fs-label-lg); line-height: var(--lh-label-lg); font-weight: 600; }
.drv2 .t-label-md { font-size: var(--fs-label-md); line-height: var(--lh-label-md); font-weight: 500; }
.drv2 .t-label-sm { font-size: var(--fs-label-sm); line-height: var(--lh-label-sm); font-weight: 500; }
.drv2 .t-caption { font-size: var(--fs-caption); line-height: var(--lh-caption); font-weight: 500; }
.drv2 h1, .drv2 h2, .drv2 h3, .drv2 h4 { font-family: inherit; color: inherit; }

/* أزرار: واحد رئيسي (مرجاني) في كل شاشة، ارتفاع ≥48px */
.drv2 .v2-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 20px; border-radius: var(--r-btn);
  font: inherit; font-weight: 700; font-size: 15px; cursor: pointer;
  border: 1.5px solid transparent; transition: filter .12s;
}
.drv2 .v2-btn:hover { filter: brightness(.96); }
.drv2 .v2-btn:active { filter: brightness(.92); }
.drv2 .v2-btn--primary { background: var(--coral); color: var(--ink); }
.drv2 .v2-btn--secondary { background: var(--ink); color: #fff; }
.drv2 .v2-btn--outline { background: #fff; color: var(--ink); border-color: var(--ink); }
.drv2 .v2-btn--ghost { background: transparent; color: var(--st-bad-fg); min-height: 44px; padding: 8px 16px; }
.drv2 .v2-btn--block { display: flex; width: 100%; }
.drv2 .v2-btn[disabled], .drv2 .v2-btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; filter: none; }
.drv2 :focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }

/* بطاقات */
.drv2 .v2-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--r-card); padding: 16px; }
@media (min-width: 768px) { .drv2 .v2-card { padding: 24px; } }

/* بطاقة الطبيب */
.drv2 .v2-dc { display: block; }
.drv2 .v2-dc__head { display: flex; gap: 12px; align-items: flex-start; }
.drv2 .v2-dc__photo { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; background: var(--chip); flex: none; }
.drv2 .v2-dc__initials { display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; background: var(--ink); }
.drv2 .v2-dc__name { font-size: 20px; font-weight: 600; line-height: 1.4; margin: 0; }
.drv2 .v2-dc__spec { font-size: 14px; color: var(--ink-2); margin: 2px 0 0; }
.drv2 .v2-dc__meta { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-top: 8px; font-size: 13px; color: var(--muted); }
.drv2 .v2-dc__rating { color: var(--star); font-weight: 600; }
.drv2 .v2-dc__badge { font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 6px; background: var(--chip); color: var(--ink-2); }
.drv2 .v2-dc__panel { margin-top: 12px; padding: 12px; border-radius: 12px; background: var(--canvas); border: 1px solid var(--border); }
.drv2 .v2-dc__note { font-size: 14px; color: var(--ink-2); margin: 0 0 8px; }
.drv2 .v2-dc__label { font-size: 13px; color: var(--muted); margin: 0 0 8px; }
.drv2 .v2-dc__cta { margin-top: 12px; }

/* شرائح الأوقات */
.drv2 .v2-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.drv2 .v2-chip {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 72px; height: 40px; padding: 0 16px; border-radius: var(--r-chip);
  background: var(--chip); color: var(--ink); font: inherit; font-size: 14px; font-weight: 500;
  border: 1px solid transparent; cursor: pointer; position: relative;
}
.drv2 .v2-chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.drv2 .v2-chip:has(input:focus-visible) { outline: 3px solid var(--ink); outline-offset: 2px; }
.drv2 .v2-chip.is-selected, .drv2 .v2-chip:has(input:checked) { background: var(--ink); color: #fff; border-color: transparent; }
.drv2 .v2-chip.is-booked {
  background: transparent; color: var(--muted); opacity: .6; cursor: not-allowed;
  border: 1px dashed var(--border-strong); text-decoration: line-through;
}
.drv2 .v2-chip.is-booked input { cursor: not-allowed; }

/* حبوب الحالة */
.drv2 .v2-pill { display: inline-block; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 9999px; white-space: nowrap; }
.drv2 .v2-pill--new { background: var(--st-new-bg); color: var(--st-new-fg); }
.drv2 .v2-pill--pending { background: var(--st-wait-bg); color: var(--st-wait-fg); }
.drv2 .v2-pill--confirmed { background: var(--st-ok-bg); color: var(--st-ok-fg); }
.drv2 .v2-pill--visited { background: var(--st-done-bg); color: var(--st-done-fg); }
.drv2 .v2-pill--postponed { background: var(--st-post-bg); color: var(--st-post-fg); }
.drv2 .v2-pill--rejected, .drv2 .v2-pill--cancelled, .drv2 .v2-pill--not_visited, .drv2 .v2-pill--apology { background: var(--st-bad-bg); color: var(--st-bad-fg); }

/* بطاقة الملخص */
.drv2 .v2-sum { display: grid; gap: 12px; }
.drv2 .v2-sum__row { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; font-size: 15px; }
.drv2 .v2-sum__k { color: var(--muted); font-size: 13px; }
.drv2 .v2-sum__v { font-weight: 600; text-align: left; }
.drv2 .v2-sum__title { font-size: 18px; font-weight: 600; margin: 0 0 4px; }

/* شريط التنقل السفلي (موبايل) */
.drv2 .v2-bnav {
  position: fixed; inset-inline: 0; bottom: 0; z-index: 50; display: flex; justify-content: space-around;
  background: #fff; border-top: 1px solid var(--border); padding: 6px 0 calc(6px + env(safe-area-inset-bottom));
}
.drv2 .v2-bnav a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 48px; justify-content: center; font-size: 11px; font-weight: 500; color: var(--muted); }
.drv2 .v2-bnav a[aria-current="page"] { color: var(--ink); font-weight: 700; }
@media (min-width: 768px) { .drv2 .v2-bnav { display: none; } }

/* شريط إجراء لاصق أسفل الشاشة (زر مرجاني واحد) */
.drv2 .v2-sticky { position: sticky; bottom: 0; background: #fff; border-top: 1px solid var(--border); padding: 12px var(--gutter) calc(12px + env(safe-area-inset-bottom)); }

/* ── صفحات الحجز (T2) ── */
.drv2 .v2-page { max-width: 560px; margin: 0 auto; padding: 16px var(--gutter) 24px; }
.drv2 .v2-page--wide { max-width: 1040px; }
.drv2 .v2-stack { display: grid; gap: 16px; align-content: start; } /* لا توزيع للمساحة الزائدة حين يكون للحاوية ارتفاع أدنى */
.drv2 .v2-h1 { font-size: 26px; font-weight: 700; line-height: 1.5; margin: 0; }
.drv2 .v2-h2 { font-size: 18px; font-weight: 600; margin: 0 0 12px; }
.drv2 .v2-sub { font-size: 14px; color: var(--ink-2); margin: 4px 0 0; }
.drv2 .v2-muted { color: var(--muted); font-size: 13px; }
.drv2 .v2-steps { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
.drv2 .v2-steps li { flex: 1; font-size: 12px; color: var(--muted); }
.drv2 .v2-steps li::before { content: ""; display: block; height: 4px; border-radius: 4px; background: var(--chip); margin-bottom: 6px; }
.drv2 .v2-steps li.is-done::before, .drv2 .v2-steps li.is-now::before { background: var(--ink); }
.drv2 .v2-steps li.is-now { color: var(--ink); font-weight: 700; }
.drv2 .v2-field { display: grid; gap: 6px; }
.drv2 .v2-label { font-size: 14px; font-weight: 500; color: var(--ink-2); }
.drv2 .v2-req { color: var(--st-bad-fg); }
.drv2 .v2-input { width: 100%; min-height: 48px; padding: 10px 14px; background: #fff; border: 1px solid var(--border-strong); border-radius: var(--r-btn); font: inherit; font-size: 16px; color: var(--ink); }
.drv2 textarea.v2-input { min-height: 88px; resize: vertical; }
.drv2 .v2-input:focus { border-color: var(--ink); outline: none; }
.drv2 .v2-input.is-error { border-color: var(--st-bad-fg); }
.drv2 .v2-err { font-size: 13px; color: var(--st-bad-fg); }
.drv2 .v2-alert { padding: 12px 14px; border-radius: 12px; font-size: 14px; border: 1px solid var(--border); background: #fff; }
.drv2 .v2-alert--err { background: var(--st-bad-bg); color: var(--st-bad-fg); border-color: transparent; }
.drv2 .v2-alert--ok { background: var(--st-ok-bg); color: var(--st-ok-fg); border-color: transparent; }
.drv2 .v2-alert--warn { background: var(--st-wait-bg); color: var(--st-wait-fg); border-color: transparent; }
.drv2 .v2-otp { text-align: center; letter-spacing: .5em; font-size: 24px; direction: ltr; }
.drv2 .v2-days { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.drv2 .v2-day { flex: 1 1 96px; min-height: 64px; flex-direction: column; height: auto; padding: 8px 12px; text-align: center; gap: 2px; }
.drv2 .v2-day small { font-size: 12px; opacity: .8; }
.drv2 .v2-links a { text-decoration: underline; }
.drv2 .v2-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.drv2 .v2-hours { display: grid; gap: 6px; font-size: 14px; }
.drv2 .v2-hours div { display: flex; justify-content: space-between; border-bottom: 1px solid var(--border); padding-bottom: 6px; }
.drv2 .v2-review { border-top: 1px solid var(--border); padding-top: 12px; margin-top: 12px; }
.drv2 .v2-review:first-of-type { border-top: 0; margin-top: 0; padding-top: 0; }
.drv2 .v2-star { color: var(--star); }
.drv2 .v2-pad-bottom { padding-bottom: 96px; }
.drv2 .v2-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* ── الصفحات العامة (المرحلة 2) ── */
.drv2 .v2-filters { display: grid; gap: 12px; }
@media (min-width: 768px) { .drv2 .v2-filters { grid-template-columns: repeat(3, 1fr); align-items: end; } .drv2 .v2-filters .v2-btn { grid-column: 1 / -1; } }
.drv2 .v2-list { display: grid; gap: 16px; }
@media (min-width: 1024px) { .drv2 .v2-list { grid-template-columns: 1fr 1fr; align-items: start; } }
.drv2 a.v2-chip { text-decoration: none; }.drv2 .v2-more > summary { list-style: none; cursor: pointer; }
.drv2 .v2-more > summary::-webkit-details-marker { display: none; }
/* ── صفحة الحجز الكاملة (v2) ── */
.drv2 .v2-cols { display: grid; gap: 16px; }
@media (min-width: 992px) { .drv2 .v2-cols { grid-template-columns: minmax(0, 1fr) 360px; align-items: start; } .drv2 .v2-panel { position: sticky; top: 80px; } }
.drv2 .v2-sticky--mobile { position: fixed; inset-inline: 0; bottom: 0; z-index: 90; margin: 0; }
@media (min-width: 992px) { .drv2 .v2-sticky--mobile { display: none; } }
.drv2 .v2-tab.is-selected, .drv2 .v2-slot.is-selected { background: var(--ink); color: #fff; }

/* نافذة الحجز (Bootstrap modal): نفس البنية والـIDs، مظهر v2 */
.drv2 #exampleModal.modal { background: rgba(28, 43, 91, .32); }
.drv2 #exampleModal .modal-content { border: 1px solid var(--border-strong); border-radius: var(--r-card); background: #fff; font-family: inherit; color: var(--ink); }
.drv2 #exampleModal .modal-header { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--border); background: #fff; }
.drv2 #exampleModal .modal-title { font-size: 18px; font-weight: 600; margin: 0; display: flex; gap: 8px; align-items: center; }
.drv2 #exampleModal .bk-modal-close { min-width: 44px; min-height: 44px; border: 0; background: var(--chip); border-radius: var(--r-btn); color: var(--ink); cursor: pointer; }
.drv2 #exampleModal .modal-body { padding: 20px; max-height: calc(100vh - 140px); overflow-y: auto; }
.drv2 #exampleModal .form-group { margin-bottom: 14px; }
.drv2 #exampleModal label { display: block; font-size: 14px; font-weight: 500; color: var(--ink-2); margin-bottom: 6px; }
.drv2 #exampleModal .form-control { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--border-strong); border-radius: var(--r-btn); font: inherit; font-size: 16px; color: var(--ink); background: #fff; }
.drv2 #exampleModal .form-control:focus { border-color: var(--ink); outline: none; box-shadow: none; }
.drv2 #exampleModal textarea.form-control { min-height: 88px; }
.drv2 #exampleModal .bk-modal-info { display: flex; gap: 8px; padding: 12px 14px; border-radius: 12px; background: var(--st-ok-bg); color: var(--st-ok-fg); font-size: 14px; margin-bottom: 14px; }
.drv2 #exampleModal .bk-modal-grid { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
@media (max-width: 540px) { .drv2 #exampleModal .bk-modal-grid { grid-template-columns: 1fr; } }
.drv2 #exampleModal .bk-step-indicator { display: flex; gap: 6px; margin-bottom: 16px; }
.drv2 #exampleModal .bk-step-dot { flex: 1; text-align: center; font-size: 12px; color: var(--muted); }
.drv2 #exampleModal .bk-step-circle { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 50%; background: var(--chip); color: var(--ink-2); font-weight: 700; }
.drv2 #exampleModal .bk-step-dot.active .bk-step-circle { background: var(--ink); color: #fff; }
.drv2 #exampleModal .bk-step-dot.done .bk-step-circle { background: var(--st-ok-fg); color: #fff; }
.drv2 #exampleModal .bk-step-dot.active .bk-step-label { color: var(--ink); font-weight: 700; }
.drv2 #exampleModal .bk-step-label { font-size: 12px; margin-top: 4px; }
.drv2 #exampleModal .bk-step-section { display: none; }
.drv2 #exampleModal .bk-step-section.active { display: block; }
.drv2 #exampleModal .bk-step-next, .drv2 #exampleModal #bkStep2 button[type="submit"] { display: flex; width: 100%; min-height: 48px; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: var(--r-btn); background: var(--coral); color: var(--ink); font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; }
.drv2 #exampleModal .bk-step-next:disabled, .drv2 #exampleModal #bkStep2 button[type="submit"]:disabled { opacity: .5; cursor: not-allowed; }
.drv2 #exampleModal .bk-step-back { min-height: 44px; border: 0; background: transparent; color: var(--ink-2); font: inherit; cursor: pointer; padding: 0; margin-bottom: 8px; }
.drv2 #exampleModal .bk-cancel-policy { margin-top: 12px; font-size: 13px; color: var(--muted); text-align: center; }
.drv2 #exampleModal .fam-pill { min-height: 44px; }
.drv2 .custom-modal { display: none; position: fixed; inset: 0; z-index: 3100; background: rgba(28, 43, 91, .32); align-items: center; justify-content: center; padding: 16px; }
.drv2 .custom-modal .modal-box { background: #fff; border: 1px solid var(--border-strong); border-radius: var(--r-card); padding: 24px; max-width: 360px; width: 100%; text-align: center; }
.drv2 .custom-modal .modal-icon { font-size: 40px; }
.drv2 .custom-modal .modal-title { font-size: 20px; font-weight: 600; margin: 8px 0; }
.drv2 .custom-modal .btn-ad { min-height: 48px; padding: 0 24px; border: 0; border-radius: var(--r-btn); background: var(--ink); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
/* بطاقة بوابة الدخول (للزائر): الحجز السريع هو الخيار الأبرز */
.drv2 .bk-login-sheet { position: fixed; inset: 0; z-index: 3000; }
.drv2 .bk-login-sheet-bd { position: absolute; inset: 0; background: rgba(28, 43, 91, .32); }
.drv2 .bk-login-sheet-card { position: absolute; inset-inline: 0; bottom: 0; max-width: 480px; margin: 0 auto; background: #fff; border: 1px solid var(--border-strong); border-radius: 16px 16px 0 0; padding: 24px 20px calc(24px + env(safe-area-inset-bottom, 0px)); text-align: center; }
.drv2 .bk-login-sheet-x { position: absolute; inset-inline-end: 10px; top: 6px; min-width: 44px; min-height: 44px; border: 0; background: none; font-size: 26px; color: var(--muted); cursor: pointer; }
.drv2 .bk-login-ico { display: none; }
.drv2 .bk-login-h { font-size: 20px; font-weight: 600; margin: 0 0 6px; }
.drv2 .bk-login-p { font-size: 14px; color: var(--ink-2); margin: 0 0 16px; }
.drv2 .bk-login-quick, .drv2 .bk-login-primary, .drv2 .bk-login-secondary { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 48px; padding: 10px 16px; border-radius: var(--r-btn); font-weight: 700; margin-bottom: 10px; text-decoration: none; }
.drv2 .bk-login-quick { background: var(--coral); color: var(--ink); text-align: right; }
.drv2 .bk-login-quick span { display: flex; flex-direction: column; flex: 1; }
.drv2 .bk-login-quick small { font-weight: 500; }
.drv2 .bk-login-primary { background: var(--ink); color: #fff; }
.drv2 .bk-login-secondary { background: #fff; color: var(--ink); border: 1.5px solid var(--ink); }
.drv2 .bk-login-divider { margin: 4px 0 12px; font-size: 12px; color: var(--muted); }
/* ── الرئيسية (v2) ── */
.drv2 .v2-hero { padding: 20px; }
@media (min-width: 768px) { .drv2 .v2-hero { padding: 32px; } }
.drv2 .v2-ad { position: relative; flex: none; display: block; }
.drv2 .v2-ad__tag { position: absolute; top: 8px; inset-inline-start: 8px; background: rgba(255, 255, 255, .92); color: var(--ink); font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 6px; }
/* ── التخصصات والمدونة والمقال (المرحلة 2، دفعة أخيرة) ── */
.drv2 .v2-cats { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .drv2 .v2-cats { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1024px) { .drv2 .v2-cats { grid-template-columns: repeat(6, 1fr); } }
.drv2 .v2-cat { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; padding: 16px 8px; min-height: 120px; }
.drv2 .v2-cat__img { width: 48px; height: 48px; object-fit: contain; }
.drv2 .v2-cat__name { font-weight: 600; font-size: 15px; }
.drv2 .v2-post__img { display: block; width: 100%; height: 160px; object-fit: cover; border-radius: 12px; background: var(--chip); margin-bottom: 8px; }
.drv2 .v2-post__title { font-size: 17px; font-weight: 600; margin: 0 0 4px; line-height: 1.5; }
.drv2 .v2-article { font-size: 16px; line-height: 1.9; overflow-wrap: anywhere; }
.drv2 .v2-article img, .drv2 .v2-article video, .drv2 .v2-article iframe { max-width: 100%; height: auto; border-radius: 8px; }
.drv2 .v2-article table { display: block; max-width: 100%; overflow-x: auto; }
.drv2 .v2-article h2, .drv2 .v2-article h3 { margin: 20px 0 8px; font-weight: 600; }
/* ── الصفحات القانونية والريلز والتواصل (v2) ── */
.drv2 .v2-legal { line-height: 1.9; overflow-wrap: anywhere; }
.drv2 .v2-legal h1 { font-size: 26px; font-weight: 700; margin: 0 0 12px; }
.drv2 .v2-legal h3 { font-size: 18px; font-weight: 600; margin: 24px 0 8px; }
.drv2 .v2-legal hr { border: 0; border-top: 1px solid var(--border); margin: 16px 0; }
.drv2 .v2-legal table { width: 100%; display: block; overflow-x: auto; border-collapse: collapse; }
.drv2 .v2-legal th, .drv2 .v2-legal td { border: 1px solid var(--border); padding: 8px 12px; text-align: right; }
.drv2 .v2-legal ul { padding-right: 20px; }
.drv2 .rl-header { background: #fff; border: 1px solid var(--border); border-radius: var(--r-card); box-shadow: none; }
.drv2 .rl-header h1 { color: var(--ink); }
.drv2 .rl-header h1 i, .drv2 .rl-header .count { color: var(--ink); }
.drv2 .rl-header .count { background: var(--chip); }
.drv2 .rl-meta-cta { background: var(--coral); color: var(--ink); }
/* ── لوحة الطبيب (المرحلة 3): شرائح وجداول ── */
.drv2 .v2-defs { display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .drv2 .v2-defs { grid-template-columns: repeat(3, 1fr); } }
.drv2 .v2-def { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; min-height: 120px; }
.drv2 .v2-kpis { display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); }
.drv2 .v2-kpi { text-align: center; padding: 16px 8px; }
.drv2 .v2-kpi__n { font-size: 28px; font-weight: 700; color: var(--ink); }
.drv2 .v2-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.drv2 .v2-table th, .drv2 .v2-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: right; vertical-align: middle; }
.drv2 .v2-table th { background: var(--canvas); color: var(--ink-2); font-weight: 600; font-size: 13px; white-space: nowrap; }
/* قشرة اللوحة تُنسّق عناصر <header> عامةً؛ عنوان الصفحة داخل v2 يبقى شفافاً */
.drv2 .v2-page > header:not(.v2-card) { background: transparent !important; box-shadow: none !important; border: 0 !important; padding: 0 !important; position: static !important; height: auto !important; min-height: 0 !important; }
/* ── تقويم الحجوزات (v2) ── */
.drv2 .v2-calwk, .drv2 .v2-calgrid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.drv2 .v2-calwk { text-align: center; font-size: 12px; font-weight: 600; color: var(--muted); margin-bottom: 6px; }
.drv2 .v2-calday { position: relative; min-height: 72px; padding: 6px; border: 1px solid var(--border); border-radius: 10px; background: #fff; cursor: pointer; display: flex; flex-direction: column; gap: 2px; }
.drv2 .v2-calday.is-empty { border: 0; background: transparent; cursor: default; }
.drv2 .v2-calday:focus-visible { outline: 3px solid var(--ink); outline-offset: 1px; }
.drv2 .v2-calday.is-today { border-color: var(--ink); background: var(--chip); }
.drv2 .v2-calday.is-selected { background: var(--ink); color: #fff; border-color: var(--ink); }
.drv2 .v2-calday__n { font-weight: 700; font-size: 16px; }
.drv2 .v2-calday__d { font-size: 11px; opacity: .7; }
.drv2 .v2-calday__c { align-self: flex-start; font-size: 12px; font-weight: 700; padding: 1px 8px; border-radius: 9999px; background: var(--st-ok-bg); color: var(--st-ok-fg); }
.drv2 .v2-calday__c.is-many { background: var(--st-wait-bg); color: var(--st-wait-fg); }
.drv2 .v2-calday__add { position: absolute; bottom: 2px; inset-inline-end: 2px; min-width: 24px; min-height: 24px; text-align: center; font-weight: 700; border-radius: 6px; background: var(--coral); color: var(--ink); text-decoration: none; line-height: 24px; }
.drv2 .v2-calres { padding: 10px; border: 1px solid var(--border); border-radius: 10px; display: grid; gap: 8px; }
@media (max-width: 480px) { .drv2 .v2-calday { min-height: 56px; padding: 4px; } .drv2 .v2-calday__d { display: none; } }
/* ── قوائم تعريف (dl) لصفحة الحجز v2 ── */
.drv2 .v2-dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px 16px; margin: 0; }
.drv2 .v2-dl dt { font-size: 12px; color: var(--muted); font-weight: 600; }
.drv2 .v2-dl dd { margin: 2px 0 0; font-weight: 600; word-break: break-word; }
/* ── نص غني منقّى (تقرير) ── */
.drv2 .v2-richtext { line-height: 1.8; word-break: break-word; }
.drv2 .v2-richtext table { border-collapse: collapse; max-width: 100%; display: block; overflow-x: auto; }
.drv2 .v2-richtext td, .drv2 .v2-richtext th { border: 1px solid var(--border); padding: 4px 8px; }
.drv2 .v2-richtext p { margin: 0 0 8px; }
/* ── بطاقات مؤشرات الرئيسية (v2) ── */
.drv2 .v2-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; }
.drv2 .v2-kpi { display: flex; flex-direction: column; gap: 4px; padding: 14px; border: 1px solid var(--border); border-radius: 14px; background: #fff; text-decoration: none; color: inherit; min-height: 44px; }
.drv2 .v2-kpi:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
.drv2 .v2-kpi__n { font-size: 28px; font-weight: 700; line-height: 1.1; }
.drv2 .v2-kpi__l { font-size: 13px; color: var(--muted); font-weight: 600; }
.drv2 .v2-kpi.is-alert { background: var(--st-wait-bg); border-color: transparent; }
.drv2 .v2-kpi.is-alert .v2-kpi__n, .drv2 .v2-kpi.is-alert .v2-kpi__l { color: var(--st-wait-fg); }
/* ── شاشة صالة الانتظار (TV) v2 ── */
.drv2.v2-tv-body { margin: 0; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 22px 14px; background: radial-gradient(circle at 50% 0%, #0b3a8a 0%, #071a3d 70%); color: #fff; }
.drv2 .v2-tv { width: 100%; max-width: 760px; }
.drv2 .v2-tv__card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: 26px; overflow: hidden; text-align: center; }
.drv2 .v2-tv__brand { padding: 20px 22px 18px; border-bottom: 1.5px dashed rgba(255,255,255,.22); }
.drv2 .v2-tv__ar { font-size: 22px; font-weight: 700; }
.drv2 .v2-tv__qr { background: #fff; border-radius: 12px; padding: 8px; line-height: 0; display: inline-block; margin-top: 14px; }
.drv2 .v2-tv__qr svg { display: block; width: 96px; height: 96px; }
.drv2 .v2-tv__qrlbl { font-size: 12px; opacity: .8; font-weight: 600; margin-top: 6px; }
.drv2 .v2-tv__org { padding: 16px 22px; border-bottom: 1.5px dashed rgba(255,255,255,.22); }
.drv2 .v2-tv__clinic { font-size: 18px; font-weight: 700; }
.drv2 .v2-tv__doctor { font-size: 15px; opacity: .85; font-weight: 600; margin-top: 3px; }
.drv2 .v2-tv__main { padding: 26px 22px; border-bottom: 1.5px dashed rgba(255,255,255,.22); }
.drv2 .v2-tv__nowlbl { font-size: 18px; font-weight: 700; opacity: .9; margin-bottom: 8px; }
.drv2 .v2-tv__now { font-size: clamp(90px, 16vw, 170px); font-weight: 700; line-height: .95; text-shadow: 0 8px 40px rgba(56,189,248,.45); transition: transform .25s; }
.drv2 .v2-tv__now.pulse { transform: scale(1.06); }
.drv2 .v2-tv__now.empty { font-size: 40px; opacity: .7; }
.drv2 .v2-tv__stats { padding: 18px 22px; display: flex; flex-direction: column; gap: 12px; max-width: 420px; margin: 0 auto; }
.drv2 .v2-tv__row { display: flex; justify-content: space-between; align-items: baseline; font-size: 17px; }
.drv2 .v2-tv__row .l { opacity: .85; font-weight: 600; }
.drv2 .v2-tv__row .v { font-weight: 700; font-size: 24px; }
.drv2 .v2-tv__foot { padding: 14px 22px; background: rgba(0,0,0,.15); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px; font-size: 14px; opacity: .85; font-weight: 600; }
.drv2 .v2-tv__pagefoot { text-align: center; padding: 14px; font-size: 12px; opacity: .6; }
@media (prefers-reduced-motion: reduce) { .drv2 .v2-tv__now { transition: none; } }
/* ══ مكوّنات نظام التصميم (resources/views/components/v2) — حسب قسم Components في DESIGN.md ══ */

/* أيقونات SVG خطّية محلية (x-v2.icon): ترث لون النص */
.drv2 .v2-ico { width: 20px; height: 20px; flex: none; display: inline-block; vertical-align: middle; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.drv2 .v2-ico--sm { width: 16px; height: 16px; }
.drv2 .v2-ico--lg { width: 24px; height: 24px; }

/* شريحة: الحالات الثلاث. غير المتاح: شفاف + حد متقطع + نص باهت 50% */
.drv2 .v2-chip.is-unavailable, .drv2 .v2-chip[aria-disabled="true"] { background: transparent; color: var(--muted); opacity: .5; cursor: not-allowed; border: 1px dashed var(--border-strong); }
.drv2 a.v2-chip, .drv2 button.v2-chip { cursor: pointer; }

/* حقول: select بسهم محلي (بلا صور خارجية)، والتسمية فوق الحقل */
.drv2 select.v2-input { appearance: none; -webkit-appearance: none; padding-left: 40px; background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%); background-size: 5px 5px, 5px 5px; background-position: left 14px center, left 19px center; background-repeat: no-repeat; }
.drv2 .v2-input[disabled] { background: var(--canvas); color: var(--muted); cursor: not-allowed; }
.drv2 .v2-input.is-error:focus { border-color: var(--error); }
.drv2 .v2-hint { font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); color: var(--muted); }
.drv2 .v2-field .v2-err { color: var(--error); }

/* مربع اختيار وزر راديو: 20px، حد 1.5px، المختار حبر */
.drv2 .v2-check { display: inline-flex; align-items: flex-start; gap: 10px; min-height: 44px; padding: 10px 0; cursor: pointer; font-size: var(--fs-body-md); line-height: 1.6; color: var(--ink); }
.drv2 .v2-check input { appearance: none; -webkit-appearance: none; flex: none; width: 20px; height: 20px; margin: 2px 0 0; border: 1.5px solid var(--border-strong); border-radius: 4px; background: #fff; cursor: pointer; display: inline-grid; place-content: center; }
.drv2 .v2-check input[type="radio"] { border-radius: 50%; }
.drv2 .v2-check input:checked { background: var(--ink); border-color: var(--ink); }
.drv2 .v2-check input[type="checkbox"]:checked::before { content: ""; width: 11px; height: 6px; border: 2px solid #fff; border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); }
.drv2 .v2-check input[type="radio"]:checked::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #fff; }
.drv2 .v2-check input:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
.drv2 .v2-check input:disabled { opacity: .5; cursor: not-allowed; }
.drv2 .v2-check input:disabled + span { color: var(--muted); }

/* رأس الطبيب: صورة 64px بحافة 12px على اليمين، ثم الاسم والتخصص والتقييم والعيادة */
.drv2 .v2-dh { display: flex; gap: var(--space-md); align-items: flex-start; }
.drv2 .v2-dh__photo { width: 64px; height: 64px; border-radius: var(--r-12); object-fit: cover; flex: none; background: var(--chip); }
.drv2 .v2-dh__initials { display: flex; align-items: center; justify-content: center; color: var(--ink); font-weight: 700; font-size: 20px; }
.drv2 .v2-dh__body { min-width: 0; flex: 1; display: grid; gap: 4px; }
.drv2 .v2-dh__name { margin: 0; font-size: var(--fs-headline-md); line-height: var(--lh-headline-md); font-weight: 600; }
.drv2 .v2-dh__row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); color: var(--muted); }
.drv2 .v2-dh__spec { font-size: var(--fs-label-sm); line-height: var(--lh-label-sm); font-weight: 500; padding: 2px 8px; border-radius: var(--r-sm); background: var(--chip); color: var(--ink-2); }
.drv2 .v2-dh__rating { display: inline-flex; align-items: center; gap: 4px; color: var(--star); font-weight: 600; }
.drv2 .v2-dh__rating small { color: var(--muted); font-weight: 400; font-size: inherit; }
.drv2 .v2-dh__new { font-weight: 500; color: var(--ink-2); }
.drv2 .v2-dh__loc { display: inline-flex; align-items: center; gap: 4px; }

/* شريط الأيام: اسم اليوم فوق الرقم، تمرير أفقي RTL، النشط حبر */
.drv2 .v2-dayslider { display: flex; gap: var(--space-sm); overflow-x: auto; margin: 0; padding: 2px 2px 6px; list-style: none; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.drv2 .v2-dayslider > li { flex: none; scroll-snap-align: start; }
.drv2 .v2-dayslider__btn { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; min-width: 64px; min-height: 64px; padding: 8px 10px; border-radius: var(--r-md); background: var(--chip); color: var(--ink); border: 1px solid transparent; font: inherit; cursor: pointer; text-align: center; }
.drv2 .v2-dayslider__btn input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.drv2 .v2-dayslider__wd { font-size: var(--fs-label-sm); line-height: var(--lh-label-sm); font-weight: 500; }
.drv2 .v2-dayslider__n { font-size: var(--fs-headline-sm); line-height: var(--lh-headline-sm); font-weight: 700; }
.drv2 .v2-dayslider__btn.is-active, .drv2 .v2-dayslider__btn:has(input:checked), .drv2 .v2-dayslider__btn[aria-pressed="true"] { background: var(--ink); color: #fff; }
.drv2 .v2-dayslider__btn.is-off { background: transparent; color: var(--muted); opacity: .5; border: 1px dashed var(--border-strong); cursor: not-allowed; }
.drv2 .v2-dayslider__btn:has(input:focus-visible) { outline: 3px solid var(--ink); outline-offset: 2px; }

/* المراحل (4 أجزاء): المكتمل والحالي حبر */
.drv2 .v2-stepper { display: grid; grid-template-columns: repeat(var(--steps, 4), 1fr); gap: 6px; margin: 0; padding: 0; list-style: none; counter-reset: v2step; }
.drv2 .v2-stepper li { font-size: var(--fs-label-sm); line-height: var(--lh-label-sm); color: var(--muted); font-weight: 500; }
.drv2 .v2-stepper li::before { content: ""; display: block; height: 4px; border-radius: 4px; background: var(--chip); margin-bottom: 6px; }
.drv2 .v2-stepper li.is-done::before, .drv2 .v2-stepper li.is-now::before { background: var(--ink); }
.drv2 .v2-stepper li.is-now { color: var(--ink); font-weight: 700; }

/* زر مثبّت أسفل الجوال: سطح أبيض بحد علوي، زر مرجاني واحد */
.drv2 .v2-sticky-cta { position: fixed; inset-inline: 0; bottom: 0; z-index: 90; background: var(--card); border-top: 1px solid var(--border); padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); }
.drv2 .v2-sticky-cta__inner { max-width: 560px; margin: 0 auto; display: flex; gap: 12px; align-items: center; }
.drv2 .v2-sticky-cta__meta { flex: 1; min-width: 0; font-size: var(--fs-body-sm); line-height: var(--lh-body-sm); color: var(--muted); }
.drv2 .v2-sticky-cta__meta strong { display: block; color: var(--ink); font-size: var(--fs-label-lg); }
.drv2 .v2-sticky-cta .v2-btn { flex: 1; }
.drv2 .v2-sticky-cta.is-static { position: static; }
@media (min-width: 992px) { .drv2 .v2-sticky-cta:not(.is-always) { position: static; border: 0; background: transparent; padding: 0; } }
.drv2 .v2-has-sticky { padding-bottom: 96px; }
@media (min-width: 992px) { .drv2 .v2-has-sticky { padding-bottom: 0; } }

/* نافذة: خلفية حبر 32% بلا ضباب، سطح أبيض بحد #D6DAE6 وحافة 16px. <dialog> أصلي */
.drv2 dialog.v2-modal { padding: 0; border: 1px solid var(--border-strong); border-radius: var(--r-card); background: var(--card); color: var(--ink); width: min(480px, calc(100vw - 32px)); max-height: calc(100vh - 32px); font-family: inherit; direction: rtl; text-align: right; }
.drv2 dialog.v2-modal::backdrop { background: rgba(28, 43, 91, .32); }
.drv2 .v2-modal__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--border); }
.drv2 .v2-modal__title { margin: 0; font-size: var(--fs-headline-sm); line-height: var(--lh-headline-sm); font-weight: 600; }
.drv2 .v2-modal__x { min-width: 44px; min-height: 44px; border: 0; border-radius: var(--r-md); background: var(--chip); color: var(--ink); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.drv2 .v2-modal__body { padding: 20px; overflow-y: auto; }
.drv2 .v2-modal__foot { display: flex; gap: 12px; padding: 16px 20px; border-top: 1px solid var(--border); }
.drv2 .v2-modal__foot .v2-btn { flex: 1; }

/* شريط علوي للصفحات العامة v2 (layouts/public): سطح أبيض بحد سفلي، بلا ظل ولا ضباب */
.drv2.v2-body { margin: 0; min-height: 100vh; }
.drv2 .v2-topbar { position: sticky; top: 0; z-index: 60; background: var(--card); border-bottom: 1px solid var(--border); }
.drv2 .v2-topbar__in { max-width: 560px; margin: 0 auto; min-height: 56px; padding: 6px var(--gutter); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.drv2 .v2-topbar__brand { display: inline-flex; align-items: center; gap: 8px; font-size: var(--fs-headline-md); font-weight: 600; color: var(--ink); }
.drv2 .v2-topbar__tag { font-size: var(--fs-caption); font-weight: 500; padding: 2px 8px; border-radius: 9999px; background: var(--chip); color: var(--ink-2); }
.drv2 .v2-topbar__login { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 0 16px; border-radius: var(--r-btn); background: var(--chip); color: var(--ink); font-size: 14px; font-weight: 500; }
.drv2 .v2-topbar__user { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ink); color: #fff; font-weight: 700; overflow: hidden; }
.drv2 .v2-topbar__user img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }

/* صفحة معاينة النظام (للأدمن) */
.drv2 .kit-sec { display: grid; gap: var(--space-md); }
.drv2 .kit-sec > h2 { margin: 0; font-size: var(--fs-headline-md); line-height: var(--lh-headline-md); font-weight: 600; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
.drv2 .kit-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.drv2 .kit-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.drv2 .kit-sw { border: 1px solid var(--border); border-radius: var(--r-12); overflow: hidden; background: #fff; font-size: var(--fs-body-sm); }
.drv2 .kit-sw__c { height: 56px; border-bottom: 1px solid var(--border); }
.drv2 .kit-sw__t { padding: 8px 10px; display: grid; }
.drv2 .kit-sw__t code { direction: ltr; text-align: right; color: var(--muted); font-size: 12px; }
.drv2 .kit-note { font-size: var(--fs-body-sm); color: var(--muted); margin: 0; }
.drv2 .kit-label { font-size: var(--fs-label-sm); color: var(--muted); font-weight: 600; margin: 0 0 6px; }
.drv2 .kit-box { padding: 12px; border: 1px dashed var(--border-strong); border-radius: var(--r-12); }
/* ══ تتبّع الحجز وتأكيد الحضور (v2/patient) ══ */
.drv2 .v2-kv { display: grid; gap: 0; margin: 0; }
.drv2 .v2-kv > div { display: flex; gap: 12px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--border); }
.drv2 .v2-kv > div:last-child { border-bottom: 0; }
.drv2 .v2-kv__ic { flex: none; width: 36px; height: 36px; border-radius: var(--r-md); background: var(--chip); color: var(--ink); display: inline-flex; align-items: center; justify-content: center; }
.drv2 .v2-kv dt { font-size: var(--fs-label-sm); line-height: var(--lh-label-sm); color: var(--muted); font-weight: 500; }
.drv2 .v2-kv dd { margin: 2px 0 0; font-size: var(--fs-body-md); font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.drv2 .v2-kv dd a { text-decoration: underline; }
.drv2 .v2-tl { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.drv2 .v2-tl li { position: relative; padding: 0 24px 16px 0; }
.drv2 .v2-tl li::before { content: ""; position: absolute; right: 4px; top: 6px; width: 10px; height: 10px; border-radius: 50%; background: var(--ink); }
.drv2 .v2-tl li::after { content: ""; position: absolute; right: 8px; top: 18px; bottom: 0; width: 2px; background: var(--border); }
.drv2 .v2-tl li:last-child { padding-bottom: 0; }
.drv2 .v2-tl li:last-child::after { display: none; }
.drv2 .v2-tl__t { font-size: var(--fs-body-md); font-weight: 600; color: var(--ink); }
.drv2 .v2-tl__r { font-size: var(--fs-body-sm); color: var(--ink-2); margin-top: 2px; }
.drv2 .v2-tl__m { font-size: var(--fs-caption); line-height: var(--lh-caption); color: var(--muted); margin-top: 4px; }
.drv2 .v2-qp { text-align: center; padding: 0; overflow: hidden; }
.drv2 .v2-qp > * { padding: 16px; }
.drv2 .v2-qp > * + * { border-top: 1px dashed var(--border-strong); }
.drv2 .v2-qp__main { display: flex; align-items: center; justify-content: center; gap: 16px; }
.drv2 .v2-qp__num { font-size: 48px; line-height: 1; font-weight: 700; color: var(--ink); direction: ltr; margin-top: 4px; }
.drv2 .v2-qp__num.is-now { color: var(--st-ok-fg); }
.drv2 .v2-qp__qr { background: #fff; border: 1px solid var(--border); border-radius: var(--r-12); padding: 6px; }
.drv2 .v2-qp__qr > div { width: 74px; height: 74px; }
.drv2 .v2-qp__stats { display: grid; gap: 8px; text-align: right; }
.drv2 .v2-qp__stats div { display: flex; justify-content: space-between; align-items: baseline; font-size: var(--fs-body-sm); color: var(--muted); }
.drv2 .v2-qp__stats b { font-size: var(--fs-headline-sm); color: var(--ink); }
.drv2 .v2-qp__foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px; font-size: var(--fs-label-sm); color: var(--muted); background: var(--canvas); }
.drv2 .v2-qrbox { display: inline-block; padding: 16px; background: #fff; border: 1px solid var(--border); border-radius: var(--r-card); }
.drv2 .v2-qrbox > div { width: 200px; height: 200px; }
.drv2 .v2-qrbox canvas, .drv2 .v2-qrbox img, .drv2 .v2-qp__qr canvas, .drv2 .v2-qp__qr img { display: block; margin: 0 auto; }
.drv2 .v2-otpbox .v2-otp { width: 100%; }