/* cheder-v3 · main.css — שלד RTL נקי (חלק 1) */
:root{
  --primary:#0a4256; --primary-dark:#003048; --primary-light:#2b7c98;
  --accent:#a87830; --accent-soft:#f3e7cf;
  --bg:#f3f6f9; --card:#ffffff; --ink:#1c2733; --muted:#5f6f7e; --line:#e4e9ef;
  --ok:#1f8a5b; --danger:#c0392b;
  --radius:14px; --shadow:0 1px 2px rgba(16,40,56,.06), 0 6px 20px rgba(16,40,56,.07);
  --font:'Heebo', 'Segoe UI', system-ui, 'Arial Hebrew', Arial, sans-serif;
}
body.dark{
  --primary:#3aa0c0; --primary-dark:#0b2530; --primary-light:#4fb6d6;
  --accent:#caa24a; --accent-soft:#2a2416;
  --bg:#0d151c; --card:#151f28; --ink:#e7edf3; --muted:#93a3b2; --line:#243139;
  --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 26px rgba(0,0,0,.34);
}
*{box-sizing:border-box; margin:0; padding:0}
html,body{height:100%}
body{
  font-family:var(--font); background:var(--bg); color:var(--ink);
  line-height:1.6; -webkit-font-smoothing:antialiased;
  display:flex; flex-direction:column; min-height:100vh;
}

/* ===== appbar ===== */
.appbar{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:linear-gradient(135deg, var(--primary-dark), var(--primary));
  color:#eaf3f7; padding:12px 20px; box-shadow:var(--shadow);
  position:sticky; top:0; z-index:50;
}
.brand{display:flex; align-items:center; gap:12px}
.logo{
  width:40px; height:40px; border-radius:11px; display:grid; place-items:center;
  background:rgba(255,255,255,.14); font-size:1.25rem; color:#fff;
}
.brand-txt{display:flex; flex-direction:column; line-height:1.15}
.brand-txt strong{font-weight:800; font-size:1.05rem}
.brand-txt small{font-size:.76rem; opacity:.85}
.appbar-actions{display:flex; align-items:center; gap:10px}
.clock-bar{
  background:var(--primary-dark); color:var(--accent); text-align:center;
  padding:7px 12px; font-size:1.15rem; font-weight:700; letter-spacing:.3px;
  font-variant-numeric:tabular-nums; border-top:1px solid rgba(255,255,255,.08);
}
.clock-bar:empty{display:none}
.status{display:inline-flex; align-items:center; gap:6px; font-size:.78rem; background:rgba(255,255,255,.12); padding:5px 11px; border-radius:999px}
.status .dot{width:9px; height:9px; border-radius:50%; background:#f1c40f; box-shadow:0 0 0 3px rgba(241,196,15,.2)}
.status.ok .dot{background:#2ecc71; box-shadow:0 0 0 3px rgba(46,204,113,.22)}
.status.down .dot{background:#e74c3c; box-shadow:0 0 0 3px rgba(231,76,60,.22)}
.icon-btn{
  width:38px; height:38px; border-radius:10px; border:none; cursor:pointer;
  background:rgba(255,255,255,.12); color:#fff; font-size:1.05rem; display:grid; place-items:center;
  transition:background .15s;
}
.icon-btn:hover{background:rgba(255,255,255,.22)}

/* ===== main / pages ===== */
#main{flex:1; width:100%; max-width:1120px; margin:0 auto; padding:22px 18px 40px}
.page{display:none}
.page.active{display:block; animation:fade .25s ease}
@keyframes fade{from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none}}

.home-hero{
  background:linear-gradient(135deg, var(--primary-dark), var(--primary) 75%, var(--primary-light));
  color:#eaf3f7; border-radius:18px; padding:26px 28px; margin:4px 2px 24px;
  box-shadow:0 8px 26px color-mix(in srgb,var(--primary) 26%, transparent); position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
}
.home-hero::after{content:""; position:absolute; inset-inline-start:-30px; bottom:-50px; width:180px; height:180px; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.14), transparent 70%)}
.home-hero-text{position:relative}
.home-hero h1{font-size:1.6rem; font-weight:800; color:#fff; margin-bottom:4px; position:relative}
.home-hero p{color:#d3e3e9; position:relative; max-width:60ch}
/* אזור השעון בתוך הבאנר, בצד הנגדי לטקסט — הכי בקצה השמאלי (בקשת יוסף
   09/09/2026): השעון האנלוגי בקצה הקיצוני (איפה שהיה אייקון הסימניה
   הדהוי — הוסר, השעון האמיתי תופס את מקומו), ולידו מימין יום+תאריך
   בשתי שורות קומפקטיות זו-מעל-זו — לא ערימה אנכית שמגביהה את הבאנר. */
.hero-clock-wrap{position:relative; display:flex; flex-direction:row; align-items:center; gap:10px}
.hero-date-lines{display:flex; flex-direction:column; align-items:center; gap:2px}
.clock-day{color:#fff; font-size:1.05rem; font-weight:800; white-space:nowrap; text-shadow:0 2px 10px rgba(0,0,0,.25)}
.clock-date{color:#fff; font-size:.9rem; font-weight:600; white-space:nowrap; text-shadow:0 2px 10px rgba(0,0,0,.25)}
@media (max-width:640px){ .clock-day{font-size:.92rem} .clock-date{font-size:.78rem} }

/* שעון אנלוגי עם מחוגים (בקשת יוסף 09/09/2026: "לבן, ושיהיה שעון עם
   מחוגים יפה ומעוצב"). פני-השעון שקופים-לבנים על גבי גרדיאנט הניווי של
   הבאנר, המחוגים לבנים; מחוג השניות ומרכז השעון בזהב — תבלין קטן, לא
   הצבע הדומיננטי (ר' feedback-design-rules-yosef). מסתובב עם transform
   ולא עם ה-XML attribute כדי לקבל טרנזישן חלק בכל "טיק". גודל מוקטן
   (62px, היה 76px) כדי שהשורה לא תהיה גבוהה מבלוק הכותרת מנגד. */
.hero-analog-clock{
  width:62px; height:62px; overflow:visible; flex-shrink:0;
  filter:drop-shadow(0 3px 8px rgba(0,0,0,.3));
}
.clock-face{fill:rgba(255,255,255,.1); stroke:rgba(255,255,255,.6); stroke-width:2.5}
.clock-ticks .tick{stroke:#fff; stroke-linecap:round}
.clock-ticks .tick-major{stroke-width:2.4; opacity:.9}
.clock-ticks .tick-minor{stroke-width:1.2; opacity:.5}
.clock-hand{stroke:#fff; stroke-linecap:round; transform-box:view-box; transform-origin:50px 50px; transition:transform .25s cubic-bezier(.4,2.2,.4,1)}
.hand-hour{stroke-width:4}
.hand-min{stroke-width:2.8}
.hand-sec{stroke-width:1.4; stroke:var(--accent)}
.clock-center{fill:var(--accent); stroke:#fff; stroke-width:1}
@media (max-width:640px){ .hero-analog-clock{width:46px; height:46px} }

/* ===== tile groups ===== */
.tile-group{margin-bottom:24px}
.group-title{
  font-size:.82rem; font-weight:800; letter-spacing:.06em; color:var(--muted);
  text-transform:uppercase; margin:0 2px 12px; display:flex; align-items:center; gap:10px;
}
.group-title::after{content:""; flex:1; height:1px; background:linear-gradient(90deg,var(--line),transparent)}
.tile-grid-inner{display:grid; grid-template-columns:repeat(auto-fill, minmax(215px, 1fr)); gap:12px}
.tile{
  background:var(--card); border:1px solid var(--line); border-radius:15px;
  padding:15px 16px; cursor:pointer; box-shadow:var(--shadow); text-decoration:none; color:inherit;
  display:flex; align-items:center; gap:13px; position:relative; overflow:hidden;
  transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.tile::before{content:""; position:absolute; inset-inline-start:0; top:0; bottom:0; width:4px; background:var(--tc,var(--primary)); opacity:.9}
.tile:hover{transform:translateY(-3px); box-shadow:0 12px 28px color-mix(in srgb,var(--tc,var(--primary)) 22%, transparent); border-color:color-mix(in srgb,var(--tc,var(--primary)) 45%, transparent)}
.tile .ic{
  width:48px; height:48px; border-radius:13px; display:grid; place-items:center; flex:none;
  font-size:1.4rem; color:var(--tc,var(--primary));
  background:color-mix(in srgb, var(--tc,var(--primary)) 13%, transparent);
  transition:transform .14s ease;
}
.tile:hover .ic{transform:scale(1.08)}
.tile .t{font-weight:700; font-size:1rem; flex:1}
.tile-arrow{color:var(--muted); font-size:1.3rem; opacity:.4; transition:transform .14s ease, opacity .14s ease}
.tile:hover .tile-arrow{opacity:.9; transform:translateX(-4px); color:var(--tc,var(--primary))}

/* ===== placeholder page ===== */
.page-head{display:flex; align-items:center; gap:10px; margin:4px 2px 16px}
.page-head .back{cursor:pointer; color:var(--primary); font-weight:700; background:none; border:none; font-size:.9rem; display:inline-flex; align-items:center; gap:5px}
.page-head h2{font-size:1.35rem; font-weight:800; color:var(--primary-dark)}
.soon-card{
  background:var(--card); border:1px dashed var(--line); border-radius:var(--radius);
  padding:40px 24px; text-align:center; color:var(--muted); box-shadow:var(--shadow);
}
.soon-card .ic{font-size:2.4rem; color:var(--primary-light); display:block; margin-bottom:10px}
.soon-card b{color:var(--ink)}
.soon-card .part{display:inline-block; margin-top:10px; font-size:.82rem; color:var(--accent); background:var(--accent-soft); padding:3px 12px; border-radius:999px; font-weight:700}

/* ===== footer ===== */
.foot{
  text-align:center; color:var(--muted); font-size:.78rem; padding:16px;
  border-top:1px solid var(--line); background:var(--card);
}
.foot-sep{margin:0 6px; opacity:.5}
.foot-credit{
  font-size:.85rem; font-weight:700; color:var(--accent,#a87830); margin-bottom:6px;
}
.foot-credit a{color:inherit; text-decoration:underline}

@media (max-width:520px){
  .appbar{padding:10px 14px}
  .brand-txt strong{font-size:.98rem}
  #main{padding:16px 12px 34px}
  .tile-grid{grid-template-columns:repeat(auto-fill, minmax(140px,1fr)); gap:11px}
}

/* ===== user info (header) ===== */
.user-info{display:inline-flex; align-items:center; gap:8px; font-size:.8rem; color:#eaf3f7}
.user-info .ui-name{background:rgba(255,255,255,.12); padding:5px 11px; border-radius:999px; display:inline-flex; align-items:center; gap:6px; white-space:nowrap}

/* ===== login ===== */
.login-wrap{min-height:60vh; display:grid; place-items:center; padding:20px}
.login-card{
  background:var(--card); border:1px solid var(--line); border-radius:18px;
  box-shadow:var(--shadow); padding:34px 28px; width:100%; max-width:400px; text-align:center;
}
.login-logo{
  width:64px; height:64px; border-radius:18px; margin:0 auto 14px; display:grid; place-items:center;
  font-size:1.9rem; color:#fff; background:linear-gradient(135deg,var(--primary-dark),var(--primary));
}
.login-card h2{font-weight:800; color:var(--primary-dark); font-size:1.4rem}
.login-sub{color:var(--muted); margin-bottom:20px; font-size:.9rem}
.lbl{display:block; text-align:right; font-size:.82rem; font-weight:700; color:var(--muted); margin:0 2px 6px}
.inp{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:11px;
  background:var(--bg); color:var(--ink); font-family:inherit; font-size:1rem; margin-bottom:14px;
}
.inp:focus{outline:none; border-color:var(--primary-light); box-shadow:0 0 0 3px rgba(43,124,152,.15)}
.btn-primary{
  width:100%; padding:12px 16px; border:none; border-radius:11px; cursor:pointer;
  background:var(--primary); color:#fff; font-family:inherit; font-weight:700; font-size:1rem;
  display:inline-flex; align-items:center; justify-content:center; gap:8px; transition:background .15s;
}
.btn-primary:hover{background:var(--primary-dark)}
.login-msg{margin-top:12px; font-size:.88rem; color:var(--primary-dark); min-height:1.2em}
.login-hint{margin-top:10px; font-size:.76rem; color:var(--muted)}
.demo-note{
  background:var(--accent-soft); color:#7a5b12; border-radius:10px; padding:10px 12px;
  font-size:.82rem; margin-bottom:16px; text-align:right;
}
body.dark .demo-note{color:var(--accent)}

/* ===== buttons (shared) ===== */
.btn-primary.sm,.btn-ghost.sm{width:auto; padding:8px 14px; font-size:.88rem}
.btn-ghost.xs{width:auto; padding:3px 7px; font-size:.78rem; border-radius:8px}
.tx-weeknav{display:flex; align-items:center; gap:10px; margin:4px 2px 12px; font-size:.92rem}
.btn-ghost{border:1px solid var(--line); background:var(--card); color:var(--ink); border-radius:11px; cursor:pointer; font-family:inherit; font-weight:700; padding:10px 14px; display:inline-flex; align-items:center; gap:7px; transition:background .15s}
.btn-ghost:hover{background:var(--bg)}
.inp.mb0{margin-bottom:0}
.head-actions{display:flex; gap:8px; margin-inline-start:auto; flex-wrap:wrap}
.page-head{flex-wrap:wrap}

/* ===== toolbar + table ===== */
.toolbar{display:grid; grid-template-columns:2fr 1fr 1fr; gap:10px; margin:4px 2px 12px}
.count-line{font-size:.8rem; color:var(--muted); margin:0 2px 8px}
.table-wrap{overflow-x:auto; background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow)}
table.tbl{width:100%; border-collapse:collapse; min-width:560px}
table.tbl th,table.tbl td{text-align:start; padding:11px 14px; border-bottom:1px solid var(--line); font-size:.9rem; vertical-align:middle}
table.tbl thead th{font-size:.74rem; letter-spacing:.04em; color:var(--muted); text-transform:uppercase; background:var(--bg)}
table.tbl tbody tr:last-child td{border-bottom:none}
table.tbl tbody tr:hover{background:var(--bg)}
.ava{display:inline-grid; place-items:center; width:30px; height:30px; border-radius:9px; background:color-mix(in srgb,var(--primary) 12%,transparent); color:var(--primary); font-weight:800; font-size:.72rem; margin-inline-end:6px}
.chip{font-size:.72rem; font-weight:700; padding:2px 9px; border-radius:999px}
.chip.ok{background:color-mix(in srgb,var(--ok) 14%,transparent); color:var(--ok)}
.chip.off{background:color-mix(in srgb,var(--muted) 16%,transparent); color:var(--muted)}
.row-act{white-space:nowrap; text-align:end}
.mini{border:none; background:var(--bg); color:var(--muted); width:30px; height:30px; border-radius:8px; cursor:pointer; margin-inline-start:4px}
.mini:hover{background:color-mix(in srgb,var(--primary) 12%,transparent); color:var(--primary)}
.mini.danger:hover{background:color-mix(in srgb,var(--danger) 14%,transparent); color:var(--danger)}
.empty-state{text-align:center; color:var(--muted); padding:34px; background:var(--card); border:1px dashed var(--line); border-radius:14px; margin-top:10px}
.empty-state .bi{font-size:2rem; display:block; margin-bottom:8px; opacity:.6}

/* ===== modal ===== */
.modal-ov{position:fixed; inset:0; background:rgba(15,30,40,.5); display:grid; place-items:center; z-index:200; padding:16px; animation:fade .15s}
.modal-card{background:var(--card); border-radius:16px; box-shadow:0 20px 60px rgba(0,0,0,.3); width:100%; max-width:520px; max-height:90vh; overflow:auto}
.modal-head{display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid var(--line)}
.modal-head h3{font-size:1.1rem; font-weight:800; color:var(--primary-dark)}
.modal-x{border:none; background:none; cursor:pointer; color:var(--muted); font-size:1.1rem}
.modal-body{padding:18px}
.modal-foot{display:flex; justify-content:flex-start; gap:8px; padding:14px 18px; border-top:1px solid var(--line)}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.fld{display:flex; flex-direction:column; gap:5px; font-size:.82rem; font-weight:700; color:var(--muted)}
.fld-wide{grid-column:1 / -1}
.fld input,.fld select,.fld textarea{font-weight:400}
/* שדות טקסט חופשי בדיווחים — כמה שורות במקום פס אחד, וגלילה כשצריך.
   `field-sizing` נותן גדילה אוטומטית בדפדפנים שתומכים; לשאר יש ta-auto ב-JS. */
/* max-height בפיקסלים ולא ב-vh: יחידת vh תלויה בגובה החלון, ובמסגרת/חלון
   בגובה 0 היא נפתרת ל-0 והשדה לא יכול לגדול בכלל. */
textarea.inp{width:100%; resize:vertical; min-height:calc(1.5em * 2 + 18px);
  line-height:1.5; font-family:inherit; field-sizing:content; max-height:340px}
textarea.inp.ta-auto{overflow-y:auto}

/* ===== student detail ===== */
.ava.lg{width:56px; height:56px; border-radius:15px; font-size:1.1rem}
/* עיגול עם תמונת תלמיד. object-fit:cover + מיקום עליון — פורטרט בגובה מלא
   נחתך אחרת באמצע הפנים. */
.ava-img{padding:0; overflow:hidden; background:var(--bg)}
.ava-img img{width:100%; height:100%; object-fit:cover; object-position:50% 12%; display:block}
/* תמונת התלמיד בכרטיס — פורטרט, לא עיגול.
   הגודל נגזר מהמקור השמור (360x480): מעבר לזה התמונה מתחילה להיראות רכה. */
.det-photo{width:150px; height:200px; object-fit:cover; object-position:50% 10%;
  border-radius:14px; border:1px solid var(--line); background:var(--bg);
  margin-inline-end:14px; flex:none; box-shadow:0 4px 14px rgba(0,0,0,.13)}
@media (max-width:560px){
  .det-photo{width:104px; height:139px; border-radius:11px; margin-inline-end:10px}
}
/* כפתור ההגדלה עוטף את התמונה ולא מוסיף לה מסגרת משלו */
.det-photo-btn{position:relative; padding:0; border:0; background:none; cursor:zoom-in;
  line-height:0; border-radius:14px; flex:none}
.det-photo-btn .det-photo{margin:0}
.det-photo-zoom{position:absolute; inset-inline-end:8px; inset-block-end:8px;
  display:grid; place-items:center; width:28px; height:28px; border-radius:8px;
  background:rgba(0,0,0,.55); color:#fff; font-size:.8rem; opacity:0; transition:opacity .15s}
.det-photo-btn:hover .det-photo-zoom,.det-photo-btn:focus-visible .det-photo-zoom{opacity:1}

/* תצוגת התמונה המוגדלת */
/* ⚠️ מעל .modal-ov (200): התמונה נפתחת **מתוך** כרטיס התלמיד, שהוא עצמו
   מודאל. ב-z-index נמוך יותר היא נפתחה מאחוריו ולא נראתה כלל.
   מתחת ל-.toast-host (300) בכוונה — הודעות מערכת נשארות מעל הכל. */
.photo-ov{position:fixed; inset:0; z-index:250; background:rgba(8,14,20,.92);
  display:grid; place-items:center; padding:24px; cursor:zoom-out;
  animation:photoIn .14s ease-out}
@keyframes photoIn{from{opacity:0}to{opacity:1}}
.photo-ov img{max-width:min(92vw,760px); max-height:82vh; object-fit:contain;
  border-radius:14px; box-shadow:0 18px 50px rgba(0,0,0,.55); cursor:default}
.photo-cap{position:absolute; inset-block-end:22px; inset-inline:0; text-align:center;
  color:#fff; font-weight:800; font-size:1rem; text-shadow:0 1px 6px rgba(0,0,0,.7)}
.photo-x{position:absolute; inset-block-start:16px; inset-inline-end:16px;
  width:40px; height:40px; border-radius:11px; border:0; cursor:pointer;
  background:rgba(255,255,255,.14); color:#fff; font-size:1rem}
.photo-x:hover{background:rgba(255,255,255,.26)}
@media print{ .photo-ov{display:none !important} }
.det-head{display:flex; align-items:center; gap:14px; margin-bottom:16px}
.det-name{font-size:1.2rem; font-weight:800; color:var(--primary-dark); margin-bottom:4px}
.det-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:11px; overflow:hidden; margin-bottom:16px}
@media (max-width:560px){ .det-grid{grid-template-columns:1fr} }
.name-link{cursor:pointer; color:var(--primary); font-weight:700; text-decoration:none}
.name-link:hover{text-decoration:underline}
.det-row{display:flex; justify-content:space-between; gap:12px; padding:10px 14px; background:var(--card); font-size:.9rem}
.det-lbl{color:var(--muted); font-weight:700}
.det-val{color:var(--ink); text-align:end}
.det-actions{display:flex; gap:8px; flex-wrap:wrap}
.det-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:14px}
.det-stats .ds{background:var(--bg); border:1px solid var(--line); border-radius:11px; padding:10px; text-align:center}
.det-stats .ds b{display:block; font-size:1.25rem; font-weight:800; color:var(--primary-dark); font-variant-numeric:tabular-nums}
.det-stats .ds span{font-size:.72rem; color:var(--muted)}
.det-sec{margin-bottom:12px}
/* קטע "טייצר" בכרטיס תלמיד — רקע עדין ייחודי כדי שיהיה נוח לעין להבחין
   אותו משאר הכרטיס (בקשת יוסף 09/09), גוון תואם למיתוג (primary-light). */
.det-sec.tx-sec{background:color-mix(in srgb,var(--primary-light) 8%,var(--card)); border:1px solid color-mix(in srgb,var(--primary-light) 22%,var(--line)); border-radius:12px; padding:10px 12px 4px}
.det-sec h4{font-size:.82rem; font-weight:800; color:var(--muted); margin-bottom:6px; display:flex; align-items:center; gap:7px}
.det-sec h4 .bi{color:var(--primary)}
.det-badge{font-size:.68rem; font-weight:800; background:color-mix(in srgb,var(--primary) 13%,transparent); color:var(--primary); padding:1px 8px; border-radius:999px}
.det-item{display:flex; align-items:center; gap:9px; padding:7px 11px; background:var(--bg); border-radius:9px; margin-bottom:5px; font-size:.86rem}
.di-main{flex:1} .di-meta{color:var(--muted); font-size:.76rem; white-space:nowrap}

/* ===== user management ===== */
.card-h-row{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; flex-wrap:wrap}
.card-h-row h3{margin:0}
.cb-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:6px; margin-top:4px}
.cb{display:flex; align-items:center; gap:6px; font-weight:400; font-size:.86rem; background:var(--bg); padding:6px 10px; border-radius:8px; cursor:pointer}
.cb input{accent-color:var(--primary)}

/* ===== print (student card) ===== */
@media print {
  /* הכלל הזה נועד להדפסת מודאל בלבד. בלי הסייג הוא הפך גם את גיליון היצוא
     ל-visibility:hidden — כלומר "הדפסה" שיצאה דף ריק לגמרי. */
  body:not(.printing-sheet):not(.printing-card) * { visibility: hidden !important; }
  body:not(.printing-sheet) .modal-ov, body:not(.printing-sheet) .modal-ov * { visibility: visible !important; }
  .modal-ov { position: absolute !important; inset: 0 !important; background: #fff !important; padding: 0 !important; display: block !important; }
  .modal-card { max-height: none !important; box-shadow: none !important; max-width: 100% !important; border: none !important; }
  .modal-x, .modal-foot, .det-actions { display: none !important; }
}

/* ===== toast ===== */
.toast-host{position:fixed; bottom:20px; inset-inline-start:20px; z-index:300; display:flex; flex-direction:column; gap:8px}
.toast{background:var(--primary-dark); color:#fff; padding:10px 16px; border-radius:11px; box-shadow:var(--shadow); font-size:.9rem; opacity:0; transform:translateY(10px); transition:opacity .25s, transform .25s}
.toast.show{opacity:1; transform:none}
.toast.err{background:var(--danger)}

/* ===== quick report + timeline ===== */
.qr-card{background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); padding:16px 18px; margin:2px 2px 16px}
.qr-card h3{font-size:1rem; font-weight:800; color:var(--primary-dark); margin-bottom:12px; display:flex; align-items:center; gap:7px}
.qr-card h3 .bi{color:var(--accent)}
.qr-grid{display:grid; grid-template-columns:1.3fr 1.3fr .9fr 2fr auto; gap:10px; align-items:center}
/* בורר תלמיד חכם (כיתה · חיפוש חי) — משתרע על שורה מלאה בתוך qr-grid/toolbar */
.stu-pick{grid-column:1 / -1; display:flex; gap:8px; flex-wrap:wrap; align-items:flex-start}
.stu-pick .pk-class{flex:0 1 150px; min-width:120px}
.stu-pick .pk-combo{position:relative; flex:3 1 240px}
.stu-pick .pk-search{width:100%; font-weight:600}
.pk-results{position:absolute; top:calc(100% + 4px); inset-inline:0; background:var(--card); border:1px solid var(--line);
  border-radius:10px; max-height:260px; overflow:auto; z-index:60; box-shadow:0 8px 26px rgba(0,0,0,.16)}
.pk-res-item{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:9px 13px; cursor:pointer; font-size:.93rem}
.pk-res-item small{color:var(--muted); font-weight:500}
.pk-res-item:hover, .pk-res-item.active{background:var(--primary); color:#fff}
.pk-res-item:hover small, .pk-res-item.active small{color:#e8f5ee}
.pk-empty{padding:11px 13px; color:var(--muted); font-size:.9rem}
/* טפסים — פס התקדמות חתימות */
.prog{height:9px; background:var(--line); border-radius:6px; overflow:hidden}
.prog-bar{height:100%; background:linear-gradient(90deg,var(--primary),var(--primary-dark)); border-radius:6px; transition:width .4s}
.form-card .card-h-row{align-items:center}
/* מצב צפייה-בלבד (מפקח) — מסתיר כפתורי פעולה/עריכה/מחיקה; רואים הכל, לא משנים */
body.mode-readonly .btn-primary,
body.mode-readonly [data-del], body.mode-readonly [data-tog],
body.mode-readonly [data-follow], body.mode-readonly [data-resolve], body.mode-readonly [data-wres],
body.mode-readonly [data-cmtdel], body.mode-readonly [data-addcmt], body.mode-readonly #cmtAdd,
body.mode-readonly .att-btn, body.mode-readonly .row-act,
body.mode-readonly #qCatAdd, body.mode-readonly #stuAdd, body.mode-readonly #usrAdd,
body.mode-readonly .det-actions{ display:none !important; }
body.mode-readonly .qr-card input, body.mode-readonly .qr-card select, body.mode-readonly .qr-card textarea{ pointer-events:none; opacity:.6; }
/* חריג — פעולות אישיות (שינוי סיסמה) חייבות לעבוד בכל מצב, גם בצפייה-בלבד */
body.mode-readonly .btn-primary.always-on, body.mode-writeonly .btn-primary.always-on{ display:inline-flex !important; }
/* מצב הזנה-בלבד (מלמד) — טופס הזנה בלבד, בלי צפייה ברשימות/דוחות */
body.mode-writeonly #timeline, body.mode-writeonly .table-wrap, body.mode-writeonly #recList,
body.mode-writeonly #logList, body.mode-writeonly .dash-grid, body.mode-writeonly .stat-row,
body.mode-writeonly #noteList, body.mode-writeonly .toolbar, body.mode-writeonly .count-line,
body.mode-writeonly #evEmpty, body.mode-writeonly #recEmpty, body.mode-writeonly #logEmpty{ display:none !important; }
/* חריג — רכיבים שהם עצמם ממשק ההזנה (למשל טבלת הנוכחות) חייבים להישאר גלויים
   במצב הזנה-בלבד, אחרת המלמד לא יכול לבצע את התפקיד היחיד שהותר לו. */
body.mode-writeonly .toolbar.entry-ui, body.mode-writeonly .table-wrap.entry-ui{ display:grid !important; }
body.mode-writeonly .table-wrap.entry-ui{ display:block !important; }
/* גם סיכום הנוכחות היומי הוא חלק מממשק ההזנה — בלעדיו המלמד מסמן ולא רואה כמה סימן */
body.mode-writeonly .toolbar.entry-ui .count-line{ display:block !important; }
/* תצוגת מורים — בית פשוט ויפה */
.teacher-card{background:var(--card); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); padding:22px; margin-bottom:18px; border-top:4px solid var(--primary)}
.teacher-card h3{margin:0 0 14px; font-size:1.15rem; display:flex; align-items:center; gap:8px; color:var(--primary-dark)}
.teacher-card .btn-primary{font-size:1.05rem; padding:12px 20px}
.teacher-actions{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px}
.teacher-btn{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:26px 14px;
  background:var(--card); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); cursor:pointer;
  font-size:1.1rem; font-weight:700; color:var(--primary-dark); transition:transform .12s, box-shadow .12s}
.teacher-btn i{font-size:2rem; color:var(--primary)}
.teacher-btn:hover{transform:translateY(-3px); box-shadow:0 10px 26px rgba(0,0,0,.14)}
/* דף חתימת הורים (sign.html) */
/* ⚠️ align-items:center על מיכל בגובה 100vh חותך את ראש הכרטיס כשהוא גבוה
   מהמסך — התוכן גולש מחוץ לאזור הגלילה ואי אפשר לגלול אליו למעלה.
   flex-start + margin:auto על הילד ממרכז כשיש מקום, ולא חותך כשאין. */
.sign-wrap{min-height:100vh; display:flex; align-items:flex-start; justify-content:center;
  padding:20px; background:var(--bg)}
/* טופס עם כותרות וסעיפים צריך רוחב של מסמך, לא של תיבת התחברות */
.sign-card{width:100%; max-width:640px; margin:auto; background:var(--card); border:1px solid var(--line);
  border-radius:18px; box-shadow:var(--shadow); padding:26px}
.sign-logo{width:56px; height:56px; margin:0 auto 8px; border-radius:15px; display:flex; align-items:center; justify-content:center; font-size:1.7rem; color:#fff; background:linear-gradient(135deg,var(--primary),var(--primary-dark))}
.sign-inst{text-align:center; color:var(--muted); font-weight:700; margin-bottom:14px}
.sign-card h2{text-align:center; margin:.2rem 0 .6rem}
.sign-body{color:var(--muted); line-height:1.6; margin-bottom:14px}
.sign-done{display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; color:var(--primary-dark); padding:12px}
.sign-done i{font-size:2.4rem}
.toolbar .stu-pick{grid-column:auto}
@media (max-width:600px){ .stu-pick{flex-direction:column} .stu-pick>*{flex:1 1 auto; width:100%} }
.tl-item{display:flex; align-items:center; gap:12px; background:var(--card); border:1px solid var(--line); border-radius:11px; padding:11px 14px; margin-bottom:8px; box-shadow:var(--shadow)}
.tl-main{flex:1; font-size:.92rem}
.tl-note{color:var(--muted)}
.tl-meta{font-size:.78rem; color:var(--muted); white-space:nowrap}
.sev-dot{width:11px; height:11px; border-radius:50%; flex:none}
.sev-dot.hi{background:var(--danger)} .sev-dot.mid{background:var(--accent)} .sev-dot.lo{background:var(--ok)}

/* ===== admin ===== */
.chip-list{display:flex; flex-wrap:wrap; gap:7px}
.about-list{list-style:none; padding:0; display:grid; gap:6px; font-size:.9rem; color:var(--ink)}
.about-list li{padding-inline-start:16px; position:relative}
.about-list li::before{content:"›"; position:absolute; inset-inline-start:0; color:var(--primary)}
button.chip{border:none; cursor:pointer; font-family:inherit}
.role-sel{width:auto; min-width:90px}

/* ===== dashboard ===== */
.stat-row{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:2px 2px 14px}
.stat-card{background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); padding:16px; display:flex; flex-direction:column; align-items:flex-start; gap:2px}
.stat-ic{width:38px; height:38px; border-radius:10px; display:grid; place-items:center; font-size:1.1rem; color:var(--primary); background:color-mix(in srgb,var(--primary) 11%,transparent); margin-bottom:6px}
.stat-num{font-size:1.7rem; font-weight:800; color:var(--primary-dark); font-variant-numeric:tabular-nums; line-height:1}
.stat-lbl{font-size:.8rem; color:var(--muted)}
.dash-grid{display:grid; grid-template-columns:1.4fr 1fr; gap:14px}
.dash-grid canvas{max-height:180px}
.qk-res{margin-top:12px; display:flex; flex-direction:column; gap:4px; max-height:300px; overflow:auto}
.qk-item{text-align:start; border:none; background:var(--bg); border-radius:9px; padding:9px 12px; cursor:pointer; font-family:inherit; font-size:.92rem; color:var(--ink)}
.qk-item:hover{background:color-mix(in srgb,var(--primary) 10%,transparent)}
.qk-type{font-size:.68rem; font-weight:800; color:var(--primary); background:color-mix(in srgb,var(--primary) 12%,transparent); padding:1px 7px; border-radius:999px; margin-inline-end:6px}

/* ===== attendance ===== */
/* פילוח "מי מדווח" במסך המעקב */
.by-row{cursor:pointer}
.by-row:hover td{background:color-mix(in srgb,var(--primary) 7%,transparent)}
.by-row.on td{background:color-mix(in srgb,var(--primary) 14%,transparent); font-weight:700}
.by-bar{display:block; height:7px; border-radius:99px; background:var(--bg); overflow:hidden; margin-bottom:2px}
.by-bar>span{display:block; height:100%; background:var(--primary); border-radius:99px}

/* ── דיווחי מעקב ברשימות (בית + כרטיס תלמיד) ── */
/* ההערה מוגבלת לשתי שורות; לחיצה על השורה פותחת את כולה. בלי זה דיווח ארוך
   מתח את דף הבית ודחק את שאר התוכן מחוץ למסך. */
.hr-item{cursor:default}
.hr-item:has(.hr-clamped){cursor:pointer}
.hr-head{font-size:.92rem}
.hr-note{display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; white-space:pre-wrap; line-height:1.45; margin-top:2px}
.hr-note.open{-webkit-line-clamp:unset; overflow:visible}
.hr-note.hr-clamped::after{content:' הצג עוד ▾'; color:var(--primary); font-weight:700; font-size:.78rem}
.hr-note.hr-clamped.open::after{content:' הצג פחות ▴'}
.hr-act{display:flex; gap:4px; align-items:center; flex:none}
.hr-subwrap{margin:0 0 5px; padding-inline-start:12px; margin-inline-start:16px; border-inline-start:2px solid var(--line,#e2e2e2)}
.hr-subitem{background:transparent; opacity:.9; padding:4px 11px; margin-bottom:2px}
.hr-subitem .hr-note{font-size:.82rem; -webkit-line-clamp:unset; overflow:visible}

/* דף בית: תוכן ראשי + חלונית "מעקב דחוף" צדדית (נדבקת בגלילה במסך רחב) */
.home-grid{display:grid; grid-template-columns:1fr 300px; gap:16px; align-items:start}
.home-side{position:sticky; top:12px}
@media (max-width:900px){ .home-grid{grid-template-columns:1fr} .home-side{position:static} }
.fu-widget-item{padding:9px 10px; border-bottom:1px solid var(--line)}
.fu-widget-item:last-child{border-bottom:none}
.fu-widget-item .fu-w-head{display:flex; justify-content:space-between; align-items:center; gap:6px; font-size:.86rem; font-weight:700}
.fu-widget-item .fu-w-meta{font-size:.76rem; color:var(--muted); margin-top:2px}

/* תשובת טופס שהגיעה מהקישור הכללי ועוד לא שויכה לתלמיד */
tr.fr-unlinked td{background:color-mix(in srgb,#f59e0b 13%,transparent)}

.att-cell{display:flex; gap:6px; flex-wrap:wrap; align-items:center}
.att-btn{border:1px solid var(--line); background:var(--card); color:var(--muted); border-radius:8px; padding:5px 12px; cursor:pointer; font-family:inherit; font-size:.82rem; font-weight:700; transition:all .12s}
.att-btn.p.on{background:var(--ok); color:#fff; border-color:var(--ok)}
.att-btn.l.on{background:var(--accent); color:#fff; border-color:var(--accent)}
.att-btn.o.on{background:#0e7490; color:#fff; border-color:#0e7490}
.att-btn.a.on{background:var(--danger); color:#fff; border-color:var(--danger)}
/* פירוט האיחור/היציאה — נקרא לצד הכפתורים בלי להרחיב את השורה */
.att-info{font-size:.76rem; font-weight:700; color:var(--muted); background:var(--bg); border-radius:999px; padding:2px 9px; white-space:nowrap}

/* חלונית "מתי הגיע" / "לכמה זמן יצא" — נפתחת מתחת לכפתור שנלחץ */
.att-pop{position:absolute; z-index:80; min-width:210px; background:var(--card); color:var(--ink);
  border:1px solid var(--line); border-radius:12px; padding:11px; box-shadow:0 12px 32px rgba(0,0,0,.18)}
.att-pop .ap-t{font-weight:800; font-size:.88rem; margin-bottom:7px}
.att-pop .ap-l{font-size:.74rem; font-weight:700; color:var(--muted); margin:8px 0 3px}
.att-pop .ap-chips{display:flex; gap:5px; flex-wrap:wrap; margin-top:7px}
.att-pop .ap-chip{border:1px solid var(--line); background:var(--bg); color:var(--ink); border-radius:999px;
  padding:3px 10px; font-family:inherit; font-size:.78rem; font-weight:700; cursor:pointer}
.att-pop .ap-chip:hover,.att-pop .ap-chip.on{background:var(--primary); color:#fff; border-color:var(--primary)}
.att-pop .ap-act{display:flex; gap:6px; justify-content:flex-end; margin-top:11px}
/* מצב "הזנה בלבד" מסתיר כפתורי פעולה גורפים — החלונית הזאת היא חלק מההזנה */
body.mode-writeonly .att-pop,body.mode-writeonly .att-pop .btn-primary{display:block !important}
body.mode-writeonly .att-pop .ap-act{display:flex !important}

@media (max-width:760px){
  .stat-row{grid-template-columns:1fr 1fr}
  .dash-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .toolbar{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .qr-grid{grid-template-columns:1fr !important}
  .appbar{gap:8px; padding:10px 12px}
  .appbar-actions{gap:7px}
  .status{display:none}
  .brand-txt small{display:none}
  .user-info .ui-name{max-width:88px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
  .head-actions{width:100%}
}

/* לוגו החיידר (תמונה אמיתית מהגרסה הקודמת) */
.logo{ overflow:hidden; background:#fff; padding:2px; }
.logo-img{ width:100%; height:100%; object-fit:contain; display:block; border-radius:9px; }
.login-logo{ background:#fff !important; overflow:hidden; padding:5px; box-shadow:0 4px 14px rgba(0,0,0,.12); }
.login-logo-img{ width:100%; height:100%; object-fit:contain; display:block; }

/* אריח מודגש (משימות ופרויקטים) */
.tile-feature{ box-shadow:0 6px 20px color-mix(in srgb, var(--tc) 28%, transparent); border:1.5px solid var(--tc); position:relative; }
.tile-feature::after{ content:'★'; position:absolute; top:8px; left:10px; color:var(--tc); font-size:.8rem; opacity:.7 }
/* כותרות קבוצה בקיבוץ */
.group-sec .group-title{ border-bottom:1px solid var(--line); padding-bottom:3px }

/* ===== כפתור עזרה צף + עזרה מסך ===== */
.help-fab{position:fixed; inset-inline-end:20px; bottom:20px; z-index:40; width:52px; height:52px;
  border-radius:50%; border:none; cursor:pointer; background:var(--primary); color:#fff; font-size:1.5rem;
  box-shadow:0 6px 20px color-mix(in srgb,var(--primary) 40%,transparent); display:grid; place-items:center;
  transition:transform .15s, background .15s}
.help-fab:hover{transform:scale(1.08); background:var(--primary-dark)}
@media (max-width:520px){ .help-fab{width:46px; height:46px; font-size:1.3rem; inset-inline-end:14px; bottom:14px} }

/* ===== מצב טעינה ניטרלי למסך (מחליף את כרטיס השלד הישן) ===== */
.page-loading{display:grid; place-items:center; gap:10px; padding:60px 20px; color:var(--muted)}
.page-loading .spin{font-size:2rem; color:var(--primary-light); display:inline-block; animation:cv3spin 1s linear infinite}
@keyframes cv3spin{to{transform:rotate(360deg)}}

/* ===== פאנל ימות — דפדפן שלוחות ומצב קו ===== */
.ym-stats{display:flex;flex-wrap:wrap;gap:14px}
.ym-stat{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 16px;flex:1;min-width:170px}
.ym-stat i{font-size:1.4rem;color:var(--primary)}
.ym-stat .ym-k{display:block;font-size:.78rem;color:var(--muted)}
.ym-stat b{font-size:1.02rem;color:var(--ink)}
.ym-crumb{display:flex;align-items:center;flex-wrap:wrap;gap:2px;font-size:.9rem;margin-bottom:10px;color:var(--muted)}
.ym-crumb .ym-bc{color:var(--primary);cursor:pointer;font-weight:700;padding:2px 4px;border-radius:6px}
.ym-crumb .ym-bc:hover{background:color-mix(in srgb,var(--primary) 12%,transparent)}
.ym-sep{opacity:.5}
.ym-dir{display:flex;flex-direction:column;gap:8px}
.ym-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 15px;cursor:pointer;transition:border-color .12s,transform .1s}
.ym-row[data-nav]:hover{border-color:var(--primary-light);transform:translateX(-3px)}
.ym-row.ym-file{cursor:default}
.ym-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);font-size:1.15rem;flex:none}
.ym-row .ym-main{flex:1}
.ym-row .ym-main b{font-weight:700}
.ym-note{color:var(--muted);font-weight:400;font-size:.9rem}
.ym-badge{font-size:.76rem;background:var(--accent-soft);color:var(--accent);padding:3px 10px;border-radius:999px;font-weight:700;white-space:nowrap}
.ym-arrow{color:var(--muted);opacity:.5}

/* ===== פאנל ימות — טאבים, הקלטה, צ'קבוקס ===== */
.ym-tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.ym-tab{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 14px;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--muted);display:inline-flex;align-items:center;gap:6px;transition:all .12s}
.ym-tab:hover{border-color:var(--primary-light)}
.ym-tab.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.ym-pane{margin-top:4px}
.ym-check{display:inline-flex;align-items:center;gap:7px;font-size:.9rem;color:var(--ink);cursor:pointer;background:var(--accent-soft);padding:7px 12px;border-radius:9px}
.ym-check input{width:16px;height:16px;cursor:pointer}

/* ===== כרטיס תלמיד רחב + פאנלי מייל/דרייב ===== */
.modal-card.modal-wide{max-width:1040px}
.stu-links{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:14px 0}
.stu-link-col{border:1px solid var(--line); border-radius:12px; padding:12px; background:rgba(0,0,0,.02)}
.stu-link-col h4{margin:0 0 8px; font-size:.95rem; display:flex; align-items:center; gap:6px}
.stu-link-col .sub{color:var(--muted); font-size:.8rem; margin:0 0 8px; word-break:break-all}
.stu-link-results{margin-top:8px; max-height:230px; overflow:auto; font-size:.85rem}
.stu-link-results a{display:block; padding:7px 8px; border-bottom:1px solid var(--line); color:var(--text,#1c2b33); text-decoration:none}
.stu-link-results a:hover{background:rgba(0,0,0,.05)}
.stu-link-results .r-t{font-weight:600; display:block}
.stu-link-results .r-m{color:var(--muted); font-size:.78rem}
.stu-link-results .ld{color:var(--muted); padding:8px 2px}
@media (max-width:640px){ .stu-links{grid-template-columns:1fr} .modal-card.modal-wide{max-width:520px} }
.stu-link-results .r-item{padding:8px; border:1px solid var(--line); border-radius:9px; margin-bottom:7px; background:var(--card)}
.stu-link-results .r-top{display:flex; align-items:flex-start; justify-content:space-between; gap:6px}
.stu-link-results .r-open{color:var(--primary,#123a52); flex:0 0 auto; text-decoration:none}
.stu-link-results a.r-file{display:block; text-decoration:none; color:var(--text,#1c2b33)}
.stu-link-results .r-snip{color:var(--muted); font-size:.78rem; margin-top:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
/* מייל מתרחב בכרטיס */
.stu-link-results details.r-item{padding:8px}
.stu-link-results details.r-item summary{cursor:pointer; list-style:none; outline:none}
.stu-link-results details.r-item summary::-webkit-details-marker{display:none}
.stu-link-results details.r-item summary::marker{content:''}
.stu-link-results details.r-item[open] summary .r-snip{display:none}
.stu-link-results .r-full{white-space:pre-wrap; word-break:break-word; font-size:.8rem; line-height:1.5; max-height:280px; overflow:auto; margin:8px 0 6px; padding:8px 10px; background:rgba(0,0,0,.04); border-radius:8px; font-family:inherit}
.stu-link-results details .r-open{display:inline-flex; align-items:center; gap:4px; font-size:.82rem}
/* סימן-מים עדין של הלוגו במסך הבית */
.home-hero{position:relative; overflow:hidden}
.home-hero::after{content:""; position:absolute; inset-inline-end:-24px; bottom:-34px; width:210px; height:210px; background:url(../img/logo.png) center/contain no-repeat; opacity:.07; pointer-events:none}

/* ===== תל"א — תכנית לימודים אישית ===== */
.tla-tabs{display:flex; gap:6px; flex-wrap:wrap; margin:12px 0 10px; border-bottom:2px solid var(--line)}
.tla-tab{background:none; border:0; border-bottom:3px solid transparent; padding:8px 14px; cursor:pointer;
  font:inherit; color:var(--muted); border-radius:8px 8px 0 0}
.tla-tab:hover{background:rgba(0,0,0,.04)}
.tla-tab.on{color:var(--primary,#003048); border-bottom-color:var(--accent,#a87830); font-weight:600}
.tla-bar{display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-bottom:10px}
.tla-grid2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.tla-grid2 textarea{width:100%; resize:vertical}
.tla-save{margin-top:12px; text-align:left}
.tla-sub{margin:14px 0 6px; color:var(--primary,#003048); font-size:.95rem}
.tla-goal h3{display:flex; justify-content:space-between; align-items:center; gap:8px}
.tla-roles{border-top:1px dashed var(--line); border-bottom:1px dashed var(--line); margin:6px 0; padding:4px 0}
.tla-legend{display:flex; gap:12px; flex-wrap:wrap; font-size:.78rem; color:var(--muted); margin-inline-start:auto}
.tla-legend i{display:inline-block; width:12px; height:12px; border-radius:3px; margin-inline-end:4px; vertical-align:-2px; border:1px solid rgba(0,0,0,.15)}
.tla-schedwrap{overflow-x:auto}
.tla-sched{min-width:720px; table-layout:fixed}
.tla-sched th.slot{width:78px; font-size:.76rem; color:var(--muted); white-space:nowrap}
.tla-sched td.cell{height:56px; cursor:pointer; text-align:center; font-size:.85rem; vertical-align:middle}
.tla-sched td.cell:hover{outline:2px solid var(--accent,#a87830); outline-offset:-2px}
.tla-sched td.cell .cnote{font-size:.72rem; color:#555}
.slot-row{display:grid; grid-template-columns:1fr 1fr auto; gap:6px; margin-bottom:6px; align-items:center}
@media (max-width:760px){ .tla-grid2{grid-template-columns:1fr} }

/* ===== דשבורד ודוחות — סרגל סינון ומקטעי דוח ===== */
.rp-bar{align-items:end}
.rp-f{display:flex; flex-direction:column; gap:3px}
.rp-f>span{font-size:.74rem; color:var(--muted)}
.rp-quick{display:flex; gap:6px; align-items:center}
.rp-stats{grid-template-columns:repeat(6,1fr)}
.rp-sec{margin-top:14px}
.rp-sec table.tbl{margin-top:6px}
.rp-sec .det-grid{margin-top:6px}
@media (max-width:1100px){ .rp-stats{grid-template-columns:repeat(3,1fr)} }
@media (max-width:640px){ .rp-stats{grid-template-columns:1fr 1fr} .rp-bar{grid-template-columns:1fr 1fr} .rp-quick{grid-column:1/-1} }

/* ===== הדפסת כרטיס התלמיד בלבד (לא כל הדף שמאחוריו) ===== */
@media print{
  body.printing-card>*:not(.modal-ov){display:none !important}
  body.printing-card .modal-ov{position:static !important; inset:auto !important; background:none !important;
    padding:0 !important; display:block !important; overflow:visible !important}
  body.printing-card .modal-card{max-width:none !important; width:100% !important; max-height:none !important;
    box-shadow:none !important; border:0 !important; border-radius:0 !important}
  body.printing-card .modal-body{max-height:none !important; overflow:visible !important; padding:0 !important}
  body.printing-card .modal-x,
  body.printing-card .modal-foot,
  body.printing-card .det-actions,
  body.printing-card .stu-links .btn-ghost{display:none !important}
  body.printing-card .det-sec{break-inside:avoid; page-break-inside:avoid}
}

/* ===== יצוא והדפסה — גיליון A4 שניתן לעריכה ===== */
.ex-sheet{background:#fff; width:210mm; min-height:297mm; margin:0 auto; padding:14mm 12mm;
  box-shadow:0 6px 26px rgba(0,0,0,.16); border-radius:4px; color:#111; line-height:1.5; outline:none}
.ex-sheet.land{width:297mm; min-height:210mm}
/* A3 — לרשימות רחבות שלא נכנסות ל-A4 גם אחרי הקטנה */
.ex-sheet.a3{width:297mm; min-height:420mm}
.ex-sheet.a3.land{width:420mm; min-height:297mm}
.ex-head{display:flex; align-items:center; gap:14px; border-bottom:2px solid var(--primary,#003048); padding-bottom:10px; margin-bottom:14px}
.ex-logo{height:62px; width:auto}
.ex-titles{flex:1}
.ex-inst{font-size:.9em; color:#555; font-weight:600}
.ex-sheet h1{font-size:1.7em; font-weight:800; color:var(--primary,#003048); margin:2px 0}
.ex-sheet h1.ex-plain{text-align:center; margin-bottom:14px}
.ex-date{font-size:.82em; color:#666}
.ex-table{width:100%; max-width:100%; border-collapse:collapse; table-layout:fixed}
/* table-layout:fixed + שבירת מילים — אחרת בחירה של הרבה עמודות גולשת מחוץ לדף והעמודה השמאלית נחתכת בהדפסה */
.ex-table th,.ex-table td{overflow-wrap:anywhere; word-break:break-word}
/* הריפוד נגזר מגודל הטקסט (--ex-pad), אחרת דחיסה לעמוד אחד לא עובדת:
   הפונט קטן ל-4px אבל השורה נשארת בגובה 19px בגלל ריפוד קבוע. */
.ex-sheet{--ex-pad:6px}
.ex-table th{background:var(--primary,#003048); color:#fff; font-weight:700;
  padding:calc(var(--ex-pad) + 1px) calc(var(--ex-pad) + 2px); text-align:start; font-size:.95em}
.ex-table td{padding:var(--ex-pad) calc(var(--ex-pad) + 2px); text-align:start}
.ex-table.grid th,.ex-table.grid td{border:1px solid #b9c4cd}
.ex-table.zebra tbody tr:nth-child(even){background:#f2f5f8}
.ex-sign{display:flex; justify-content:space-between; margin-top:28px; font-size:.95em; color:#333}
/* פיצול לפי שיעור = כמה גיליונות בדף אחד; רווח ביניהם על המסך */
.ex-sheet + .ex-sheet{margin-top:22px}

@media print{
  /* ⚠️ #pages אינו ילד ישיר של body (body > main#main > #pages), ולכן הכלל הישן
     `body.printing-sheet>*:not(#pages)` הסתיר את main עצמו — והדפסה יצאה דף ריק.
     במקום להסתמך על המבנה, מסתירים במפורש את מה שלא שייך לנייר. */
  body.printing-sheet header,
  body.printing-sheet footer,
  body.printing-sheet #helpFab,
  body.printing-sheet .help-fab,
  body.printing-sheet .ai-fab,
  body.printing-sheet .toast-host,
  body.printing-sheet .modal-ov{display:none !important}
  body.printing-sheet #pages>*:not(.page.active){display:none !important}
  body.printing-sheet .page.active>*:not(#exSheetWrap){display:none !important}
  body.printing-sheet #main{padding:0 !important; margin:0 !important; max-width:none !important}
  body.printing-sheet #exSheetWrap{background:none !important; padding:0 !important; overflow:visible !important; border-radius:0 !important}
  body.printing-sheet .ex-sheet{width:auto !important; min-height:0 !important; box-shadow:none !important;
    margin:0 !important; padding:0 !important; border-radius:0 !important}
  /* כל גיליון (=שיעור) מתחיל בעמוד חדש; האחרון בלי דף ריק אחריו */
  body.printing-sheet .ex-sheet{break-after:page; page-break-after:always}
  body.printing-sheet .ex-sheet:last-child{break-after:auto; page-break-after:auto}
  body.printing-sheet .ex-table{break-inside:auto}
  body.printing-sheet .ex-table thead{display:table-header-group}   /* כותרת הטבלה חוזרת בכל עמוד */
  body.printing-sheet .ex-table tr{break-inside:avoid; page-break-inside:avoid}
  body.printing-sheet .ex-table th,
  body.printing-sheet .ex-table th.wk,
  body.printing-sheet .ex-table td.wk,
  body.printing-sheet .ex-table.zebra tbody tr:nth-child(even){-webkit-print-color-adjust:exact; print-color-adjust:exact}
}


.ex-table th.wk{background:#4a5a66}
.ex-table td.wk{background:#eef1f4}

.ex-cell-sel{outline:2px solid #f0b429; outline-offset:-2px}
@media print{.ex-cell-sel{outline:none !important}}

/* ===== רשימות ממוינות: שורת קיבוץ ועמודת מספור ===== */
.tbl td.idx{color:var(--muted,#6b7280); font-variant-numeric:tabular-nums; text-align:center; width:44px}
.tbl tr.grp td{background:var(--accent-soft,#eef2f7); font-weight:700; color:var(--primary,#003048);
  padding:7px 10px; border-top:2px solid var(--primary,#003048)}
.tbl tr.grp td .det-badge{margin-inline-start:6px}

/* ===== כרטיס תלמיד: גלילה פנימית בסקשנים ארוכים + "הצג הכל" ===== */
/* det-item הוא כ-34px; חמש שורות ≈ 172px. מעבר לזה גוללים בתוך הסקשן, כדי
   שתלמיד עם 100 דיווחים לא ימתח את הכרטיס לאורך אינסופי. */
.det-scroll{max-height:172px; overflow-y:auto; overscroll-behavior:contain;
  border:1px solid var(--line,#e5e7eb); border-radius:8px; padding:2px 6px; background:var(--bg-soft,#fbfcfd)}
.det-scroll::-webkit-scrollbar{width:8px}
.det-scroll::-webkit-scrollbar-thumb{background:#c7d0d9; border-radius:8px}
.det-hint{font-size:.7rem; font-weight:400; color:var(--muted,#6b7280); margin-inline-start:8px}
.det-more-btn{display:flex; align-items:center; justify-content:center; gap:6px; width:100%;
  margin:14px 0 4px; padding:10px; border-style:dashed}
@media print{
  /* בהדפסה אין גלילה — מדפיסים הכל, וגם את מה שמוסתר מאחורי "הצג הכל" */
  .det-scroll{max-height:none !important; overflow:visible !important; border:0 !important; background:none !important}
  #stuMore[hidden]{display:block !important}
  .det-more-btn{display:none !important}
}

/* דו-צדדי: כל גיליון (=שיעור) מתחיל בדף נייר חדש, כדי ששיעור לא יתחיל
   בגב של שיעור אחר. נשלט מהמסך דרך body.ex-duplex. */
@media print{
  body.printing-sheet.ex-duplex .ex-sheet{break-before:page; page-break-before:always}
  body.printing-sheet.ex-duplex .ex-sheet:first-child{break-before:auto; page-break-before:auto}
}

/* ===== גוף טופס מעוצב (כותרות/פסקאות/רשימות) ===== */
.fb{line-height:1.75}
.fb-h{margin:16px 0 6px;font-size:1.02rem;font-weight:700;color:var(--primary,#003048);
  border-bottom:2px solid #b7791f;padding-bottom:4px;display:inline-block}
.fb-p{margin:6px 0}
.fb-ul{margin:6px 0;padding-inline-start:20px}
.fb-ul li{margin:3px 0}

/* טפסים — תקציר בכרטיס ואזהרת עריכה */
.form-blurb{margin:.2rem 0 .6rem; display:-webkit-box; -webkit-line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden}
.form-warn{background:#fff7ed; border:1px solid #fed7aa; border-radius:10px;
  padding:10px 12px; font-size:.86rem; line-height:1.5; color:#7c2d12}
.form-warn b{display:block; margin-bottom:2px}

/* ===== פאנל הדפסת מדבקות (labels.js) ===== */
.lb-card{max-width:min(1500px,97vw); width:97vw}
.lb-head-actions{display:flex; gap:6px; flex-wrap:wrap; margin-inline-start:auto; margin-inline-end:14px}
/* בלי flex-shrink:0 הכפתורים נדחסים והאייקון נחתך */
.lb-head-actions>button{flex:0 0 auto; white-space:nowrap}
.lb-card .modal-head{gap:10px; flex-wrap:wrap}
.lb-card .modal-head h3{flex:0 0 auto}
.lb-body{display:grid; grid-template-columns:minmax(360px,430px) 1fr; gap:16px; align-items:start}
@media (max-width:1100px){ .lb-body{grid-template-columns:1fr} }

.lb-ctl{display:flex; flex-direction:column; gap:12px; max-height:76vh; overflow:auto; padding-inline-end:4px}
.lb-sec{border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:var(--bg)}
.lb-sec h4{font-size:.9rem; font-weight:800; color:var(--primary-dark); margin-bottom:8px;
  display:flex; align-items:center; gap:6px}
.lb-sec h4 .bi{color:var(--accent)}
.lb-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px 10px; align-items:end}
.lb-grid .wide{grid-column:1/-1}
.lb-grid .fld>span{font-size:.74rem; color:var(--muted)}
.lb-grid .fld>span small{font-weight:400}
.lb-when .fld{margin-top:6px}

/* שלושת מקורות התוכן — כפתורים גלויים, לא select מגולגל */
.lb-tabs{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:4px}
.lb-tabs button{font-family:inherit; font-size:.82rem; font-weight:700; cursor:pointer;
  border:1px solid var(--line); background:var(--card); color:var(--muted);
  border-radius:10px; padding:9px 6px; display:flex; flex-direction:column;
  align-items:center; gap:4px; line-height:1.25; transition:background .15s, color .15s}
.lb-tabs button .bi{font-size:1.05rem}
.lb-tabs button:hover{background:var(--bg)}
.lb-tabs button.on{background:var(--primary-dark); border-color:var(--primary-dark); color:#fff}
.lb-tabs button.on .bi{color:var(--accent)}

.lb-drop{border:2px dashed var(--line); border-radius:12px; padding:16px; text-align:center;
  background:var(--card); display:flex; flex-direction:column; align-items:center; gap:6px}
.lb-drop.over{border-color:var(--accent); background:var(--accent-soft)}
.lb-drop .bi{font-size:1.6rem; color:var(--accent)}

.lb-side{min-width:0}
.lb-statbar{display:flex; gap:8px; align-items:center}
.lb-stat{flex:1; background:var(--primary-dark); color:#fff; border-radius:10px; padding:8px 12px; font-size:.86rem}
.lb-zoom{width:auto; min-width:130px; flex:0 0 auto}
.lb-warn{margin-top:8px; background:#fff7ed; border:1px solid #fed7aa; border-radius:10px;
  padding:8px 12px; font-size:.82rem; line-height:1.5; color:#7c2d12; display:none}
.lb-warn div+div{margin-top:4px}

/* התצוגה המקדימה — גיליון אמיתי במידות מ"מ. --lb-z הוא קנה מידה לתצוגה
   בלבד; ההדפסה תמיד ב-1:1, ולכן הוא לא נכנס לחישוב שום מידה. */
.lb-prev{margin-top:10px; background:#e9edf2; border-radius:12px; padding:14px;
  max-height:64vh; overflow:auto}
#lbWrap{min-height:1px}
body.dark .lb-prev{background:#0a1219}
#lbWrap{transform-origin:top center; transform:scale(var(--lb-z,1))}
.lb-page{position:relative; background:#fff; color:#111; margin:0 auto 16px;
  box-shadow:0 4px 18px rgba(0,0,0,.18); overflow:hidden}
.lb-cell{position:absolute; overflow:hidden; display:flex}
.lb-page.bord .lb-cell{outline:1px dashed #b9c4cd; outline-offset:-1px}
.lb-page.bold .lb-cell{font-weight:800}
/* סימני חיתוך: קווים קצרים בפינות במקום מסגרת מלאה, כדי שגזירה ידנית
   לא תשאיר קו שחור על המדבקה. */
.lb-page.cut .lb-cell::before, .lb-page.cut .lb-cell::after{
  content:''; position:absolute; inset-inline-start:0; width:100%; height:0;
  border-top:1px solid #cbd5dd}
.lb-page.cut .lb-cell::before{top:0} .lb-page.cut .lb-cell::after{bottom:0}
.lb-in{flex:1; min-width:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:.12em; line-height:1.18; overflow:hidden}
.lb-page.al-start .lb-in{align-items:flex-start; text-align:start}
.lb-page.al-end .lb-in{align-items:flex-end; text-align:end}
.lb-page.al-center .lb-in{align-items:center; text-align:center}
.lb-l{white-space:nowrap; max-width:100%}
/* שבירת שורה: שם ארוך יישבר לשתי שורות בגופן קריא במקום להתכווץ לכתב זעיר */
.lb-page.wrapl .lb-l{white-space:normal; overflow-wrap:anywhere}
.lb-l1{font-size:1.18em}
.lb-l:not(.lb-l1){font-size:.78em; font-weight:600; color:#333}
.lb-logo{height:1.5em; width:auto; margin-bottom:.1em}

.lb-guide ul{margin:10px 4px 0 18px; display:flex; flex-direction:column; gap:6px; font-size:.88rem}
.lb-guide code{background:var(--bg); border:1px solid var(--line); border-radius:5px; padding:0 4px}
.lb-demo{font-size:.82rem; margin-top:8px}
.lb-demo td:first-child, .lb-demo th:first-child{background:var(--bg); color:var(--muted); width:32px; text-align:center}

/* ===== הדפסת גיליון המדבקות בלבד ===== */
/* לא מסתמכים על כלל ה-visibility הכללי של המודאלים: שם הכרטיס נשאר בזרימה
   והמדבקות היו זזות. כאן הגיליון עצמו הוא כל מה שנשאר בדף. */
@media print{
  body.printing-labels>*:not(.lb-ov){display:none !important}
  body.printing-labels .lb-ov{position:static !important; inset:auto !important;
    background:none !important; padding:0 !important; display:block !important; overflow:visible !important}
  body.printing-labels .lb-card{max-width:none !important; width:auto !important; max-height:none !important;
    box-shadow:none !important; border:0 !important; border-radius:0 !important; background:none !important}
  body.printing-labels .modal-head,
  body.printing-labels .lb-ctl,
  body.printing-labels .lb-statbar,
  body.printing-labels .lb-stat,
  body.printing-labels .lb-warn,
  body.printing-labels .login-hint{display:none !important}
  body.printing-labels .lb-body{display:block !important; padding:0 !important}
  body.printing-labels .modal-body{max-height:none !important; overflow:visible !important; padding:0 !important}
  body.printing-labels .lb-prev{background:none !important; padding:0 !important; margin:0 !important;
    height:auto !important; max-height:none !important; overflow:visible !important; border-radius:0 !important}
  /* ⚠️ ביטול קנה המידה של התצוגה — בלעדיו הדף מודפס מוקטן */
  body.printing-labels #lbWrap{transform:none !important}
  body.printing-labels .lb-page{margin:0 !important; box-shadow:none !important;
    break-after:page; page-break-after:always}
  body.printing-labels .lb-page:last-child{break-after:auto; page-break-after:auto}
  body.printing-labels .lb-page.bord .lb-cell{-webkit-print-color-adjust:exact; print-color-adjust:exact}
}

/* כפתורים צפים לא מודפסים — בשום מצב הדפסה. נשלט ב-class ולא ב-id:
   כפתור צף שני (#aiFab) לא היה ברשימת ה-id-ים והודפס על גבי הגיליון. */
@media print{
  body.printing-sheet .help-fab, body.printing-sheet .ai-fab,
  body.printing-labels .help-fab, body.printing-labels .ai-fab,
  body.printing-card .help-fab, body.printing-card .ai-fab,
  body.printing-sheet .toast-host, body.printing-labels .toast-host{display:none !important}
}

/* ===== סיכום שבועי (weekly.js) ===== */
.wk-sum h3{margin:0 0 12px}
.wk-stats{grid-template-columns:repeat(3,1fr); margin:0 0 12px}
.wk-stats .stat{background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:2px}
.wk-stats .stat b{font-size:1.5rem; font-weight:800; color:var(--primary-dark); font-variant-numeric:tabular-nums; line-height:1.1}
.wk-stats .stat span{font-size:.8rem; color:var(--muted)}
.wk-missing,.wk-allin{border-radius:10px; padding:9px 12px; font-size:.9rem; display:flex; align-items:flex-start; gap:8px; line-height:1.5}
.wk-missing{background:color-mix(in srgb,#d68910 13%,transparent); color:#8a5a00}
.wk-allin{background:color-mix(in srgb,#1f8a5b 13%,transparent); color:#14663f}
.wk-nav{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:2px 2px 14px}
.wk-label{font-weight:700; color:var(--primary-dark); padding:0 6px}
/* כרטיס דיווח ברוחב מלא: ב-2 עמודות טבלת התחומים (min-width 560) נחתכה */
.wk-grid{display:grid; grid-template-columns:1fr; gap:14px; margin:0 2px 16px}
.wk-card .tbl{min-width:0}
.wk-chips{margin-top:10px; font-size:.86rem; color:var(--muted); display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.wk-chips-t{font-weight:600}
.wk-chip{background:var(--bg); border:1px solid var(--line); border-radius:20px; padding:2px 10px; color:var(--ink)}
.wk-card{background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); padding:14px 16px}
.wk-card h4{margin:0 0 10px; font-size:1rem; color:var(--primary-dark); display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap}
.wk-by{font-size:.8rem; font-weight:600; color:var(--muted); display:inline-flex; align-items:center; gap:4px}
.wk-card.wk-empty{border-style:dashed; box-shadow:none; background:transparent}
.wk-none{color:var(--muted); font-size:.88rem; display:flex; align-items:center; gap:6px}
.wk-extra{margin-top:9px; font-size:.88rem; line-height:1.6; color:var(--ink)}
.wk-extra b{color:var(--primary-dark)}
.wk-tbl th{font-size:.8rem}
.wk-tbl td{vertical-align:top; font-size:.9rem}
.wk-sub{font-weight:700; color:var(--primary-dark); white-space:nowrap}
.wk-tag{display:inline-block; padding:2px 9px; border-radius:20px; font-size:.76rem; font-weight:700; white-space:nowrap}
.wk-tag.ok{background:color-mix(in srgb,#1f8a5b 16%,transparent); color:#14663f}
.wk-tag.mid{background:color-mix(in srgb,#d68910 18%,transparent); color:#8a5a00}
.wk-tag.bad{background:color-mix(in srgb,#c0392b 15%,transparent); color:#96271b}
.wk-form h3{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap}
.wk-saved{font-size:.78rem; font-weight:600; color:#14663f; display:inline-flex; align-items:center; gap:5px}
.wk-form .wk-tbl textarea.inp{min-height:38px; resize:vertical}
.wk-form .wk-add{margin-top:8px}
.wk-form .wk-save{margin-top:12px}
@media (max-width:760px){ .wk-stats{grid-template-columns:1fr} .wk-grid{grid-template-columns:1fr} }
@media print{ .toolbar,.head-actions,.back,.wk-form,.wk-add,.wk-save{display:none !important} .wk-grid{grid-template-columns:1fr} .wk-card{break-inside:avoid; box-shadow:none} }
.wk-own{margin:4px 2px 16px; border:1px solid var(--line); border-radius:12px; background:var(--card)}
.wk-own>summary{cursor:pointer; padding:12px 16px; font-weight:700; color:var(--primary-dark); display:flex; align-items:center; gap:8px; list-style:none}
.wk-own>summary::-webkit-details-marker{display:none}
.wk-own[open]>summary{border-bottom:1px solid var(--line)}
.wk-own .qr-card{margin:12px}

/* ===== פאנל "ניהול צוות" (team.js) ===== */
.team-panel>.card-h-row{margin-bottom:10px}
.tp-sec{border:1px solid var(--line); border-radius:12px; background:var(--bg); margin-top:12px}
.tp-sec>summary{cursor:pointer; padding:11px 14px; font-weight:700; color:var(--primary-dark);
  display:flex; align-items:center; gap:8px; list-style:none}
.tp-sec>summary::-webkit-details-marker{display:none}
.tp-sec>summary::after{content:'\F282'; font-family:'bootstrap-icons'; margin-inline-start:auto; font-weight:400; color:var(--muted); transition:transform .2s}
.tp-sec[open]>summary::after{transform:rotate(180deg)}
.tp-sec[open]>summary{border-bottom:1px solid var(--line)}
.tp-sec .qr-card{margin:12px; box-shadow:none}
.tp-sec>.table-wrap,.tp-sec>p{margin:12px}
.tm-bar{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:0 2px 10px}
.tm-tabs{display:flex; gap:6px; flex-wrap:wrap}
.tm-tab{border:1px solid var(--line); background:var(--bg); color:var(--ink); border-radius:20px;
  padding:5px 14px; font-size:.86rem; font-family:inherit; cursor:pointer; font-weight:600}
.tm-tab:hover{border-color:var(--primary)}
.tm-tab.on{background:var(--primary); border-color:var(--primary); color:#fff}
.tm-total{font-size:.9rem; color:var(--muted)}
.tm-total b{color:var(--primary-dark); font-variant-numeric:tabular-nums}
.tm-tbl{min-width:900px}
.tm-tbl td{vertical-align:middle; font-size:.9rem}
/* שמות ארוכים ("הרב יהונתן היינמן") נשברו לשתי שורות ודחסו את השורה כולה */
.tm-tbl th:first-child,.tm-tbl td:first-child{min-width:158px}
.tm-tbl th:nth-child(2),.tm-tbl td:nth-child(2){white-space:nowrap}
.tm-tbl .tl-note{font-size:.78rem}
.tm-off{opacity:.55}
.tm-gap{color:#b45309; font-size:.84rem; font-style:italic}
.tm-gap-dot{color:#d68910; font-size:.7rem; vertical-align:middle}
.chip.warn{background:color-mix(in srgb,#d68910 15%,transparent); color:#8a5a00; border-color:#d68910}
.tm-pick{display:flex; flex-direction:column; gap:6px}
@media (max-width:760px){ .tm-bar{flex-direction:column; align-items:flex-start} }
