/* דשבורד לקוחה — משתמש בטוקנים של style.css הראשי (ורוד #ff2d87, כהה #1a1a1a) */

/* אלמנטים עם display מפורש (flex/grid) דורסים את תכונת hidden של HTML —
   הכלל הזה מחזיר ל-hidden את המשמעות שלו בכל האלמנטים. */
[hidden] { display: none !important; }

.dash-header-label { font-size: 15px; font-weight: 700; color: #6b5b62; }
.btn-pill-ghost {
  padding: 10px 22px; border-radius: 999px; border: 1.5px solid #ffd6e8;
  background: #ffffff; color: #1a1a1a; font-weight: 700; font-family: 'Rubik', sans-serif;
  cursor: pointer; font-size: 14px;
}

/* הריפוד האופקי מכבד את ה-safe-area — viewport-fit=cover פורש את התוכן
   עד קצה המסך הפיזי, מתחת לפינות המעוגלות של האייפון. */
.dash-main {
  max-width: 720px; margin: 0 auto;
  padding: 48px calc(20px + env(safe-area-inset-right, 0px))
           96px calc(20px + env(safe-area-inset-left, 0px));
  min-height: 60vh;
}
/* המקלדת לא תכסה את כפתור השליחה: scroll-margin על השדה עצמו הוא מה
   שגורם לדפדפן לגלול אותו ואת מה שמתחתיו אל מעל למקלדת. */
.auth-input, .otp-box, .dash-form .booking-input { scroll-margin-block: 96px 140px; }

.dash-card {
  background: #fff2f8; border-radius: 24px; padding: 36px 32px; margin-bottom: 20px;
}
.dash-login, #sent-view, #expired-view, #loading-view { text-align: center; max-width: 480px; margin: 40px auto; }
.dash-welcome { background: #ffd6e8; }

.dash-title { margin: 0 0 12px; font-size: 28px; font-weight: 900; color: #1a1a1a; }
.dash-sub { margin: 0 0 24px; color: #6b5b62; font-size: 16px; line-height: 1.6; }
.dash-form { display: flex; flex-direction: column; gap: 14px; }
.dash-submit { border: none; font-size: 16px; cursor: pointer; }
/* ורוד כהה יותר מהוורוד המותגי — טקסט שגיאה חייב לעבור 4.5:1 על רקע #fff2f8 */
.dash-msg { margin-top: 16px; font-size: 14px; font-weight: 700; color: #b81e5f; }

/* ================== מסך הכניסה ================== */
.auth-msg {
  margin: 0 0 18px; padding: 12px 16px; border-radius: 14px;
  background: #ffffff; color: #b81e5f; font-size: 15px; font-weight: 700;
  line-height: 1.55; text-align: center;
}
.auth-last {
  margin: 0 0 16px; color: #6b5b62; font-size: 14px; font-weight: 700; text-align: center;
}

/* כפתורי הספקים — ראשיים, מלאי רוחב, מטרת מגע גדולה */
.auth-providers { display: flex; flex-direction: column; gap: 12px; }
.auth-provider-btn {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  width: 100%; min-height: 56px; padding: 14px 20px;
  border-radius: 999px; border: 1.5px solid #dadce0; background: #ffffff;
  color: #1a1a1a; font-family: 'Rubik', sans-serif; font-size: 17px; font-weight: 700;
  cursor: pointer; box-shadow: 0 2px 6px rgba(26, 26, 26, .07);
  transition: box-shadow .15s, border-color .15s;
}
.auth-provider-btn:hover { box-shadow: 0 4px 12px rgba(26, 26, 26, .12); }
/* Apple: שחור על לבן עם מסגרת שחורה, לפי הנחיות המותג של Apple */
.auth-provider-btn.is-apple { border-color: #1a1a1a; }
.auth-provider-label { line-height: 1.2; }
.auth-logo { width: 22px; height: 22px; flex: 0 0 auto; display: block; }
.is-apple .auth-logo { width: 20px; height: 20px; margin-top: -2px; }

/* מפריד "או" — קו עדין משני הצדדים */
.auth-divider {
  display: flex; align-items: center; gap: 14px;
  margin: 22px 0; color: #6b5b62; font-size: 14px; font-weight: 700;
}
.auth-divider::before, .auth-divider::after {
  content: ""; flex: 1 1 auto; height: 1px; background: #ffd6e8;
}
.auth-divider span { flex: 0 0 auto; }

/* בחירת ערוץ הקוד — מוצג רק כששני הערוצים באמת זמינים */
.auth-tabs {
  display: flex; gap: 6px; padding: 4px; border-radius: 999px;
  background: #ffffff; margin-bottom: 6px;
}
.auth-tab {
  flex: 1 1 0; min-height: 44px; border: none; border-radius: 999px;
  background: transparent; color: #6b5b62; font-family: 'Rubik', sans-serif;
  font-size: 15px; font-weight: 700; cursor: pointer;
}
.auth-tab.is-active { background: #ff2d87; color: #ffffff; }

.auth-code .dash-form { gap: 10px; }
.auth-input { font-size: 16px; text-align: right; }
/* שדות מייל וטלפון נכתבים משמאל לימין — הכלל ב-style.css, לפי סוג השדה.
   ⚠ עד 15.9.2026 ישבה כאן רשימת מזהים, ולכן רק האזור האישי תוקן. */
.auth-submit { min-height: 52px; margin-top: 6px; }

.auth-sent {
  margin: 0 0 6px; padding: 12px 16px; border-radius: 14px;
  background: #ffffff; color: #1a1a1a; font-size: 15px; line-height: 1.6; text-align: center;
}
.auth-code-label { text-align: center; margin: 10px 0 4px; }

/* שש תיבות הספרות — LTR, כמו בכל קוד אימות */
.otp-boxes { display: flex; gap: 8px; justify-content: center; }
.otp-box {
  width: 48px; height: 58px; text-align: center;
  border-radius: 14px; border: 1.5px solid #ffd6e8; background: #ffffff;
  color: #1a1a1a; font-family: 'Rubik', sans-serif;
  /* 16px ומעלה — מונע זום אוטומטי של iOS בכניסה לשדה */
  font-size: 24px; font-weight: 700; padding: 0;
}
.otp-box:focus { border-color: #ff2d87; }

.auth-secondary {
  display: flex; flex-direction: column; align-items: center; gap: 2px; margin-top: 4px;
}
.auth-secondary .link-btn { padding: 10px 0 0; }
.auth-secondary .link-btn[disabled] {
  color: #6b5b62; text-decoration: none; cursor: default; font-weight: 400;
}

/* ---------- איך נכנסת ---------- */
.auth-method {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin: 0 0 6px; padding: 12px 16px; border-radius: 14px; background: #ffffff;
}
.auth-method-badge { font-size: 15px; font-weight: 700; color: #1a1a1a; }
.auth-method-note { font-size: 14px; color: #6b5b62; }

.dash-section-title { margin: 0 0 20px; font-size: 20px; font-weight: 900; color: #1a1a1a; }
.dash-empty { color: #6b5b62; font-size: 15px; margin: 0; }

.dash-list { display: flex; flex-direction: column; gap: 12px; }
.dash-item {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  background: #ffffff; border-radius: 16px; padding: 18px 20px; flex-wrap: wrap;
}
.dash-item-main { display: flex; flex-direction: column; gap: 4px; }
.dash-item-title { font-weight: 700; color: #1a1a1a; font-size: 16px; }
.dash-item-sub { color: #6b5b62; font-size: 14px; }
.dash-badge {
  display: inline-block; padding: 4px 14px; border-radius: 999px; font-size: 13px; font-weight: 700;
  background: #ffd6e8; color: #d0266f; white-space: nowrap;
}
.dash-badge.is-done { background: #dff5e6; color: #1e7d43; }
.dash-badge.is-cancelled { background: #f2e6ea; color: #6b5b62; }
.dash-item-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.dash-link-btn {
  padding: 8px 18px; border-radius: 999px; background: #ff2d87; color: #ffffff;
  text-decoration: none; font-size: 14px; font-weight: 700; white-space: nowrap;
}
.dash-link-btn.secondary { background: #ffffff; color: #ff2d87; border: 1.5px solid #ffd6e8; }
/* אותו כפתור גם כשהוא <button> ולא <a> — ההורדה עוברת דרך fetch */
button.dash-link-btn {
  border: none; font-family: 'Rubik', sans-serif; cursor: pointer; min-height: 44px;
}
button.dash-link-btn[disabled] { opacity: .6; cursor: default; }

/* פעולה הרסנית ברשימה — נראית כמו קישור ולא כמו כפתור ראשי, כדי שלא תילחץ בטעות */
.dash-item-cancel {
  border: none; background: transparent; color: #9a3b2e; font-weight: 700;
  font-size: 14px; font-family: 'Rubik', sans-serif; text-decoration: underline;
  cursor: pointer; padding: 0 4px; min-height: 44px;
}
/* 🔴 30.9.2026 — "שינוי מועד" / "סגירה" (נוסף 24.8, c51f359) יצא **בלי שום עיצוב**:
   כפתור דפדפן אפור ומרובע ליד "ביטול הפגישה". נתפס בצילום האטלס (S03_C37).
   אותה תבנית כמו השכן — טקסט מודגש עם קו תחתון, אותו גודל ואותו גובה — כי שניהם
   פעולות משניות באותה שורה; הצבע ורוד-כהה (‎#d0266f‎, AA על לבן) ולא האדום של
   הביטול, כי הזזת מועד אינה פעולה הרסנית. */
.dash-item-move {
  border: none; background: transparent; color: #d0266f; font-weight: 700;
  font-size: 14px; font-family: 'Rubik', sans-serif; text-decoration: underline;
  cursor: pointer; padding: 0 4px; min-height: 44px;
}
/* קישור משני בתוך פריט הרשימה — נראה כמו קישור ולא כמו כפתור, ותופס שורה
   משלו מתחת לכפתורים. כאן יושבת גרסת ההדפסה של הדוח: היא צריכה להימצא,
   לא למשוך את העין מ"קריאת הדוח". min-height כדי שגם קישור שקט יישאר
   מטרת מגע תקנית באצבע. */
.dash-item-quiet {
  flex-basis: 100%; display: inline-flex; align-items: center; min-height: 44px;
  color: #6b5b62; font-size: 14px; font-weight: 500; text-decoration: underline;
  text-underline-offset: 3px;
}
.dash-item-quiet:hover, .dash-item-quiet:focus-visible { color: #d0266f; }

/* הערה שנשברת לשורה משלה בתוך פריט הרשימה */
.dash-item-note {
  flex-basis: 100%; margin: 8px 0 0; color: #6b5b62; font-size: 14px; line-height: 1.6;
}
.dash-notice {
  margin: 0 0 16px; padding: 14px 18px; border-radius: 14px; background: #ffffff;
  color: #1a1a1a; font-size: 15px; line-height: 1.6;
}
/* ⚠ 5.9.2026 (סקירה 5.9 B6): קישורים בטקסט קטן (13–15px) — ‎#ff2d87‎ נמדד 3.51 על
   לבן ו-3.23 על ‎#fff2f8‎ של הכרטיס; AA דורש 4.5. ‎#d0266f‎ נמדד 5.01 / 4.61 —
   אותו גוון שכבר משמש ב-.goal-sentence למטה. */
.dash-notice a { color: #d0266f; font-weight: 700; }
.dash-fineprint { margin: 10px 0 0; color: #6b5b62; font-size: 13px; line-height: 1.6; }
.dash-fineprint a { color: #d0266f; font-weight: 700; }

/* המשפט של הלקוחה — מוצג מעל כל מספר, בכתב יד רגשי */
.goal-sentence {
  margin: 0 0 14px; font-size: 20px; line-height: 1.5; color: #d0266f; font-weight: 700;
}

/* ---------- החודש שלך ---------- */
.plan-sub { margin: 0 0 14px; font-size: 17px; font-weight: 700; color: #1a1a1a; }
.plan-exercise {
  background: #ffffff; border-radius: 14px; padding: 14px 18px; margin-bottom: 10px;
}
.plan-exercise strong { display: block; font-size: 16px; color: #1a1a1a; }
.plan-exercise span { color: #6b5b62; font-size: 14px; line-height: 1.6; }

.plan-habit { background: #ffffff; border-radius: 16px; padding: 16px 18px; margin-bottom: 12px; }
.plan-habit-head { margin-bottom: 12px; }
.plan-habit-head strong { display: block; font-size: 17px; color: #1a1a1a; }
.plan-habit-head span { color: #6b5b62; font-size: 14px; }

/* שורת הימים: נגיעה אחת מסמנת. בלי אחוזים ובלי "פספסת" */
/* ⚠ סקירה 5.9 B5 (5.9.2026): הכפתור היה 26×26 — מתחת לסף 44×44 של
   perfect-result-loop, בפעולה היומית המרכזית בטלפון. יעד המגע הוא הכפתור
   עצמו (44×44, שקוף), והעיגול הנראה (26) עבר ל-::before כדי שהמראה לא
   ישתנה. ה-gap ירד ל-0: 44−26 כבר משאיר 18px בין העיגולים, ועם gap 7
   השורה הייתה נשברת ל-4 נקודות ב-360px במקום 5. */
.day-row { display: flex; flex-wrap: wrap; gap: 0; }
.day-dot {
  position: relative; width: 44px; height: 44px; border: none; border-radius: 999px;
  background: transparent; cursor: pointer; padding: 0;
}
.day-dot::before {
  content: ""; position: absolute; top: 9px; left: 9px; width: 26px; height: 26px;
  box-sizing: border-box; border-radius: 999px; border: 1.5px solid #ffd6e8;
  background: #ffffff; transition: background-color .12s;
}
.day-dot.is-done::before { background: #ff2d87; border-color: #ff2d87; }
.plan-footnote {
  margin: 18px 0 0; text-align: center; color: #6b5b62; font-size: 14px; font-style: normal;
}

/* ---------- מאז המדידה הקודמת ---------- */
.trend-grid { display: flex; gap: 12px; flex-wrap: wrap; }
.trend-item {
  flex: 1 1 150px; background: #ffffff; border-radius: 16px; padding: 16px 18px;
  display: flex; flex-direction: column; gap: 4px;
}
.trend-label { color: #6b5b62; font-size: 14px; }
.trend-value { font-size: 24px; font-weight: 900; color: #1a1a1a; }
.trend-delta { font-size: 14px; font-weight: 700; color: #6b5b62; }
/* ירוק = המדד זז לכיוון הרצוי לו. אפור-רך = לא זז לשם — בלי אדום ובלי שיפוט. */
.trend-delta.is-good { color: #1e7d43; }
.trend-delta.is-soft { color: #6b5b62; }
#trend-sensitive { margin-top: 12px; }
.link-btn {
  border: none; background: transparent; color: #ff2d87; font-weight: 700;
  font-size: 14px; cursor: pointer; font-family: 'Rubik', sans-serif;
  text-decoration: underline; padding: 12px 0 0; min-height: 44px;
}
/* ---------- המגמה לאורך זמן ---------- */
.series-intro { margin: -6px 0 18px; color: #6b5b62; font-size: 14px; line-height: 1.6; }
.series-charts { display: flex; flex-direction: column; gap: 14px; }
.series-metric { background: #ffffff; border-radius: 16px; padding: 14px 16px 8px; }
.series-metric-head {
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 4px;
}
.series-metric-title { font-size: 15px; font-weight: 700; color: #1a1a1a; }
.series-metric-value { font-size: 22px; font-weight: 900; color: #1a1a1a; }
/* משפט הסיכום נדחף לקצה השני של השורה, ונופל לשורה משלו כשאין מקום */
.series-metric-delta { font-size: 13px; font-weight: 700; color: #6b5b62; margin-inline-start: auto; }
.series-metric-delta.is-good { color: #1e7d43; }
.series-metric-delta.is-soft { color: #6b5b62; }
/* ה-SVG מצויר ברוחב המשבצת בפיקסלים אמיתיים — 1:1, בלי מתיחת טקסט */
.series-chart { width: 100%; }
/* ⚠ direction: ltr חובה כאן. בהקשר RTL הדפדפן הופך את המשמעות של
   text-anchor, והתוויות נדחפות פנימה אל תוך הגרף — התווית האחרונה אף
   נחתכת בקצה ה-SVG. הגרף הוא אי LTR: ציר הזמן רץ משמאל לימין, והטקסט
   שבתוכו הוא ספרות בלבד. */
.series-svg { display: block; width: 100%; height: auto; direction: ltr; }

.series-table-wrap { margin-top: 12px; overflow-x: auto; }
.series-table {
  width: 100%; border-collapse: collapse; background: #ffffff;
  border-radius: 16px; overflow: hidden; font-size: 14px;
}
.series-table caption {
  caption-side: top; text-align: right; padding: 0 0 8px; color: #6b5b62; font-size: 13px;
}
.series-table th, .series-table td {
  padding: 10px 12px; text-align: right; border-bottom: 1px solid #ffd6e8; white-space: nowrap;
}
.series-table thead th { color: #6b5b62; font-size: 13px; font-weight: 700; }
.series-table tbody th { color: #1a1a1a; font-weight: 700; }
.series-table td { color: #1a1a1a; }
.series-table tbody tr:last-child th, .series-table tbody tr:last-child td { border-bottom: none; }
#series-sensitive { margin-top: 12px; }
/* שתי הבחירות הן שתי שאלות נפרדות — כל אחת בשורה משלה, כדי שלא ייגעו
   זו בזו ולא תילחץ אחת במקום השנייה */
#series-table-toggle, #series-toggle-sensitive { display: block; }

/* ---------- הביאי חברה ---------- */
.referral-code-line { margin: 0 0 14px; font-size: 16px; color: #1a1a1a; }
.referral-code {
  display: inline-block; margin-inline-start: 6px; padding: 6px 14px;
  background: #ffffff; border-radius: 12px;
  font-size: 20px; font-weight: 900; letter-spacing: 2px; color: #d0266f;
}
.referral-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.referral-link {
  flex: 1 1 240px; min-width: 0; padding: 12px 14px; border-radius: 14px;
  background: #ffffff; color: #6b5b62; font-size: 14px; overflow-wrap: anywhere;
}
.referral-msg { margin: 12px 0 0; font-size: 14px; font-weight: 700; color: #1e7d43; }
.referral-msg.is-note { color: #6b5b62; }
.referral-count { margin: 14px 0 0; color: #6b5b62; font-size: 14px; }

.dash-next-hint { margin: 16px 0 0; color: #6b5b62; font-size: 14px; }
.dash-next-hint a { color: #d0266f; font-weight: 700; } /* ⚠ סקירה 5.9 B6 — 14px על #fff2f8: 3.23 → 4.61 */

/* ---------- טפסים, פרופיל ומחיקה ---------- */
.dash-field-label {
  display: block; text-align: right; font-size: 14px; font-weight: 700;
  color: #1a1a1a; margin: 16px 0 6px;
}
/* בקשה עדינה מתחת לתווית — לא שגיאה, ולכן אפור ולא ורוד-אזהרה */
.dash-field-hint {
  margin: 0 0 8px; text-align: right; font-size: 14px; line-height: 1.6; color: #6b5b62;
}
.booking-input { width: 100%; }
.dash-form-actions { display: flex; gap: 12px; align-items: center; margin-top: 18px; flex-wrap: wrap; }
.dash-ok { color: #1e7d43; font-size: 14px; font-weight: 700; }
.dash-alt { margin: 18px 0 0; color: #6b5b62; font-size: 14px; }
.dash-hr { border: none; border-top: 1px solid #ffd6e8; margin: 28px 0 22px; }
.dash-sub-title { margin: 0 0 10px; font-size: 17px; font-weight: 700; color: #1a1a1a; }

.link-btn.is-danger { color: #9a3b2e; }
.btn-pill-danger {
  padding: 12px 28px; border-radius: 999px; border: none; background: #9a3b2e;
  color: #fff; font-weight: 700; font-family: 'Rubik', sans-serif; cursor: pointer;
  font-size: 15px; min-height: 48px;
}
.delete-box {
  background: #fde8e4; border-radius: 16px; padding: 20px 22px; margin-top: 18px;
}

/* ---------- דיאלוג אישור ---------- */
.dash-modal {
  position: fixed; inset: 0; z-index: 50;
  display: flex; align-items: center; justify-content: center;
  /* safe-area — אחרת כפתורי הדיאלוג יושבים על פס הבית של האייפון. */
  padding: calc(20px + env(safe-area-inset-top, 0px)) 20px calc(20px + env(safe-area-inset-bottom, 0px));
  overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
}
.dash-modal-backdrop { position: absolute; inset: 0; background: rgba(26, 26, 26, 0.55); }
.dash-modal-card {
  position: relative; z-index: 1; width: 100%; max-width: 420px;
  background: #ffffff; border-radius: 24px; padding: 32px 28px; text-align: right;
  box-shadow: 0 24px 60px rgba(26, 26, 26, 0.28);
}
.dash-modal-title { margin: 0 0 10px; font-size: 22px; font-weight: 900; color: #1a1a1a; }
.dash-modal-when { margin: 0 0 10px; font-size: 16px; font-weight: 700; color: #d0266f; }
.dash-modal-text { margin: 0 0 20px; color: #6b5b62; font-size: 15px; line-height: 1.6; }
.dash-modal-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.dash-modal-actions .btn-pill-ghost { min-height: 48px; }

/* ---------- אישור מייל חדש ב"הפרטים שלי" · 11.10.2026 ----------
   ⚠ שלושת הכפתורים יושבים באותה שורה, ולכן גובה **קבוע** אחד (visual-height-parity):
   ‎.btn-pill‎ ו-‎.btn-pill-ghost‎ באים עם ריפוד וגופן שונים, ו-min-height לבדו
   היה משאיר את הוורוד גבוה מהשכנים כשהטקסט נשבר. */
.email-verify {
  background: #ffffff; border-radius: 16px; padding: 18px 18px 16px; margin-top: 16px;
  border: 1.5px solid #ffd6e8;
}
.email-verify-lead { margin: 0 0 12px; color: #1a1a1a; font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.email-verify-lead bdi { font-weight: 700; }
/* 11.10.2026 (נמדד חי): הכתובת נשברה באמצע — "qa-c1x-" בסוף שורה ו-"394@…" בשורה הבאה. עכשיו היא בשורה משלה,
   מיושרת לימין כמו הטקסט, ומוקטנת מעט כדי שכתובת רגילה תיכנס ברוחב 360; כתובת חריגה באורכה עוד נשברת (anywhere)
   ולא יוצרת גלילה אופקית. */
#pf-email-pending { display: block; text-align: right; font-size: 14px; white-space: nowrap; overflow-wrap: normal; margin: 2px 0; }
@media (max-width: 340px) { #pf-email-pending { white-space: normal; overflow-wrap: anywhere; } }
.email-verify-code { font-size: 20px; letter-spacing: 6px; text-align: center; max-width: 220px; }
.email-verify-actions { margin-top: 14px; }
.email-verify-actions .btn-pill,
.email-verify-actions .btn-pill-ghost {
  height: 48px; min-height: 48px; padding: 0 20px; font-size: 15px; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center; white-space: nowrap;
}
.email-verify-actions button:disabled { opacity: 0.6; cursor: default; }
.email-verify .dash-msg.is-ok { color: #1e7d43; }
.email-verify-done { margin: 14px 0 0; }

@media (max-width: 560px) {
  .dash-card { padding: 28px 20px; }
  /* התיבות מתכווצות יחד כדי שהשורה לא תגלוש מהמסך ב-390px */
  .otp-boxes { gap: 6px; }
  .otp-box { flex: 1 1 0; width: auto; min-width: 0; max-width: 48px; height: 54px; font-size: 22px; }
  .auth-provider-btn { font-size: 16px; padding: 14px 14px; }
  .dash-item { flex-direction: column; align-items: flex-start; }
  /* בנייד המשפט לא נדחף לקצה — הוא מקבל שורה משלו מתחת למספר */
  .series-metric-delta { margin-inline-start: 0; flex-basis: 100%; }
  .series-metric { padding: 14px 12px 8px; }
  /* ארבע העמודות נכנסות למסך צר בזכות גלישת שורה — טבלה שגוללת לצדדים
     נראית כאילו חסרים בה נתונים */
  .series-table th, .series-table td { white-space: normal; padding: 8px 6px; font-size: 13px; }
  /* כפתור ההעתקה מלא-רוחב מתחת לקישור, בלי לחיצה בטעות על השכן */
  .referral-row { flex-direction: column; align-items: stretch; }
  /* ⚠ בעמודה, flex-basis הוא גובה — בלי האיפוס הזה תיבת הקישור מתנפחת */
  .referral-row .referral-link { flex: 0 0 auto; }
  .referral-row .dash-link-btn { width: 100%; text-align: center; }
  .dash-modal-card { padding: 26px 20px; }
  /* בנייד הכפתורים מלאי-רוחב — מטרת מגע גדולה ובלי לחיצה בטעות על השכנה */
  .dash-modal-actions { flex-direction: column; }
  .dash-modal-actions button { width: 100%; }
}

/* ============ שינוי מועד באזור האישי ============ */
/* ⚠ ‎.dash-item‎ הוא flex עם wrap. בלי ‎flex-basis:100%‎ הלוח מנסה לשבת
   בשורה עם הכפתורים וגולש מהכרטיס — הבאג הזה נתפס במדידה בממשק הניהול
   ותוקן שם, ואותה מלכודת בדיוק קיימת כאן. */
.resched-slot { flex: 1 0 100%; width: 100%; min-width: 0; }
.resched-slot:empty { display: none; }

.resched {
  margin-top: 12px; padding: 14px; border-radius: 16px;
  background: #fff7fb; border: 1.5px solid #ffd6e8;
  width: 100%; min-width: 0; box-sizing: border-box;
}
.resched *, .resched *::before, .resched *::after { box-sizing: border-box; }
.resched-lead { margin: 0 0 10px; font-size: 14px; color: #6b5b62; line-height: 1.6; }

.resched-days {
  display: flex; gap: 8px; overflow-x: auto; padding-bottom: 8px;
  margin-bottom: 12px; -webkit-overflow-scrolling: touch;
}
.resched-day {
  flex: 0 0 auto; min-height: 44px; padding: 8px 14px; border-radius: 999px;
  border: 1.5px solid #ffd6e8; background: #ffffff; color: #1a1a1a;
  font-size: 13px; font-weight: 700; font-family: 'Rubik', sans-serif;
  cursor: pointer; white-space: nowrap;
}
.resched-day.is-active { background: #d0266f; border-color: #d0266f; color: #ffffff; }

.resched-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
/* ⚠ כפתור שעה (‎17:00‎) — תוכן מספרי בלבד. */
.resched-time {
  direction: ltr; min-height: 48px; border-radius: 12px;
  border: 1.5px solid #ffd6e8; background: #ffffff; color: #1a1a1a;
  font-size: 15px; font-weight: 700; font-family: 'Rubik', sans-serif;
  cursor: pointer; font-variant-numeric: tabular-nums;
}
.resched-time.is-selected { background: #d0266f; border-color: #d0266f; color: #ffffff; }
/* אותם שני מצבים כמו במסך ההזמנה בדף הבית — ואותם ערכים, אחרי המדידה
   שהראתה שהגרסה החיוורת נתנה 2.0:1 ו-1.8:1 ולא נקראה בכלל על טלפון. */
.resched-time.is-taken {
  background: #ece0e5; border-color: #d6c2cb; color: #6f5f67;
  text-decoration: line-through; text-decoration-thickness: 2px; text-decoration-color: #a8919b;
  cursor: default;
}
.resched-time.is-closed {
  background: #fffdfe; border-style: dashed; border-color: #e0cfd7; color: #9c8b93;
  cursor: default;
}
.resched-msg { margin: 12px 0 0; font-size: 14px; color: #6b5b62; line-height: 1.6; }
.resched-msg.is-error { color: #b3123f; }
.resched-actions { display: flex; gap: 10px; align-items: center; margin-top: 14px; flex-wrap: wrap; }

/* ── קישורי ההזמנה (8.9.2026) ──
   ⚠ כל שורה היא **מפתח לחברה אחת**. המצב מוצג ראשון ולא אחרון, כי
   הוא מה שקובע אם יש כאן משהו לעשות. */
.referral-actions { margin: 14px 0 8px; }
.invite-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.invite-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid #f0dde5;
  border-radius: 12px;
  padding: 9px 12px;
  font-size: 13px;
}
.invite-state {
  font-weight: 700;
  font-size: 11.5px;
  padding: 1px 9px;
  border-radius: 20px;
  white-space: nowrap;
  background: #fff4e2;
  color: #8a5a12;
  border: 1px solid #f0d8ae;
}
.invite-used .invite-state { background: #eaf7ef; color: #256b45; border-color: #bfe4ce; }
.invite-released .invite-state,
.invite-expired .invite-state,
.invite-revoked .invite-state { background: #f3eef1; color: #7c6a73; border-color: #e3d6dc; }

.invite-link {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11.5px;
  color: #7c6a73;
  overflow-wrap: anywhere;
  unicode-bidi: isolate;
}
/* מומש / לא בתוקף / פג / בוטל — הקישור כבר אינו שמיש, ולכן אינו מתחזה לכזה */
.invite-used .invite-link,
.invite-released .invite-link,
.invite-expired .invite-link,
.invite-revoked .invite-link { text-decoration: line-through; opacity: .65; }

@media (max-width: 520px) {
  .invite-item { grid-template-columns: auto 1fr; }
  .invite-item .dash-link-btn { grid-column: 2; justify-self: start; }
}

/* ── כפתור "לכתוב לליה" במסך השער ──
   ⚠ מרווח עליון בלבד: הצורה, הצבע וסף המגע מגיעים מ-.btn-pill שב-style.css,
   ולא נכתבים כאן שוב. שני מימושים לאותו כפתור סוטים זה מזה. */
.dash-gate-cta { margin-top: 18px; }
/* 11.10.2026 — כרטיס הפגישות במסך "עוד כמה דקות" (‎showGateAppointments‎ מעביר אותו לכאן).
   ⚠ בלי "רוצה לקבוע את המפגש הבא?": היא כבר קבעה, והשלב הבא שלה הוא השיחה — לא עוד קביעה.
   אחרי ביטול שיחת היכרות הפתק עצמו מציע "לקביעת מועד חדש" (‎can_rebook‎ מהשרת). */
#needs-intake-appointments .dash-next-hint { display: none; }
/* ══ הלוגו במרכז הכותרת · 16.9.2026 ═══════════════════════════════════════
   🔑 הכרעת איתי: "הלוגו חייב לשבת תמיד במרכז הכותרת". נמדד לפני: הלוגו
   ישב ‎+64px‎ מימין למרכז ב-360–393 ו-‎+497.6px‎ ב-1280.
   🔴 שני מנגנונים, לפי מדידה ולא לפי טעם — לוגו ממורכז דורש
   ‎(רוחב פנימי − 156.9) ÷ 2‎ פנוי בכל צד, והתווית לבדה רחבה 104–111px:
     · מ-520px ומעלה — נכנס, ולכן **מרכוז מוחלט** והגובה ננעל ב-‎min-height‎
       כדי שהוצאת הלוגו מהזרימה לא תשנה את גובה הכותרת (נמדד: 77 לפני ואחרי).
     · מתחת ל-520px — אינו נכנס (נמדד חפיפה של 18.5px ב-360), ולכן הלוגו
       מקבל **שורה משלו** ומתמרכז בה.
   ⚠ ‎.header-inner‎ מקבל ‎position:relative‎ כדי שהמרכוז יהיה ביחס לרוחב
     הפנימי (‎max-width:1200px‎) ולא לכותרת כולה. */
.site-header .header-inner { position: relative; }

@media (min-width: 520px) {
  /* ⚠ ‎:not(.is-compact)‎ אינו קישוט — ‎style.css‎ קובע ‎min-height:92px‎ לכותרת
     של דף הבית מ-1180 ומעלה באותה סלקטיביות, והלוגו כאן נמוך ב-16px ממנו.
     בלי ההשוואה הזו הכותרת כאן הייתה מתנפחת ל-93 בשולחני. */
  .site-header:not(.is-compact) .header-inner { min-height: 76px; }   /* 44 לוגו + 16+16 ריפוד; border-box */
  .site-header .header-inner > .logo {
    position: absolute; inset-inline: 0; margin-inline: auto; width: max-content;
    top: 50%; translate: 0 -50%;
  }
}
@media (max-width: 519px) {
  .site-header .header-inner { justify-content: center; }
  .site-header .header-inner > .logo { flex: 0 0 100%; justify-content: center; }
}
