/* NADLAN — design system (Bootstrap 5.3 RTL + custom).
   Numerals stay LTR via .num so prices/phones/areas read correctly in RTL. */
:root {
  --nad-primary: #0e7c66;     /* teal-green */
  --nad-primary-dark: #0a5c4c;
  --nad-accent: #2563eb;
  --nad-bg: #f3f6f5;
  --nad-card: #ffffff;
  --nad-ink: #1f2937;
  --nad-muted: #6b7280;
  --bs-primary: #0e7c66;
}

body {
  font-family: 'Heebo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  background: var(--nad-bg);
  color: var(--nad-ink);
}

/* Keep numbers/phones/prices left-to-right inside RTL text. */
.num { direction: ltr; unicode-bidi: isolate; display: inline-block; }

a { color: var(--nad-primary-dark); }

.btn-primary, .btn-success {
  --bs-btn-bg: var(--nad-primary); --bs-btn-border-color: var(--nad-primary);
  --bs-btn-hover-bg: var(--nad-primary-dark); --bs-btn-hover-border-color: var(--nad-primary-dark);
  --bs-btn-active-bg: var(--nad-primary-dark);
}
.btn-outline-primary {
  --bs-btn-color: var(--nad-primary); --bs-btn-border-color: var(--nad-primary);
  --bs-btn-hover-bg: var(--nad-primary); --bs-btn-hover-border-color: var(--nad-primary);
}
.text-success { color: var(--nad-primary-dark) !important; }

/* ── Navbar ── */
.nadlan-navbar {
  background: linear-gradient(110deg, var(--nad-primary), var(--nad-primary-dark));
  box-shadow: 0 2px 12px -4px rgba(0,0,0,.3);
}
.nadlan-navbar .navbar-brand { color: #fff; font-weight: 800; font-size: 1.25rem; }
.nadlan-navbar .nav-link { color: rgba(255,255,255,.85); font-weight: 600; border-radius: 9px; padding: .4rem .8rem; }
.nadlan-navbar .nav-link:hover { color: #fff; background: rgba(255,255,255,.12); }
.nadlan-navbar .nav-link.active { color: #fff; background: rgba(0,0,0,.24); }
.nadlan-navbar .nav-link:hover { background: rgba(255,255,255,.14); }
.nadlan-navbar .navbar-text { color: rgba(255,255,255,.9); }
/* מצב מנהל — סימון בולט (הוראת המייסד 03/08/2026): הפס העליון אדום + תגית,
   כדי שתמיד יהיה ברור באיזו הרשאה פועלים. */
.nadlan-navbar.admin-mode { background: linear-gradient(110deg, #b3261e, #7f1d1d); }
.admin-chip { background: #fff; color: #7f1d1d; font-weight: 800; border-radius: 999px;
  padding: .15rem .65rem; font-size: .8rem; white-space: nowrap; }
.nadlan-navbar .navbar-toggler { border-color: rgba(255,255,255,.4); }
.nadlan-crumbs { background:#fff; border-bottom:1px solid #e9e6df; }
.nadlan-crumbs .container-fluid { display:flex; align-items:center; flex-wrap:wrap; padding-top:9px; padding-bottom:9px; font-size:.95rem; color:#6b7280; }
.nadlan-crumbs a { color: var(--nad-accent); text-decoration:none; }
.nadlan-crumbs a:hover { text-decoration:underline; }
.nadlan-crumbs .cur { color: var(--nad-ink); font-weight:700; }
.nadlan-crumbs .sep { display:inline-block; border:solid #9aa3a0; border-width:0 3px 3px 0; padding:3px; transform:rotate(135deg); margin:0 9px; vertical-align:middle; }

/* ── Cards ── */
.card { border: 1px solid #e6ebe9; border-radius: 14px; box-shadow: 0 1px 3px rgba(16,40,34,.05); }
.card-header { background: #fff; border-bottom: 1px solid #eef2f1; font-weight: 700; }

/* ── Login ── */
.login-card { border-radius: 18px; }
.login-logo {
  width: 64px; height: 64px; margin: 0 auto; border-radius: 18px; font-size: 32px; color: #fff;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--nad-primary), var(--nad-primary-dark));
}

/* ── Stat cards (dashboard) ── */
.stat-card {
  border-radius: 16px; padding: 16px; color: #fff; position: relative; overflow: hidden;
  min-height: 104px; box-shadow: 0 8px 20px -12px rgba(16,40,34,.5);
}
.stat-card .stat-icon { position: absolute; left: 12px; top: 10px; font-size: 30px; opacity: .35; }
.stat-card .stat-num { font-size: 2rem; font-weight: 800; line-height: 1.1; }
.stat-card .stat-label { font-size: .85rem; opacity: .95; }
.stat-teal   { background: linear-gradient(135deg,#0c6a57,#084c3f); }
.stat-green  { background: linear-gradient(135deg,#15803d,#166534); }
.stat-blue   { background: linear-gradient(135deg,#1d4ed8,#1e40af); }
.stat-indigo { background: linear-gradient(135deg,#4f46e5,#4338ca); }
.stat-amber  { background: linear-gradient(135deg,#a35c07,#8a4d05); }
.stat-rose   { background: linear-gradient(135deg,#be123c,#9f1239); }

/* ── Property cards ── */
.prop-card { position: relative; display: flex; flex-direction: column; background: var(--nad-card);
  border: 1px solid #e6ebe9; border-radius: 14px; overflow: hidden; height: 100%;
  transition: transform .12s, box-shadow .12s; }
.prop-card:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -14px rgba(16,40,34,.4); }
.prop-thumb { position: relative; display: block; aspect-ratio: 4/3; background: #e9efed; overflow: hidden; flex: none; }
.prop-thumb img { width: 100%; height: 100%; object-fit: cover; }
.prop-thumb-empty { display: flex; align-items: center; justify-content: center; height: 100%;
  color: #b6c2bd; font-size: 2.4rem; background: #eef3f1; }
.prop-status { position: absolute; top: 8px; inset-inline-end: 8px; }
.prop-source { position: absolute; bottom: 8px; inset-inline-start: 8px; background: rgba(0,0,0,.5);
  color: #fff; text-transform: uppercase; font-size: .58rem; letter-spacing: .04em;
  padding: 2px 6px; border-radius: 5px; }
.prop-card-body { padding: 11px 12px; display: flex; flex-direction: column; gap: 5px; flex: 1; min-width: 0; }
.prop-card-main { text-decoration: none; color: inherit; display: block; min-width: 0; }
.prop-price { font-size: 1.16rem; font-weight: 800; color: var(--nad-primary-dark); line-height: 1.1; }
.prop-addr { font-weight: 600; color: var(--nad-ink); }
.prop-specs { font-size: .8rem; color: var(--nad-muted); }
.prop-broker { display: flex; align-items: center; gap: 6px; min-width: 0; font-size: .8rem; }
.prop-broker .badge { flex: none; }
.prop-broker-name { color: var(--nad-accent); font-weight: 600; flex: 1; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prop-meta { font-size: .7rem; color: #9aa4a0; margin-top: auto; padding-top: 2px; }
.prop-actions { display: flex; gap: 6px; }
.pa { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  height: 34px; border-radius: 9px; border: 1px solid #e2e8e5; text-decoration: none;
  font-size: .95rem; font-weight: 600; }
.pa-call { color: #0a5c4c; background: #eaf5f1; border-color: #cfe6dd; }
.pa-call:hover { background: var(--nad-primary); color: #fff; border-color: var(--nad-primary); }
.pa-wa { color: #1f9d55; }
.pa-wa:hover { background: #25d366; color: #fff; border-color: #25d366; }
.pa-view { color: var(--nad-muted); flex: 0 0 40px; }
.pa-view:hover { background: #eef3f1; color: var(--nad-ink); }
.pa-off { flex: 1; display: inline-flex; align-items: center; justify-content: center; height: 34px;
  border-radius: 9px; border: 1px dashed #dfe5e2; color: #b9c2be; font-size: .95rem; }
.prop-detail-img { aspect-ratio: 16/10; object-fit: cover; }

/* Mobile: horizontal list-cards fit ~3–4 per screen instead of one giant card.
   Body is kept compact so the side image stays a landscape ~4:3 crop (not a
   tall portrait strip that slices real-estate photos). */
@media (max-width: 575.98px) {
  .prop-card { flex-direction: row; }
  .prop-thumb { width: 43%; max-width: 172px; aspect-ratio: auto; align-self: stretch; }
  .prop-card-body { padding: 8px 10px; gap: 1px; }
  .prop-price { font-size: 1.02rem; }
  .prop-addr { font-size: .92rem; }
  .prop-specs { font-size: .76rem; }
  .prop-broker { font-size: .76rem; margin-top: 2px; }
  .prop-meta { display: none; }         /* freshness stays on desktop cards + table */
  .prop-actions { margin-top: 5px; }
  .pa { height: 32px; }
}

.prop-mini { display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 10px 12px; border: 1px solid #e6ebe9; border-radius: 12px; text-decoration: none; color: inherit; height: 100%; }
.prop-mini:hover { background: #f7faf9; }

/* ── Detail dl ── */
.detail-dl dt { color: var(--nad-muted); font-weight: 600; }
.detail-dl dd { margin-bottom: .35rem; }

/* ── Match cards ── */
.match-card { overflow: hidden; }
.match-score-bar { color: #fff; padding: 8px 14px; display: flex; align-items: baseline; gap: 8px; }
.match-score { font-size: 1.5rem; font-weight: 800; }
.match-breakdown { margin-top: 6px; }
.bd-row { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; font-size: .8rem; }
.bd-label { width: 56px; color: var(--nad-muted); }
.bd-track { flex: 1; height: 7px; background: #eef2f1; border-radius: 4px; overflow: hidden; }
.bd-fill { height: 100%; border-radius: 4px; }
.bd-val { width: 38px; text-align: start; color: var(--nad-muted); }

/* Compact match breakdown — icon + % chips instead of full-width bars */
.match-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.mchip {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: .72rem; font-weight: 700; padding: 2px 7px;
  border-radius: 11px; line-height: 1.5; cursor: default;
}
.mchip i { font-size: .82rem; }
.mchip-ok  { background: #e6f4ea; color: #1e7e34; }
.mchip-mid { background: #e8f0fe; color: #1967d2; }
.mchip-low { background: #fdecea; color: #c5221f; }

/* Activity timeline */
.timeline { list-style: none; padding: 0; margin: 0; }
.tl-item { display: flex; gap: 10px; padding: 9px 0; border-top: 1px solid #f0f2f1; }
.tl-item:first-child { border-top: 0; padding-top: 0; }
.tl-icon {
  flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%;
  background: #e8f1ed; color: #1b7f5f; display: inline-flex;
  align-items: center; justify-content: center; font-size: .9rem;
}
.tl-body { flex: 1; min-width: 0; }
.btn-xs { padding: 1px 7px; font-size: .72rem; line-height: 1.6; border-radius: 8px; }

/* Weekly calendar (day × hour grid) */
.cal-scroll { overflow-x: auto; }
.cal-grid { display: grid; min-width: 660px; }
.cal-gh { font-weight: 700; font-size: .78rem; text-align: center; line-height: 1.2;
  padding: 4px 2px; border-bottom: 2px solid #e3e7e6; }
.cal-gh.today { color: #1b7f5f; }
.cal-hr { font-size: .7rem; color: #5f6b66; padding: 5px 4px; text-align: start;
  border-top: 1px solid #f1f3f2; }
.cal-cell { border-top: 1px solid #f1f3f2; border-inline-start: 1px solid #f5f7f6;
  min-height: 30px; padding: 2px; }
.cal-cell.today { background: #f6fbf8; }
.cal-ev { display: block; background: #1b7f5f; color: #fff; border-radius: 6px;
  padding: 2px 6px; font-size: .74rem; margin-bottom: 3px; text-decoration: none; }
.cal-ev:hover { background: #14543f; color: #fff; }
.cal-time { font-weight: 800; }

/* Brochure select checkbox on match cards */
.brochure-check { position: absolute; top: 48px; inset-inline-end: 8px; z-index: 3;
  background: rgba(255,255,255,.92); border-radius: 6px; padding: 3px 5px; line-height: 0;
  box-shadow: 0 1px 3px rgba(0,0,0,.18); cursor: pointer; }
.brochure-check .form-check-input { width: 1.2rem; height: 1.2rem; margin: 0; cursor: pointer; }
.match-card:has(.brochure-check .form-check-input:checked) { outline: 2px solid #25d366; }

/* Favorite star on property cards */
.prop-fav { position: absolute; top: 10px; inset-inline-start: 10px; z-index: 4; margin: 0; }
.prop-fav button { border: 0; background: rgba(255,255,255,.92); color: #5a5a5a; border-radius: 50%;
  width: 34px; height: 34px; box-shadow: 0 1px 5px rgba(0,0,0,.22); cursor: pointer;
  display: flex; align-items: center; justify-content: center; font-size: 1.05rem; }
.prop-fav button:hover { background: #fff; }

/* ✏️ marker next to a hand-edited property value */
.manual-mark { color: #e0a800; font-size: .72rem; margin-inline-start: 4px; vertical-align: super; }

/* Public brochure page */
.broch-wrap { max-width: 920px; margin: 0 auto; padding: 16px 12px 40px; }
.broch-card img { width: 100%; height: 200px; object-fit: cover; }

/* Property location map */
.prop-map { width: 100%; height: 240px; border: 0; border-radius: 8px; display: block; }

/* ── Empty states ── */
.empty-state { color: var(--nad-muted); }
.empty-state > i { font-size: 2.6rem; color: #b6c2bd; }

/* Touch niceties */
.btn, .nav-link, a { touch-action: manipulation; }

/* ═══════════ Property detail — polished ═══════════ */
.back-link { color: var(--nad-muted); text-decoration: none; font-weight: 600; }
.back-link:hover { color: var(--nad-primary-dark); }

.detail-hero { border-radius: 18px; overflow: hidden; position: relative;
  box-shadow: 0 16px 38px -18px rgba(16,40,34,.45); background: #e9efed; }
.detail-hero img { width: 100%; aspect-ratio: 16 / 10; max-height: 440px;
  object-fit: cover; display: block; }
.detail-hero .prop-thumb-empty { aspect-ratio: 16 / 10; max-height: 440px;
  font-size: 3rem; }
.detail-hero .carousel-control-prev, .detail-hero .carousel-control-next { width: 9%; }
.detail-hero .carousel-control-prev-icon, .detail-hero .carousel-control-next-icon {
  background-color: rgba(0,0,0,.35); border-radius: 50%; padding: 14px; background-size: 50%; }
.img-count { position: absolute; bottom: 12px; inset-inline-start: 12px; z-index: 3;
  background: rgba(0,0,0,.6); color: #fff; padding: 3px 10px; border-radius: 999px;
  font-size: .78rem; font-weight: 600; }

.info-card { background: #fff; border: 1px solid #e8edeb; border-radius: 16px;
  padding: 18px 20px; box-shadow: 0 2px 10px -4px rgba(16,40,34,.1); }

.price-tag { font-size: 2.1rem; font-weight: 800; color: var(--nad-primary-dark); line-height: 1.05; }

.section-title { font-size: 1rem; font-weight: 700; color: var(--nad-ink);
  margin-bottom: 14px; display: flex; align-items: center; gap: 7px; }
.section-title i { color: var(--nad-primary); }

.desc-text { white-space: pre-line; color: #374151; line-height: 1.75; }

/* spec chips (rooms / size / floor / parking) */
.spec-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.spec-chip { flex: 1 1 0; min-width: 76px; text-align: center;
  background: linear-gradient(180deg,#f5f9f8,#eef4f2); border: 1px solid #e3eae7;
  border-radius: 13px; padding: 12px 6px; }
.spec-chip i { font-size: 1.25rem; color: var(--nad-primary); display: block; margin-bottom: 3px; }
.spec-chip .v { font-size: 1.2rem; font-weight: 800; line-height: 1; }
.spec-chip small { color: var(--nad-muted); font-size: .72rem; display: block; margin-top: 2px; }

.meta-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.meta-chips .badge { background: #eef3f1; color: #3a4a45; font-weight: 600; font-size: .8rem; }

/* additional-details grid */
.facts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 22px; }
@media (max-width: 575px) { .facts-grid { grid-template-columns: 1fr; } }
.fact { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0;
  border-bottom: 1px dashed #eef2f1; }
.fact .k { color: var(--nad-muted); }
.fact .val { font-weight: 700; }

/* amenities */
.amenities { display: flex; flex-wrap: wrap; gap: 8px; }
.amenity { display: inline-flex; align-items: center; gap: 5px; padding: 6px 13px;
  border-radius: 999px; font-size: .85rem; font-weight: 600; }
.amenity.has { background: #e7f6ef; color: #0a7a55; border: 1px solid #bfe8d6; }
.amenity.no { background: #f4f5f6; color: #aab2b9; text-decoration: line-through; border: 1px solid #edeef0; }

/* sticky contact panel */
.contact-panel { position: sticky; top: 82px; background: #fff; border: 1px solid #e8edeb;
  border-radius: 16px; padding: 20px; box-shadow: 0 10px 28px -16px rgba(16,40,34,.34); }
.contact-phone { font-size: 1.7rem; font-weight: 800; color: var(--nad-primary-dark); }
.contact-meta { font-size: .82rem; color: var(--nad-muted); }
.contact-meta .k { color: var(--nad-muted); }
.contact-meta .v { color: var(--nad-ink); font-weight: 600; }
@media (max-width: 991px) { .contact-panel { position: static; } }

/* ── Properties table view ── */
/* width:auto so the table hugs its content instead of stretching thin across a
   wide monitor (which bloated every column with empty gaps). */
.prop-table { font-size: .875rem; width: auto; max-width: 100%; line-height: 1.25; }
/* card hugs the compact table instead of a full-width card with a big empty side */
.prop-table-card { width: fit-content; max-width: 100%; }
.prop-table td, .prop-table th { vertical-align: middle; white-space: nowrap; }
.prop-table .col-thumb { width: 54px; }
.prop-table .col-addr { min-width: 168px; max-width: 300px; }
.prop-table .col-addr, .prop-table .col-addr * { white-space: normal; }
.prop-table .col-wrap, .prop-table .col-wrap * { white-space: normal; }
.prop-table .col-wrap { max-width: 230px; min-width: 150px; }
/* מפרסם: wrap a long agency name onto stacked lines (after ~3 words) that stay
   right-aligned with the first line, instead of one long line that widens the column. */
.prop-table .col-pub { max-width: 138px; text-align: start; }
.prop-table .col-pub, .prop-table .col-pub * { white-space: normal; }
.prop-table .col-pub .badge { white-space: nowrap; }
/* configurable columns */
.prop-table .pcol-thumb { width: 54px; }
.prop-table .pcol-publisher { max-width: 150px; text-align: start; }
.prop-table .pcol-publisher, .prop-table .pcol-publisher * { white-space: normal; }
.prop-table .pcol-city, .prop-table .pcol-neighborhood, .prop-table .pcol-street,
.prop-table .pcol-balcony_type { white-space: normal; max-width: 140px; }
.prop-table .price-changed { color: #dc2626 !important; }   /* מחיר אדום בשינוי */
/* שיוך — צ'יפ מקור: במאגר (מערכת) / נערך (מנוי ערך) / רשומה שלי (מנוי יצר) */
.chip-repo   { background: #f1f3f5; color: #6b7280; }
.chip-edited { background: #dbeafe; color: #1e40af; }   /* כחול */
.chip-mine   { background: #dcfce7; color: #166534; }   /* ירוק */
.chip-mymarket { background: #0e7c66; color: #fff; }    /* בשיווק שלי — טורקיז מלא */
.chip-republish { background: #f59e0b; color: #111; }   /* מודעה בשיווקך זוהתה — ענבר, דרוש טיפול */
/* שיוך — כל צ'יפ בשורה נפרדת (אחד מתחת לשני), מיושר להתחלה */
.prop-table .pcol-assign { white-space: normal; }
.prop-table .pcol-assign .badge { display: block; width: -moz-fit-content;
  width: fit-content; margin: 1px 0; font-size: .66rem; padding: .16em .5em;
  line-height: 1.3; }
/* actions (eye) column: first on the right, pinned during horizontal scroll */
.prop-table .pcol-sticky { position: sticky; inset-inline-start: 0; z-index: 2;
  background: var(--nad-card); border-inline-end: 1px solid #e6ebe9; }
.prop-table tbody tr:hover .pcol-sticky { background: #f2f6f5; }
/* wide table → a scroll region with a capped height so BOTH scrollbars stay
   reachable in the viewport (not at the bottom of a very tall 50-row table),
   plus a sticky header row and the sticky eye column pinned to the corner. */
/* הקיזוז 340px נכון למסך גבוה. בסיבוב הטלפון לרוחב 100vh הוא הצלע
   הקצרה, והחישוב נותן 72px — רצועה במקום טבלה. הרצפה מבטיחה שסיבוב
   תמיד מוסיף שטח-קריאה במקום לגזול אותו. */
.prop-table-card .table-responsive { max-height: max(58vh, calc(100vh - 340px));
  overflow: auto; }
.prop-table thead th { position: sticky; top: 0; z-index: 4;
  background: #fbfdfc; box-shadow: inset 0 -1px 0 #e6ebe9; }
.prop-table thead .pcol-sticky { z-index: 5; background: #fbfdfc; }
/* column chooser dropdown */
.cols-chooser .cols-list { max-height: 320px; overflow-y: auto; }
.cols-item { display: flex; align-items: center; gap: 8px; padding: 5px 6px;
  border-radius: 8px; cursor: grab; }
.cols-item:hover { background: #f1f5f4; }
.cols-item.dragging { opacity: .45; }
.cols-item .cols-grip { color: #b6c2bd; flex: none; cursor: grab; }
.cols-item .form-check { padding-inline-start: 1.6em; }
.table-thumb { width: 48px; height: 34px; object-fit: cover; border-radius: 6px; }
.table-thumb-empty { display: inline-flex; width: 48px; height: 34px;
  align-items: center; justify-content: center; background: #eef3f1;
  border-radius: 6px; color: #b6c2bd; }
.sort-th { color: inherit; text-decoration: none; white-space: nowrap; font-weight: 700; cursor: pointer; }
.sort-th:hover { color: var(--nad-primary-dark); }
.sort-th:hover .sort-hint { opacity: .85; }
.sort-th i { font-size: .8rem; }
.sort-hint { opacity: .3; font-size: .7rem; }
.view-toggle .btn.active { background: var(--nad-primary); color: #fff; border-color: var(--nad-primary); }
.agency-link { color: var(--nad-accent); }
/* filter selects display the field name as their empty option (label-inside);
   grey it while nothing is chosen so it reads like the inputs' placeholders */
.prop-filter select.form-select:has(option[value=""]:checked) { color: #6c757d; }

/* === mobile-contact-bar === */
.mobile-contact-bar{
  position:fixed; inset-inline:0; bottom:0; z-index:1030;
  display:flex; gap:.5rem; padding:.55rem .8rem;
  padding-bottom:calc(.55rem + env(safe-area-inset-bottom, 0px));
  background:rgba(255,255,255,.97);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  border-top:1px solid var(--bs-border-color, #dee2e6);
  box-shadow:0 -2px 12px rgba(0,0,0,.10);
}
.mobile-contact-bar .btn{ font-weight:600; padding-top:.55rem; padding-bottom:.55rem; }
@media (min-width:992px){ .mobile-contact-bar{ display:none !important; } }

/* === mobile-nav-and-calendar === */
/* Bigger nav-link tap targets inside the mobile hamburger menu (>= 44px) */
@media (max-width: 991.98px){
  .navbar-nav .nav-link{ padding-top: .6rem; padding-bottom: .6rem; }
}
/* Weekly calendar: gentle horizontal snap so days click into place when flicking on a phone */
.cal-scroll{ scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
.cal-scroll .cal-gh{ scroll-snap-align: start; }
/* === form section heads === */
.sec-head{
  display:flex; align-items:center; gap:.5rem;
  background:#e7f3ef; color:var(--nad-primary-dark);
  font-weight:700; font-size:.96rem;
  padding:.5rem .85rem; border-radius:9px; margin-top:.5rem;
  border-inline-start:4px solid var(--nad-primary);
}
.sec-head i{ color:var(--nad-primary); font-size:1.05rem; }
.prop-form .form-control, .prop-form .form-select{ border-radius:.55rem; }
.prop-form .form-label{ font-weight:600; color:var(--nad-ink); margin-bottom:.25rem; }
/* === price-history === */
.price-history summary{list-style:none}
.price-history summary::-webkit-details-marker{display:none}
/* === dense-property-form === */
.prop-form .form-label{font-size:.74rem;font-weight:600;margin-bottom:.07rem;color:var(--nad-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prop-form textarea.form-control{min-height:44px;white-space:normal}
.prop-form .sec-head{margin:0 0 .35rem;padding:.27rem .6rem;font-size:.85rem;border-radius:6px}
.prop-form .form-check{margin-bottom:0}
.prop-form .form-check-label{font-size:.8rem}
.prop-form .fields > [class*="col-"]{margin-bottom:.4rem}
@media (min-width:992px){
  .prop-form .form-control,.prop-form .form-select{padding:.22rem .45rem;font-size:.83rem;min-height:30px;border-radius:6px}
  .prop-form .secs{column-count:3;column-gap:1rem}
  .prop-form .form-sec{break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 .7rem;display:flow-root}
  .prop-form .form-sec > .col-12{padding:0;max-width:none}
  .prop-form .form-sec .fields{display:grid;grid-template-columns:1fr 1fr;gap:.3rem .5rem;align-items:end}
  .prop-form .form-sec .fields > *{width:auto!important;max-width:none!important;flex:initial!important;padding:0!important;margin:0!important}
  .prop-form .form-sec .fields > .col-12{grid-column:1/-1}
}
/* === form-layout-edit === */
.prop-form .secs.layout-edit{column-count:1!important}
.prop-form .secs.layout-edit .form-sec{border:2px dashed var(--nad-primary);border-radius:8px;cursor:grab;background:#f3faf7;padding:.25rem .45rem;margin-bottom:.5rem}
.prop-form .secs.layout-edit .form-sec .sec-head{cursor:grab}
.prop-form .form-sec.dragging{opacity:.45}
/* === autosave-pill === */
#autosaveStatus{position:fixed;bottom:1rem;left:1rem;z-index:1050;background:#fff;border:1px solid var(--bs-border-color,#dee2e6);border-radius:20px;padding:.25rem .85rem;box-shadow:0 2px 10px rgba(0,0,0,.13);font-size:.82rem;font-weight:600;opacity:0;transition:opacity .2s;pointer-events:none}
#autosaveStatus.show{opacity:1}
#autosaveStatus.ok{color:#0a5c4c}
#autosaveStatus.err{color:#b00020}
/* === compact-empty-fields === */
.prop-form .cf-hidden{display:none!important}
.prop-form .form-sec.cf-sec-hidden{display:none!important}
.prop-form .cf-add{font-size:.78rem;padding:.05rem .2rem;text-decoration:none;margin-bottom:.2rem}
.prop-form .cf-add:hover{text-decoration:underline}
/* === detail-collapsible === */
details.info-card > summary.section-title{cursor:pointer;list-style:none;user-select:none}
details.info-card > summary.section-title::-webkit-details-marker{display:none}
details.info-card > summary.section-title::after{content:"+";float:left;font-weight:700;opacity:.45}
details.info-card[open] > summary.section-title::after{content:"\2013"}
details.info-card:not([open]) > summary.section-title{margin-bottom:0}
/* === textarea-autogrow === */
.prop-form textarea.form-control{resize:none;overflow:hidden}
/* === section-order-number === */
.prop-form .cf-ord{width:56px;text-align:center;font-weight:700;padding:.12rem .2rem}
.prop-form .secs.layout-edit .form-sec{position:relative}
.prop-form .secs.layout-edit .cf-ord{position:absolute;top:.3rem;left:.3rem;z-index:3;background:#fff;border-color:var(--nad-primary)}

.rec-wrap{max-width:1240px;margin:0 auto}

/* ── סטנדרט צפיפות אחיד למסכי העבודה (דסקטופ): טקסט 14px כמו בלשונית
   ניהול; במובייל נשאר 16px (מונע זום-אוטומטי של iOS בשדות קלט).
   דפים ציבוריים (חתימה/ברושור/מצג גיוס) אינם טוענים קובץ זה ונשארים
   בגודל מלא בכוונה. .prop-form שומר על הכללים הצפופים שלו (ספציפיות). ── */
@media (min-width:768px){
  .form-control:not(.form-control-lg),.form-select:not(.form-select-lg){font-size:.875rem;padding:.3rem .55rem;min-height:calc(1.5em + .6rem + 2px)}
  textarea.form-control{min-height:auto}
  .form-label{font-size:.85rem;margin-bottom:.2rem;color:var(--bs-secondary-color,#5c6663)}
  .btn-check+.btn{font-size:.85rem}
  .input-group-text{font-size:.875rem}
  .card.card-body,.card>.card-body{padding:.75rem .9rem}
  .card>.card-header{padding:.5rem .9rem;font-size:.9rem}
  .prop-table>tbody>tr>td,.prop-table>thead>tr>th{padding:.28rem .5rem}
  .form-text{font-size:.78rem}
}

/* ── הוספה מהירה (השראת אנשי הקשר של גוגל) ── */
.qa-wrap{max-width:620px;margin:0 auto}
.qa-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:.5rem}
.qa-avatar{width:84px;height:84px;border-radius:50%;background:#e7f1ff;color:#0d6efd;display:flex;align-items:center;justify-content:center;font-size:2.3rem;margin:0 auto}
.qa-card{padding:1.1rem 1.2rem}
.qa-row{display:flex;gap:.8rem;margin-bottom:.95rem}
.qa-row:last-child{margin-bottom:0}
.qa-ic{width:30px;min-width:30px;display:flex;align-items:flex-start;justify-content:center;color:#8a929a;font-size:1.05rem;padding-top:.45rem}
.qa-fields{flex:1;display:flex;flex-direction:column;gap:.5rem;min-width:0}
.qa-add{font-size:.83rem;text-decoration:none;align-self:flex-start}

/* ── שורות אנשים ברשומת נכס (מעורבים/משווקים) — שפת גוגל ── */
.qa-plist{display:flex;flex-direction:column}
.qa-prow{display:flex;align-items:center;gap:.7rem;padding:.45rem .15rem;border-bottom:1px solid rgba(0,0,0,.08)}
.qa-prow:last-child{border-bottom:0}
.qa-pav{width:34px;min-width:34px;height:34px;border-radius:50%;background:#e7f1ff;color:#0d6efd;display:flex;align-items:center;justify-content:center;font-size:1rem}
.qa-pinfo{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:.15rem .5rem;align-items:center}
.qa-pact{display:flex;gap:.25rem;align-items:center;flex-wrap:wrap}

/* בלוני העזרה (ריחוף) */
.tooltip{--bs-tooltip-max-width:280px}
.tooltip .tooltip-inner{text-align:right}

/* ── חוק רוחב-לפי-תוכן, כלל-מערכתי: שדה "קצת" ארוך מהטקסט שלו ──
   ברירת מחדל טקסט 260px, ואז דריסות לפי סוג (סדר = הכרעה בתיקו):
   מספר 90 · טלפון 180 · תאריך 160 · תאריך+שעה 205 · כסף 130 ·
   חיפוש 340 · רשימות ערים/רחובות מלא · URL/מפתחות 420. סגנון inline
   נקודתי תמיד גובר; מובייל נשאר מלא-רוחב. */
@media(min-width:768px){
  input.form-control{max-width:260px}
  input.form-control.num{max-width:90px}
  input.form-control[inputmode="tel"]{max-width:180px}
  input.form-control[type="date"]{max-width:160px}
  input.form-control[type="datetime-local"]{max-width:205px}
  input.form-control[type="file"]{max-width:100%}
  input.form-control[name="price"],input.form-control[name="price_min"],
  input.form-control[name="price_max"],input.form-control[name="mortgage_balance"],
  input.form-control[name="arnona"],input.form-control[name="vaad_bayit"],
  input.form-control[name="offer_amount"],input.form-control[name*="budget"]{max-width:130px}
  input.form-control[name="q"]{max-width:340px}
  input.form-control[name="cities"],input.form-control[name="neighborhoods"],
  input.form-control[name="streets"],input.form-control[name="excluded_neighborhoods"]{max-width:100%}
  input.form-control[name*="url"],input.form-control[name*="api"]{max-width:420px}
  .input-group>input.form-control{max-width:none}
  select.form-select{max-width:220px}
  .input-group>select.form-select{max-width:none}
}

/* נכס פעיל שהמודעה שלו ירדה מהרשת. העסקה חיה — אבל הפער בין המאגר
   לפרסום חייב להיראות בכל מסך שבו הנכס מופיע, ולא רק ברשומה שלו. */
tr.offweb > td { background: var(--danger-soft, #fdeaea); }
tr.offweb > td:first-child { box-shadow: inset 3px 0 0 var(--danger, #b3261e); }
.offweb-txt { color: var(--danger, #b3261e); }
.offweb-badge {
  background: var(--danger-soft, #fdeaea);
  color: var(--danger, #b3261e);
  border: 1px solid var(--danger, #b3261e);
  font-weight: 600;
}

/* ── סינון הנכסים (pf-) ────────────────────────────────────────────────
   נמדד בנייד לפני השינוי: 22 פקדים ללא תוויות שנשברו ל-12 שורות בפאנל
   בן 442px, ו-placeholder שנעלם ברגע שמקלידים. מכאן: שורת-חיפוש קבועה,
   צ׳יפים של מה שמסנן כרגע, ופאנל בשש קבוצות שנפתח לפי צורך — בנייד
   כמגירה עם כפתור-תוצאות דביק. */
.pf-top { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; }
.pf-top .pf-q { flex: 3 1 220px; min-width: 160px; }
.pf-top .pf-pid { flex: 0 1 110px; min-width: 88px; }
.pf-top .pf-go, .pf-top .pf-more { flex: 0 0 auto; white-space: nowrap; }
/* «חפש בכל המערכת» ליד «סינון הרשימה» (06/10): לינק קטן, לא כפתור נוסף. */
.pf-top .pf-all { flex: 0 0 auto; white-space: nowrap; padding: .25rem .1rem; }

.pf-chips { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .5rem; align-items: center; }
.pf-chip { display: inline-flex; align-items: center; gap: .35rem; text-decoration: none;
  background: var(--bs-secondary-bg, #e9ecef); color: var(--bs-body-color, #212529);
  border: 1px solid var(--bs-border-color, #dee2e6); border-radius: 999px;
  padding: .12rem .6rem; font-size: .78rem; line-height: 1.5; max-width: 100%; }
.pf-chip:hover { background: var(--bs-warning-bg-subtle, #fff3cd); border-color: #ffc107; }
.pf-chip .pf-x { color: #6c757d; font-weight: 700; }
.pf-chip:hover .pf-x { color: #a13; }
.pf-clear { font-size: .78rem; text-decoration: none; margin-inline-start: .25rem; }

.pf-panel { display: none; margin-top: .6rem; }
.pf-panel.show { display: block; }
.pf-head { display: none; }
/* שש קבוצות זו לצד זו במחשב — אותו מסך, אבל עם כותרות וסריקה בעין. */
/* מספר-עמודות קבוע ולא auto-fit: קבוצת-הסטאטוס מתוחה "1 / -1", וזה
   הכריח את הרשת להחזיק 8 עמודות בזמן שיש 5 קבוצות — שלוש עמודות ריקות
   (690px) נשארו לבנות משמאל. נמדד במסך החי.
   align-items:start — בלי זה כל קבוצה נמתחת לגובה הארוכה בשורה. */
.pf-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .5rem .9rem; align-items: start; }
@media (min-width: 768px)  { .pf-body { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .pf-body { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1500px) { .pf-body { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.pf-grp { border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .5rem;
  padding: .35rem .6rem .5rem; margin: 0; min-width: 0; }
.pf-grp > legend { float: none; width: auto; font-size: .78rem; font-weight: 600;
  color: #6c757d; padding: 0 .3rem; margin: 0; }
.pf-grp-wide { grid-column: 1 / -1; }
.pf-f { margin-top: .35rem; min-width: 0; }
.pf-f > label { display: block; font-size: .72rem; color: #6c757d; margin-bottom: .1rem; }
.pf-pair > div { display: flex; gap: .3rem; }
.pf-pair > div > input { flex: 1 1 0; min-width: 0; }
/* גם כאן: ארבע רשימות-סימון באורכים 7/2/2/3 נמתחו כולן ל-206px, ותחת
   הקצרות נשאר חלל. align-items:start נותן לכל אחת את גובהה. */
.pf-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .2rem .8rem; align-items: start; }
.pf-sub { font-size: .72rem; font-weight: 600; color: #6c757d; margin: .3rem 0 .1rem; }
.pf-foot { display: flex; gap: .4rem; margin-top: .6rem; }

/* ── נייד: מגירה, לא רשימה נגללת בתוך הדף ───────────────────────────── */
@media (max-width: 767.98px) {
  .pf-panel.show { position: fixed; inset: 0; z-index: 1080; margin: 0;
    background: var(--bs-body-bg, #fff); display: flex; flex-direction: column; }
  .pf-head { display: flex; align-items: center; justify-content: space-between;
    padding: .6rem .8rem; border-bottom: 1px solid var(--bs-border-color, #dee2e6); }
  .pf-body { display: block; overflow-y: auto; flex: 1 1 auto; padding: .6rem .8rem; }
  .pf-grp { margin-bottom: .5rem; }
  .pf-foot { position: sticky; bottom: 0; margin: 0;
    padding: .6rem .8rem calc(.6rem + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--bs-border-color, #dee2e6);
    background: var(--bs-body-bg, #fff); }
  body.pf-lock { overflow: hidden; }
}

/* שורת-הפעולות של הנכסים: בנייד חמש פעולות נדירות מתקפלות ל"עוד";
   במחשב display:contents מחזיר אותן לשורה אחת, בלי DOM כפול. */
.tb-extra { display: contents; }
.tb-extra > form { display: inline; }
@media (max-width: 767.98px) {
  .tb-actions { width: 100%; }
  .tb-extra { display: none; width: 100%; }
  .tb-extra.show { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem;
    margin-bottom: .1rem; }
  .tb-extra > form { display: block; }
  .tb-extra > a, .tb-extra > button { width: 100%; }
}

/* ── סינון-נכסים בצ׳יפים (fc-) ─────────────────────────────────────────
   הכרעת המייסד 18/08/2026 אחרי השוואת מוקאפים. הפאנל בוטל: כל סינון הוא
   כפתור, ולחיצה פותחת חלונית עם אותו שדה בלבד. לפני כן: פאנל בן 606px
   ובתוכו 573px חלל ריק. */
.fchips { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .5rem;
  align-items: center; }
.fc { position: relative; display: inline-flex; align-items: center; }
.fc > button { border: 1px solid var(--bs-border-color, #dee2e6);
  background: var(--bs-body-bg, #fff); color: var(--bs-body-color, #212529);
  border-radius: 999px; padding: .18rem .7rem; font: inherit; font-size: .8rem;
  line-height: 1.5; cursor: pointer; white-space: nowrap; display: inline-flex;
  align-items: center; gap: .3rem; }
.fc > button:hover { border-color: #0d6efd; color: #0d6efd; }
.fc > button .cv { color: #6c757d; font-size: .7rem; }
.fc.on > button { background: var(--bs-warning-bg-subtle, #fff3cd);
  border-color: #ffc107; font-weight: 600; padding-inline-end: 1.5rem; }
.fc.on > button .cv { color: #997404; }
/* ✕ יושב בתוך הצ׳יפ ולא כצ׳יפ נפרד: כיבוי ופתיחה-לעריכה הם שתי פעולות
   על אותו דבר, ושתי כפתורים נפרדים היו מכפילים את שורת-הצ׳יפים. */
.fc-x { position: absolute; inset-inline-end: .35rem; top: 50%;
  transform: translateY(-50%); color: #997404; font-size: .72rem;
  font-weight: 700; text-decoration: none; line-height: 1; padding: .15rem; }
.fc-x:hover { color: #a13; }

.fc-pop { position: absolute; inset-inline-start: 0; top: calc(100% + .35rem);
  z-index: 1070; min-width: 230px; background: var(--bs-body-bg, #fff);
  border: 1px solid var(--bs-border-color, #dee2e6); border-radius: .65rem;
  box-shadow: 0 .5rem 1.4rem rgba(0,0,0,.16); padding: .6rem .7rem; display: none; }
.fc-pop.wide { min-width: 420px; }
.fc.open .fc-pop { display: block; }
.fc-t { font-size: .74rem; font-weight: 700; color: #6c757d; margin-bottom: .35rem; }
.fc-l { display: block; font-size: .7rem; color: #6c757d; margin: .35rem 0 .1rem; }
.fc-pop .form-control, .fc-pop .form-select { font-size: .82rem; }
.fc-duo { display: flex; gap: .3rem; }
.fc-duo > input { flex: 1 1 0; min-width: 0; }
.fc-go { width: 100%; margin-top: .5rem; }
.fc-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .1rem .7rem; align-items: start; }
.fc-sub { font-size: .7rem; font-weight: 700; color: #6c757d; margin: .3rem 0 .1rem; }
.fc-pop .form-check { margin-bottom: .05rem; }
.fc-pop .form-check-label { font-size: .78rem; }

/* בנייד החלונית היא יריעה מלמטה: חלונית צפה ליד צ׳יפ בשורה שנייה
   נפתחת מחוץ למסך. */
@media (max-width: 575.98px) {
  .fc-pop, .fc-pop.wide { position: fixed; inset: auto 0 0 0; min-width: 0;
    border-radius: 1rem 1rem 0 0; max-height: 76vh; overflow-y: auto;
    padding: .9rem 1rem calc(.9rem + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -.5rem 1.6rem rgba(0,0,0,.22); }
  .fc.open .fc-pop::before { content: ""; display: block; width: 38px; height: 4px;
    border-radius: 2px; background: var(--bs-border-color, #dee2e6);
    margin: -.3rem auto .6rem; }
  .fc-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.fc-lock { overflow: hidden; }
}

/* בנייד עשרה צ׳יפים נשברים לשלוש שורות ודוחקים את הרשימה למטה — הם
   מתקפלים מאחורי "חיפוש מתקדם". במחשב הם נשארים גלויים תמיד. */
@media (max-width: 575.98px) {
  .fchips { display: none; }
  .fchips.show { display: flex; }
}
@media (min-width: 576px) { .fc-toggle { display: none !important; } }


/* ── מצב כהה ─────────────────────────────────────────────────────────
   כחול-צפחה ולא סגול: המותג ירוק-טורקיז, וירוק+סגול-רווי "רועדים" זה
   מול זה במסך צפוף-נתונים. הרקע כחלחל ולא שחור, והכרטיסים מדרגה
   בהירה יותר — כך כרטיס נקרא ככרטיס ולא כחור בדף.
   שני שערים: בחירה מפורשת (data-theme) ו"לפי המערכת". */
:root[data-theme="dark"] {
  --nad-bg: #0b1020;          /* צפחה כהה, גוון כחול */
  --nad-card: #f7f9fc;        /* דרגה מעל הרקע */
  --nad-ink: #16203a;
  --nad-muted: #5b6b83;
  --nad-primary: #0e7c66;     /* הטורקיז מואר, כדי לשמור ניגודיות */
  --nad-primary-dark: #0a5c4c;
  --nad-accent: #7aa2f7;
  --nad-line: #dbe3ee;
  color-scheme: dark;
}
:root[data-theme="dark"] body { background: var(--nad-bg); color: var(--nad-ink); }
:root[data-theme="dark"] .card,
:root[data-theme="dark"] .list-group-item,
:root[data-theme="dark"] .dropdown-menu,
:root[data-theme="dark"] .modal-content,
:root[data-theme="dark"] .form-control,
:root[data-theme="dark"] .form-select,
:root[data-theme="dark"] .input-group-text {
  background-color: var(--nad-card);
  color: var(--nad-ink);
  border-color: var(--nad-line);
}
:root[data-theme="dark"] .table { --bs-table-bg: transparent; color: var(--nad-ink); }
:root[data-theme="dark"] .table > :not(caption) > * > * {
  background-color: transparent; color: var(--nad-ink);
  border-color: var(--nad-line);
}
:root[data-theme="dark"] .table-hover > tbody > tr:hover > * {
  background-color: #eaf0f8; color: var(--nad-ink);
}
:root[data-theme="dark"] .bg-white,
:root[data-theme="dark"] .bg-light { background-color: var(--nad-card) !important; }
:root[data-theme="dark"] .border,
:root[data-theme="dark"] .border-top,
:root[data-theme="dark"] .border-bottom { border-color: var(--nad-line) !important; }
:root[data-theme="dark"] .nav-tabs { border-color: var(--nad-line); }
:root[data-theme="dark"] .nav-tabs .nav-link { color: var(--nad-muted); }
:root[data-theme="dark"] .nav-tabs .nav-link.active {
  background: var(--nad-card); color: var(--nad-ink);
  border-color: var(--nad-line) var(--nad-line) var(--nad-card);
}
:root[data-theme="dark"] .btn-outline-secondary { color: var(--nad-muted); border-color: var(--nad-line); }
/* הסרגל העליון יושב על ירוק-המותג ואינו כרטיס. כלל-הקישורים הכללי
   צבע אותו בירוק-כהה על ירוק — יחס-ניגודיות 2.65, מתחת לסף AA, וכל
   הקישורים נעלמו חוץ מהפעיל. אותה טעות בדיוק תוקנה בסרגל של /lab
   ולא הגיעה לכאן: שני סרגלים, אח אחד נשכח.
   06/10: גם פגישה בלוח-השבוע (.cal-ev) היא קישור על ירוק (#1b7f5f) - הכלל
   הזה גבר על הלבן שלה ונתן ירוק-כהה על ירוק, יחס 1.60. היא שומרת את הלבן. */
:root[data-theme="dark"] a:not(.navbar a):not(.sitebar a):not(.nadlan-crumbs a):not(.nav-link):not(.navbar-brand):not(.btn):not(.dropdown-item):not(.cal-ev) {
  color: var(--nad-primary-dark);
}
:root[data-theme="dark"] .navbar a,
:root[data-theme="dark"] .navbar .nav-link,
:root[data-theme="dark"] .navbar-brand,
:root[data-theme="dark"] .navbar .dropdown-toggle { color: #fff; }
:root[data-theme="dark"] .navbar .nav-link:hover { color: #eafff7; }
/* אבל לא כפתור על רקע בהיר: btn-light הוא לבן-שבור, וכלל-הלבן הפך
   אותו ללבן-על-לבן (יחס 1.03) — שלושת כפתורי «שלי» נעלמו לגמרי.
   הם שומרים את הטקסט הכהה של הגרסה הבהירה. */
:root[data-theme="dark"] .navbar .btn-light,
:root[data-theme="dark"] .navbar .btn-light:hover { color: #16203a; }
/* וגם התפריט-הנפתח: הוא פאנל בהיר, אבל הוא יושב **בתוך** .navbar
   ולכן כלל-הלבן צבע את פריטיו בלבן — «התנתק» ו«החשבון שלי» נעלמו
   לגמרי (יחס 1.13). פאנל בהיר = טקסט כהה, כמו כל כרטיס. */
:root[data-theme="dark"] .navbar .dropdown-menu a,
:root[data-theme="dark"] .navbar .dropdown-item,
:root[data-theme="dark"] .dropdown-menu .dropdown-item { color: #16203a; }
:root[data-theme="dark"] .dropdown-item:hover,
:root[data-theme="dark"] .dropdown-item:focus {
  background-color: #eaf0f8; color: #16203a;
}
:root[data-theme="dark"] input::placeholder, :root[data-theme="dark"] textarea::placeholder {
  color: #93a1b5;
}
/* מתג-הערכה בכותרת */
.themebtn { background: transparent; border: 0; color: inherit; font-size: 1.05rem;
  line-height: 1; padding: 4px 8px; cursor: pointer; opacity: .85 }
.themebtn:hover { opacity: 1 }

:root[data-theme="dark"] .card,
:root[data-theme="dark"] .table{border:1px solid var(--nad-line)}
:root[data-theme="dark"] .card{box-shadow:0 1px 0 rgba(0,0,0,.4)}

/* אפשרות ב — מה שמצויר ישירות על הרקע הכהה (פירורי-לחם, כותרת-דף)
   חייב להיות בהיר; מה שבתוך כרטיס נשאר בדיוק כמו במצב הבהיר, וזה מה
   ששומר על צבעי לשונית-הפורטל. */
:root[data-theme="dark"] .breadcrumb,
:root[data-theme="dark"] .breadcrumb a,
:root[data-theme="dark"] :is(h1,h2,h3,h4,h5,h6):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf])):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf]) *) { color: #dbe4f0; }
:root[data-theme="dark"] .card { box-shadow: 0 2px 10px rgba(0,0,0,.45); }

/* ── טקסט על הרקע הכהה מול טקסט בתוך כרטיס ─────────────────────────
   אותו טוקן שימש לשניהם: --nad-muted (#5b6b83) נכון בתוך כרטיס לבן
   אבל נמדד 3.49 על הרקע הכהה — מתחת לסף AA. לכן שתי דרגות: בהיר על
   הרקע, כהה בתוך כרטיס. */
:root[data-theme=dark] body { color: #c7d2e3; }
:root[data-theme=dark] :is(.text-muted,small,.form-text,.nav-tabs .nav-link):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf])):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf]) *) {
  color: #9aa8bd !important;
}
/* קבוצת-המשטחים הבהירים — מנויה פעם אחת ומשמשת את כל הכללים הבאים */
:root[data-theme=dark] :is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf]) { color: var(--nad-ink); }
:root[data-theme=dark] :is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf],.badge,.navbar) :is(.text-muted,small,.form-text) {
  color: #4f5c72 !important;
}

/* כפתורי-מתאר על הרקע הכהה: הגוון הרווי נועד לרקע לבן. על רקע
   כמעט-שחור הווריאנט הבהיר של אותו גוון הוא הקריא, ובריחוף
   המילוי מתהפך לטקסט כהה. */
:root[data-theme="dark"] .btn-outline-primary { color: #6ecfb6; border-color: #6ecfb6; }
:root[data-theme="dark"] .btn-outline-success { color: #7ddba4; border-color: #7ddba4; }
:root[data-theme="dark"] .btn-outline-warning { color: #f0c05a; border-color: #f0c05a; }
:root[data-theme="dark"] .btn-outline-danger  { color: #f08b86; border-color: #f08b86; }
:root[data-theme="dark"] .btn-outline-info    { color: #7cc4e8; border-color: #7cc4e8; }
:root[data-theme="dark"] .btn-outline-secondary { color: #b3bfd0; border-color: #b3bfd0; }
:root[data-theme="dark"] .btn-outline-dark    { color: #c7d2e3; border-color: #c7d2e3; }
/* בתוך כרטיס/טבלה/תפריט המשטח בהיר — הגוון הרווי חוזר, ישירות
   מהמשתנה שבוטסטראפ מציב על הכפתור. */
:root[data-theme="dark"] :is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf]) [class*="btn-outline-"]:not(:hover):not(.active) {
  color: var(--bs-btn-color); border-color: var(--bs-btn-border-color);
}
/* בריחוף המילוי הוא הגוון הרווי: לבן נכון עליו, למעט הגוונים הבהירים. */
:root[data-theme="dark"] [class*="btn-outline-"]:hover,
:root[data-theme="dark"] [class*="btn-outline-"]:focus,
:root[data-theme="dark"] [class*="btn-outline-"].active { color: #fff; }
:root[data-theme="dark"] .btn-outline-warning:hover,
:root[data-theme="dark"] .btn-outline-warning.active,
:root[data-theme="dark"] .btn-outline-info:hover,
:root[data-theme="dark"] .btn-outline-info.active,
:root[data-theme="dark"] .btn-outline-light:hover,
:root[data-theme="dark"] .btn-outline-light.active { color: #16203a; }

/* כפתורים מלאים: הטקסט נקבע לפי המילוי, לא לפי הרקע שמאחוריו. */
:root[data-theme="dark"] .btn-primary,
:root[data-theme="dark"] .btn-success,
:root[data-theme="dark"] .btn-danger,
:root[data-theme="dark"] .btn-dark,
:root[data-theme="dark"] .btn-secondary { color: #fff; }
:root[data-theme="dark"] .btn-warning,
:root[data-theme="dark"] .btn-info,
:root[data-theme="dark"] .btn-light { color: #16203a; }

/* צ׳יפים דהויים בטבלאות ובכרטיסים */
:root[data-theme="dark"] .chip-repo, :root[data-theme="dark"] .badge.bg-light { color: #4d5462 !important; }

/* חצי-הסינון בשורת-הצ׳יפים היו #adb5bd על לבן (2.07) — פגם שקיים
   גם במצב הבהיר, כי הצ׳יפ לבן בשניהם. */

/* טבלה היא משטח-תוכן: במצב הכהה היא מקבלת את משטח-הכרטיס הבהיר,
   אחרת תא שאינו עטוף בכרטיס מצייר דיו כהה על רקע כהה. */
:root[data-theme="dark"] .table {
  --bs-table-bg: #f7f9fc;
  --bs-table-color: #16203a;
  --bs-table-border-color: #dbe3ee;
  --bs-table-striped-bg: #eef2f8;
  --bs-table-striped-color: #16203a;
  --bs-table-hover-bg: #eaf0f8;
  --bs-table-hover-color: #16203a;
  --bs-table-active-bg: #e2eaf5;
  --bs-table-active-color: #16203a;
}
:root[data-theme="dark"] .table-responsive:not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf]) *) {
  background: #f7f9fc; border-radius: 12px;
  box-shadow: 0 2px 10px rgba(0,0,0,.45);
}
/* טקסט-עזר בתוך טבלה יושב על משטח בהיר */
:root[data-theme="dark"] .table .small,
:root[data-theme="dark"] .table small,
:root[data-theme="dark"] .table .num { color: inherit; }

/* ── פגמים שאינם תלויי-מצב (קיימים גם בתצוגה הבהירה) ───────────────
   bg-info/bg-warning/bg-light הם מילויים בהירים; לבן עליהם נמדד
   1.96. הטקסט נקבע לפי המילוי, לא לפי ברירת-המחדל של badge.
   ו-btn-outline-secondary (#6c757d) נמדד 3.61 על התראה ירקרקה. */
.badge.bg-info, .badge.bg-warning, .badge.bg-light,
.badge.text-bg-info, .badge.text-bg-warning, .badge.text-bg-light { color: #16203a !important; }
.btn-outline-secondary { --bs-btn-color: #4d5a6e; --bs-btn-border-color: #8c98a8; }

/* אין כאן כלל ל-`.sitebar`, ובכוונה. `.sitebar` קיים אך ורק תחת
   app/templates/lab/, ואף מסמך שם אינו טוען את הקובץ הזה — מסכי
   /lab הם מסמכים עצמאיים. כלל שנכתב כאן עבורם **לא ירוץ לעולם**,
   וכזה אכן ישב כאן וגרם למי שבדק להניח שהסרגל מכוסה.
   מקום התיקון לסרגל הרשומות: app/templates/lab/_sitebar.css.html. */

/* צ׳יפי -subtle: המילוי חיוור, ולכן הדיו חייב להיות גוון-ההדגשה
   ולא הווריאנט הרווי. פגם בשני המצבים. */
.badge[class*="-subtle"] { color: #16203a !important; }
.badge.bg-warning-subtle, .badge.text-bg-warning-subtle { color: #664d03 !important; }
.badge.bg-info-subtle, .badge.text-bg-info-subtle { color: #055160 !important; }
.badge.bg-success-subtle, .badge.text-bg-success-subtle { color: #0a3622 !important; }
.badge.bg-danger-subtle, .badge.text-bg-danger-subtle { color: #58151c !important; }

/* .text-dark נכתב בהנחת דף בהיר: בתוך משטח בהיר הוא נכון, על הרקע
   הכהה הוא בלתי-נראה. */
:root[data-theme="dark"] .text-dark:not(.badge):not(.badge *):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf])):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf]) *) { color: #c7d2e3 !important; }

/* ── היפוך ברירת-המחדל ─────────────────────────────────────────────
   9,771 אלמנטי-טקסט על משטח בהיר מול 100 על הרקע — 1%. לכן הדיו
   הכהה הוא ברירת-המחדל של אזור-התוכן, והגוון הבהיר מוחל רק על מה
   שאינו משטח ואינו בתוך משטח. כך פאנל בהיר שלא נמנה ברשימה נשאר
   קריא במקום להיעלם. */
[data-lightsurf] { background: var(--nad-card, #f7f9fc); }
:root[data-theme=dark] main { color: var(--nad-ink); }
:root[data-theme=dark] main *:not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf])):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf]) *):not(.btn):not(.btn *):not(.badge):not(.badge *):not(.stat-card):not(.stat-card *) { color: #c7d2e3; }
:root[data-theme=dark] main :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf])):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf]) *) { color: #dbe4f0; }
:root[data-theme=dark] main :is(.text-muted,small,.form-text):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf])):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf]) *) { color: #9aa8bd !important; }
:root[data-theme=dark] main a:not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf])):not(:is(.card,.card-body,.card-header,.card-footer,.table,.table-responsive,.alert,.list-group,.list-group-item,.modal-content,.dropdown-menu,.toast,.toast-body,.offcanvas,.accordion,.accordion-item,.accordion-body,.popover,.tab-content,.form-control,.form-select,.input-group,.bg-light,.bg-white,.bg-body-tertiary,.bg-body-secondary,.input-group-text,.badge.bg-light,.badge.bg-white,.nav-tabs .nav-link.active,.pagination,.page-link,.page-item,.prop-card,.prop-mini,.prop-thumb,.prop-thumb-empty,.table-thumb-empty,.prop-table,.info-card,.contact-panel,.detail-hero,.spec-chip,.spec-chips,.amenity,.mchip-low,.mchip-mid,.mchip-ok,.meta-chips,.sec-head,.form-sec,.cf-ord,.qa-avatar,.qa-pav,.tl-icon,.pa-call,.pa-view,.pf-chip,.pf-panel,.pf-foot,.fc-pop,.admin-chip,.bd-track,.cal-cell,.cols-item,.offweb-badge,.kpi,.catmenu-panel,[data-lightsurf]) *):not(.btn) { color: #7fd3bd; }

/* צ׳יפ ממולא: לבן על המילויים הכהים, כהה על הבהירים. */
:root[data-theme=dark] .badge:is(.bg-primary,.bg-success,.bg-danger,.bg-dark,.bg-secondary,
  .text-bg-primary,.text-bg-success,.text-bg-danger,.text-bg-dark,.text-bg-secondary) { color: #fff !important; }

/* גוונים על הסף: נמדדו 4.08–4.29 על משטחים בהירים-מעט-כהים
   (התראה אפרפרה, פאנל ירקרק). מועמקים בשיעור מזערי. */
.btn-outline-danger { --bs-btn-color: #c02a38; --bs-btn-border-color: #d0616b; }

/* פגמים במצב הבהיר, בשני המצבים כאחד */
.btn-outline-warning { --bs-btn-color: #8a6100; --bs-btn-border-color: #d9a400; }
.themebtn { color: #fff !important; }
.nadlan-navbar .nav-link { color: #fff; }
.badge.chip-repo { color: #5b6472; }

/* התווית באריח סומנה ב-opacity:.95 — מוריד את הלבן בלי סיבה
   ממשית על מילוי רווי. */
.stat-card .stat-label { opacity: 1; }
.stat-card, .stat-card .stat-num,
.stat-card .stat-label, .stat-card .stat-sub { color: #fff; }

/* .text-danger נמדד 4.29 על כרטיס בהיר — שבריר מתחת לסף. */
.text-danger { --bs-danger-rgb: 192,42,56; color: #c02a38 !important; }

/* שני גוונים של ברירת-המחדל של בוטסטראפ שנמדדו 4.14 ו-4.17 על רקע
   הדף הבהיר (#f3f6f5) — שבריר מתחת לסף. אינם תלויי-מצב. */
:root { --bs-link-color: #0a58ca; --bs-link-color-rgb: 10,88,202;
        --bs-link-hover-color: #084298; }
.nav-link { --bs-nav-link-color: #0a58ca; }
.btn-outline-success { --bs-btn-color: #146c43; --bs-btn-border-color: #4e9a71; }
.btn-outline-primary { --bs-btn-color: #0b6353; --bs-btn-border-color: #4f9b8c; }
.btn-outline-info    { --bs-btn-color: #0a6c86; --bs-btn-border-color: #58a7bd; }

/* ── מגירת-הניווט בנייד ────────────────────────────────────────────
   חמישה כפתורים ללא תווית, 41×37px, ותג בן ארבע ספרות שגלש מהם.
   התוויות היו קיימות ומוסתרות בכלל שנכתב לסרגל האופקי; כאן הן
   חוזרות, והכפתורים הופכים לריבועים בגובה אצבע (תקן 44px). */
/* בשולחן המכל חייב להיעלם מהפריסה: הוא בלוק, ולכן שבר את שורת
   הכפתורים בסרגל האופקי לשתי שורות. אותו דפוס כמו .tb-extra למעלה —
   הכפתורים נשארים ילדים ישירים של הסרגל, בלי DOM כפול. */
.nav-tiles { display: contents; }
.nav-util { background: transparent; border: 1px solid rgba(255,255,255,.5);
  border-radius: 9px; width: 40px; height: 40px; color: #fff; font-size: 1.05rem;
  display: inline-flex; align-items: center; justify-content: center;
  position: relative; margin-inline-end: 8px; text-decoration: none; }
.nav-util:hover, .nav-util:focus { background: rgba(255,255,255,.14); color: #fff; }
/* התג יושב בתוך הכפתור ולא גולש ממנו */
.nav-util-dot { position: absolute; top: -6px; inset-inline-start: -7px;
  background: #dc3545; color: #fff; border-radius: 999px; font-size: .62rem;
  font-weight: 700; padding: 1px 5px; line-height: 1.5;
  /* «99+» נקרא «+99» בהקשר עברי — המספר מבודד מכיווניות המסמך. */
  direction: ltr; unicode-bidi: isolate; }

@media (max-width: 991.98px) {
  .nav-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
    margin: 10px 0 4px; }
  .nav-tiles > .btn { margin: 0 !important; min-height: 52px;
    display: flex; flex-direction: column; align-items: center;
    justify-content: center; gap: 1px; line-height: 1.4;
    border-radius: 11px; padding: 9px 6px; }
  .nav-tiles > .btn i { font-size: 1.15rem; }
  .nav-tiles > .btn .nav-tile-t { font-size: .8rem; font-weight: 600; }
  /* חלון-החיפוש ראשון, ובגובה נוח להקלדה */
  .navbar .input-group-sm > .form-control { min-height: 42px; }

  /* ── תפריט-החשבון בנייד לא נחתך (29/08) ──────────────────
     נמדד בדפדפן ב-375×812: כפתור-החשבון בתחתית המגירה,
     התפריט נפתח כלפי מטה, ו«התנתק» נחת ב-970 — מחוץ למסך,
     ואי-אפשר היה להתנתק מהנייד.

     השורש: בוטסטראפ **מכבה את מנוע-המיקום** לתפריט שבתוך
     סרגל-ניווט (`data-bs-popper="static"`), ולכן אין היפוך-
     כיוון כשאין מקום מתחת. זו התנהגות מכוונת של הספרייה,
     שמניחה סרגל בראש המסך; כאן הסרגל sticky והמגירה נפתחת
     על כל הגובה.

     התיקון: התפריט זורם בתוך המגירה, והמגירה נגללת. שום
     פריט אינו יכול לצאת מהמסך — גם כשיש שנים-עשר, כמו
     למנהל-מערכת. */
  .navbar-collapse { max-height: calc(100vh - 58px);
    max-height: calc(100dvh - 58px); overflow-y: auto;
    overscroll-behavior: contain; }
  /* מוגבל למגירה: תפריט עתידי בשורת-הכותרת הקבועה אינו נוגע */
  .navbar-collapse .dropdown-menu { position: static !important;
    float: none; width: 100%; margin-top: .35rem; }
  .navbar-collapse .dropdown-item { min-height: 44px;
    display: flex; align-items: center; gap: .45rem; }
}
/* looktoggle2010: פריט מתג המראה בתפריט המשתמש - 44 בגובה ו-16 בכתב בכל רוחב */
.navbar .dropdown-menu .dropdown-item.lk-tg { min-height: 44px; font-size: 16px; display: flex; align-items: center; gap: .45rem; }
/* בשולחן התווית נשארת בשורה אחת עם האייקון, כפי שהייתה */
/* בשולחן התווית בשורה אחת עם האייקון, כפי שהייתה. nowrap נדרש כי
   הכפתורים הם פריטי-flex של הסרגל ונדחסים כשהוא צפוף. */
@media (min-width: 992px) {
  .nav-tile-t { display: inline; }
  .nav-tiles > .btn { white-space: nowrap; }
  /* nowrap מונע מהתווית לעטוף **בתוך** הכפתור; בלי שהסרגל עצמו יוכל
     לעטוף, התוצאה הייתה חריגה של 100px מהמסך ב-1440px. הסרגל עוטף,
     קבוצת-הקיצורים יורדת לשורה שנייה, והתוויות נשארות שלמות. */
  .navbar-collapse { flex-wrap: wrap; }
}
@media (max-width: 767.98px) { .navbar .admin-chip { display: none; } }

/* פירורי-הלחם הם מסגרת-דף ולא כרטיס-תוכן: על הרקע הכהה הרצועה
   הלבנה חצתה את המסך בין הסרגל לתוכן. אותו טיפול שקיבלו .crumbs
   במסכי /lab — שקוף, טקסט בהיר, מפריד עדין. */
:root[data-theme="dark"] .nadlan-crumbs {
  background: transparent; border-bottom-color: rgba(255,255,255,.12);
}
:root[data-theme="dark"] .nadlan-crumbs .container-fluid { color: #9aa8bd; }
:root[data-theme="dark"] .nadlan-crumbs a { color: #c7d2e3; }
:root[data-theme="dark"] .nadlan-crumbs .cur,
:root[data-theme="dark"] .nadlan-crumbs strong { color: #dbe4f0; }
