/* מערכת הגבייה של קדם — מערכת עיצוב בהירה.
   בנויה לפי האפיון של ים (סעיפים 6, 11, 12, 13): מסך לבן, נקי, מצב גבייה בצבע וגם בטקסט.
   RTL-first: תכונות לוגיות בלבד (inline/block), אין left/right.
   כל צבע טקסט כאן נבדק מול הרקע שלו: 4.5:1 לטקסט רגיל, 3:1 לגבולות ואייקונים. */

@font-face{font-family:"POLIN";src:url("/assets/fonts/Polin-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"POLIN";src:url("/assets/fonts/Polin-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"POLIN";src:url("/assets/fonts/Polin-Black.woff2") format("woff2");font-weight:900;font-display:swap}
@import url('https://fonts.googleapis.com/css2?family=Assistant:wght@400;500;600;700&display=swap');

:root{
  /* משטחים */
  --canvas:#F4F5F8;          /* רקע הדף */
  --surface:#FFFFFF;         /* כרטיסים, טבלאות, סרגל צד */
  --surface-sunk:#F9FAFB;    /* כותרת טבלה, שורה בריחוף */
  --surface-tint:#EEF1FA;    /* תכלת-נייבי עדין: פריט נבחר */

  /* קווים */
  --line:#E4E7EC;
  --line-strong:#D0D5DD;

  /* טקסט */
  --ink:#101828;             /* 16.1:1 על לבן */
  --ink-dim:#475467;         /*  8.6:1 */
  --ink-faint:#667085;       /*  5.6:1 */

  /* מותג */
  --brand:#243166;           /* הנייבי של קדם. 11.4:1 על לבן */
  --brand-hi:#2C3C7D;
  --brand-tint:#EEF1FA;
  --accent:#B07636;          /* נחושת בגוון שעובר AA כטקסט על לבן, 4.6:1 */
  --accent-fill:#C08A4E;     /* נחושת מלאה: מילוי, פס, גבול */

  /* ששת מצבי הגבייה (אפיון סעיף 6). כל אחד: טקסט כהה + רקע מרוכך מאותה משפחה. */
  --st-pending:#475467;  --st-pending-bg:#F2F4F7;   /* אפור: טרם הגיע מועד */
  --st-review:#B54708;   --st-review-bg:#FEF3EA;    /* כתום: נדרשת בדיקה / מוכנה להפקה */
  --st-sent:#175CD3;     --st-sent-bg:#EFF4FF;      /* כחול: דרישה פתוחה */
  --st-overdue:#B42318;  --st-overdue-bg:#FEF3F2;   /* אדום: באיחור */
  --st-paid:#A15C07;     --st-paid-bg:#FFFAEB;      /* צהוב: שולם, ממתין לחשבונית */
  --st-done:#067647;     --st-done-bg:#ECFDF3;      /* ירוק: הושלם */

  --danger:#B42318;
  --ok:#067647;

  /* טיפוגרפיה — עברית: גוף 16px ומעלה, שורה 1.6, בלי letter-spacing */
  --display:"POLIN","Assistant",system-ui,sans-serif;
  --ui:"Assistant","POLIN",system-ui,"Segoe UI",sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;

  --r-sm:6px; --r:10px; --r-lg:14px; --r-pill:999px;
  --shadow-sm:0 1px 2px rgba(16,24,40,.06);
  --shadow:0 1px 3px rgba(16,24,40,.1),0 1px 2px rgba(16,24,40,.06);
  --shadow-lg:0 12px 32px -8px rgba(16,24,40,.18),0 4px 8px rgba(16,24,40,.06);
  --ring:0 0 0 3px rgba(36,49,102,.18);

  --side-w:236px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;overflow-x:hidden}
body{
  background:var(--canvas);color:var(--ink);
  font-family:var(--ui);font-size:16px;line-height:1.6;word-spacing:.02em;
  -webkit-font-smoothing:antialiased;min-height:100vh;
}
[hidden]{display:none!important}
a{color:var(--brand);text-underline-offset:2px}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}

/* ---------- שלד: סרגל צד + פס עליון ---------- */
.app{display:grid;grid-template-columns:var(--side-w) 1fr;min-height:100vh}
.pane{min-width:0;display:flex;flex-direction:column}

.side{
  background:var(--surface);border-inline-end:1px solid var(--line);
  padding:18px 14px;display:flex;flex-direction:column;gap:2px;
  position:sticky;top:0;height:100vh;overflow-y:auto;
}
.side .mark{display:flex;align-items:baseline;gap:8px;padding:0 8px 18px;font-family:var(--display)}
.side .mark b{font-weight:900;font-size:1.15rem;color:var(--brand);letter-spacing:-.01em}
.side .mark span{font-size:.8rem;color:var(--ink-faint)}
.side .grp{font-size:.72rem;font-weight:600;color:var(--ink-faint);padding:14px 8px 6px}
.side a,.side button.nav{
  display:flex;align-items:center;gap:10px;
  padding:10px 10px;min-height:44px;border-radius:var(--r-sm);
  color:var(--ink-dim);text-decoration:none;font:inherit;font-size:.95rem;font-weight:500;
  background:none;border:0;width:100%;text-align:start;cursor:pointer;
  border-inline-start:3px solid transparent;
}
.side a:hover,.side button.nav:hover{background:var(--surface-sunk);color:var(--ink)}
.side a[aria-current="page"]{background:var(--brand-tint);color:var(--brand);font-weight:700;border-inline-start-color:var(--accent-fill)}
.side svg{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.side .count{margin-inline-start:auto;font-family:var(--mono);font-size:.78rem;font-weight:700;background:var(--st-review-bg);color:var(--st-review);border-radius:var(--r-pill);padding:1px 8px}
.side .foot{margin-block-start:auto;border-block-start:1px solid var(--line);padding-block-start:12px;margin-block-end:0}
.side .who{padding:0 8px 6px;font-size:.85rem;color:var(--ink-faint)}
.side .who b{display:block;color:var(--ink);font-weight:600;font-size:.92rem}

.top{
  background:var(--surface);border-block-end:1px solid var(--line);
  padding:16px 28px;display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;
  position:sticky;top:0;z-index:6;
}
.top .ttl{min-width:0;flex:1}
.top h1{font-family:var(--display);font-weight:900;font-size:1.5rem;line-height:1.25;letter-spacing:-.015em;color:var(--ink)}
.top .sub{font-size:.92rem;color:var(--ink-faint);margin-block-start:2px}
.top .acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
main{padding:24px 28px 56px;flex:1;min-width:0}
.wrap-narrow{max-width:820px}

@media(max-width:860px){
  .app{grid-template-columns:1fr}
  .side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:10px 12px;overflow:visible}
  .side .mark{padding:0 8px 0 0;width:100%}
  .side a,.side button.nav{width:auto;border-inline-start:0;border-block-end:3px solid transparent;min-height:44px;padding:8px 10px}
  .side a[aria-current="page"]{border-block-end-color:var(--accent-fill)}
  .side .foot{margin:0;border:0;padding:0;width:100%;display:flex;align-items:center;gap:10px}
  .side .who{padding:0}
  .top,main{padding-inline:16px}
}

/* ---------- כרטיסים ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);margin-block-end:18px}
.card>h2,.card-head{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:14px 18px;border-block-end:1px solid var(--line);
  font-family:var(--display);font-size:1.05rem;font-weight:700;color:var(--ink);
}
.card-head .spacer{margin-inline-start:auto}
/* כותרת אמיתית (h2) בתוך card-head: display:contents משמר את הפריסה והטיפוגרפיה של card-head בדיוק כמו קודם,
   בלי להכניס את התג או הכפתור הסמוכים לשם הנגיש של הכותרת עצמה */
.card-head h2{display:contents}
/* אזור נגיעה 44px סביב תיבת סימון בטבלה, בלי להגדיל את התיבה הנראית עצמה */
.chkhit{display:inline-flex;align-items:center;justify-content:center;min-inline-size:44px;min-block-size:44px}
.card-body{padding:18px}
.card-body>p:last-child{margin-block-end:0}
.card.flat{box-shadow:none}

.hint{font-size:.9rem;color:var(--ink-faint);margin-block-end:14px}
.hint b{color:var(--ink-dim);font-weight:600}

/* ---------- כרטיסי מספרים (אפיון סעיף 11) ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px;margin-block-end:18px}
.stat{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);
  padding:14px 16px;text-align:start;font:inherit;color:inherit;cursor:pointer;min-height:84px;
  display:flex;flex-direction:column;gap:2px;transition:border-color .15s,box-shadow .15s,transform .15s;
}
.stat:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-1px)}
.stat b{font-family:var(--mono);font-size:1.75rem;line-height:1.15;font-weight:600;direction:ltr;unicode-bidi:isolate;align-self:flex-start}
.stat span{font-size:.88rem;color:var(--ink-dim)}
.stat[aria-pressed="true"]{border-color:var(--brand);box-shadow:var(--ring)}
/* כרטיס תצוגה בלבד: מספר שאין בו סינון, ולכן גם לא נראה או מתנהג ככפתור */
.stat.static{cursor:default;background:var(--brand-tint);border-color:#D5DCF2}
.stat.static:hover{transform:none;box-shadow:var(--shadow-sm);border-color:#D5DCF2}
.stat.static b{color:var(--brand);font-size:1.35rem}
.stat.static span{color:var(--brand)}
.stat.s-overdue b{color:var(--st-overdue)} .stat.s-sent b{color:var(--st-sent)}
.stat.s-review b{color:var(--st-review)} .stat.s-paid b{color:var(--st-paid)}
.stat.s-week b{color:var(--accent)}

/* ---------- סרגל כלים: חיפוש + טאבים ---------- */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-block-end:14px}
.search{position:relative;flex:1;min-width:230px}
.search input{width:100%;min-height:44px;padding:8px 40px 8px 12px;padding-inline:40px 12px}
.search svg{position:absolute;inset-inline-start:12px;inset-block-start:50%;transform:translateY(-50%);width:18px;height:18px;stroke:var(--ink-faint);fill:none;stroke-width:1.8;pointer-events:none}
.segmented{display:inline-flex;flex-wrap:wrap;max-width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:3px;gap:2px}
.segmented button{
  min-height:44px;padding:4px 14px;border:0;border-radius:7px;background:none;
  font:inherit;font-size:.92rem;font-weight:500;color:var(--ink-dim);cursor:pointer;white-space:nowrap;
}
.segmented button:hover{color:var(--ink)}
.segmented button[aria-pressed="true"]{background:var(--brand);color:#fff;font-weight:600}

/* ---------- טפסים ---------- */
label.f{display:block;margin-block-end:14px;font-size:.88rem;font-weight:600;color:var(--ink-dim)}
label.f .req{color:var(--danger);margin-inline-start:2px}
label.f .note{display:block;font-weight:400;font-size:.82rem;color:var(--ink-faint);margin-block-start:2px}
input,select,textarea{
  width:100%;min-height:44px;margin-block-start:5px;
  background:var(--surface);color:var(--ink);
  border:1px solid var(--line-strong);border-radius:var(--r-sm);
  padding:9px 12px;font:inherit;font-size:.97rem;font-weight:400;
}
input::placeholder,textarea::placeholder{color:#98A2B3}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:var(--ring);outline:none}
input:disabled,select:disabled,textarea:disabled{background:var(--surface-sunk);color:var(--ink-faint)}
textarea{min-height:96px;resize:vertical;line-height:1.6}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23667085' stroke-width='1.8'%3E%3Cpath d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 10px center;background-size:18px;padding-inline-end:36px}
input[type=checkbox]{width:20px;height:20px;min-height:20px;margin:0;accent-color:var(--brand)}
td>input[type=checkbox],th>input[type=checkbox]{outline-offset:12px} /* היעד עצמו נשאר 20px, המיקוד מסמן אזור גדול */
input[type=number],input[type=date],input[type=month],input[type=tel],input[type=email]{direction:ltr;text-align:start}
label.check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:.95rem;font-weight:500;color:var(--ink-dim);cursor:pointer}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
@media(max-width:640px){.grid2,.grid3{grid-template-columns:1fr}}
fieldset{border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin-block-end:16px}
legend{padding-inline:6px;font-size:.88rem;font-weight:700;color:var(--ink)}
.err{color:var(--danger);font-size:.88rem;font-weight:500;min-height:1.3em}

/* ---------- כפתורים ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:44px;padding:10px 18px;border-radius:var(--r-sm);
  font:inherit;font-size:.95rem;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;
  background:var(--surface);color:var(--ink-dim);border:1px solid var(--line-strong);
  box-shadow:var(--shadow-sm);transition:background .15s,border-color .15s,color .15s;
}
.btn:hover{background:var(--surface-sunk);color:var(--ink);border-color:var(--ink-faint)}
.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn.primary:hover{background:var(--brand-hi);color:#fff;border-color:var(--brand-hi)}
.btn.danger{color:var(--danger);border-color:#FDA29B}
.btn.danger:hover{background:var(--st-overdue-bg);color:var(--danger)}
.btn.ghost{background:none;border-color:transparent;box-shadow:none;color:var(--brand)}
.btn.ghost:hover{background:var(--brand-tint)}
.btn.sm{min-height:44px;padding:7px 12px;font-size:.88rem}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn svg{width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sr:focus-visible + .btn-row .btn,.sr:focus-visible ~ .btn-row .btn{outline:2px solid var(--brand);outline-offset:2px}
.btn-row.end{justify-content:flex-end}

/* ---------- טבלאות ---------- */
.tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow-x:auto;margin-block-end:18px}
.card .tablewrap{border:0;border-radius:0;box-shadow:none;margin:0}
/* טבלה עם dir="ltr" בתוך tablewrap (למשל exec.html, 12 השבועות) בלי containment גורמת ל-scrollWidth
   של html כולו לתפוח לרוחב הטבלה, גם כשה-tablewrap עצמו גולל אותה כראוי: גלילה אופקית של המסמך כולו במובייל.
   contain מבודד את הפריסה והציור של התוכן הפנימי, בלי להשפיע על גלילת ה-tablewrap עצמו */
.tablewrap{contain:layout paint}
/* רמז גלילה אופקית: אין תמיכה בתכונות לוגיות ב-background-position/linear-gradient, ולכן כאן בלבד
   קצוות פיזיים. שתי שכבות "צל" קבועות ביחס למסגרת (scroll) מציירות פייד עדין בכל קצה, ושתי שכבות
   "כיסוי" (local) זזות עם התוכן וסוגרות בדיוק את הצל בקצה שאין מעברו עוד מה לגלול. בטבלה שלא גולשת
   שתי שכבות הכיסוי חופפות את שתי שכבות הצל משני הקצוות, והרמז נעלם כליל: מופיע רק כשיש מה לגלול. */
.tablewrap{
  background-image:
    linear-gradient(to right, var(--surface) 30%, transparent),
    linear-gradient(to left, var(--surface) 30%, transparent),
    linear-gradient(to right, rgba(16,24,40,.18), transparent),
    linear-gradient(to left, rgba(16,24,40,.18), transparent);
  background-repeat:no-repeat;
  background-size:24px 100%,24px 100%,10px 100%,10px 100%;
  background-position:left,right,left,right;
  background-attachment:local,local,scroll,scroll;
}
table{width:100%;border-collapse:collapse;font-size:.93rem}
caption{text-align:start}
th,td{padding:11px 12px;text-align:start;vertical-align:middle}
thead th{
  background:var(--surface-sunk);border-block-end:1px solid var(--line);
  font-size:.78rem;font-weight:600;color:var(--ink-faint);white-space:nowrap;
}
tbody td{border-block-end:1px solid var(--line)}
tbody tr:last-child td{border-block-end:0}
tbody tr[data-href]{cursor:pointer}
tbody tr[data-href]:hover,tbody tr[data-href]:focus-visible{background:var(--surface-sunk)}
td.mono,td.num,.mono{font-family:var(--mono);direction:ltr;unicode-bidi:isolate;white-space:nowrap}
td.num,th.num{text-align:end}
td.name,td.nw{white-space:nowrap}
td.name b{font-weight:600;color:var(--ink)}
td.name a{color:inherit;text-decoration:none;font-weight:600}
td.name a:hover{text-decoration:underline;color:var(--brand)}
td.clip{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-dim)}
tfoot td{background:var(--surface-sunk);font-weight:700;border-block-start:1px solid var(--line)}

/* "נדרשת בדיקה" (week.html) במובייל: טור ההסבר בטבלה הרגילה נדחס לעמודה כה צרה שהוא נשבר לשש-שבע
   שורות קצרות וקשה לסרוק. מתחת ל-480px הטבלה הזאת בלבד הופכת לשורות-כרטיס: לקוח מודגש ותאריך בקצה
   בשורה אחת, ההסבר מתחתיו קפוא לשתי שורות (title על התא נושא את הטקסט המלא). שולחן העבודה לא זז. */
@media(max-width:480px){
  #tblReview thead{display:none}
  #tblReview,#tblReview tbody{display:block}
  #tblReview tr{
    display:grid;grid-template-columns:1fr auto;grid-template-areas:"name date" "expl expl";
    column-gap:10px;row-gap:2px;padding:12px 4px;border-block-end:1px solid var(--line);
  }
  #tblReview tr:last-child{border-block-end:0}
  #tblReview td{padding:0;border:0}
  #tblReview td:nth-child(1){grid-area:name;font-weight:600;color:var(--ink);white-space:normal}
  #tblReview td:nth-child(2){
    grid-area:expl;color:var(--ink-dim);font-size:.88rem;white-space:normal;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  #tblReview td:nth-child(3){grid-area:date;color:var(--ink-faint);font-size:.8rem}
}

.empty{padding:36px 20px;text-align:center;color:var(--ink-faint);font-size:.95rem}
.empty b{display:block;color:var(--ink);font-weight:600;font-size:1.02rem;margin-block-end:4px}
.empty .btn{margin-block-start:14px}

/* ---------- תגיות מצב ---------- */
.pill{
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  padding:3px 10px;border-radius:var(--r-pill);
  font-size:.8rem;font-weight:600;line-height:1.5;
}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.pill.pending{color:var(--st-pending);background:var(--st-pending-bg)}
.pill.ready,.pill.review{color:var(--st-review);background:var(--st-review-bg)}
.pill.sent{color:var(--st-sent);background:var(--st-sent-bg)}
.pill.overdue{color:var(--st-overdue);background:var(--st-overdue-bg)}
.pill.paid_pending_invoice{color:var(--st-paid);background:var(--st-paid-bg)}
.pill.done{color:var(--st-done);background:var(--st-done-bg)}
.pill.plain{color:var(--ink-dim);background:var(--surface-sunk)}
.pill.brand{color:var(--brand);background:var(--brand-tint)}
.pill.no-dot::before{display:none}

.flag{
  display:inline-flex;align-items:center;gap:5px;margin-inline-start:6px;
  padding:2px 8px;border-radius:var(--r-sm);
  font-size:.75rem;font-weight:600;background:var(--st-overdue-bg);color:var(--st-overdue);
}
.flag.mute{background:var(--surface-sunk);color:var(--ink-faint)}

/* ---------- פס התקדמות (אפיון סעיף 7) ---------- */
.prog{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:.85rem;color:var(--ink-dim)}
.track{inline-size:58px;block-size:7px;border-radius:4px;background:#EAECF0;overflow:hidden;flex:none}
.track i{display:block;block-size:100%;background:var(--st-done);border-radius:4px}

/* ---------- רשימת מפתח/ערך ---------- */
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:.94rem;align-items:baseline}
.kv dt{color:var(--ink-faint);font-weight:500;white-space:nowrap}
.kv dd{margin:0;color:var(--ink);font-weight:500}
.kv dd.mono{font-weight:600}

/* ---------- טאבים ---------- */
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-block-end:1px solid var(--line);margin-block-end:18px}
.tabs button{
  min-height:44px;padding:8px 14px;background:none;border:0;
  border-block-end:2px solid transparent;margin-block-end:-1px;
  font:inherit;font-size:.95rem;font-weight:500;color:var(--ink-faint);cursor:pointer;
}
.tabs button:hover{color:var(--ink)}
.tabs button[aria-selected="true"]{color:var(--brand);font-weight:700;border-block-end-color:var(--brand)}

/* ---------- רשימת פריטים (הערות, יומן, ציר זמן) ---------- */
.feed{display:flex;flex-direction:column}
.feed-item{padding:12px 0;border-block-end:1px solid var(--line);font-size:.94rem}
.feed-item:last-child{border-block-end:0;padding-block-end:0}
.feed-item .meta{font-size:.82rem;color:var(--ink-faint);margin-block-end:3px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.feed-item .body{color:var(--ink);white-space:pre-wrap}

/* ---------- חלון (dialog) ---------- */
dialog{
  border:0;border-radius:var(--r-lg);padding:0;box-shadow:var(--shadow-lg);
  background:var(--surface);color:var(--ink);font:inherit;
  width:min(560px,94vw);max-height:88vh;
}
dialog::backdrop{background:rgba(16,24,40,.45)}
dialog.wide{width:min(760px,94vw)}
dialog form{display:flex;flex-direction:column;max-height:88vh}
dialog .dlg-head{padding:18px 22px 12px;border-block-end:1px solid var(--line)}
dialog .dlg-head h2{font-family:var(--display);font-size:1.15rem;font-weight:700}
dialog .dlg-head p{font-size:.88rem;color:var(--ink-faint);margin-block-start:3px}
dialog .dlg-body{padding:18px 22px;overflow-y:auto}
dialog .dlg-foot{
  padding:14px 22px;border-block-start:1px solid var(--line);background:var(--surface-sunk);
  display:flex;gap:8px;justify-content:flex-start;flex-wrap:wrap;border-radius:0 0 var(--r-lg) var(--r-lg);
}

/* ---------- הודעת מערכת ---------- */
.toast{
  position:fixed;inset-block-end:20px;inset-inline-end:20px;z-index:60;
  background:var(--ink);color:#fff;border-radius:var(--r);
  padding:12px 18px;font-size:.93rem;font-weight:500;box-shadow:var(--shadow-lg);
  max-width:min(420px,90vw);animation:toast-in .2s ease-out;
}
.toast.bad{background:var(--danger)}
.toast.good{background:var(--ok)}
@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- מסך כניסה ---------- */
.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--canvas)}
.auth .box{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:32px}
.auth .mark{font-family:var(--display);font-weight:900;font-size:1.5rem;color:var(--brand);margin-block-end:4px}
.auth .lead{font-size:.93rem;color:var(--ink-faint);margin-block-end:24px}

.sr{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ---------- הדפסה: תמונת מצב (exec.html), השבוע (week.html) ----------
   .print-only: שורת כותרת ותחתית שנראות רק בהדפסה, ר' exec.html/week.html.
   השאר: בלי סרגל צד/פעולות/כפתורים/קלט, טבלה עם גבול שחור וכותרת שחוזרת על עצמה בכל עמוד, כרטיס שלא נשבר לשניים. */
.print-only{display:none}

@media print{
  .app{display:block}
  main{padding-block-start:0;padding-block-end:16px}
  .side,.acts,.btn,.chkhit,.toast,.skip-link,input,select,textarea{display:none}
  .print-only{display:block}

  body{background:#fff;color:#000}
  a{color:#000}

  .card,.stat,.tablewrap{box-shadow:none}
  .card{break-inside:avoid;page-break-inside:avoid}
  th,td{border:1px solid #000}
  thead{display:table-header-group}
}
