:root{color-scheme:dark;--bg:#0E0E10;--card:#18181B;--gold:#c9a468;--ink:#f5f2eb;--line:var(--mf-border-strong,#514a40)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,sans-serif;height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 12px env(safe-area-inset-bottom);gap:8px}button,a,select,input{font:inherit}button,a,select{border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);min-height:44px;padding:9px;text-decoration:none;cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}header{display:flex;align-items:center;gap:8px;padding-top:8px}h1{font-size:1.15rem;flex:1;text-align:center;margin:0}header a{color:var(--gold);font-size:.85rem}main{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}.toolbar{display:flex;gap:6px;flex-wrap:wrap}.toolbar select{flex:1;min-width:0}.toolbar #mine{flex-basis:100%;color:var(--gold)}#mine[aria-pressed=true]{background:var(--gold);color:var(--mf-on-accent,#0E0E10)}#notice{margin:0;font-size:.85rem;color:var(--gold)}#notice:empty{display:none}.days{display:flex;gap:5px;align-items:stretch}#headings{display:grid;grid-template-columns:repeat(var(--days,3),minmax(0,1fr));flex:1;text-align:center;gap:5px}#headings>div{padding:5px 0;color:var(--gold)}#headings strong,#headings span{display:block;font-size:.85rem}#board{display:grid;flex:1;min-height:0;gap:8px;grid-template-rows:repeat(var(--rows,1),minmax(0,96px));align-content:start}.shift-row{display:flex;flex-direction:column;min-height:0;gap:3px}.shift-row h2{font-size:.8rem;margin:0;color:var(--gold)}.cells{display:grid;grid-template-columns:repeat(var(--days,3),minmax(0,1fr));gap:6px;flex:1;min-height:0}.cell{display:flex;flex-direction:column;gap:5px;justify-content:center;align-items:center;min-width:0;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--card);text-align:center;line-height:1.3}.cell strong{font-size:.9rem;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cell span{font-size:.75rem;direction:ltr}.cell.assigned{border:1px solid var(--employee);background:var(--employee);color:var(--employee-ink,var(--mf-on-accent,#0E0E10));box-shadow:none;background-image:none}.cell.unassigned{border-style:dashed;color:var(--gold)}.cell.filtered{visibility:hidden}.empty{display:grid;place-items:center;color:#bbb;font-size:.8rem}#pages{display:flex;justify-content:space-between;align-items:center;font-size:.8rem}#summary{margin:0;font-size:.75rem}nav{display:flex;gap:5px;border:0;padding:8px 0;flex-shrink:0}nav>:is(button,a),nav .bar-more-panel>:is(button,a){flex:1;min-width:0;font-size:.7rem;text-align:center;padding:8px 3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}nav svg{width:21px;height:21px;stroke:var(--gold);stroke-width:1.7;fill:none}dialog{width:min(94vw,560px);max-height:85dvh;border:1px solid var(--line);border-radius:20px;background:var(--bg);color:var(--ink);padding:18px}dialog::backdrop{background:#000a}.dialog-head{display:flex;align-items:center;gap:10px;justify-content:space-between}.dialog-head h2{font-size:1.1rem}#detailError{color:#f0b597}#detailBody{display:grid;gap:10px}#detailBody button{width:100%;text-align:start}#detailBody small{display:block;margin-top:6px}.blocked{background:#f45b6914;color:#ff9aa4;border:1px solid #f45b6980;padding:12px;border-radius:12px}.color-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px;border-bottom:1px solid var(--line)}input[type=color]{width:64px;height:44px;padding:3px;border:1px solid var(--line);border-radius:8px}input[type=search]{width:100%;padding:12px;border-radius:12px;border:1px solid var(--line);margin-bottom:8px}#detailBody button.primary{background:var(--gold);color:var(--mf-on-accent,#0E0E10)}@media(min-width:700px){body{max-width:1100px;margin:auto;padding-inline:24px}.toolbar #mine{flex-basis:auto}.cell strong{font-size:1rem}}@media(max-height:540px){body{overflow:auto;height:auto;min-height:100dvh}#board{min-height:110px}nav{position:sticky;bottom:0;background:var(--bg)}}

[hidden]{display:none!important}

#detailBody .candidate-list{display:grid;gap:10px}#detailBody .blocked small{color:#ffb5bd;line-height:1.5}#detailBody .candidate-name{font-weight:700}#detailBody .candidate-status{display:block;font-size:.85rem;margin-top:5px}
/* Native Safari selects must shrink with the toolbar on narrow phones. */
.toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar select{width:100%;max-width:100%}.toolbar #mine{min-width:0;white-space:normal}
.toolbar select{appearance:none;-webkit-appearance:none;padding-inline-end:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23c9a468' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:left 9px center;text-overflow:ellipsis}html[dir=ltr] .toolbar select{background-position:right 9px center}
.toolbar{overflow-x:clip;overflow-clip-margin:3px}

/* עובד/ת ללא טלפון/מייל: המשבצת כולה בסגול קבוע (ולא בצבע האישי) — כדי שהמנהל/ת יראה/תראה במבט אחד מי מחתים/ה בחדר הבקרה */
.cell.control-room-clock{--employee:#bda4ff;--employee-ink:var(--mf-ground-page,#0E0E10);background:#bda4ff!important;color:var(--mf-on-accent,#0E0E10)!important;border:2px solid #7c5cff;background-image:repeating-linear-gradient(135deg,transparent 0 9px,rgba(124,92,255,.32) 9px 14px)}.cell .control-room-badge{background:#bda4ff;color:var(--mf-on-accent,#0E0E10);border:1px solid #bda4ff;border-radius:6px;padding:3px 5px;font-size:.68rem;line-height:1.3;direction:inherit;white-space:normal}.cell.control-room-clock strong{flex-shrink:0}

#detailBody label{display:grid;gap:8px;min-width:0}#detailBody input,#detailBody select{max-width:100%;min-width:0;width:100%;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px;min-height:44px}.manage-context{margin:0;color:var(--gold);line-height:1.5}.hours-form,.availability-list{display:grid;gap:12px}.availability-card{padding:14px;border:1px solid var(--line);border-radius:12px}.availability-card h3{margin:0;font-size:1rem}.availability-card p{margin:8px 0;line-height:1.5;overflow-wrap:anywhere}#detailBody button.secondary{color:var(--gold)}#detailBody input[type=color]{width:64px}.cell.assigned:hover,.cell.assigned:active{background:var(--employee);box-shadow:none}.cell.assigned:focus-visible{outline:3px solid #fff;outline-offset:2px}

.employee-training-link{display:inline-block;min-height:44px;padding:10px 12px;box-sizing:border-box;border:1px solid var(--gold,#c9a468);border-radius:12px;color:var(--gold,#c9a468);font-weight:700;text-decoration:none;overflow-wrap:anywhere}

/* חצי הימים מוסתרים כשכל השבוע על המסך */
#prevDay[hidden],#nextDay[hidden]{display:none}

/* מתג השפה — בדוק התחתון בלבד */
header #language{display:none}

/* החלפות על הלוח */
.cell.swap-open{outline:2px dashed var(--gold,#c9a468);outline-offset:-2px}
.cell.mine{cursor:pointer}
.swap-badge{display:inline-block;font-size:.72rem;color:#fff;background:rgba(0,0,0,.55);border-radius:6px;padding:1px 7px;margin-top:3px;max-width:100%;white-space:normal;line-height:1.3}
button.cell{font:inherit;text-align:inherit}

.board-legend{display:flex;align-items:center;gap:8px;margin:8px 0 0;font-size:.8rem;color:var(--muted,var(--mf-text-muted,#a39a8c))}.board-legend[hidden]{display:none}.legend-swatch{display:inline-block;width:22px;height:16px;border-radius:5px;flex:none}

/* חגים מעל היום, ומסננים */
#headings>div .holidays{display:flex;justify-content:center;gap:4px;margin-top:3px;min-height:18px}
.holiday-icon{display:inline-flex;width:18px;height:18px;filter:drop-shadow(0 0 1px rgba(0,0,0,.6))}.holiday-icon svg{width:18px;height:18px}
#headings>div.filtered-day{opacity:.45}
.filter-title{font-size:.9rem;margin:12px 0 6px;color:var(--gold,#c9a468)}
.filter-chips{display:flex;flex-wrap:wrap;gap:6px}
.toolbar #filters{min-width:0;white-space:normal;margin:0}
#detailBody .filter-chips .chip{width:auto;text-align:center;font:inherit;font-size:.85rem;padding:8px 12px;border-radius:999px;border:1px solid var(--line,var(--mf-border-subtle,#49413a));background:transparent;color:var(--text,#f6f3eb);cursor:pointer;min-height:44px}
#detailBody .filter-chips .chip.on,.filter-chips .chip.on{background:var(--gold,#c9a468);color:var(--mf-on-accent,#0E0E10);border-color:var(--gold,#c9a468);font-weight:700}
#detailBody .filter-actions{display:flex;gap:8px;margin-top:14px}#detailBody .filter-actions button{width:auto;flex:1;text-align:center}
#filters[aria-pressed=true]{border-color:var(--gold,#c9a468);color:var(--gold,#c9a468)}

.availability-first{border-color:var(--gold,#c9a468);background:rgba(201,164,104,.08)}

/* הכול בדף אחד: כל השיבוצים של הימים המוצגים בגלילה למטה (כמו לוח משמרות רגיל); קדימה/אחורה = ימים אחרים */
body{height:auto;min-height:100dvh;overflow:auto}main{flex:none;min-height:0}
.days{position:sticky;top:0;z-index:3;background:var(--bg);padding:4px 0}
#board{display:flex;flex-direction:column;gap:18px;flex:none;min-height:0}
.slot-group{display:flex;flex-direction:column;gap:10px}
.slot-group>h2{margin:0;font-size:.95rem;font-weight:700;display:flex;align-items:center;gap:10px}
.slot-group>h2>span,.slot-group>h2{color:var(--gold)}
.slot-group>h2::after{content:'';flex:1;height:3px;background:var(--gold);border-radius:2px;opacity:.9}
.shift-row h3{margin:0;font-size:.82rem;color:var(--gold);font-weight:600}
.cells{flex:none;min-height:0}.cells>*{min-height:92px}
nav{position:sticky;bottom:0;background:var(--bg);z-index:3}
#pages{display:none}

/* המשמרת שלי — ירוק, כמו בלוחות משמרות מוכרים */
.cell.mine{--employee:#4caf50;--employee-ink:#0b1a0c;background:#4caf50!important;color:#0b1a0c!important;border:2px solid #2e7d32!important}
#weekInfo{margin:0;font-size:.85rem;color:var(--gold)}#weekInfo:empty{display:none}
.toolbar #jump,.toolbar #options{min-width:0;white-space:normal;margin:0}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px}#detailBody .cal-nav{width:44px;text-align:center}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-dow,.cal-pad{text-align:center;font-size:.75rem;color:var(--gold)}#detailBody .cal-day{width:auto;min-height:52px;padding:4px 2px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;text-align:center;font-size:.85rem}.cal-day.current{border-color:var(--gold);background:#c9a46822}.cal-day.thisweek span:first-child{text-decoration:underline}.cal-hol{display:flex;gap:1px}.cal-hol .holiday-icon,.cal-hol .holiday-icon svg{width:12px;height:12px}.dot{width:6px;height:6px;border-radius:50%;background:var(--mf-fill-muted,#888)}.dot.pub{background:var(--gold)}
.shift-tools{display:grid;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px}
@media print{body{background:#fff;color:#000;height:auto;display:block;padding:0}header a,header #language,nav,.toolbar,#prevDay,#nextDay,#notice,.board-legend{display:none!important}#headings{grid-template-columns:repeat(7,minmax(0,1fr))}.cells{grid-template-columns:repeat(7,minmax(0,1fr))}.cell{border:1px solid #000!important;color:#000!important;background:#fff!important;box-shadow:none!important;background-image:none!important}.cell.assigned{background:#eee!important}#headings>div,.shift-row h3,.slot-group>h2,#summary,#weekInfo{color:#000}.filtered{visibility:visible!important}}
.manage-built{margin:0;padding:10px 12px;border-radius:12px;background:rgba(159,216,166,.12);color:#9fd8a6;line-height:1.5}.law-check{margin:0;font-size:.9rem;line-height:1.5;color:var(--gold)}.law-check.ok{color:#9fd8a6}.law-check.bad{color:#ff9aa4}
#board button.add-here{border:1px dashed var(--line);border-radius:12px;background:transparent;color:var(--gold);font-size:.85rem;min-height:92px;cursor:pointer}#board button.add-here:hover{border-color:var(--gold)}
/* המפקדה: שם + תפקיד בראש; בורר תאריכים דרך 'מעבור בזמן' */
header #home{display:none}#detailBody .cal-day.out{opacity:.35;cursor:default}#detailBody .cal-day:disabled{opacity:.35}

/* חיצי השבוע יצאו מהסרגל התחתון — המעבר בין ימים ושבועות נעשה בחיצים שליד הכותרת ובלוח "מעבר בזמן" */
nav #previous,nav #next{display:none}
/* אוויר בין הכפתורים הראשונים לקצה המסך (הכותרת מוסתרת, אז זה השורה הראשונה) */
main{padding-top:14px}

/* הערת משמרת, מומלצים, סוגי משמרות */
.shift-note-tag{display:block;font-size:.72rem;opacity:.85;margin-top:2px;white-space:normal}.shift-note{display:grid;gap:6px;margin:6px 0}.shift-note textarea{width:100%;box-sizing:border-box;border-radius:10px;border:1px solid var(--line,var(--mf-border-subtle,#49413a));background:rgba(255,255,255,.04);color:inherit;padding:8px}.suggest-box{margin:8px 0 12px}.suggest-box h3{margin:0 0 6px;font-size:.95rem;color:var(--gold,#c9a468)}.suggest-box button.suggest{display:block;width:100%;text-align:start;margin-top:6px}.suggest-box button.suggest small{display:block;font-weight:400;opacity:.8}.shift-type-row{display:grid;grid-template-columns:auto 1fr 1fr auto auto auto;gap:6px;align-items:center;margin-bottom:6px}.shift-type-row input[type=time]{width:6.5em}

/* שורת "רק המשמרות שלי" */
#mineSummary.mine-summary{margin:10px 0 0;padding:12px 14px;border-radius:14px;font-weight:700;text-align:center}#mineSummary.mine-summary.none{background:#c9a46822;border:1px solid var(--gold,#c9a468);color:var(--gold,#c9a468)}#mineSummary.mine-summary.some{background:#4caf5022;border:1px solid #4caf50;color:#9fd8a6;font-weight:600}

/* ═══ הסרגל התחתון של הלוח — אותו עיצוב כמו הסרגל בכל שאר האתר (#appDock ב-app-shell.css) ═══ */
nav{display:flex;justify-content:center;gap:4px;padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:var(--panel-a,#18181B);border:0;box-shadow:none;position:sticky;bottom:0;z-index:3}nav>:is(button,a),nav .bar-more-panel>:is(button,a){flex:1;max-width:150px;min-width:0;min-height:56px;padding:5px 3px;border:0!important;border-radius:14px;background:none!important;color:var(--muted,#b6ada0);font:inherit;font-size:.7rem;line-height:1.2;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;box-shadow:none!important}
nav svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.7;fill:none;flex:0 0 24px}nav>:is(button,a)[aria-current=page],nav .bar-more-panel>:is(button,a)[aria-current=page]{color:var(--gold,#c9a468)}@media(hover:hover){nav>:is(button,a):hover,nav .bar-more-panel>:is(button,a):hover{color:var(--gold,#c9a468)}}nav>:is(button,a):focus-visible,nav .bar-more-panel>:is(button,a):focus-visible{outline:2px solid var(--gold,#c9a468);outline-offset:-2px}nav>:is(button,a):disabled,nav .bar-more-panel>:is(button,a):disabled{opacity:.35;cursor:default;pointer-events:none}
.empty-note{border:1px solid var(--gold,#c9a468);border-radius:12px;padding:12px;color:var(--gold,#c9a468);font-weight:700;text-align:center}/* hidden חייב לנצח את display:flex של הסרגל — אחרת עובד/ת ראה/תה כפתורי מנהל/ת */
nav>:is(button,a)[hidden],/* hidden חייב לנצח את display:flex של הסרגל — אחרת עובד/ת ראה/תה כפתורי מנהל/ת */
nav .bar-more-panel>:is(button,a)[hidden]{display:none!important}
/* אתר אחד בלבד (מנהל/ת אתר, עובד/ת): שם האתר כתווית, לא רשימה */
.site-static{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 14px;border:1px solid var(--line,var(--mf-border-subtle,#49413a));border-radius:12px;background:rgba(255,255,255,.04);color:var(--gold,#c9a468);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* הסרגל התחתון מקצה לקצה — body נושא ריפוד צדדי של 12px/24px, והסרגל חייב לחרוג ממנו */
nav{position:fixed;inset-inline:0;bottom:0;margin:0;width:100%;left:0;right:0}
body{padding-bottom:calc(74px + env(safe-area-inset-bottom))}
@media(min-width:1100px){nav{max-width:none}}

/* ללא טלפון חכם: נקודה כתומה על צבע העובד/ת (למנהל/ת בלבד — השרת מחזיר את הדגל רק לעורכים); ריחוף/מיקוד מציג "אין ל-X טלפון חכם" */
.cell{position:relative}
.cell .no-phone{position:absolute;top:5px;inset-inline-end:5px;width:12px;height:12px;border-radius:50%;background:#ff8c1a;border:2px solid var(--mf-ground-page,#0E0E10);box-shadow:0 0 0 1px #ff8c1a66;pointer-events:auto;cursor:help}

/* ═══ לוח המושבים + כרטיס האישור (S3, 6.10) — בלי מסגרת סביב שום דבר: מילוי עדין בלבד, טבעת מיקוד רק במקלדת ═══ */
.review-banner{display:grid;gap:8px;padding:12px 14px;border:0;border-radius:16px;background:rgba(201,164,104,.1);min-width:0}
.review-banner p{margin:0;line-height:1.45;overflow-wrap:anywhere}
.review-line{font-size:.95rem;color:var(--ink)}.review-line strong{color:var(--gold)}
.review-sub{font-size:.8rem;color:var(--muted,#b6ada0)}
.review-warn{font-size:.82rem;color:#ffb5bd}
.review-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}
.review-actions>:is(button,a){min-height:44px;border:0;border-radius:999px;padding:8px 14px;font-weight:600;background:rgba(255,255,255,.06);color:var(--ink);white-space:nowrap;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.review-actions .count{min-width:1.5em;padding:1px 6px;border-radius:999px;background:rgba(255,255,255,.1);text-align:center;font-variant-numeric:tabular-nums}
.review-actions>.primary{background:var(--gold);color:var(--mf-on-accent,#0E0E10);margin-inline-start:auto}
.review-actions>.chip[aria-pressed=true] .count{background:rgba(21,21,26,.15)}
/* מושב פתוח: "שיבוץ +" ושורת הסיבה מתחתיו */
.seat-open{display:flex;flex-direction:column;gap:4px;min-width:0}
#board .seat-open>button.add-here{flex:1;width:100%;min-height:60px;border:0;background-color:var(--card);background-image:linear-gradient(rgba(201,164,104,.14),rgba(201,164,104,.14));font-weight:700}
.seat-why{display:block;font-size:.68rem;line-height:1.3;color:var(--muted,#b6ada0);text-align:center;overflow-wrap:anywhere}
.cell .seat-why{color:inherit;opacity:.85;margin:0}
/* מסנני הכרטיס: תא בלי התאמה מעומעם; תא ששונה מול השבוע הקודם — נקודה */
.cells>.dim{opacity:.28}
.cell.changed::after,.seat-open.changed::after{content:'';position:absolute;top:6px;inset-inline-start:6px;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle,var(--gold) 0 48%,var(--mf-ground-page,#0E0E10) 52%)}
.seat-open.changed{position:relative}
/* חלון המושב */
.seat-context{margin:0;color:var(--gold);line-height:1.5;overflow-wrap:anywhere}
.seat-reasons{margin:0;font-size:.85rem;line-height:1.5;color:var(--muted,#b6ada0);overflow-wrap:anywhere}
#detailBody .seat-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:end;min-width:0}
#detailBody .seat-actions>button{flex:1 1 110px;width:auto;text-align:center}
#detailBody .seat-actions>label{flex:1 1 100%}
#detailBody button.danger{background:rgba(244,91,105,.14);color:#ffb5bd}
.candidate-wrap{display:grid;gap:10px;min-width:0}
.other-sites>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--gold);font-weight:600;padding-inline:4px}
.other-sites>.candidate-list{margin-top:8px}
.other-site-name{margin:4px 0 0;font-size:.8rem;font-weight:600;color:var(--muted,#b6ada0)}
.removed-mark{opacity:.75}
@media print{.review-banner{display:none!important}.cells>.dim{opacity:1}}
/* בעלים 6.10: כפתורי המסננים — "בחר" · "הכל" · "נקה", בלי קו גבול */
#detailBody .filter-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}#detailBody .filter-actions button{border:0!important;box-shadow:none!important;outline:0;flex:1 1 0;min-width:84px;min-height:46px}

/* שיבוץ: שורת הזמינות מקבלת מקום משלה, בלי להקטין את הכפתור ביחס לשכנים. */
#board .slot-group{gap:16px}
#board .cells{align-items:start}
#board .seat-open>button.add-here{flex:none;min-height:92px}
@supports(grid-template-rows:subgrid){
 #board .cells{grid-template-rows:minmax(92px,auto) auto;row-gap:6px;align-items:stretch}
 #board .cells>*{grid-row:1}
 #board .cells>.seat-open{display:grid;grid-row:1 / span 2;grid-template-rows:subgrid;row-gap:6px}
 #board .seat-open>button.add-here{grid-row:1}
 #board .seat-open>.seat-why{grid-row:2;align-self:start}
}

/* ═══ בעלים 8.10: סידור עבודה (בונה C) ═══ */
/* C1 — תקלה גלויה עם "נסו שוב"; בזמן טעינה/תקלה אין בורר אתר ריק ואין חצי ימים בלי ימים */
.load-problem{display:grid;gap:10px;padding:14px 16px;border:0;border-radius:14px;background:rgba(244,91,105,.12);color:var(--ink);line-height:1.5}
.load-problem p{margin:0;overflow-wrap:anywhere}
.load-problem .load-retry{justify-self:start;border:0;border-radius:999px;padding:8px 18px;background:rgba(255,255,255,.1);color:var(--ink);font-weight:600;min-height:44px}
#partProblem{margin:0}
body.board-empty .days,body.board-empty .toolbar select,body.board-empty .site-static{visibility:hidden}
/* C2 — מצב הסידור במילים ובאייקון (טקסט ואז אייקון), וחלון הפרסום */
.state-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-weight:700;color:var(--ink)!important;vertical-align:middle}
.state-badge svg{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.state-badge.state-draft{background:rgba(255,255,255,.12)}
.state-badge.state-published{background:rgba(76,175,80,.28)}
.state-badge.state-changed{background:rgba(244,91,105,.26)}
.review-banner[data-state=published]{background:rgba(76,175,80,.1)}
.review-banner[data-state=changed]{background:rgba(244,91,105,.1)}
.review-warn{display:flex;align-items:flex-start;gap:6px}
.review-warn .warn-icon{width:16px;height:16px;flex:0 0 16px;margin-top:2px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round}
.publish-review{display:grid;gap:14px;min-width:0}
.publish-counts{margin:0;font-weight:700}
.publish-problems,.publish-changes{display:grid;gap:8px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.05);min-width:0}
.publish-problems{background:rgba(244,91,105,.1)}
.publish-problems h3,.publish-changes h3{margin:0;font-size:.95rem}
.publish-problems ol,.publish-changes ul{margin:0;padding-inline-start:20px;display:grid;gap:8px}
.publish-problems li,.publish-changes li{line-height:1.5;overflow-wrap:anywhere}
.publish-problems .problem-text{display:block}
#detailBody .publish-problems small.problem-remedy{display:block;margin-top:2px;color:var(--muted,#b6ada0)}
#detailBody .publish-problems .problem-go{width:auto;margin-top:6px;min-height:40px;border:0;border-radius:999px;padding:6px 14px}
#detailBody .publish-actions{display:flex;gap:10px;flex-wrap:wrap}
#detailBody .publish-actions>button{flex:1 1 120px;width:auto;text-align:center;border:0}
/* C3 — כל משבצת: כרטיס + שורת כיתוב שמורה בגובה שורה אחת; כרטיסים באותה שורה שווים; שמות בשתי שורות עם קיצור בכיוון הנכון */
#board .cells{grid-template-rows:auto;align-items:stretch}
#board .cells>.slot{grid-row:auto;display:flex;flex-direction:column;gap:6px;min-width:0}
#board .cells>.slot>:first-child{flex:1 1 auto;min-height:92px;min-width:0}
#board .slot>button.add-here{width:100%}
#board .slot>.seat-why{flex:0 0 auto;display:block;height:1.5em;line-height:1.5em;margin:0;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;color:var(--muted,#b6ada0)}
#board .slot:has(>.dim)>.seat-why{opacity:.28}
.cell strong.nm{display:block;align-self:stretch;max-width:100%;-webkit-line-clamp:unset;overflow:visible;text-align:center;line-height:1.3}
.cell strong.nm>span{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:inherit;text-align:center;unicode-bidi:isolate}
.cell .hours{font-size:.75rem;direction:ltr;unicode-bidi:isolate}
/* אין טלפון חכם: אייקון טלפון עם קו, על רקע כהה — לא נקודה כתומה; המשמעות במקרא */
.cell .no-phone{position:absolute;top:4px;inset-inline-end:4px;width:20px;height:20px;border-radius:50%;background:rgba(var(--mf-ground-page-rgb,21,21,26),.82);border:0;box-shadow:none;display:inline-flex;align-items:center;justify-content:center;color:#f5f2eb;cursor:help}
.no-phone svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.cell .unpub-badge{position:absolute;top:4px;inset-inline-start:4px;width:20px;height:20px;border-radius:50%;background:rgba(var(--mf-ground-page-rgb,21,21,26),.82);color:#f5f2eb;display:inline-flex;align-items:center;justify-content:center}
.unpub-badge svg{width:13px;height:13px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.board-legend{flex-direction:column;align-items:flex-start;gap:6px}
.board-legend .legend-item{display:flex;align-items:center;gap:8px;margin:0;line-height:1.4}
.legend-icon{position:static!important;flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:rgba(var(--mf-ground-page-rgb,21,21,26),.82);color:#f5f2eb;display:inline-flex;align-items:center;justify-content:center}
.legend-swatch.control-room-clock{background:#bda4ff}
.legend-dot{flex:0 0 12px;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle,var(--gold) 0 48%,var(--mf-ground-page,#0E0E10) 52%)}
/* "מעבר בזמן": השבוע הנוכחי מודגש (בלי קו תחתון), ומקרא לנקודות */
.cal-day.thisweek span:first-child{text-decoration:none;font-weight:800}
.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 0;font-size:.8rem;color:var(--muted,#b6ada0)}
.cal-legend span{display:inline-flex;align-items:center;gap:6px}
/* שם קצר — בשורה אחת; שם שלא נכנס — השם הפרטי בשורה הראשונה והשאר בשנייה, כל חלק נקצר בסופו */
.cell strong.nm>span{display:inline-block;vertical-align:top}
/* C4 — חלון המשבצת: כותרת מדויקת, מועמדים זמינים עם מצב זמינות, "לא זמינים" סגור ומעומעם, "עוד" */
textarea{font:inherit}
.seat-head{display:grid;gap:4px}
.seat-head .seat-requires{margin:0;font-size:.85rem;color:var(--muted,#b6ada0)}
.seat-hours{unicode-bidi:isolate;font-variant-numeric:tabular-nums;white-space:nowrap}/* בעלים 15.10: QA scheduling — טווח השעות לא נשבר לשתי שורות ב-320px */
.seat-who{margin:0;line-height:1.5}
#detailBody .cand{display:grid;gap:4px;text-align:start}
#detailBody .cand-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.candidate-name{display:inline-flex;align-items:center;gap:6px;font-weight:700;min-width:0;overflow-wrap:anywhere}
.candidate-name .no-phone{position:static;width:20px;height:20px}
.av-chip,.cat-chip{display:inline-flex;align-items:center;min-height:22px;padding:1px 9px;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.3;white-space:nowrap}
.av-ok{background:rgba(21,21,26,.18);color:inherit}
.av-pref{background:#2e7d32;color:#fff}
.av-none{background:rgba(21,21,26,.28);color:inherit}
.av-warn{background:#6b5a2c;color:#fff}
.av-bad{background:rgba(255,255,255,.1);color:var(--ink)}
.cat-chip{background:rgba(255,255,255,.1);color:var(--ink);font-size:.72rem}
#detailBody .cand small{margin-top:0;font-weight:400;line-height:1.45}
#detailBody .cand .cand-advisory{display:flex;align-items:flex-start;gap:4px;flex-wrap:wrap}
#detailBody .cand .warn-icon{width:14px;height:14px;flex:0 0 14px;margin-top:2px;stroke:currentColor;stroke-width:2.2;fill:none}
/* "לא זמינים": סגור כברירת מחדל, מעומעם — לא אזעקה ורודה */
details.unavailable>summary,details.more-tools>summary{min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--muted,#b6ada0);font-weight:600;padding-inline:4px;list-style:none}
details.unavailable>summary::-webkit-details-marker,details.more-tools>summary::-webkit-details-marker{display:none}
details.unavailable>summary::after,details.more-tools>summary::after{content:'';width:8px;height:8px;border-inline-end:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-inline-start:2px;border-color:currentColor!important}
details[open].unavailable>summary::after,details[open].more-tools>summary::after{transform:rotate(-135deg)}
details.unavailable>summary .count{min-width:1.6em;padding:1px 7px;border-radius:999px;background:rgba(255,255,255,.08);text-align:center;font-variant-numeric:tabular-nums}
#detailBody .blocked-list{margin-top:8px;gap:8px}
#detailBody .blocked{background:rgba(255,255,255,.04);color:var(--muted,#b6ada0);border:0;padding:10px 12px;border-radius:12px;display:grid;gap:4px}
#detailBody .blocked .candidate-name{font-weight:600;color:var(--ink);opacity:.8}
#detailBody .blocked .candidate-status{font-size:.78rem;margin:0}
#detailBody .blocked ul.blockers{margin:0;padding-inline-start:18px;display:grid;gap:4px;font-size:.82rem;line-height:1.45}
#detailBody .blocked small.blocker-remedy{display:block;margin-top:2px;opacity:.85}
.cand-empty{margin:0}
details.more-tools{min-width:0}
details.more-tools>.shift-tools{margin-top:6px;border:0;background:rgba(255,255,255,.04)}
#detailBody .seat-actions details.more-tools{flex:1 1 100%}
#detailBody .seat-actions>button{flex:1 1 90px}
.seat-details{display:grid;gap:10px}
details.unavailable>summary::after,details.more-tools>summary::after{border-inline-end:0;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px)}
/* C5 — מיקוד גלוי במקלדת בטבעת בהירה (לא כתומה); כותרת החלון מקבלת את המיקוד הראשון בלי טבעת; הסרגל הקבוע לא מכסה מיקוד */
html{scroll-padding-bottom:calc(var(--dock-h,82px) + 12px);scroll-padding-top:calc(var(--sticky-h,64px) + 8px)}
body{padding-bottom:calc(var(--dock-h,74px) + 8px)}
#detailTitle:focus{outline:none!important}
:is(#board,.toolbar,#review,.week-nav,.days,#detail,.load-problem,#mineSummary) :is(button,a,summary):focus-visible{outline:2px solid #f5f2eb!important;outline-offset:2px}
#board .cell.assigned:focus-visible{outline:3px solid #f5f2eb!important;outline-offset:2px}
#detail :is(input:not([type=color]),select,textarea):focus-visible,.toolbar select:focus-visible{box-shadow:inset 0 0 0 2px rgba(245,242,235,.75)!important;outline:none!important}
#detail input[type=color]:focus-visible{outline:2px solid #f5f2eb!important;outline-offset:2px}
/* חצי הימים: האזור הלחיץ 44 פיקסל לפחות, בלי להזיז את הכותרות */
#prevDay,#nextDay{position:relative;z-index:1}
#prevDay::before,#nextDay::before{content:'';position:absolute;top:0;bottom:0;left:-10px;right:-10px}
/* מעבר בין שבועות ליד הטווח */
.week-nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}
.week-nav #weekInfo{text-align:center;line-height:1.4;overflow-wrap:anywhere}
.week-nav .week-step{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:6px 10px;border:0;border-radius:999px;background:rgba(255,255,255,.06);color:var(--ink);font-size:.8rem;white-space:nowrap}
.week-nav .week-step svg{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.week-nav .week-step:disabled{opacity:.35}
/* תווית האתר: שורה שנייה במקום חיתוך ("Government Qua") */
.site-static{white-space:normal;line-height:1.25;overflow-wrap:anywhere;text-overflow:clip;padding-block:6px}
/* זום 200% / מסך נמוך: כותרת הימים לא נדבקת, כדי שיישאר מקום ללוח */
@media (max-height:540px){.days{position:static}}
#prevDay::before,#nextDay::before{left:-12px;right:-12px}
/* C6 — "המשמרות שלי": הסיכום בראש הלוח עם "הכל", ושורות בלי משמרת שלי מתקפלות (בשורה שנשארת — תאים של אחרים שקופים) */
#mineSummary.mine-summary{margin:0;padding:12px 14px;border:0!important;border-radius:14px;font-weight:600;text-align:start;display:grid;gap:8px}
#mineSummary.mine-summary.none{background:rgba(255,255,255,.06);color:var(--ink)}
#mineSummary.mine-summary.some{background:rgba(76,175,80,.14);color:#cfeccf}
#mineSummary .mine-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
#mineSummary .mine-text{margin:0;line-height:1.45}
#mineSummary .mine-all{flex:0 0 auto;min-height:44px;border:0;border-radius:999px;padding:8px 18px;background:rgba(255,255,255,.12);color:var(--ink);font-weight:700}
#mineSummary .mine-list{margin:0;padding-inline-start:20px;display:grid;gap:4px;font-weight:500;line-height:1.45}
#mineSummary .hours{unicode-bidi:isolate}
#board .slot.filtered,#board .seat-open.filtered,#board .slot:has(>.cell.filtered){visibility:hidden}
/* 'prefer' = מעדיף/ה שלא — אזהרה רכה, לא ירוק */
.av-pref{background:rgba(255,255,255,.16);color:inherit}
/* C7 — הרבה עמדות: קבוצה מתקפלת + "עוד N" */
.slot-group>h2 .group-toggle{order:1;flex:0 0 auto;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.06);color:var(--gold);display:inline-flex;align-items:center;justify-content:center}
.slot-group>h2::after{order:2}
.slot-group>h2 .group-toggle svg{width:20px;height:20px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s ease}
.slot-group.collapsed>h2 .group-toggle svg{transform:rotate(90deg)}
html[dir=rtl] .slot-group.collapsed>h2 .group-toggle svg{transform:rotate(-90deg)}
.slot-group.collapsed>.shift-row,.slot-group.collapsed>.more-rows,#board .shift-row.paged-out{display:none}
#board .more-rows{justify-self:start;align-self:flex-start;min-height:44px;border:0;border-radius:999px;padding:8px 18px;background:rgba(255,255,255,.08);color:var(--ink);font-weight:600;display:inline-flex;align-items:center;gap:8px}
#board .more-rows .count{min-width:1.6em;padding:1px 7px;border-radius:999px;background:rgba(255,255,255,.1);text-align:center}
/* C8 — "הזמינות שלי" */
.toolbar #myAvail{min-width:0;white-space:normal;margin:0}
.avail-week{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}
.avail-week .avail-range{margin:0;text-align:center;color:var(--gold);font-weight:600;line-height:1.4}
#detailBody .avail-week .week-step{width:auto;display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:6px 10px;border:0;border-radius:999px;background:rgba(255,255,255,.06);color:var(--ink);font-size:.8rem;white-space:nowrap}
.avail-week .week-step svg{width:16px;height:16px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.avail-deadline{margin:0;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.06);font-weight:600;line-height:1.5}
.avail-deadline.late{background:rgba(244,91,105,.12)}
.avail-legend{display:flex;flex-wrap:wrap;gap:12px;margin:0;font-size:.85rem;color:var(--muted,#b6ada0)}
.avail-grid{display:grid;gap:10px}
.avail-day{display:grid;gap:6px}
.avail-name{font-weight:600}
.avail-chips{display:flex;flex-wrap:wrap;gap:6px}
#detailBody .avail-chip{width:auto;min-height:44px;padding:8px 12px;border-radius:999px;border:0;background:rgba(255,255,255,.06);color:var(--ink);text-align:center}
#detailBody .avail-chip[data-kind=unavailable]{background:rgba(244,91,105,.22)!important;color:var(--ink)!important;font-weight:700}
#detailBody .avail-chip[data-kind=prefer]{background:rgba(255,255,255,.18)!important;color:var(--ink)!important;font-weight:700}
.avail-mark{font-weight:800}
#detailBody .avail-send{text-align:center}
/* החץ של "עוד" / "לא זמינים" — ציור SVG, לא קווי מסגרת (no-lines) */
details.unavailable>summary::after,details.more-tools>summary::after{border:0!important;width:12px;height:8px;transform:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23b6ada0' stroke-width='2'/%3E%3C/svg%3E") no-repeat center/12px 8px}
details[open].unavailable>summary::after,details[open].more-tools>summary::after{transform:rotate(180deg)}
/* ═══ בעלים 8.10: סידור עבודה — תיקוני QA שלב 3 (לקוח) ═══ */
.review-sub:empty{display:none}
/* טעינה / תקלה: אין טווח שבוע ואין כפתורי שבוע שלא עושים כלום, ותא האתר לא נשאר "חור" בסרגל */
body.board-empty .week-nav,body.board-empty .toolbar select,body.board-empty .site-static{display:none}
/* מסך צר, טקסט 200% או זום 200% (em = גודל הטקסט של המשתמש): הטווח בשורה משלו והכפתורים מתחתיו — לא עמודה של אות אחת;
   בורר האתר של מנהל/ת אזור בשורה מלאה (שם אתר ארוך לא נחתך); כרטיס צר — פחות ריפוד בצדדים, השם מקבל את המקום */
@media (max-width:23em){
 .week-nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'info info' 'prev next'}
 .week-nav #weekInfo{grid-area:info}
 .week-nav #prevWeek{grid-area:prev;justify-self:start}
 .week-nav #nextWeek{grid-area:next;justify-self:end}
 .week-nav .week-step{white-space:normal;max-width:100%;text-align:center}
 .toolbar #site,.toolbar .site-static{grid-column:1 / -1}
 #board .cell{padding-inline:2px}
}
/* "הזמינות שלי": הטווח בשורה משלו מעל שני הכפתורים (ב-320 הוא נמעך לעמודה של 5 פיקסלים) */
.avail-week{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'range range' 'prev next'}
.avail-week .avail-range{grid-area:range}
.avail-week>.week-step:first-of-type{grid-area:prev;justify-self:start}
.avail-week>.week-step:last-of-type{grid-area:next;justify-self:end}
#detailBody .avail-week .week-step{white-space:normal;max-width:100%;text-align:center}
/* מועמד/ת זמין/ה = כפתור זהב: תגי הקטגוריה והזמינות בדיו כהה (היה ‎#f5f2eb על זהב, 1.9:1) */
#detailBody .cand .cat-chip,#detailBody .cand .av-bad{background:rgba(21,21,26,.14);color:var(--mf-on-accent,#0E0E10)}
/* מטרות מגע ≥ 44 */
#closeDetail.x-close{width:44px!important;min-width:44px!important;max-width:44px!important;flex:0 0 44px!important;height:44px!important;min-height:44px!important}
#detailBody .publish-problems .problem-go{min-height:44px}
#detailBody .filter-chips .chip{min-width:44px}
#detail textarea{min-height:44px}
/* בעלים 20.10 (QA, רקע בכל המסך): ההערה בחלון "הזמינות שלי" נשארה באפור של הדפדפן (#3b3b3b) בכל צבע. בלי צבע נבחר — אותו ערך בדיוק (Field) */
#detail textarea{background-color:var(--mf-chip,Field)}
/* "מעבר בזמן": כל שבוע הוא כפתור אחד ברוחב מלא, הימים בתוכו */
#detailBody .cal-week{grid-column:1 / -1;width:100%;min-height:48px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;align-items:start;padding:6px 0;border:0;border-radius:12px;background:var(--card);color:var(--ink);text-align:center;font-size:.85rem}
#detailBody .cal-week .cal-day{min-height:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
#detailBody .cal-week.current{background:rgba(201,164,104,.22)}
.cal-week.thisweek .cal-num{font-weight:800}
#detailBody .cal-week:disabled,#detailBody .cal-week.out{opacity:.35;cursor:default}
/* תג על הכרטיס (אין טלפון / שונה): מקום שמור בראש הכרטיס — התג לא מכסה את השם, גם בזום 200% */
#board .cell:has(>.no-phone),#board .cell:has(>.unpub-badge){padding-top:26px}
/* "ללא שיבוץ" / "שיבוץ +" בכרטיס צר: שורה נוספת, לא חיתוך */
#board .cell>strong:not(.nm){-webkit-line-clamp:unset;display:block;overflow:visible;hyphens:auto}
/* בעיית שער על המשבצת: שורת הכיתוב "לתיקון: …" ואחריה אייקון */
#board .slot>.seat-why.problem-why{display:flex;align-items:center;justify-content:center;gap:4px;color:#ffb5bd}
#board .slot>.problem-why>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.problem-why svg{flex:0 0 12px;width:12px;height:12px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
/* אזהרת מועמד/ת: האייקון צמוד למילה האחרונה של הטקסט */
#detailBody .cand .adv-text{min-width:0}
#detailBody .cand .adv-text .warn-icon{display:inline-block;vertical-align:-2px;margin:0;margin-inline-start:4px}

/* בעלים 21.10 (CLOSE X): בטלפון ה-× של #detail בפינת החלון — ui-buttons.css .x-corner/.x-head; הריפוד של החלון 18px */
@media (max-width:620px){#detail{--x-pad:18px}}
/* בעלים 27.10: עיפרון ליד שם העמדה בלוח — כפתור אייקון בלי מסגרת, 44px למגע, לא נוגע בשם (רווח 10px) */
.shift-row h3{display:flex;align-items:center;gap:10px;min-width:0}
/* QA B 28.10: a 44 px target (owner rule: buttons ≥44 px tall); the negative block margin keeps the row header's height */
.shift-row h3 .pos-edit{flex:0 0 auto;width:44px;height:44px;min-height:44px;min-width:44px;padding:0;margin:-6px 0;border:0;border-radius:9px;background:transparent;color:var(--gold,#c9a468);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.shift-row h3 .pos-edit svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.shift-row h3 .pos-edit:hover,.shift-row h3 .pos-edit:focus-visible{background:rgba(201,164,104,.12);outline:none}
