/* ============================================================================
 * tokens.css — design tokens for tak-rashuyot  ·  גרסת רענון (v2)
 * ----------------------------------------------------------------------------
 * מה השתנה מול v1 ולמה:
 *   1. פלטה מאוחדת — בוטל הכפל בין --slate-* ל---gray-*. כעת רמפת ניטרלים
 *      אחת ("ink") עם גוון כחלחל עדין שמתלכד עם ה-navy. הערכים הישנים
 *      נשמרו כ-aliases (תאימות לאחור מלאה — אסור לשבור שמות קיימים).
 *   2. צבע = משמעות בלבד — success/danger/warning מצומצמים ל-AA, ומשמשים רק
 *      לסטטוס / חריגה / התראה. אין עוד "קישוט" צבעוני בכרום הממשק.
 *   3. נוספו סקאלות: type, radius, shadow, וה-spacing הורחב — כדי שאפשר
 *      יהיה להפסיק לכתוב ערכים קשיחים inline.
 *
 * עיקרון (ללא שינוי): זה המקום היחיד שמגדיר ערכי צבע/פונט/spacing/radius/shadow.
 * שימוש: color: var(--ink-700);  background: var(--surface);  box-shadow: var(--shadow-sm);
 * ============================================================================ */

:root {

  /* ───── מותג — Navy ────────────────────────────────────────────────────
   * ה-navy נשאר זהות-העל. החלוקה לסקאלה נותנת עומק ל-header, hover, ו-states
   * בלי להמציא כחולים מתחרים. --brand-primary זהה ל-v1 (#1e3a8a) — אפס שבירה. */
  /* פלטה נבחרת: C · תכלת ממשלתי (Teal). מעבר לכיוון אחר = שינוי 7 הערכים כאן בלבד. */
  --navy-900:        #08384a;   /* chrome כהה — header / band עליון (teal-dark) */
  --navy-800:        #0a4a63;   /* כותרת טבלה / band אגף */
  --navy-700:        #0c5a78;   /* band מחלקה / states כהים */
  --brand-primary:   #0c6b8a;   /* תכלת ראשי — פעולה ראשית / סעיף / נטו */
  --brand-primary-hover: #095470;   /* hover של פעולה ראשית */
  --brand-primary-soft:  #e4f2f7;   /* tint לרקע נבחר / שורה פעילה / band סעיף */
  --brand-accent:    #0891b2;   /* תכלת-קישור / מיני-בר / accent */
  /* a035 — tint רך ל-Navy (תיוג "נבחרים"). מקביל ל-brand-primary-soft של ה-Teal,
     בגוון כחלחל מעט כהה יותר כדי שיובחן מצביעת ה-Teal. שינוי כאן בלבד. */
  --tag-elected-soft:    #e2ecf2;

  /* ───── ניטרלים — Ink (רמפה אחת לכל האפורים) ──────────────────────────── */
  --ink-50:   #f6f8fb;          /* רקע אפליקציה */
  --ink-100:  #eef2f7;          /* רקע עדין / כותרת טבלה */
  --ink-200:  #e3e9f1;          /* רקע מובחן / zebra */
  --ink-300:  #cdd6e3;          /* מסגרת רגילה */
  --ink-400:  #94a3b8;          /* placeholder / אייקון משני */
  --ink-500:  #64748b;          /* טקסט משני */
  --ink-600:  #475569;          /* טקסט עזר חזק */
  --ink-700:  #334155;          /* טקסט גוף */
  --ink-800:  #1e293b;          /* כותרות */
  --ink-900:  #0f172a;          /* טקסט מודגש מאוד */

  /* משטחים שמיים — שימוש סמנטי על גבי הרמפה */
  --surface:        #ffffff;    /* כרטיס / טבלה / מודאל */
  --surface-sunken: var(--ink-50);   /* רקע העמוד */
  --border:         var(--ink-200);  /* קו הפרדה ברירת־מחדל */
  --border-strong:  var(--ink-300);  /* מסגרת אינפוט / כפתור */
  /* TAK-982: רקע ה-body בפועל היה תמיד לבן (הכלל שהשתמש ב-ink-50 היה מת —
     תגובה מוקדמת של הערה שנסגרה מוקדם מדי). נשמר לבן כדי לא לשנות light. */
  --page-bg:        #ffffff;
  --brand-primary-text: var(--brand-primary);   /* טקסט/קישור על brand-primary — במצב כהה משתנה */
  /* TAK-1001: תאומי-טקסט ל-navy/brand — קבועים ב-light (var() לערך המקורי), קריאים ב-dark. */
  --navy-700-text:           var(--navy-700);
  --navy-800-text:           var(--navy-800);
  --navy-900-text:           var(--navy-900);
  --brand-primary-hover-text: var(--brand-primary-hover);
  --brand-accent-text:       var(--brand-accent);
  /* TAK-1006: ink-200/300 כטקסט מושתק ("nil" / placeholder) — קבוע ב-light,
     קריא ב-dark (הרמפה ההפוכה הופכת את שניהם כהים-על-כהה). */
  --ink-200-text: var(--ink-200);
  --ink-300-text: var(--ink-300);
  /* TAK-1006: טקסט על גבי ink-500 כרקע (badge שבו הרקע עצמו מתהפך ב-dark —
     לא band קבוע, ולכן band-dark-fg לא מתאים; ראו rfp-chip-count). */
  --ink-500-bg-text: var(--surface);

  /* ───── Band tokens — רקע כהה במכוון + טקסט לבן קשיח מעליו ───────────────
   * קבועים בכל ערכת נושא: היפוך רמפת ה-ink במצב כהה חייב לא לגעת בהם,
   * אחרת הטקסט הלבן שמעליהם ייעלם (band-dark-bg נשאר "כהה" תמיד). */
  --band-dark-bg:    #1e293b;   /* band כהה — רמה 1 (toast / כותרת קבוצה) */
  --band-dark-bg-2:  #475569;   /* band כהה — רמה 2 (מחלקה) */
  --band-dark-bg-3:  #94a3b8;   /* band כהה — רמה 3 (תת-מחלקה) */
  --band-dark-fg:    #ffffff;   /* טקסט קבוע מעל band כהה */

  /* ───── Nav dark-mode tone — צבעי הסרגל הצדי במצב כהה בלבד ────────────────
   * מוגדרים כאן (לא ב-_app_shell.css) כדי שה-hex יישאר במקום אחד; נצרכים
   * דרך var() תחת :root[data-theme="dark"] ב-_app_shell.css. */
  --nav-dark-bg:      #062330;
  --nav-dark-fg:      #dfeaf0;
  --nav-dark-sub:     #a9c2cd;
  --nav-dark-caption: #c7dbe4;
  --nav-dark-muted:   #7b96a4;
  --nav-dark-brand:   #5fc6e3;

  /* ───── צבעי מצב — DEPRECATED לקוד חדש (Handoff v2) ──────────────────────
   * ⚠ אסור להשתמש ב-color-* בקוד חדש (CSS/inline style)!
   * הפלטה החדשה היא Teal/Navy/Ink בלבד — בלי ירוק/אדום/צהוב סמנטיים.
   *
   * המרות מאושרות — תשתמשו ב-patterns האלה במקום:
   *   color-success-bg + color-success     → ink-100 + brand-primary-soft + ink-700   (tip/info)
   *                                          או brand-primary-soft + brand-primary + ink-700 (success)
   *   color-warning-bg + color-warning     → ink-100 + brand-primary-soft + ink-700   (אזהרה רכה)
   *   color-danger-bg  + color-danger-dark → ink-200 + ink-600                       (cancel/disabled)
   *                                          או btn-secondary (לכפתורי delete!)
   *
   * הטוקנים האלה נשארים פה רק כדי לא לשבור קוד legacy בזמן המעבר.
   * חוקים מפורטים → CLAUDE.md סעיף "🎨 פלטת צבעים v2". */
  --color-success:      #047857;   /* DEPRECATED — להחליף ל-brand-primary */
  --color-success-bg:   #e7f5ef;   /* DEPRECATED — להחליף ל-brand-primary-soft */
  --color-danger:       #c2261b;   /* DEPRECATED — להחליף ל-ink-600/ink-700 או btn-secondary */
  --color-danger-dark:  #991b1b;   /* DEPRECATED — להחליף ל-ink-700 */
  --color-danger-bg:    #fdecea;   /* DEPRECATED — להחליף ל-ink-200 */
  --color-warning:      #92400e;   /* DEPRECATED — להחליף ל-ink-700 */
  --color-warning-bg:   #fdf3d6;   /* DEPRECATED — להחליף ל-ink-100 */
  --color-info:         var(--brand-primary);
  --color-info-bg:      var(--brand-primary-soft);
  /* TAK-1006: תאומי-טקסט ל-status colours — קבועים ב-light (var() לערך המקורי), קריאים ב-dark. */
  --color-danger-text:      var(--color-danger);
  --color-danger-dark-text: var(--color-danger-dark);
  --color-success-text:     var(--color-success);
  --color-warning-text:     var(--color-warning);

  /* ───── תאימות לאחור — aliases ל-v1 (אל תשתמשו בחדש; קיימים לא יישברו) ─── */
  --slate-100: var(--ink-100);
  --slate-200: var(--ink-200);
  --slate-300: var(--ink-300);
  --slate-400: var(--ink-400);
  --slate-500: var(--ink-500);
  --slate-600: var(--ink-600);
  --slate-700: var(--ink-700);
  --gray-200:  var(--ink-200);
  --gray-500:  var(--ink-500);

  /* ───── טיפוגרפיה ─────────────────────────────────────────────────────── */
  --font-body:    'Heebo', system-ui, sans-serif;          /* גוף + UI */
  --font-display: 'Rubik', 'Heebo', system-ui, sans-serif; /* כותרות / מספרים גדולים */
  --font-mono:    'Consolas', 'Courier New', monospace;    /* קודים, ת.ז, סעיף, מספרי כסף */

  /* סקאלה — 1.0rem = 16px בסיס */
  --text-xs:   0.75rem;   /* 12 — תוויות זעירות (מינ' לטבלאות print) */
  --text-sm:   0.8125rem; /* 13 — מטא / עזר */
  --text-base: 0.875rem;  /* 14 — גוף UI / תאי טבלה */
  --text-md:   0.9375rem; /* 15 — קלט / כפתור */
  --text-lg:   1.125rem;  /* 18 — כותרת כרטיס */
  --text-xl:   1.375rem;  /* 22 — כותרת מסך */
  --text-2xl:  1.75rem;   /* 28 — מספר KPI */
  --text-3xl:  2.25rem;   /* 36 — display */

  --fw-regular: 400;
  --fw-medium:  500;
  --fw-semibold:600;
  --fw-bold:    700;
  --lh-tight:   1.2;
  --lh-normal:  1.5;

  /* ───── רדיוסים ──────────────────────────────────────────────────────── */
  --radius-sm:   4px;     /* תגיות / inputs קטנים */
  --radius-md:   6px;     /* כפתורים / inputs (תואם v1) */
  --radius-lg:   10px;    /* כרטיסים / מודאלים */
  --radius-pill: 999px;   /* סטטוס pills */

  /* ───── צללים — עדינים, שכבתיים ──────────────────────────────────────── */
  --shadow-xs:   0 1px 2px rgba(15,23,42,.06);
  --shadow-sm:   0 1px 2px rgba(15,23,42,.06), 0 1px 3px rgba(15,23,42,.05);
  --shadow-md:   0 4px 12px rgba(15,23,42,.08);
  --shadow-lg:   0 12px 28px rgba(15,23,42,.12);
  /* כרטיס = צל זעיר + טבעת מסגרת, כדי לא "לרחף" אבל כן להיבדל מהרקע */
  --shadow-card: 0 1px 2px rgba(15,23,42,.04), 0 0 0 1px rgba(15,23,42,.05);
  --ring-focus:  0 0 0 3px rgba(37,99,235,.35);   /* טבעת focus נגישה */

  /* ───── מרווח ────────────────────────────────────────────────────────── */
  --sp-2xs: 2px;
  --sp-xs:  4px;
  --sp-sm:  8px;
  --sp-md:  12px;   /* צופף יותר מ-v1 (16) — מתאים לכלי פיננסי צפוף */
  --sp-lg:  16px;
  --sp-xl:  24px;
  --sp-2xl: 32px;
  --sp-3xl: 48px;
}

/* ============================================================================
 * dark mode — data-theme="dark" על <html> (app_nav.js), לא media query
 * היפוך רמפת ה-ink (50<->900, 100<->800, 200<->700, 300<->600, 400<->500);
 * ה-aliases (slate-*) וה-band-dark-* לא נוגעים כאן — הראשונים מתעדכנים
 * דרך var(), השניים קבועים במכוון. navy / brand-primary / brand-accent /
 * כותרות המודאל בגרדיאנט / @media print — לא נוגעים.
 * ============================================================================ */
:root[data-theme="dark"] {
  color-scheme: dark;

  /* רמפת ה-ink — היפוך זוגות */
  --ink-50:   #0f172a;
  --ink-100:  #1e293b;
  --ink-200:  #334155;
  --ink-300:  #475569;
  --ink-400:  #64748b;
  --ink-500:  #94a3b8;
  --ink-600:  #cdd6e3;
  --ink-700:  #e3e9f1;
  --ink-800:  #eef2f7;
  --ink-900:  #f6f8fb;

  /* משטחים */
  --surface:             #1b2836;
  --surface-sunken:      #0f172a;
  --border:               #25384a;
  --border-strong:        #3c5166;
  --brand-primary-soft:   #123646;
  --tag-elected-soft:     #17293a;
  --brand-primary-text:   #2ea8cc;   /* טקסט/קישור על גבי brand-primary כהה — נצרך ע"י --bs-link-color למטה */
  /* TAK-1001: כל אחד נבדק מול --surface (#1b2836) ו---surface-sunken (#0f172a), מינימום 4.5:1:
     navy-900-text  #1fb6d8 → 6.23:1 / 7.43:1
     navy-800-text  #33b8dc → 6.43:1 / 7.68:1
     navy-700-text  #38bdd6 → 6.71:1 / 8.01:1
     brand-primary-hover-text #40c8e8 → 7.59:1 / 9.05:1
     brand-accent-text        #56c2de → 7.24:1 / 8.64:1 */
  --navy-700-text:            #38bdd6;
  --navy-800-text:            #33b8dc;
  --navy-900-text:            #1fb6d8;
  --brand-primary-hover-text: #40c8e8;
  --brand-accent-text:        #56c2de;
  /* TAK-1006: ink-200-text / ink-300-text נבדקו מול --surface (#1b2836) ו---surface-sunken (#0f172a):
     #94a3b8 → surface 5.84:1 / surface-sunken 6.96:1 (שניהם ≥ 4.5:1).
     ink-500-bg-text (badge כהה-על-ink-500, ink-500 הכהה = #94a3b8) נבדק מולו:
     #0f172a → 6.96:1. */
  --ink-200-text: #94a3b8;
  --ink-300-text: #94a3b8;
  --ink-500-bg-text: #0f172a;

  /* tint כהה למצבי color-* (DEPRECATED, נשארים לתאימות) */
  --color-success-bg:    #113b2e;
  --color-danger-bg:     #3a1613;
  --color-warning-bg:    #3a2e0f;
  /* TAK-1006: כל אחד נבדק מול הטינט הכהה שלו, --surface (#1b2836) ו---surface-sunken (#0f172a), מינימום 4.5:1:
     color-danger-text      #fca5a5 → danger-bg 8.48:1 / surface 7.88:1 / surface-sunken 9.41:1
     color-danger-dark-text #f87171 → danger-bg 5.82:1 / surface 5.41:1 / surface-sunken 6.45:1
     color-success-text     #4ade80 → success-bg 7.14:1 / surface 8.59:1 / surface-sunken 10.25:1
     color-warning-text     #fbbf24 → warning-bg 7.97:1 / surface 8.96:1 / surface-sunken 10.69:1 */
  --color-danger-text:      #fca5a5;
  --color-danger-dark-text: #f87171;
  --color-success-text:     #4ade80;
  --color-warning-text:     #fbbf24;

  /* צללים — שחורים, וטבעת בהירה דקה סביב כרטיס */
  --shadow-xs:   0 1px 2px rgba(0,0,0,.4);
  --shadow-sm:   0 1px 2px rgba(0,0,0,.4), 0 1px 3px rgba(0,0,0,.3);
  --shadow-md:   0 4px 12px rgba(0,0,0,.45);
  --shadow-lg:   0 12px 28px rgba(0,0,0,.5);
  --shadow-card: 0 1px 2px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.08);
  --ring-focus:  0 0 0 3px rgba(56,189,214,.45);

  --page-bg: var(--surface-sunken);

  /* Bootstrap 5.3.2 root variables — bootstrap.rtl (jsdelivr, _layout.html)
     reads its own :root vars, which never respond to data-theme on their own.
     :root[data-theme="dark"] is specificity (0,2,0), beats Bootstrap's plain
     :root (0,1,0), so this wins regardless of stylesheet load order.
     table/card/form-control/form-select all resolve through these. */
  --bs-body-bg:          var(--surface);
  --bs-body-color:       var(--ink-800);
  --bs-emphasis-color:   var(--ink-900);
  --bs-secondary-color:  var(--ink-500);
  --bs-secondary-bg:     var(--ink-100);
  --bs-tertiary-bg:      var(--ink-100);
  --bs-border-color:     var(--border);
  --bs-heading-color:    var(--ink-900);
  --bs-link-color:               var(--brand-primary-text);
  --bs-link-hover-color:         var(--brand-primary-text);
  --bs-link-color-rgb:           46,168,204;
  --bs-link-hover-color-rgb:     46,168,204;
  --bs-table-bg:         var(--surface);
  --bs-table-color:      var(--ink-800);
  --bs-table-border-color: var(--border);
}

/* ============================================================================
 * print / WeasyPrint — דוחות PDF
 * רקעים שמיים מתורגמים ללבן, גבולות מתחזקים, צבעי סטטוס נשמרים לקריאוּת.
 * ============================================================================ */
@media print {
  :root {
    --surface-sunken: #ffffff;
    --border:        #c9d2de;
    --border-strong: #9aa7b8;
    --shadow-xs: none; --shadow-sm: none; --shadow-md: none;
    --shadow-lg: none; --shadow-card: 0 0 0 1px #c9d2de;
  }
}
