/* ============================================================
   ArcHub — כלי התמהיל (Whiteboard)
============================================================ */
/* min-height:0 מבטל את ה-100vh של .screen — אחרת המעטפת גבוהה מהמסך בגובה
   הכותרת, והחלק התחתון של הסרגל נחתך בלי שאפשר לגלול אליו. */
.whiteboard-shell{position:fixed;top:var(--header-h);left:0;right:0;bottom:0;min-height:0;display:flex;flex-direction:row;overflow:hidden;}
.wb-canvas-wrap{position:relative;flex:1;min-width:0;overflow:auto;cursor:grab;touch-action:none;}
.wb-canvas-wrap.panning{cursor:grabbing;}
/* הקנבס מוגדל מנקודת (0,0) שלו — הפינה השמאלית העליונה. בדף RTL תוכן שרחב
   מהמכל שלו נצמד לימין וגולש שמאלה, ואז נקודת האפס אינה בפינת המכל: המכל
   (overflow:hidden) נגלל בפני עצמו, והלוח קופץ הצידה אחרי כל רינדור. לכן המכל
   עצמו LTR, והתוכן שבתוכו חוזר ל-RTL. */
.wb-inner{position:relative;overflow:hidden;direction:ltr;}
.wb-content{
  position:relative;transform-origin:0 0;direction:rtl;
  background-image:radial-gradient(circle, var(--dot-color) 1.6px, transparent 1.6px);
  background-size:28px 28px;
}
.wb-empty-hint{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;
  pointer-events:none;color:var(--text-faint);z-index:2;white-space:nowrap;
}
.wb-empty-hint .wb-eh-icon{width:44px;height:44px;margin:0 auto 12px;opacity:.5;}
.wb-empty-hint h4{margin:0 0 5px;font-size:var(--fs-heading);color:var(--text-soft);}
.wb-empty-hint p{margin:0;font-size:var(--fs-small);}

/* ---------------- node ---------------- */
.wb-content{--wb-floor-line:var(--glass-border);}
.wb-node{position:absolute;border-radius:var(--radius-xs);overflow:visible;user-select:none;transition:width .15s,height .15s;cursor:grab;border:1.3px dashed var(--accent);}
/* הקובייה אינה זכוכית: טשטוש הרקע (backdrop-filter של glass-strong) מחושב מחדש
   לכל קובייה בכל פריים שבו הרקע מתחלף, ובזום שאינו עגול הקוביות מרצדות במעבר
   בין יום ללילה. המשטח שלה אטום או כמעט אטום, כך שהטשטוש ממילא לא נראה. */
.wb-node{backdrop-filter:none;-webkit-backdrop-filter:none;}
/* בלי צבע פונקציה הקובייה מקבלת משטח משלה: זכוכית הממשק כהה מדי על הלוח במצב לילה */
.wb-node:not(.tinted){background:var(--wb-node-bg);}
.wb-node.locked{border:1px solid var(--glass-border);cursor:not-allowed;}
.wb-node.dragging{cursor:grabbing;}
.wb-node.selected{outline:2px solid var(--accent);outline-offset:2px;}
/* מלבן הבחירה המרובה, בקואורדינטות הלוח */
.wb-marquee{position:absolute;z-index:70;pointer-events:none;border:1.5px dashed var(--accent);background:var(--accent-soft);border-radius:var(--radius-xs);}
.wb-canvas-wrap.selecting,.wb-canvas-wrap.selecting .wb-node{cursor:crosshair;}
.wb-canvas-wrap.selecting .wb-node.selected{cursor:grab;}
.wb-grip-corner{position:absolute;top:2px;right:2px;width:7px;height:7px;color:var(--text-faint);opacity:0;pointer-events:none;transition:.15s;stroke:currentColor;z-index:2;}
.wb-node:hover .wb-grip-corner{opacity:.7;}
/* פונקציה נעולה: מנעול גלוי תמיד בפינה, במקום ידית הגרירה (היא ממילא אינה זזה).
   הגיליון המודפס מצויר בנפרד ב-print-sheet.js, ולכן המנעול אינו מודפס */
.wb-node-lock{position:absolute;top:2px;right:2px;width:8px;height:8px;color:var(--text-faint);display:flex;pointer-events:auto;z-index:2;}
.wb-node-lock svg{width:8px;height:8px;stroke:currentColor;}
.wb-node.locked .wb-grip-corner{display:none;}
.wb-node-menu-btn{
  position:absolute;top:1px;left:1px;width:11px;height:11px;border-radius:var(--radius-xs);border:none;background:var(--glass-bg-strong);
  color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;padding:0;opacity:0;z-index:3;
}
.wb-node:hover .wb-node-menu-btn{opacity:1;}
/* במקלדת אין ריחוף: הכפתור מופיע כשהמיקוד עליו או על כותרת הקובייה */
.wb-node:focus-within .wb-node-menu-btn,.wb-node-menu-btn:focus-visible{opacity:1;}
.wb-node-menu-btn:hover{background:var(--input-bg);color:var(--accent);}
.wb-node-menu-btn svg{width:7px;height:7px;stroke:currentColor;}
.wb-node-menu{
  display:none;position:absolute;bottom:calc(100% + 6px);left:0;z-index:60;min-width:120px;border-radius:var(--radius-sm);padding:4px;
  background:var(--menu-bg);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-lg);
}
.wb-node-menu.show{display:block;}
/* נפתח כלפי מעלה, ולכן מחליק מלמטה — ההפך מתפריט שנפתח כלפי מטה */
.wb-node-menu{--menu-shift:calc(var(--slide-dist) / 2);}
.wb-node-menu-item{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:var(--radius-xs);cursor:pointer;font-size:var(--fs-caption);color:var(--text-soft);white-space:nowrap;
  border:none;background:transparent;width:100%;font-family:inherit;text-align:start;}
.wb-node-menu-item:hover{background:var(--input-bg);color:var(--text);}
.wb-node-menu-item.danger{color:var(--red);}
.wb-node-menu-item.danger:hover{background:var(--red-soft);}
.wb-node-menu-item svg{width:12px;height:12px;stroke:currentColor;flex-shrink:0;}
.wb-node-grid{
  height:100%;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr auto 1fr;
  align-items:center;justify-items:center;padding:3px 2px;
}
.wb-grid-cell{font-size:7.5px;font-family:var(--font-mono);color:var(--text-soft);line-height:1.1;text-align:center;}
.wb-grid-cell.center{display:flex;flex-direction:column;align-items:center;font-family:inherit;width:100%;}
.wb-node-title-input{
  width:100%;border:none;background:transparent;outline:none;text-align:center;
  font-family:var(--font-ui);font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--text);padding:0;cursor:text;
}
.wb-node-title-input.tmura{color:var(--red);}
.wb-grid-cell.apt{color:var(--accent);font-weight:var(--fw-medium);}
.wb-node.underground{filter:saturate(.7);}
/* קובייה צבועה בפסטל בהיר: הטקסט חייב להיות כהה גם במצב לילה, שבו צבעי
   הטקסט הרגילים בהירים ונבלעים ברקע. התפריט הנפתח נשאר בצבעי הערכה.
   במצב לילה גם קובייה בלי צבע פונקציה היא משטח בהיר (אפור), ולכן אותו כלל. */
.wb-node.tinted,html[data-theme="dark"] .wb-node{--wb-floor-line:var(--ink-line);}
.wb-node.tinted .wb-node-grid,.wb-node.tinted .wb-grip-corner,.wb-node.tinted .wb-node-lock,
html[data-theme="dark"] .wb-node .wb-node-grid,html[data-theme="dark"] .wb-node .wb-grip-corner,html[data-theme="dark"] .wb-node .wb-node-lock,
.wb-table-body tr.tinted{
  --text:var(--ink);--text-soft:var(--ink-soft);--text-faint:var(--ink-faint);--accent:var(--ink-accent);--red:var(--ink-red);
}
.wb-table-body tr.tinted{color:var(--text);}
/* חצי ת״ק: התגית בולטת מעל הקצה העליון, ולכן הקובייה עולה מעל שכנותיה */
.wb-node.straddle{z-index:1;}
.wb-node-straddle-tag,.wb-node-park-tag{
  position:absolute;top:-9px;left:4px;background:var(--red);color:var(--on-accent);font-size:6px;font-weight:var(--fw-medium);
  padding:1px 5px;border-radius:99px;white-space:nowrap;z-index:3;
}
.wb-node.just-added{animation:just-added-flash 1.4s ease;}
@keyframes just-added-flash{
  0%{box-shadow:0 0 0 6px var(--accent-soft);border-color:var(--accent);}
  60%{box-shadow:0 0 0 6px var(--accent-soft);border-color:var(--accent);}
  100%{box-shadow:none;}
}

/* ---------------- buildings & floors ---------------- */
.wb-building-svg{position:absolute;top:0;left:0;pointer-events:none;overflow:visible;z-index:0;}
.wb-floor-labels{position:absolute;inset:0;z-index:1;pointer-events:none;}
.wb-building-headers{position:absolute;inset:0;z-index:1;pointer-events:none;}
.wb-building-headers > *{pointer-events:auto;}
.wb-floor-col{position:absolute;display:flex;align-items:center;gap:6px;}
.wb-floor-tag{
  padding:5px 12px;border-radius:99px;font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--text-soft);
  white-space:nowrap;background:var(--glass-bg-strong);border:1px solid var(--glass-border);backdrop-filter:blur(20px);
}
/* קומה טיפוסית (עותק): תווית עמומה במסגרת מקווקוות. טקסט חלול עם קו מתאר
   אינו קריא בגודל הזה. */
.wb-floor-tag.typical{color:var(--text-faint);border-style:dashed;font-weight:var(--fw-regular);}
.wb-floor-height-input{
  width:52px;border:1px solid var(--glass-border);background:var(--input-bg);border-radius:var(--radius-sm);padding:5px 6px;
  font-size:var(--fs-caption);font-family:var(--font-mono);text-align:center;color:var(--text);outline:none;pointer-events:auto;
}
.wb-floor-height-input:focus{border-color:var(--accent);}
.wb-floor-total{position:absolute;font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--text-faint);white-space:nowrap;}
.wb-floor-total b{color:var(--text);font-family:var(--font-mono);font-weight:var(--fw-bold);}
.wb-floor-total.over{color:var(--red);}
.wb-floor-total.over b{color:var(--red);}
.table-color-dot{display:inline-block;width:9px;height:9px;border-radius:50%;}
.wb-floor-mini-btn{
  width:22px;height:22px;border-radius:var(--radius-xs);border:none;background:var(--input-bg);color:var(--text-faint);
  cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.6;transition:.15s;flex-shrink:0;pointer-events:auto;
}
.wb-floor-link-btn{
  height:22px;padding:0 7px;border-radius:var(--radius-xs);border:1px solid var(--gold);background:var(--gold-soft);color:var(--gold);
  cursor:pointer;display:flex;align-items:center;gap:3px;flex-shrink:0;pointer-events:auto;
  font-family:var(--font-mono);font-size:var(--fs-caption);font-weight:var(--fw-bold);transition:.15s;
}
.wb-floor-link-btn svg{width:11px;height:11px;stroke:currentColor;}
.wb-floor-link-btn:hover:not(:disabled){background:var(--gold);color:var(--on-gold);}
.wb-floor-link-btn:disabled{cursor:default;}
.wb-node.linked-copy{cursor:default;border-style:dotted;}
.wb-node.linked-copy .wb-node-title-input{cursor:default;}
.wb-floor-mini-btn svg{width:11px;height:11px;stroke:currentColor;}
/* קומה שנמתחה גרפית: הכפתור נשאר דלוק */
.wb-floor-mini-btn.on{opacity:1;background:var(--accent-soft);color:var(--accent);}
.wb-floor-mini-btn:hover{opacity:1;background:var(--glass-border);color:var(--accent);}
.wb-floor-mini-btn.danger:hover{opacity:1;background:var(--red-soft);color:var(--red);}
.wb-floor-mini-btn.disabled{opacity:.25;cursor:not-allowed;}
.wb-floor-mini-btn.disabled:hover{opacity:.25;background:var(--input-bg);color:var(--text-faint);}

/* שכבת החניה: תג על דירה (חניות משויכות) ותווית מעל כותרת הבניין */
.wb-node-park-tag{top:auto;bottom:-9px;background:var(--teal);}
.wb-building-park{
  position:absolute;transform:translateX(-50%);display:flex;align-items:center;gap:5px;white-space:nowrap;
  padding:2px 9px;border-radius:99px;background:var(--teal-soft);color:var(--teal);
  font-size:var(--fs-caption);font-weight:var(--fw-medium);pointer-events:none;
}
.wb-building-park svg{width:12px;height:12px;flex-shrink:0;}
.wb-building-tag{position:absolute;padding:6px 10px 6px 6px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:6px;}
.wb-building-tag.locked{outline:1.5px dashed var(--gold);outline-offset:2px;}
.wb-building-grip{
  width:20px;height:20px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;
  color:var(--text-faint);cursor:grab;flex-shrink:0;
}
.wb-building-grip:hover{background:var(--input-bg);color:var(--accent);}
.wb-building-grip svg{width:13px;height:13px;stroke:currentColor;}
.wb-building-tag input{border:none;background:transparent;outline:none;color:var(--text);font-weight:var(--fw-bold);font-size:var(--fs-body);text-align:center;width:110px;}
.wb-building-lock-btn,.wb-building-menu-btn{
  width:22px;height:22px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-faint);
  cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s;
}
.wb-building-lock-btn svg,.wb-building-menu-btn svg{width:13px;height:13px;stroke:currentColor;}
.wb-building-lock-btn:hover,.wb-building-menu-btn:hover{background:var(--input-bg);color:var(--accent);}
.wb-building-lock-btn.locked{color:var(--gold);}
.wb-building-lock-btn.locked:hover{background:var(--gold-soft);}
.wb-building-menu{
  display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:60;min-width:150px;border-radius:var(--radius-sm);padding:4px;
  background:var(--menu-bg);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-lg);
}
.wb-building-menu.show{display:block;}
.wb-building-menu-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--radius-xs);cursor:pointer;font-size:var(--fs-small);color:var(--text-soft);white-space:nowrap;
  border:none;background:transparent;width:100%;font-family:inherit;text-align:start;}
.wb-building-menu-item:hover{background:var(--input-bg);color:var(--text);}
.wb-building-menu-item.danger{color:var(--red);}
.wb-building-menu-item.danger:hover{background:var(--red-soft);}
.wb-building-menu-item svg{width:13px;height:13px;stroke:currentColor;flex-shrink:0;}

/* ---------------- plots ---------------- */
/* קווי המגרש: כמו קו הקרקע, רק אנכיים. הידית והתווית יושבות מעל התוכן. */
.wb-plot-layer{position:absolute;inset:0;z-index:0;pointer-events:none;}
.wb-plot-divider{position:absolute;top:0;bottom:0;width:0;border-inline-start:2px dashed var(--teal);opacity:.75;}
.wb-plot-grip{
  position:absolute;inset-inline-start:0;transform:translateX(50%);width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;pointer-events:auto;cursor:ew-resize;
  background:var(--select-bg);border:1px solid var(--teal);color:var(--teal);box-shadow:0 4px 12px var(--shadow-soft);
}
.wb-plot-grip svg{width:12px;height:12px;stroke:currentColor;}
.wb-plot-label{
  position:absolute;transform:translateX(-50%);display:flex;align-items:center;gap:8px;white-space:nowrap;
  padding:6px 14px;border-radius:99px;background:var(--select-bg);border:1px solid var(--teal);color:var(--teal);
  font-size:var(--fs-body);font-weight:var(--fw-bold);box-shadow:0 4px 12px var(--shadow-soft);
}
.wb-plot-label span{font-size:var(--fs-caption);font-weight:var(--fw-regular);color:var(--text-faint);}
.wb-plot-label.focus{background:var(--teal-soft);}
/* תצוגה ממוקדת במגרש: הקוביות של שאר המגרשים נשארות במקומן, מעומעמות */
/* מחוץ למיקוד: מעומעם וגם נעול — לא נגרר, לא נערך ולא נמחק */
.wb-node.plot-dim,.wb-building-tag.plot-dim,.wb-floor-col.plot-dim,.wb-floor-total.plot-dim{opacity:.2;pointer-events:none;}
.wb-focus-note{display:flex;align-items:center;gap:6px;font-size:var(--fs-caption);color:var(--text-faint);margin:8px 0 0;line-height:var(--lh-normal);}
.wb-focus-note svg{width:12px;height:12px;stroke:currentColor;flex-shrink:0;}
/* רשימות המיקוד בסרגל הצר: תווית וכפתור בשורה אחת, והרשימה ברוחב הסרגל */
.wb-sidebar .filter-dd{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px;padding:3px 4px 3px 10px;border-radius:var(--radius-sm);}
.wb-sidebar .filter-dd-btn{min-width:0;}
.wb-sidebar .filter-dd-btn span{overflow:hidden;text-overflow:ellipsis;}
.wb-sidebar .filter-dd-panel{inset-inline:0;min-width:0;}
.wb-sidebar .filter-dd-opt{white-space:normal;}
.wb-building-lock-btn:disabled{cursor:default;color:var(--accent);}
.wb-tool-btn:disabled{opacity:.35;cursor:default;pointer-events:none;}
/* חלון קיצורי המקלדת: מקש מימין, הסבר משמאלו */
.kbd-list{display:grid;grid-template-columns:auto 1fr;gap:9px 16px;margin:0;align-items:baseline;}
.kbd-list dt{display:flex;align-items:center;gap:5px;white-space:nowrap;}
.kbd-list dt span{color:var(--text-faint);font-size:var(--fs-caption);}
.kbd-list dd{margin:0;font-size:var(--fs-small);color:var(--text-soft);line-height:var(--lh-normal);}
.kbd-list kbd{
  display:inline-block;min-width:26px;padding:3px 7px;text-align:center;border-radius:var(--radius-xs);
  background:var(--input-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow-soft);
  font-family:var(--font-ui);font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--text);
}
/* רשימת הפונקציות */
.modal-g.xwide{width:1040px;}
.fl-scroll{overflow-x:auto;}
/* חלון ההדפסה: בחירות בצד אחד, תצוגה מקדימה בצד השני */
.pp-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:start;}
.pp-opts{display:flex;flex-direction:column;gap:7px;max-height:58vh;overflow-y:auto;padding-inline-end:4px;}
/* רשימת המגרשים והבניינים שבלוח: מגרש, ומתחתיו הבניינים שלו בהזחה */
.pp-picker{display:flex;flex-direction:column;gap:6px;}
.pp-check.plot{font-weight:var(--fw-medium);color:var(--text);}
.pp-order{display:flex;flex-direction:column;gap:6px;}
/* שורת בניין: תיבת הסימון, ובקצה ידית לשינוי הסדר בחזית */
.pp-row{display:flex;align-items:center;gap:6px;border-radius:var(--radius-xs);}
.pp-row.sub{padding-inline-start:23px;}
.pp-row .pp-check{flex:1;min-width:0;}
.pp-row.dragging{background:var(--accent-soft);}
.pp-grip{width:22px;height:22px;flex-shrink:0;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-faint);
  cursor:grab;display:flex;align-items:center;justify-content:center;padding:0;touch-action:none;transition:.15s;}
.pp-grip svg{width:13px;height:13px;stroke:currentColor;}
.pp-grip:hover{background:var(--input-bg);color:var(--accent);}
.pp-row.dragging .pp-grip{cursor:grabbing;color:var(--accent);}
.pp-opts .field-g-section-title{margin:9px 0 0;}
.pp-opts .field-g-section-title:first-child{margin-top:0;}
.pp-check{display:flex;align-items:center;gap:8px;font-size:var(--fs-body);color:var(--text-soft);cursor:pointer;}
.pp-check input{accent-color:var(--accent);width:15px;height:15px;margin:0;flex-shrink:0;}
.pp-check.disabled{opacity:.45;cursor:default;}
.pp-note{margin:0;font-size:var(--fs-caption);color:var(--text-faint);line-height:var(--lh-relaxed);}
.pp-preview{max-height:58vh;overflow:auto;display:flex;flex-direction:column;gap:14px;padding:14px;
  border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--input-bg);}
.pp-sheet{width:100%;flex-shrink:0;box-shadow:0 2px 10px var(--shadow-soft);position:relative;user-select:none;}
/* מסגרת גרירה מעל חלק בגיליון. הגיליון עצמו לבן בשתי הערכות, ולכן הצבעים כאן
   הם של הדגשה (accent) ולא של טקסט הממשק. המיקום פיזי (left/top): הוא נגזר
   מקואורדינטות הדף ולא מכיוון הכתיבה. */
.pp-block{position:absolute;border:1px dashed transparent;border-radius:var(--radius-xs);cursor:move;touch-action:none;transition:border-color .15s,background .15s;}
.pp-sheet:hover .pp-block{border-color:var(--ink-accent);}
.pp-block:hover,.pp-block.dragging{border-style:solid;border-color:var(--ink-accent);background:var(--accent-soft);}
.pp-block-label{position:absolute;top:3px;right:3px;padding:1px 7px;border-radius:99px;background:var(--ink-accent);color:var(--on-accent);
  font-size:var(--fs-caption);font-weight:var(--fw-medium);white-space:nowrap;opacity:0;transition:opacity .15s;pointer-events:none;}
.pp-block:hover .pp-block-label,.pp-block.dragging .pp-block-label{opacity:1;}
.pp-block-grip{position:absolute;right:-5px;bottom:-5px;width:11px;height:11px;border-radius:50%;background:var(--ink-accent);
  border:2px solid var(--on-accent);cursor:nwse-resize;opacity:0;transition:opacity .15s;}
.pp-sheet:hover .pp-block-grip,.pp-block.dragging .pp-block-grip{opacity:1;}
.pp-save-tpl{gap:5px;}
.pp-save-row{display:flex;gap:6px;align-items:center;}
.pp-save-row input{flex:1;min-width:0;}
.pp-sheet svg{display:block;width:100%;height:100%;}
.pp-data{flex-shrink:0;}
.pp-empty{margin:24px 0;text-align:center;font-size:var(--fs-small);color:var(--text-faint);}
.pp-exports{display:flex;gap:6px;flex-wrap:wrap;}
@media (max-width:820px){.pp-layout{grid-template-columns:minmax(0,1fr);}}
.fl-table td,.fl-table th{white-space:nowrap;}
.fl-name{display:flex;align-items:center;gap:8px;padding:0;border:none;background:none;color:var(--text);font-family:inherit;font-size:var(--fs-small);font-weight:var(--fw-medium);cursor:pointer;}
.fl-name:hover{color:var(--accent);}
.fl-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:1px solid var(--glass-border);}
.fl-var{color:var(--text-faint);}
.wb-table-plot{
  flex-shrink:0;padding:2px 9px;border-radius:99px;background:var(--teal-soft);color:var(--teal);
  font-size:var(--fs-caption);font-weight:var(--fw-medium);white-space:nowrap;
}

/* ---------------- ground line ---------------- */
.wb-ground-overlay{position:fixed;height:0;z-index:400;pointer-events:none;}
.wb-ground-overlay::before{content:'';position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--gold);opacity:.9;}
.wb-ground-grip{
  position:absolute;top:-13px;right:14px;background:var(--gold);color:var(--on-gold);font-size:var(--fs-caption);font-weight:var(--fw-medium);
  padding:4px 12px 4px 10px;border-radius:99px;display:flex;align-items:center;gap:6px;white-space:nowrap;
  box-shadow:0 4px 12px var(--shadow-soft);cursor:grab;pointer-events:auto;
}
.wb-ground-grip.dragging{cursor:grabbing;}
.wb-ground-grip svg{width:11px;height:11px;stroke:currentColor;}

/* ---------------- sidebar ---------------- */
.wb-sidebar{
  width:236px;flex-shrink:0;overflow-y:auto;padding:16px 14px;
  border-inline-end:1px solid var(--glass-border);
  display:flex;flex-direction:column;gap:14px;
}
.wb-sidebar-toolbar{display:flex;flex-wrap:wrap;gap:6px;}
.wb-sidebar-divider{height:1px;background:var(--glass-border);}
.wb-layers-title{font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--text-faint);text-transform:uppercase;letter-spacing:var(--ls-wide);margin-bottom:6px;}
.wb-sidebar-toggle{
  position:fixed;top:calc(var(--header-h) + 12px);inset-inline-start:8px;z-index:410;width:38px;height:38px;border-radius:var(--radius-sm);
  border:1px solid var(--glass-border);background:var(--glass-bg-strong);color:var(--text);cursor:pointer;
  display:none;align-items:center;justify-content:center;backdrop-filter:blur(20px);
}
.wb-sidebar-toggle svg{width:17px;height:17px;stroke:currentColor;}

.wb-tool-btn{
  width:44px;height:44px;border-radius:var(--radius-md);border:none;background:var(--input-bg);color:var(--text);cursor:pointer;
  display:flex;align-items:center;justify-content:center;position:relative;transition:.15s;flex-shrink:0;
}
.wb-tool-btn svg{width:18px;height:18px;stroke:currentColor;}
.wb-tool-btn:hover{background:var(--glass-border);color:var(--accent);}
/* כלי שהוא מצב (בחירה מרובה): דלוק כל עוד המצב פעיל, ומונה את מה שנבחר */
.wb-tool-btn.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent);}
.wb-tool-btn.counted::after{
  content:attr(data-count);position:absolute;top:-4px;inset-inline-end:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:99px;
  background:var(--accent);color:var(--on-accent);font-size:var(--fs-caption);font-weight:var(--fw-medium);display:flex;align-items:center;justify-content:center;
}
.wb-tool-btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--on-accent);}
.wb-tool-btn.primary:hover{filter:brightness(1.08);}
.wb-tool-btn.danger{background:var(--red-soft);color:var(--red);}
.wb-tool-btn.danger:hover{background:var(--red);color:var(--on-accent);}
.wb-tool-btn.dirty::after{
  content:'';position:absolute;top:5px;inset-inline-end:5px;width:7px;height:7px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 0 2px var(--glass-bg-strong);
}
/* תווית הריחוף של כלי הסרגל. הטקסט שבתוך הכפתור (.wb-tt) נשאר לקוראי מסך
   בלבד; מה שרואים הוא .wb-tip — אלמנט אחד, צף מעל הכול, שמוצמד לכפתור ונשאר
   תמיד בתוך המסך (ראו showToolTip ב-whiteboard/tools.js). תווית בתוך הסרגל
   נחתכה בקצה המסך ובגבול הגלילה של הסרגל. */
.wb-tt{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.wb-tip{
  position:fixed;top:0;left:0;z-index:900;max-width:calc(100vw - 16px);
  background:var(--menu-bg);color:var(--text);font-size:var(--fs-caption);font-weight:var(--fw-medium);white-space:nowrap;
  padding:7px 11px;border-radius:var(--radius-sm);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);
  opacity:0;pointer-events:none;transition:opacity .15s;
}
.wb-tip.show{opacity:1;}

.wb-zoom-val{color:var(--text);font-weight:var(--fw-medium);text-transform:none;letter-spacing:var(--ls-normal);}
.wb-zoom-reset{width:100%;border:1px solid var(--glass-border);background:var(--input-bg);color:var(--text-soft);font-size:var(--fs-caption);font-weight:var(--fw-medium);padding:6px;border-radius:var(--radius-sm);cursor:pointer;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;}
.wb-zoom-steps{display:flex;gap:6px;}
.wb-zoom-steps .wb-zoom-reset{flex:1;margin-top:0;padding:8px 6px;}
.wb-zoom-reset svg{width:12px;height:12px;stroke:currentColor;flex-shrink:0;}
.wb-zoom-reset:hover{background:var(--glass-border);}

.wb-add-main-btn{
  display:flex;align-items:center;justify-content:center;gap:7px;margin:0 auto;width:100%;
  padding:10px 18px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-size:var(--fs-small);font-weight:var(--fw-bold);color:var(--on-accent);
  background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 8px 20px var(--accent-soft);font-family:inherit;
}
.wb-add-main-btn svg{width:14px;height:14px;stroke:currentColor;}
.wb-add-main-btn:hover{filter:brightness(1.07);}

.wb-seg2{display:flex;gap:3px;background:var(--input-bg);border-radius:var(--radius-sm);padding:3px;}
.wb-seg2-btn{flex:1;border:none;background:transparent;color:var(--text-faint);font-size:var(--fs-caption);font-weight:var(--fw-bold);padding:7px 4px;border-radius:var(--radius-sm);cursor:pointer;transition:.15s;font-family:inherit;
  display:flex;align-items:center;justify-content:center;gap:4px;}
.wb-seg2-btn svg{width:11px;height:11px;stroke:currentColor;}
.pc-tabs{margin:0 0 16px;max-width:360px;}
.wb-seg2-btn.active{background:var(--accent);color:var(--on-accent);}

.wb-type-lib{display:flex;flex-direction:column;gap:8px;}
.wb-type-card{
  border:1px solid var(--glass-border);background:var(--input-bg);border-radius:var(--radius-sm);padding:8px 10px;cursor:pointer;transition:.15s;
  width:100%;text-align:start;font-family:inherit;color:inherit;
}
.wb-type-card:hover{border-color:var(--accent);background:var(--accent-soft);}
.wb-type-card-top{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-small);gap:6px;}
.wb-type-card-top b{font-weight:var(--fw-bold);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wb-type-count{font-size:var(--fs-caption);color:var(--text-faint);font-family:var(--font-mono);flex-shrink:0;}
.wb-type-card-sub{font-size:var(--fs-caption);color:var(--text-faint);margin-top:2px;}

/* ---------------- table objects ---------------- */
.wb-table-obj{position:absolute;border-radius:var(--radius-md);overflow:hidden;min-width:280px;user-select:none;}
.wb-table-header{display:flex;align-items:center;gap:6px;padding:9px 10px;cursor:grab;border-bottom:1px solid var(--glass-border);}
.wb-table-header.dragging{cursor:grabbing;}
.wb-table-title{flex:1;font-weight:var(--fw-bold);font-size:var(--fs-small);color:var(--text);border:none;background:transparent;outline:none;min-width:0;}
.wb-table-body{padding:10px;max-height:280px;overflow:auto;}
.wb-table-body table th,.wb-table-body table td{white-space:nowrap;padding:7px 8px;font-size:var(--fs-small);}
.wb-table-icon-btn{width:22px;height:22px;border-radius:var(--radius-xs);border:none;background:transparent;color:var(--text-faint);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.55;transition:.15s;flex-shrink:0;}
.wb-table-icon-btn svg{width:13px;height:13px;stroke:currentColor;}
.wb-table-icon-btn:hover{opacity:1;background:var(--input-bg);color:var(--accent);}
.wb-table-icon-btn.danger:hover{background:var(--red-soft);color:var(--red);}
.wb-grip-sm{width:11px !important;height:11px !important;}

/* ---------------- schema editor ---------------- */
.schema-layer{border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:12px;margin-bottom:12px;}
.schema-layer-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.schema-layer-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.schema-layer-name{flex:1;min-width:0;border:none;background:transparent;font-weight:var(--fw-bold);font-size:var(--fs-body);color:var(--text);outline:none;border-bottom:1px dashed transparent;}
.schema-layer-name:focus{border-bottom-color:var(--accent);}
.schema-fields{display:flex;flex-direction:column;gap:6px;}
.schema-field-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.schema-field-row-wrap{display:flex;flex-direction:column;gap:6px;}
.schema-field-name{flex:1;min-width:110px;border:1px solid var(--glass-border);background:var(--input-bg);border-radius:var(--radius-sm);padding:6px 8px;font-size:var(--fs-small);color:var(--text);outline:none;}
.schema-field-row select{border:1px solid var(--glass-border);background:var(--input-bg);border-radius:var(--radius-sm);padding:6px 8px;font-size:var(--fs-caption);color:var(--text);outline:none;width:90px;flex-shrink:0;}
.schema-field-row select.role-select{width:112px;}
.schema-size-check{display:flex;align-items:center;gap:4px;font-size:var(--fs-caption);color:var(--text-faint);white-space:nowrap;flex-shrink:0;cursor:pointer;}
.schema-field-group-label{font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--text-faint);text-transform:uppercase;letter-spacing:var(--ls-wide);margin:10px 0 4px;}
.schema-sum-picker{display:flex;flex-wrap:wrap;gap:8px 14px;padding:8px 10px;background:var(--input-bg);border-radius:var(--radius-sm);}
.schema-sum-opt{display:flex;align-items:center;gap:5px;font-size:var(--fs-caption);color:var(--text-soft);white-space:nowrap;}

/* ---------------- rights check (בדיקת חריגה) ---------------- */
.rc-summary{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:var(--fs-body);font-weight:var(--fw-medium);}
.rc-summary.ok{background:var(--green-soft);color:var(--green);}
.rc-summary.over{background:var(--red-soft);color:var(--red);}
.rc-summary.none{background:var(--input-bg);color:var(--text-faint);font-weight:var(--fw-medium);}
.rc-summary svg{width:17px;height:17px;flex-shrink:0;}
.rc-group{margin-bottom:20px;}
.rc-group-title{font-size:var(--fs-caption);font-weight:var(--fw-bold);color:var(--accent);margin-bottom:8px;}
.rc-table{width:100%;border-collapse:collapse;font-size:var(--fs-small);}
.rc-table th{text-align:start;padding:7px 8px;font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:var(--ls-wide);color:var(--text-faint);border-bottom:1px solid var(--glass-border);white-space:nowrap;}
/* רוחב קבוע לעמודות המספרים, כדי שיתיישרו זו מתחת לזו בין הטבלאות של הקבוצות */
.rc-table th.num{width:92px;}
.rc-table th.num:last-child{width:128px;}   /* יתרה: מספר ויחידה באותה שורה */
.rc-table td.num{white-space:nowrap;}
.rc-table th.num,.rc-table td.num{text-align:end;font-family:var(--font-mono);font-variant-numeric:tabular-nums;}
.rc-table td{padding:8px;border-bottom:1px solid var(--glass-border);}
.rc-table tr:last-child td{border-bottom:none;}
.rc-table tr.over td{background:var(--red-soft);}
/* השוואת חלופות במסך הפרויקט: שורה היא קישור לתמהיל */
.tc-table .tc-row{cursor:pointer;}
.tc-table .tc-row:hover td,.tc-table .tc-row:focus-visible td{background:var(--accent-soft);}
.tc-table .tc-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.tc-table td.tc-over{color:var(--red);font-weight:var(--fw-bold);}
.tc-table td.tc-warn{color:var(--gold);font-weight:var(--fw-bold);}
/* בדיקת חניה: שורת פירוט (מדרגה, אורחים, נגישות), שורת סך ושדה ההזנה של המתוכנן */
.rc-table tr.rc-sub td{color:var(--text-faint);font-size:var(--fs-caption);padding-top:4px;padding-bottom:4px;}
.rc-table tr.rc-sub td:first-child{padding-inline-start:22px;}
.rc-table tr.rc-total td{font-weight:var(--fw-bold);border-top:1px solid var(--glass-border);}
.rc-table tr.rc-total .fl-var{font-weight:var(--fw-regular);}
.rc-input{
  width:76px;border:1px solid var(--glass-border);background:var(--input-bg);border-radius:var(--radius-sm);
  padding:5px 8px;font-size:var(--fs-small);font-family:var(--font-mono);color:var(--text);outline:none;text-align:center;
}
.rc-input:focus{border-color:var(--accent);}
.rc-bar{height:6px;border-radius:99px;background:var(--track);overflow:hidden;min-width:70px;}
.rc-bar span{display:block;height:100%;border-radius:99px;background:var(--green);transition:width .3s ease;}
.rc-bar.warn span{background:var(--gold);}
.rc-bar.over span{background:var(--red);}
.rc-delta{font-weight:var(--fw-bold);}
.rc-moved{color:var(--teal);}
.rc-delta.over{color:var(--red);}
.rc-delta.ok{color:var(--green);}
.rc-note{font-size:var(--fs-caption);color:var(--text-faint);line-height:var(--lh-relaxed);margin:0 0 14px;}
.rc-empty{padding:26px 10px;text-align:center;color:var(--text-faint);font-size:var(--fs-small);line-height:var(--lh-relaxed);}

/* ---------------- narrow screens ---------------- */
@media(max-width:860px){
  .wb-sidebar{
    position:absolute;inset-block:0;inset-inline-start:0;z-index:420;
    transform:translateX(100%);transition:transform var(--dur-enter) var(--ease-enter);
  }
  /* (כלל נוסף עם html[dir] שהיה כאן גבר על ‎.open‎, והסרגל לא נפתח במסך צר) */
  .wb-sidebar.open{transform:translateX(0);}
  /* כפתור הפתיחה נשאר מעל הסרגל הפתוח ומשמש גם לסגירה; תוכן הסרגל מתחיל מתחתיו */
  .wb-sidebar{padding-top:64px;}
  .wb-sidebar-toggle{display:flex;z-index:430;}
}
