/* ============================================================
   אשבל · הכנת ראשון — app stylesheet
   Direction: v3 "אשבל בהשראת ברילי (צהוב/שחור)" (2026-07-23).
   Source: Design System project 113ef0d6 + docs/design/storyboard.html + MASTER.md.
   Heebo + IBM Plex Mono לנתונים, נייר קרם F2EFE8, צהוב FFD21E = פעולה
   (מקסימום רגע צהוב אחד למסך), פסי כותרת שחורים על card, צל חותמת קשיח,
   רדיוס 0, קישורים ארגמן, teal לצפייה חיה בלבד, aside כחול-פלדה ל-✓ נקלט.
   State semantics unchanged: red = hard violation only,
   "לא מאומת" = pending צהבהב חיוור, "אין נתון" = explicit missing datum (S-4).
   Local fonts only (no CDN — closed factory network).
   ============================================================ */

/* Heebo — variable TTF מקומי (תחליף מוצהר עד קבלת פונט המותג; ראו MASTER.md) */
@font-face { font-family: 'Heebo'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('../fonts/Heebo-var.ttf') format('truetype-variations'); }
/* IBM Plex Mono — לכל מספר, קוד וספירה (לטינית/ספרות — מקומי) */
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/PlexMono-400-latin.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/PlexMono-500-latin.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/PlexMono-700-latin.woff2') format('woff2'); }

:root {
  /* v3 · אשבל בהשראת ברילי — tokens מפרויקט ה-Design System 113ef0d6 (מקור מחייב) */
  --ink:        #161513;   /* טקסט ראשי, פסי כותרת, גבול card */
  --ink-dim:    #4C4841;
  --ink-faint:  #8A857B;
  --white:      #FFFFFF;   /* משטח (card) */
  --paper:      #F2EFE8;   /* נייר קרם — רקע העמוד */
  --paper-soft: #F2EFE8;   /* thead, drop zone */
  --paper-mute: #FBEFC2;   /* תג "ממתין" = pending */
  --hover-soft: #F2EFE8;   /* hover לכפתור משני */

  --yellow:     #FFD21E;   /* פעולה / שיבוץ ייצור — מקסימום רגע אחד למסך */
  --yellow-deep:#F0B90B;
  --pending:    #FBEFC2;   /* עובר / ממתין / לא מאומת */
  --teal:       #15879B;   /* צפייה חיה בלבד (קישור חי, focus ring) */
  --teal-ink:   #2E6FA3;   /* טקסט "✓ נקלט" — כחול-פלדה (aside), לא teal */
  --teal-tint:  #D4E9EC;
  --aside:      #2E6FA3;   /* נתון מוצג לצד (FR-4), ✓ נקלט */
  --aside-tint: #CFE0EE;
  --link:       #B3402F;   /* קישורי טקסט — ארגמן, קו תחתי */
  --link-hover: #8E3021;

  --line-strong:#D8D3C7;   /* גבול header, inputs, תגי מקור */
  --line:       #D8D3C7;   /* גבול cards */
  --line-soft:  #E8E4DA;   /* קווי שורות */
  --skeleton:   #DEDACF;
  --dash:       #4C4841;   /* מסגרת אזור ההעלאה */
  --dash-soft:  #8A857B;   /* מסגרת "אין נתון" / שלב-ב */

  /* סמנטיקת PRD — ללא שינוי משמעות */
  --alert:      #C23A2B;   /* אדום = הפרת כלל קשיח בלבד */
  --alert-bg:   #F5DFDA;
  --alert-bg-soft: #F5DFDA;/* רקע שורת מקור חסר/כושל (מסך 1, Run) */
  --warn-text:  #161513;   /* "לא מאומת": טקסט דיו על רקע pending (ניגודיות) */
  --warn-bg:    #FBEFC2;
  /* [R1] הוסרו --teal-bg/--teal-line (v2) — ערבבו teal/aside; אין יורש. */

  --space-xs: 0.25rem; --space-sm: 0.5rem; --space-md: 1rem;
  --space-lg: 1.5rem;  --space-xl: 2rem;   --space-2xl: 3rem;

  --radius: 0px;           /* אין פינות; chips בלבד 2px */
  --radius-chip: 2px;
  --shadow-card: 3px 3px 0 rgba(22,21,19,0.18);  /* צל חותמת — בלי blur */
  --shadow-pop:  5px 5px 0 rgba(22,21,19,0.22);
  --hatch: repeating-linear-gradient(45deg, transparent 0 4px, rgba(22,21,19,.35) 4px 6px);
  --border-card: 1.5px solid var(--ink);
  --ease: cubic-bezier(.2,0,0,1);
  --dur: 120ms;

  --font: 'Heebo', 'Arial Hebrew', system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', 'Courier New', monospace;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.5;
}

a { color: var(--link); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 2px; }
a:hover { color: var(--link-hover); }
::selection { background: var(--yellow); color: var(--ink); }
:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; transform: none !important; scroll-behavior: auto !important; }
}

/* ---------- שלד האפליקציה (מסכים 1–5) ---------- */
.app-top {
  display: flex; align-items: stretch; flex-wrap: wrap;
  background: var(--white); border-block-end: 1px solid var(--line-strong);
}
.app-brand { font-weight: 700; font-size: 14px; color: var(--ink); text-decoration: none; }
.app-brand::before {
  content: ""; display: inline-block; width: 22px; height: 14px;
  background: url('../img/eshbal-logo.png') center/contain no-repeat; margin-inline-end: 8px; vertical-align: -3px;
}
.app-top .app-brand {
  display: flex; align-items: center; padding: 12px 20px;
  border-inline-end: 1px solid var(--line);
}
.app-nav { display: flex; align-items: stretch; font-size: 13px; flex-wrap: wrap; }
.app-nav a {
  display: flex; align-items: center; text-decoration: none;
  color: var(--ink-dim); padding: 12px 18px;
  border-inline-end: 1px solid var(--line-soft);
  transition: color 150ms ease;
}
.app-nav a:hover { color: var(--ink); }
.app-nav a.active { color: var(--ink); font-weight: 700; box-shadow: inset 0 -3px 0 var(--ink); }
.week-chip {
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1px 10px; background: var(--paper); font-variant-numeric: tabular-nums;
  font-family: var(--font-mono);
}
.app-body { max-width: 1160px; margin-inline: auto; padding: 24px 28px; }

.h-screen { font-weight: 700; font-size: 20px; margin-block-end: 2px; }
.h-note { color: var(--ink-dim); font-size: 12.5px; max-width: 820px; margin-block-end: var(--space-md); }
.h-block {
  font-size: 12px; font-weight: 700; letter-spacing: 0.05em; color: var(--ink-dim);
  margin-block: var(--space-md) var(--space-xs);
}

/* ---------- זהות משתמשת (US-10) ---------- */
.user-chip {
  margin-inline-start: auto; display: inline-flex; gap: 12px; align-items: center;
  padding: 0 20px; font-size: 12px; color: var(--ink-dim);
  font-variant-numeric: tabular-nums; white-space: nowrap;
}
.user-chip form { display: inline; }
.user-chip button {
  background: none; border: none; color: var(--link); cursor: pointer;
  font: inherit; font-size: 12px; font-weight: 600; padding: 0; text-decoration: underline;
}
.user-chip button:hover { color: var(--link-hover); }

/* ---------- הודעות מערכת (toast — נראות גם באמצע עמוד ארוך, CSS בלבד) ---------- */
.messages {
  list-style: none; position: fixed; inset-block-end: var(--space-lg); inset-inline: 0;
  display: flex; flex-direction: column; align-items: center; gap: var(--space-xs);
  z-index: 50; pointer-events: none;
}
.messages li {
  padding: var(--space-sm) var(--space-md); border-radius: var(--radius); max-width: min(90vw, 560px);
  font-size: 13px; background: var(--white); color: var(--aside);
  border: var(--border-card); border-inline-start: 4px solid var(--aside);
  box-shadow: var(--shadow-pop); animation: toast-out 0.4s ease-in 4s forwards;
}
.messages li.error { background: var(--alert-bg); color: var(--alert); border-color: var(--alert); animation-delay: 8s; }
.messages li.warning { background: var(--warn-bg); color: var(--warn-text); border-inline-start-color: var(--yellow-deep); animation-delay: 8s; }
@keyframes toast-out { to { opacity: 0; translate: 0 8px; visibility: hidden; } }

/* ---------- אלמנט החתימה: תו העקיבות ---------- */
.src {
  display: inline-flex; align-items: center;
  font-size: 11px; font-weight: 400; color: var(--ink); background: var(--white);
  border: 1px solid var(--line-strong); border-radius: var(--radius); padding: 0 8px;
  white-space: nowrap; vertical-align: middle; font-variant-numeric: tabular-nums;
  unicode-bidi: isolate;
}

/* ---------- שם-מקור בכותרת עמודה (1c) — שם בלבד, התאריך בדוח הקליטה ---------- */
.col-src { display: block; font-weight: 400; font-size: 11px; color: var(--ink-dim); letter-spacing: 0; margin-block-start: 2px; }
.col-src-stale { color: var(--alert); font-weight: 700; }
.card-head .col-src { display: inline; margin: 0; color: var(--line-soft); }
.card-head .col-src-stale { color: #F0B0A6; }

/* ---------- אין נתון — מפורש, לעולם לא אפס (S-4) ---------- */
.nodata {
  display: inline-block; min-width: 56px; text-align: center;
  color: var(--ink-dim); font-size: 12px; border-radius: var(--radius); padding: 0 8px;
  background: var(--white); border: 1px dashed var(--dash-soft);
}

/* ---------- תגי מצב (סמנטיקת PRD) ---------- */
.tag { display: inline-block; font-size: 12px; border-radius: var(--radius); padding: 1px var(--space-sm); }
.tag-warn  { background: var(--warn-bg); color: var(--warn-text); border: 1px solid var(--yellow-deep); }
.tag-ok    { background: var(--white); color: var(--teal-ink); border: 1px solid var(--line-strong); }
.tag-alert { background: var(--alert-bg); color: var(--alert); border: 1px solid var(--alert); }

/* ---------- התראה אדומה (FR-6, שכבה 1) ---------- */
.banner-alert {
  display: flex; gap: 10px; align-items: flex-start;
  background: var(--alert-bg); border: 1px solid var(--alert);
  border-inline-start: 4px solid var(--alert);
  color: var(--alert); border-radius: var(--radius);
  padding: 10px 14px; margin-block-end: var(--space-md); font-size: 13.5px;
}
/* v3: תו טיפוגרפי במקום אייקון SVG (השחלה מרכזית — ה-svg בתבניות מוסתר) */
.banner-alert::before { content: "✕"; flex: none; font-weight: 700; font-size: 15px; line-height: 1.4; }
.banner-alert svg { display: none; }
.banner-alert b { font-weight: 700; }

/* ---------- טבלאות — card לבן, thead רך, קו שחור מתחת לכותרות ---------- */
.table-scroll {
  overflow-x: auto; background: var(--white);
  border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-card); margin-block-end: var(--space-md);
}
/* פס כותרת שחור בראש ה-card (חתימת v3 — שחור על כל card) */
.card-head {
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
  padding: 8px 16px; background: var(--ink);
  font-size: 12px; font-weight: 700; letter-spacing: 0.05em; color: var(--line);
}
.card-head-title { font-size: 14px; font-weight: 700; letter-spacing: 0; color: var(--white); }
.card-head .src { letter-spacing: 0; }
table.data { width: 100%; border-collapse: collapse; font-size: 13px; }
table.data thead tr { background: var(--ink); }
table.data th {
  text-align: start; font-weight: 600; color: var(--line); font-size: 11.5px;
  border-block-end: none; padding: 7px 10px; white-space: nowrap;
}
table.data td { border-block-end: 1px solid var(--line-soft); padding: 8px 10px; vertical-align: middle; }
table.data th:first-child, table.data td:first-child { padding-inline-start: 16px; }
table.data th:last-child, table.data td:last-child { padding-inline-end: 16px; }
table.data tbody tr { transition: background-color 150ms ease; }
table.data tbody tr:hover { background: var(--paper-soft); }
table.data tr:last-child td { border-block-end: none; }
/* שורות עם סמנטיקת מצב (tr או div) — הרקע נשאר גם ב-hover */
.row-warn, table.data tbody tr.row-warn:hover { background: var(--warn-bg); }
.row-alert, table.data tbody tr.row-alert:hover { background: var(--alert-bg); }
.num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 500; unicode-bidi: isolate; }
.num-big { font-family: var(--font-mono); font-weight: 700; font-size: 17px; font-variant-numeric: tabular-nums; }
td.dim, .dim { color: var(--ink-dim); }
.empty { color: var(--ink-dim); font-size: 13px; padding-block: var(--space-sm); }

/* ---------- כרטיסים ---------- */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: var(--space-sm); }
.card {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-card);
  padding: var(--space-md); font-size: 13.5px;
}
.card h4 { font-weight: 700; font-size: 13.5px; margin-block-end: var(--space-xs); }
.card-pad { padding: 20px; margin-block-end: var(--space-md); }

/* ---------- כפתורים — ראשי צהוב (רגע הצהוב), utility שחור, חי teal ---------- */
.btn {
  display: inline-flex; align-items: center; gap: var(--space-sm);
  border-radius: var(--radius); padding: 8px 20px;
  font-size: 13.5px; font-weight: 700; font-family: var(--font);
  cursor: pointer; text-decoration: none;
  transition: box-shadow var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
/* ראשי = צהוב + גבול דיו + צל חותמת (מקסימום רגע צהוב אחד למסך) */
.btn-primary { background: var(--yellow); color: var(--ink); border: var(--border-card); box-shadow: var(--shadow-card); }
.btn-primary:hover { background: var(--yellow-deep); }
/* utility שחור — פעולות מערכת שאינן "הפעולה" של המסך (ייצוא, סגירה) */
.btn-dark { background: var(--ink); color: var(--white); border: var(--border-card); }
.btn-dark:hover { background: #2E2B26; }
/* צפייה חיה בלבד — היחיד עם מילוי teal (מסך 6/US-15) */
.btn-live { background: var(--teal); color: var(--white); border: 1.5px solid var(--teal); font-weight: 700; }
.btn-live:hover { background: #0F6B7D; }
.btn-secondary { background: var(--white); color: var(--ink); font-weight: 600; border: var(--border-card); }
.btn-secondary:hover { background: var(--hover-soft); }
.btn-sm { padding: 4px 14px; font-size: 12.5px; }

/* ---------- תמונת התכנון — כותרת + סטטוס קליטה (Bundle B, סבב עיצוב 3, 2026-07-22) ---------- */
.plan-head { display: flex; align-items: flex-start; gap: var(--space-md); flex-wrap: wrap; margin-block-end: var(--space-md); }
.plan-head-main { display: flex; flex-direction: column; gap: var(--space-xs); }
.ingest-badges { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; font-size: 12.5px; }

/* ---------- צ'יפ "ממתין לקליטה במעלה" (Sugiya 2b) — פס אחד, נפרש למנות ---------- */
.pending-chip { display: inline-block; margin-inline-start: 8px; font-size: 12px; vertical-align: middle; }
.pending-chip > summary {
  display: inline-flex; align-items: center; gap: 6px; cursor: pointer; list-style: none;
  padding: 1px 8px; border-radius: var(--radius-chip);
  background: var(--warn-bg); border: 1px solid var(--yellow-deep); color: var(--warn-text);
  font-weight: 600; white-space: nowrap;
}
.pending-chip > summary::-webkit-details-marker { display: none; }
.pending-chip > summary::after { content: "▾"; font-size: 9px; }
.pending-chip[open] { display: block; margin-inline-start: 0; margin-block-start: 6px; }
.pending-chip-alert > summary { background: var(--alert-bg); border-color: var(--alert); color: var(--alert); }
.pending-chip .num { color: inherit; }
.cell-note { margin-block-start: 4px; }

/* ---------- דוח קליטה כשכבה (Sugiya 3b) — <dialog> נייטיב, בלי ספריית מודאל ---------- */
.report-dialog {
  border: 1px solid var(--ink); border-radius: var(--radius); padding: 0;
  max-width: min(92vw, 860px); width: 100%;
  background: var(--white); color: var(--ink); box-shadow: var(--shadow-pop);
}
.report-dialog::backdrop { background: rgba(28,27,24,0.45); }
.report-dialog-head { display: flex; align-items: center; gap: var(--space-sm); padding: 12px 16px; border-block-end: 1px solid var(--line); }
.report-dialog .table-scroll { margin: 0; border: none; box-shadow: none; }

/* ---------- טפסים ---------- */
.field { display: block; margin-block-end: var(--space-md); text-align: start; }
.field span { display: block; font-size: 12.5px; font-weight: 600; margin-block-end: var(--space-xs); }
.input {
  width: 100%; padding: 8px 12px; font: inherit; font-size: 13.5px;
  border: 1px solid var(--line-strong); border-radius: var(--radius);
  background: var(--white); color: var(--ink);
}
.input:focus { outline: none; border-color: var(--teal); box-shadow: 0 0 0 3px rgba(21,135,155,.15); }
.check-row { display: flex; gap: var(--space-sm); align-items: flex-start; font-size: 14px; max-width: 720px; cursor: pointer; margin-block-end: var(--space-sm); }
.check-row input { margin-block-start: 4px; }

/* ---------- מסך כניסה ---------- */
.login-stage { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: var(--space-xl); background: var(--paper); }
.login-card {
  width: 100%; max-width: 400px; text-align: center; background: var(--white);
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: var(--space-xl); box-shadow: var(--shadow-pop);
}

/* ---------- אזור העלאה ---------- */
.drop {
  border: 1.5px dashed var(--dash); border-radius: var(--radius); background: var(--paper-soft);
  padding: 24px 16px; text-align: center; color: var(--ink-dim); margin-block-end: var(--space-md);
}
.drop b { color: var(--ink); font-weight: 700; text-decoration: underline; }
.drop input[type=file] { display: block; margin: 10px auto 0; font-size: 13px; }
.drop.dragover { border-style: solid; border-color: var(--teal); background: #EAF2F4; color: var(--ink); }
.drop-files { margin-block-start: var(--space-sm); font-size: 12.5px; color: var(--ink); font-variant-numeric: tabular-nums; }

/* ---------- שורות קליטה ---------- */
.ingest-list { border-block-start: 1px solid var(--ink); }
.ingest {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  padding: 7px 4px; border-block-end: 1px solid var(--line-soft); font-size: 13px;
}
.ingest:last-child { border-block-end: none; }
.ingest .name { min-width: 220px; font-weight: 600; }
.st { font-size: 11.5px; border-radius: var(--radius); padding: 1px 8px; }
.st-ok   { color: var(--teal-ink); font-weight: 700; padding: 0; }
.st-ok::before { content: "✓ "; }
.st-wait { background: var(--paper-mute); color: var(--ink-dim); border: 1px solid var(--line-strong); }
.st-must { color: var(--ink); font-weight: 600; }
.st-fail { color: var(--alert); font-weight: 700; padding: 0; }
.st-fail::before { content: "✕ "; }
.st-none { color: var(--ink-dim); font-weight: 600; padding: 0; }
.st-none::before { content: "— "; }
/* סימון "לא-מאומת / ממתין / חלקי" — v3: צ'יפ pending צהבהב חיוור (רקע, לא צבע-טקסט);
   box-decoration-break: clone כדי שהרקע/ריפוד יתנהגו יפה כשהטקסט נשבר לשורות. */
.mark-warn {
  color: var(--warn-text); font-weight: 700; font-size: 12.5px;
  background: var(--pending); border-radius: var(--radius-chip); padding: 0 6px;
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
}
.mark-warn::before { content: "◐ "; }

/* ---------- מסך ההרצה (Run v2) — מסירה מצטברת, שיבוץ לשורות, פס פעולה דביק ---------- */
/* עמוד-פלקס: פס הפעולה נדחק לתחתית ונדבק אליה בגלילה. 71px = header + ריווח
   עליון של app-body; ה-margin השלילי מבטל את הריפוד התחתון כדי שהפס יישב על הקצה. */
.run-stage { display: flex; flex-direction: column; min-height: calc(100vh - 71px); margin-block-end: -24px; }
.run-stage > .card-pad { margin-block-end: 14px; }
.drop-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; text-align: start; padding: 12px 16px; margin-block-end: 0; }
.drop-row .drop-text { flex: 1; min-width: 260px; font-size: 13px; }
.drop-row input[type=file] { display: inline-block; margin: 0; max-width: 230px; }
.drop-count {
  font-weight: 700; font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap;
  padding: 2px 10px; border-radius: var(--radius); border: 1px solid var(--line-strong);
  background: var(--paper-mute); color: var(--ink);
}
.h-block-row { display: flex; align-items: baseline; gap: 12px; margin-block: 14px 4px; }
.h-block-row .h-block { margin-block: 0; }
.ingest-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  column-gap: 32px; border-block-start: 1px solid var(--ink);
}
.ingest-grid .ingest { align-items: center; padding: 6px; }
.ingest-grid .ingest:last-child { border-block-end: 1px solid var(--line-soft); } /* בגריד רב-טורים כל שורה שומרת קו */
.ingest-main { flex: 1; min-width: 0; }
.ingest-grid .name { min-width: 0; }
.ingest-grid .file { font-size: 11.5px; color: var(--ink-dim); text-align: end; }
.ingest.row-miss, .ingest.row-miss:hover { background: var(--alert-bg-soft); }
.st-got  { background: var(--aside-tint); color: var(--aside); border: 1px solid var(--aside); font-weight: 600; white-space: nowrap; }
.st-miss { background: var(--alert-bg); color: var(--alert); border: 1px solid var(--alert); font-weight: 600; white-space: nowrap; }
.st-err  { background: var(--alert); color: var(--white); border: 1px solid var(--alert); font-weight: 600; white-space: nowrap; }
.action-bar {
  position: sticky; inset-block-end: 0; margin-block-start: auto; z-index: 5;
  background: var(--white); border: 1px solid var(--line); border-block-end: none;
  border-radius: var(--radius) var(--radius) 0 0;
  box-shadow: 0 -2px 10px rgba(28,27,24,0.08);
  padding: 12px 20px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
}
.action-bar.failed { border-color: var(--alert); }
.run-indicator { font-size: 12.5px; font-weight: 700; color: var(--teal); font-variant-numeric: tabular-nums; }
.run-indicator-fail { font-size: 12.5px; font-weight: 700; color: var(--alert); }
.htmx-request .run-indicator-fail { display: none; } /* בניסיון חוזר — האינדיקטור הרץ מחליף את הכשל הקודם */

/* card של שורות (סימוני אמינות, ממתינים לאישור, מבט מסכם) */
.rows-card {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-card); overflow: hidden; margin-block-end: var(--space-md);
}
.rows-card .ingest { padding: 9px 16px; }
.rows-card .ingest.row-warn { border-block-end-color: var(--line-soft); }
.rows-card .ingest form:last-child, .rows-card .ingest .push-end { margin-inline-start: auto; }

/* ---------- יומן (מסך 4 — Slice 2) ---------- */
.journal-item {
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: var(--space-sm) var(--space-md); margin-block-end: var(--space-sm);
  background: var(--white); box-shadow: var(--shadow-card); font-size: 13.5px;
}
.journal-item .meta { font-size: 12px; color: var(--ink-dim); margin-block-end: var(--space-xs); display: flex; gap: var(--space-sm); flex-wrap: wrap; align-items: center; }
.jtype { font-size: 11.5px; border-radius: var(--radius); padding: 1px 8px; font-weight: 700; }
.jtype-q     { background: #E7F2F0; color: var(--teal-ink); }
.jtype-delta { background: var(--paper-mute); color: var(--ink); border: 1px solid var(--line-strong); }
.jtype-conf  { background: var(--warn-bg); color: var(--warn-text); }
.conflict-versions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-sm); margin-block-start: var(--space-sm); }
.conflict-versions > div { border: 1px dashed var(--dash); border-radius: var(--radius); padding: var(--space-sm) var(--space-md); font-size: 13px; background: var(--white); }
/* סתירה — card ענברי עם פס-צד, כמו התראה שממתינה להכרעה */
.journal-item.conflict { background: var(--warn-bg); border-color: var(--warn-text); border-inline-start: 4px solid var(--warn-text); }
.journal-item.conflict .meta { color: var(--warn-text); }
.journal-item.conflict .jtype-conf { background: transparent; padding: 0; }
.journal-item.conflict .jtype-conf::before { content: "◐ "; }
.journal-item.conflict .conflict-versions > div { border-color: var(--warn-text); }

/* מסנן מקוטע (יומן) */
.seg { display: inline-flex; gap: 4px; font-size: 12.5px; background: var(--hover-soft); border-radius: var(--radius); padding: 2px; }
.seg a { padding: 2px 12px; color: var(--ink-dim); text-decoration: none; border-radius: 3px; transition: color 150ms ease; }
.seg a:hover { color: var(--ink); }
.seg a.active { background: var(--white); color: var(--ink); font-weight: 700; box-shadow: 0 1px 2px rgba(28,27,24,0.08); }

/* ---------- תצוגת קריאה בלבד (מסך 6) ---------- */
.readonly-wrap { background: var(--paper); padding: var(--space-lg) var(--space-md); min-height: 100vh; }
.readonly-page { max-width: 820px; margin-inline: auto; background: var(--white); padding: var(--space-xl); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-pop); }
.readonly-page .ro-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; border-block-end: 1px solid var(--ink); padding-block-end: 14px; margin-block-end: var(--space-md); }
.readonly-page h3 { font-weight: 700; font-size: 19px; }
.ro-mark { width: 22px; height: 14px; background: url('../img/eshbal-logo.png') center/contain no-repeat; align-self: center; flex: none; }
.ro-foot { border-block-start: 1px solid var(--line); margin-block-start: var(--space-lg); padding-block-start: var(--space-sm); font-size: 12px; color: var(--ink-dim); }
/* העמוד עצמו הוא ה-card — הטבלאות בתוכו חשופות, והכותרות הופכות לתוויות מעל */
.readonly-page .table-scroll, .readonly-page .rows-card { border: none; border-radius: 0; box-shadow: none; background: transparent; }
.readonly-page .card-head { background: transparent; color: var(--ink-dim); border-block-end: 1px solid var(--ink); padding: var(--space-md) 0 var(--space-xs); }
.readonly-page .card-head-title { color: var(--ink); }

/* ---------- מצב פשוט/מרווח ---------- */
.stack > * + * { margin-block-start: var(--space-md); }
.row-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.push-end { margin-inline-start: auto; }

/* ---------- לוח קליטה (מסך 7) — סינון בתוך פס הכותרת + חשיפת הקישור החי ---------- */
.board-filters { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: 12px; letter-spacing: 0; color: var(--ink); }
.board-filters label { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.board-filters input, .board-filters select { font: inherit; font-size: 12px; padding: 2px 6px; border: 1px solid var(--line-strong); border-radius: var(--radius); background: var(--white); }
.board-filters button { font: inherit; font-size: 12px; font-weight: 600; padding: 3px 12px; border: 1px solid var(--line-strong); border-radius: var(--radius); background: var(--white); cursor: pointer; transition: background-color 150ms ease; }
.board-filters button:hover { background: var(--hover-soft); }
.live-link { position: relative; }
.live-link summary { list-style: none; }
.live-link summary::-webkit-details-marker { display: none; }
.live-link > div {
  position: absolute; inset-inline-end: 0; z-index: 10; min-width: 340px;
  background: var(--white); border: 1px solid var(--line-strong); border-radius: var(--radius);
  box-shadow: var(--shadow-pop);
  padding: var(--space-md); margin-block-start: var(--space-xs);
}

@media (max-width: 720px) {
  .conflict-versions { grid-template-columns: 1fr; }
  .app-nav { border-block-start: 1px solid var(--line-soft); }
  .ingest .name { min-width: 0; }
  .readonly-page { padding: var(--space-md); }
}

/* ============================================================
   לוח שבועי (מסך 9) — מסונכרן מ-docs/design/storyboard.html #s9 (כלל א')
   סוגיות: 1a (רשת) · 2a (חותמת/היסטוריה) · 3a (hatch) · 4b (utility) ·
   6a (שלב-ב) · 7a (קריאה בלבד). ייצור=צהוב · חג=שחור · תפוסה=hatch · שלב-ב=מקווקו.
   ============================================================ */
.wb-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-block-end: var(--space-md); }
.wb-weeknav { display: inline-flex; align-items: stretch; border: 1.5px solid var(--ink); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-card); }
.wb-weeknav a { display: inline-flex; align-items: center; padding: 5px 14px; font-size: 12.5px; font-weight: 700; color: var(--ink); text-decoration: none; background: var(--white); cursor: pointer; transition: background-color var(--dur) var(--ease); }
.wb-weeknav a:hover { background: var(--hover-soft); }
.wb-weeknav .wb-range { background: var(--ink); color: var(--white); font-family: var(--font-mono); font-size: 12px; font-variant-numeric: tabular-nums; letter-spacing: 0; cursor: default; }
.wb-weeknav .wb-range:hover { background: var(--ink); }
.wb-legend { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; padding: 8px 12px; background: var(--white); border: 1.5px solid var(--ink); border-radius: var(--radius); box-shadow: var(--shadow-card); font-size: 11.5px; margin-block-end: var(--space-md); }
.wb-legend .lg { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; color: var(--ink-dim); }
.wb-legend .lg i { width: 22px; height: 13px; flex: none; border: 1px solid var(--ink); }
.wb-legend .lg .sw-prod  { background: var(--yellow); }
.wb-legend .lg .sw-block { background: var(--ink); }
.wb-legend .lg .sw-hatch { background-color: var(--white); background-image: var(--hatch); }
.wb-legend .lg .sw-empty { background: var(--white); border-style: solid; border-color: var(--line); }
.wb-legend .lg .sw-plan  { background: var(--white); border-style: dashed; border-color: var(--dash-soft); }
.wb-legend .lg .sw-phaseb{ background: var(--white); border-style: dashed; border-color: var(--dash); }
.wb-legend .lg .sw-off   { background: var(--line-soft); }
.wb-block { background: var(--white); border: 1.5px solid var(--ink); border-radius: var(--radius); box-shadow: var(--shadow-card); overflow: hidden; margin-block-end: var(--space-md); }
.wb-block-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; background: var(--ink); color: var(--white); padding: 6px 14px; }
.wb-block-head .wb-block-name { font-size: 14px; font-weight: 700; }
.wb-block-head .wb-block-tot { margin-inline-start: auto; font-family: var(--font-mono); font-size: 11.5px; font-variant-numeric: tabular-nums; color: var(--yellow); letter-spacing: 0; }
.wb-block-head .wb-tag { font-size: 10.5px; font-family: var(--font-mono); border: 1px solid rgba(255,255,255,.5); border-radius: var(--radius-chip); padding: 0 6px; color: var(--white); }
.wb-grid-scroll { overflow-x: auto; }
.wb-grid { display: grid; grid-template-columns: minmax(120px, 150px) repeat(7, minmax(112px, 1fr)); min-width: 900px; }
.wb-grid > div { border-inline-start: 1px solid var(--line-soft); border-block-start: 1px solid var(--line-soft); padding: 4px; }
.wb-grid > .wb-rowlabel { border-inline-start: none; }
.wb-colhead { background: var(--paper-soft); font-size: 11px; font-weight: 700; text-align: start; padding: 5px 8px; position: sticky; inset-block-start: 0; }
.wb-colhead .wb-date { font-family: var(--font-mono); font-weight: 500; color: var(--ink-dim); font-size: 10.5px; }
.wb-colhead.wb-off { color: var(--ink-faint); }
.wb-corner { background: var(--ink); color: var(--white); font-size: 11px; font-weight: 700; padding: 5px 8px; display: flex; align-items: center; gap: 6px; position: sticky; inset-block-start: 0; }
.wb-corner .wb-chd { border: 1px solid rgba(255,255,255,.5); border-radius: var(--radius-chip); padding: 0 6px; font-size: 10px; }
.wb-rowlabel { font-size: 12.5px; font-weight: 700; display: flex; flex-direction: column; justify-content: center; gap: 1px; background: var(--white); padding: 6px 10px; }
.wb-rowlabel .wb-room-sub { font-weight: 400; font-size: 10.5px; color: var(--ink-faint); }
.wb-cell { display: flex; flex-direction: column; gap: 3px; min-height: 46px; position: relative; }
.wb-cell.wb-off { background: var(--line-soft); }
.wb-hours { font-family: var(--font-mono); font-size: 10px; color: var(--ink-faint); font-variant-numeric: tabular-nums; letter-spacing: 0; direction: ltr; text-align: start; }
.wb-hours.wb-cont { color: var(--ink-dim); }
.wb-card { background: var(--yellow); border: 1.5px solid var(--ink); border-radius: var(--radius); padding: 3px 5px; font-size: 11px; line-height: 1.3; cursor: default; }
.wb-card .wb-c-status { display: block; font-size: 9.5px; font-weight: 700; color: var(--ink); }
.wb-card .wb-c-status.ok::before { content: "✓ "; }
.wb-card .wb-c-body { font-weight: 600; }
.wb-card .wb-c-code { font-family: var(--font-mono); font-weight: 700; font-variant-numeric: tabular-nums; }
.wb-card .wb-c-qty { font-family: var(--font-mono); font-weight: 700; font-variant-numeric: tabular-nums; }
.wb-c-badge { font-size: 9px; border: 1px solid var(--ink); border-radius: var(--radius-chip); padding: 0 4px; background: var(--white); font-weight: 700; }
.wb-stamp { position: absolute; inset-block-start: 2px; inset-inline-start: 2px; z-index: 3; background: var(--ink); color: var(--yellow); font-family: var(--font-mono); font-size: 9.5px; font-weight: 700; padding: 1px 5px; box-shadow: var(--shadow-card); font-variant-numeric: tabular-nums; letter-spacing: 0; }
.wb-stamp.err { background: var(--alert); color: var(--white); }
.wb-occ { background-color: var(--white); background-image: var(--hatch); border: 1.5px solid var(--ink); border-radius: var(--radius); padding: 3px 6px; font-size: 10.5px; font-weight: 700; }
.wb-occ .wb-occ-label { background: var(--white); border: 1px solid var(--ink); border-radius: var(--radius-chip); padding: 0 5px; display: inline-block; }
.wb-holiday { background: var(--ink); color: var(--white); border-radius: var(--radius); padding: 3px 6px; font-size: 10.5px; font-weight: 700; text-align: center; }
.wb-cell.wb-plan { background: repeating-linear-gradient(45deg, var(--white) 0 6px, var(--paper-soft) 6px 12px); }
.wb-plan-tag { font-size: 10px; color: var(--ink-faint); border: 1px dashed var(--dash-soft); border-radius: var(--radius-chip); padding: 0 5px; align-self: flex-start; }
.wb-block-foot { display: grid; grid-template-columns: minmax(120px, 150px) repeat(7, minmax(112px, 1fr)); min-width: 900px; border-block-start: 1.5px solid var(--ink); background: var(--paper-soft); }
.wb-block-foot > div { border-inline-start: 1px solid var(--line-soft); padding: 4px 8px; font-family: var(--font-mono); font-size: 10.5px; font-variant-numeric: tabular-nums; letter-spacing: 0; color: var(--ink); }
.wb-block-foot > .wb-foot-label { border-inline-start: none; font-family: var(--font); font-weight: 700; font-size: 11px; color: var(--ink-dim); }
.wb-phaseb { border: 1.5px dashed var(--dash); border-radius: var(--radius); background: var(--white); padding: 10px 14px; margin-block-end: var(--space-md); display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.wb-phaseb .wb-pb-tag { font-size: 11px; font-weight: 700; color: var(--alert); border: 1.5px solid var(--alert); border-radius: var(--radius-chip); padding: 1px 8px; white-space: nowrap; }
.wb-phaseb .wb-pb-note { font-size: 12px; color: var(--ink-dim); }
.wb-phaseb .wb-pb-slots { margin-inline-start: auto; display: inline-flex; gap: 6px; }
.wb-phaseb .wb-pb-slots i { width: 46px; height: 20px; border: 1px dashed var(--dash-soft); border-radius: var(--radius-chip); }
.wb-history { background: var(--white); border: 1.5px solid var(--ink); border-radius: var(--radius); box-shadow: var(--shadow-card); overflow: hidden; margin-block-end: var(--space-md); }
.wb-hist-row { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; padding: 6px 14px; border-block-end: 1px solid var(--line-soft); font-size: 12.5px; }
.wb-hist-row:last-child { border-block-end: none; }
.wb-hist-row .wb-h-time { font-family: var(--font-mono); font-size: 11px; color: var(--ink-dim); font-variant-numeric: tabular-nums; min-width: 42px; }
.wb-hist-row .wb-h-who { font-weight: 700; min-width: 56px; }
.wb-hist-row .wb-h-act { color: var(--ink-dim); }
.wb-ro-badge { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 700; background: var(--ink); color: var(--white); border-radius: var(--radius-chip); padding: 1px 10px; }

/* ---- Screen-9 edit slice (US-18/19) — popover editor + add/drag affordances.
   All of this is edit-only (rendered under {% if can_edit %}); the public token
   path never emits these nodes. Ported from storyboard #s9 .wb-pop. ---- */
#wb-editor:empty { display: none; }
#wb-editor:not(:empty) { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; margin-block: var(--space-sm); }
.wb-pop { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; background: var(--white); border: 1.5px solid var(--ink); border-radius: var(--radius); box-shadow: var(--shadow-pop); padding: 10px 12px; }
.wb-pop .input { padding: 5px 8px; font-size: 12.5px; }
.wb-pop select.input { min-width: 84px; }
.wb-pop .wb-item-label { font-weight: 700; font-size: 12.5px; }
.wb-move .wb-move-label { font-size: 12px; color: var(--ink-dim); }
/* kind toggle — CSS off [data-kind], so it survives htmx innerHTML swaps (no JS) */
.wb-pop[data-kind="production"] .wb-occ-fields { display: none; }
.wb-pop:not([data-kind="production"]) .wb-prod-fields { display: none; }

/* per-cell add button — subtle, catalog-only add (US-18) */
.wb-add { align-self: flex-start; font-size: 10px; font-weight: 700; color: var(--ink-dim); background: transparent; border: 1px dashed var(--dash-soft); border-radius: var(--radius-chip); padding: 1px 7px; cursor: pointer; }
.wb-add:hover, .wb-add:focus { color: var(--ink); border-color: var(--ink); }

/* per-card edit/delete — anchored to the card, revealed on hover/focus so the
   printed/projected board stays clean */
.wb-card, .wb-occ, .wb-holiday { position: relative; }
.wb-card-actions { position: absolute; inset-block-start: 1px; inset-inline-end: 1px; display: none; gap: 3px; z-index: 4; }
/* Reveal on hover OR card focus-within. The card carries tabindex=0 (edit-only),
   so keyboard/touch users can Tab to it — that fires :focus-within, which puts
   the (until-then display:none, hence untabbable) buttons into the tab order.
   Without the card as the bootstrap, :focus-within on the actions alone could
   never fire from the keyboard. */
.wb-card:hover > .wb-card-actions, .wb-occ:hover > .wb-card-actions, .wb-holiday:hover > .wb-card-actions,
.wb-card:focus-within > .wb-card-actions, .wb-occ:focus-within > .wb-card-actions, .wb-holiday:focus-within > .wb-card-actions { display: inline-flex; }
.wb-card:focus-visible, .wb-occ:focus-visible, .wb-holiday:focus-visible { outline: 2px solid var(--teal); outline-offset: 1px; }
.wb-act-del { display: inline; margin: 0; }
.wb-act { font-size: 9px; font-weight: 700; line-height: 1.6; padding: 0 5px; border: 1px solid var(--ink); border-radius: var(--radius-chip); background: var(--white); color: var(--ink); cursor: pointer; }
.wb-act:hover { background: var(--ink); color: var(--white); }

/* drop-target highlight during a native drag */
.wb-cell.wb-drop { outline: 2px dashed var(--teal); outline-offset: -2px; background: var(--aside-tint); }

/* ============================================================
   Screen 10 — Line-Time-Settings (מסך 10 · הגדרות זמני קווים)
   Reuses .card/.card-head/table.data/.num. Provenance discipline:
   assumption = --pending, measured/verified = --aside-tint, the point
   exception carries a POSITIVE marker and NO provenance (the one inversion).
   ============================================================ */
.lt { max-width: 1120px; }
.lt-intro h1 { font-size: 26px; margin: 0 0 4px; }
.lt-lede { color: var(--ink-dim); font-size: 13.5px; max-width: 860px; margin: 0 0 12px; line-height: 1.5; }
.lt-ro { color: var(--ink-faint); font-weight: 700; }
.lt-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; font-size: 12px;
  color: var(--ink-dim); background: var(--white); border: var(--border-card); box-shadow: var(--shadow-card);
  padding: 10px 14px; margin-block-end: var(--space-xl); }

/* provenance tags — text-bearing, never colour-alone */
.prov { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 2px 8px; white-space: nowrap;
  border-radius: var(--radius-chip); unicode-bidi: isolate; }
.prov-assume { background: var(--pending); border: 1.5px solid var(--ink); }
.prov-measure, .prov-verify { background: var(--aside-tint); color: var(--teal-ink); border: 1px solid var(--aside); }
.prov-verify { border-width: 1.5px; }
.prov-none { background: var(--white); border: 1.5px dashed var(--ink-dim); color: var(--ink-faint); }
/* the ONE inversion: an operational decision, not a knowledge parameter —
   asserted with a leading ink rail, deliberately not a status colour */
.prov-exc { background: var(--white); border: 1.5px solid var(--ink); border-inline-start: 4px solid var(--ink); }

.lt-sec { margin-block-end: var(--space-2xl); }
.lt-rail { border-inline-start: 4px solid var(--ink); padding-inline-start: 12px; margin-block-end: var(--space-md);
  display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.lt-rail h2 { font-size: 19px; margin: 0; }
.lt-sub { color: var(--ink-dim); font-size: 12.5px; }
.lt-note { color: var(--ink-dim); font-size: 12.5px; margin: 10px 2px 0; }
.lt-hint { color: var(--ink-faint); font-size: 12px; }
.lt-actions { padding: 10px 16px; border-block-start: 1px solid var(--line-soft); }

/* 5א — work-hours matrix, 3-state cell */
.lt-mx td { padding: 5px 8px; }
.lt-rk { font-weight: 700; white-space: nowrap; }
.lt-cellwrap { text-align: center; }
.lt-cell { position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 62px; min-height: 34px; padding: 3px 8px; border: 1.5px solid var(--ink); background: var(--white);
  font-family: var(--font-mono); font-weight: 700; font-size: 13px; line-height: 1.1; }
.lt-cell .lt-u { font-family: var(--font); font-weight: 400; font-size: 9px; color: var(--ink-dim); }
.lt-24 { background: var(--ink); color: var(--white); }
.lt-24 .lt-u { color: var(--line); }
.lt-off { border-style: dashed; border-color: var(--ink-faint); color: var(--ink-faint);
  font-family: var(--font); font-weight: 700; font-size: 12px; }
/* exception override marker — a corner tick; the full statement is the row below */
.lt-exc::after { content: ""; position: absolute; inset-block-start: -1px; inset-inline-start: -1px;
  border: 8px solid transparent; border-block-start-color: var(--yellow-deep); border-inline-start-color: var(--yellow-deep); }
.lt-24.lt-exc::after { border-block-start-color: var(--yellow); border-inline-start-color: var(--yellow); }
.lt-eff { font-size: 11.5px; white-space: nowrap; }
.lt-future { display: block; margin-block-start: 4px; font-size: 10.5px; font-weight: 700; color: var(--ink-dim);
  background: var(--pending); border-inline-start: 3px dashed var(--ink); padding: 2px 7px; white-space: normal; max-width: 210px; }
.lt-excrow td { background: var(--paper-soft); font-size: 12px; }
.lt-excnote { color: var(--ink-faint); font-size: 11px; }
.lt-hist { font-size: 12px; color: var(--teal); }

/* 5ב — item×room timings */
.lt-code { color: var(--ink-faint); font-size: 11px; margin-inline-start: 4px; }
.lt-it td { vertical-align: top; }
.lt-span { background: var(--paper-soft); color: var(--ink-dim); text-align: center; font-size: 12px; }

/* 5ג — occupancy defaults */
.lt-variant td { background: var(--paper-soft); }
.lt-variant .lt-rk { border-inline-start: 3px solid var(--ink); padding-inline-start: 10px; }
.lt-varlabel { font-weight: 500; }
.lt-varlabel::before { content: "וריאנט · "; color: var(--ink-faint); font-weight: 400; font-size: 11px; }

/* 5ד — bulk wizard steps (inline, no floating modal) */
.lt-steps { display: flex; border-block-end: 1.5px solid var(--ink); }
.lt-step { flex: 1; padding: 8px 16px; font-size: 12px; font-weight: 700; color: var(--ink-dim);
  border-inline-end: 1px solid var(--line); }
.lt-step:last-child { border-inline-end: none; }

/* ---- Screen-10 edit slice (US-23) — inline editor popover + edit affordances.
   Edit-only (rendered under {% if can_edit %}); viewers/public never emit these.
   Mirrors the #wb-editor pattern; segmented controls are native radios and the
   mode-dependent field toggles are pure CSS :has() (no JS, survives htmx swaps). */
#lt-editor:empty { display: none; }
#lt-editor:not(:empty) { display: block; margin-block: var(--space-sm); }
.lt-pop { align-items: flex-start; }
.lt-pop-title { font-weight: 700; font-size: 12.5px; width: 100%; }
.lt-poplbl { font-size: 11px; font-weight: 700; color: var(--ink-dim); }
.lt-seg { display: inline-flex; align-items: center; gap: 10px; border: 1px solid var(--line);
  border-radius: var(--radius-chip); padding: 4px 9px; margin: 0; }
.lt-seg legend { float: none; width: auto; padding: 0 4px 0 0; margin: 0; }
.lt-seg label { font-size: 12px; font-weight: 500; display: inline-flex; align-items: center; gap: 3px; }
.lt-seg-sm label { font-size: 11px; }
.lt-grp { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lt-brkedit { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
  border-inline-start: 3px solid var(--line); padding-inline-start: 8px; }
.lt-rowact { display: inline-flex; gap: 8px; margin-inline-start: 8px; }

/* mode-dependent visibility — the field is present in the DOM (submit-safe) but
   hidden unless its mode is chosen; :has() unsupported ⇒ shows, never breaks. */
.lt-pop-sched:has(input[name="mode"]:not([value="hours"]):checked) .lt-hoursfield { display: none; }
.lt-pop-item:has(input[name="track"][value="single_total"]:checked) .lt-full { display: none; }
.lt-pop-item:has(input[name="track"][value="full_breakdown"]:checked) .lt-single { display: none; }
.lt-pop-item:has(input[name="prod_mode"][value="rate"]:checked) .lt-direct { display: none; }
.lt-pop-item:has(input[name="prod_mode"][value="direct"]:checked) .lt-rate { display: none; }

/* clickable day cell — button reset so .lt-cell keeps its exact 3-state look */
.lt-cellbtn { all: unset; display: inline-flex; cursor: pointer; }
.lt-cellbtn:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
.lt-cellbtn:hover .lt-cell, .lt-cellbtn:focus-visible .lt-cell { border-color: var(--teal); }
/* link-style buttons (edit / +חריגה / +ברירת מחדל) — keyboard-reachable */
.lt-linkbtn { background: none; border: none; padding: 0; cursor: pointer; font: inherit;
  font-size: 12px; font-weight: 700; color: var(--teal); }
.lt-linkbtn:hover, .lt-linkbtn:focus-visible { text-decoration: underline; }
