/* Enclave Bazaar — layer on top of the shared zameen.css / portal-unify.css
   token system. Uses --z-* and --be-* variables so light + dark both work.  */

/* ── Hero ── */
.bz-hero {
  background: linear-gradient(135deg, #0a5c44 0%, #0d6b4d 45%, #127a5c 100%);
  color: #fff;
  padding: 34px 0 40px;
}
.bz-hero h1 {
  margin: 0 0 6px;
  font-size: clamp(1.5rem, 4.2vw, 2.1rem);
  color: #fff;
}
.bz-hero p { margin: 0 0 20px; opacity: 0.92; font-size: 0.98rem; }
.bz-search {
  display: flex;
  gap: 10px;
  max-width: 720px;
  background: #fff;
  padding: 8px;
  border-radius: 14px;
  box-shadow: 0 18px 40px -12px rgba(0, 0, 0, 0.35);
}
.bz-search-field {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
}
.bz-search-icon { font-size: 1.05rem; opacity: 0.7; }
.bz-search-field input {
  width: 100%;
  border: 0;
  outline: 0;
  font-size: 1rem;
  padding: 12px 0;
  background: transparent;
  color: #14201b;
  font-family: inherit;
}
.bz-search-btn { white-space: nowrap; border-radius: 10px; }

/* Search page */
.bz-search-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; max-width: 660px; }
.bz-chip { display: inline-block; padding: 6px 13px; border-radius: 999px; background: rgba(255,255,255,.16);
  color: #fff; text-decoration: none; font-size: .85rem; font-weight: 600; border: 1px solid rgba(255,255,255,.25); }
.bz-chip:hover { background: rgba(255,255,255,.28); }
.bz-search-intro { padding: 26px 0 60px; }
.bz-search-portal { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 720px) { .bz-search-portal { grid-template-columns: repeat(3, 1fr); } }
.bz-search-portal a { display: flex; flex-direction: column; gap: 3px; padding: 22px; border-radius: 14px; text-decoration: none;
  background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); color: inherit; transition: transform .12s, border-color .12s, box-shadow .12s; }
.bz-search-portal a:hover { transform: translateY(-3px); border-color: var(--z-green); box-shadow: var(--be-shadow-hover, var(--shadow-hover)); }
.bz-search-portal span { font-size: 1.8rem; }
.bz-search-portal b { font-size: 1.05rem; }
.bz-search-portal small { color: var(--be-text-muted, var(--z-muted)); }
.bz-search-sec { margin-bottom: 34px; }
.bz-sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 14px; }
.bz-sec-head h2 { font-size: 1.15rem; margin: 0; display: flex; align-items: center; gap: 8px; }
.bz-sec-head h2 span { font-size: .78rem; font-weight: 700; color: var(--be-text-muted, var(--z-muted)); background: var(--be-surface-2, #eef1f0); padding: 2px 9px; border-radius: 999px; }

/* ── Layout ── */
.bz-main { padding: 22px 16px 60px; }

/* ── Rich landing (home) ── */
.bz-hero-home { padding: 40px 0 44px; }
.bz-hero-home h1 { font-size: clamp(1.7rem, 5vw, 2.6rem); }
.bz-hero-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.bz-hero-pills a { background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.28); color: #fff; text-decoration: none;
  padding: 7px 14px; border-radius: 999px; font-size: .88rem; font-weight: 600; }
.bz-hero-pills a:hover { background: rgba(255,255,255,.28); }
.bz-home { padding: 8px 16px 60px; }
.bz-home-sec { margin: 30px 0; }
.bz-home-sec .bz-sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.bz-home-sec .bz-sec-head h2 { font-size: 1.2rem; margin: 0; letter-spacing: -.02em; }
.bz-home-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.bz-home-cat { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 16px 10px; border-radius: 13px; text-decoration: none;
  background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); color: var(--be-text, var(--z-text)); transition: transform .12s, border-color .12s; text-align: center; }
.bz-home-cat:hover { transform: translateY(-3px); border-color: var(--z-green); }
.bz-home-cat span { font-size: 1.7rem; }
.bz-home-cat b { font-size: .84rem; font-weight: 600; line-height: 1.25; }
.bz-home-cat small { font-size: .72rem; color: var(--be-text-muted, var(--z-muted)); font-variant-numeric: tabular-nums; }
.bz-home-cat-prop { background: linear-gradient(140deg, rgba(37,99,168,.12), transparent); border-color: rgba(37,99,168,.3); }
.bz-home-row { display: flex; gap: 14px; overflow-x: auto; padding: 2px 2px 12px; scroll-snap-type: x proximity; }
.bz-home-row .bz-card { flex: 0 0 210px; scroll-snap-align: start; }
@media (min-width: 640px) { .bz-home-row .bz-card { flex-basis: 230px; } }
.bz-home-row::-webkit-scrollbar { height: 7px; }
.bz-home-row::-webkit-scrollbar-thumb { background: var(--be-border-strong, var(--z-border)); border-radius: 99px; }
/* Responsive grid: tiles wrap into as many uniform rows as needed and the column
   count adapts to the viewport (no horizontal scroll). Text is clamped so labels
   never wrap into a ragged block. */
.bz-home-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.bz-home-tile { min-width: 0;
  display: flex; flex-direction: column; gap: 3px; padding: 16px; border-radius: 14px; text-decoration: none;
  background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); color: var(--be-text, var(--z-text)); transition: transform .12s, border-color .12s, box-shadow .12s; }
.bz-home-tile:hover { transform: translateY(-3px); border-color: var(--z-green); box-shadow: var(--be-shadow-hover, var(--shadow-hover)); }
.bz-home-tile-ic { font-size: 1.9rem; }
.bz-home-tile b { font-size: .96rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.bz-home-tile small { font-size: .8rem; color: var(--be-text-muted, var(--z-muted)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.bz-home-cta { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin: 34px 0 10px;
  padding: 26px; border-radius: 16px; background: linear-gradient(135deg, #0a5c44, #12805f); color: #fff; }
.bz-home-cta h2 { margin: 0 0 4px; color: #fff; }
.bz-home-cta p { margin: 0; opacity: .92; font-size: .95rem; }
.bz-home-cta .btn-primary { background: #fff; color: var(--z-green); white-space: nowrap; }

/* ── Category rail ── */
.bz-cats {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 4px 0 12px;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.bz-cat {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-radius: 999px;
  background: var(--z-card);
  border: 1px solid var(--be-border, var(--z-border));
  color: var(--be-text, var(--z-text));
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
  white-space: nowrap;
  transition: border-color 0.15s, background 0.15s, transform 0.1s;
}
.bz-cat:hover { border-color: var(--z-green); transform: translateY(-1px); }
.bz-cat.is-active { background: var(--z-green); color: #fff; border-color: var(--z-green); }
.bz-cat-icon { font-size: 1.05rem; }
.bz-cat-count {
  font-size: 0.72rem;
  background: rgba(0, 0, 0, 0.08);
  padding: 1px 7px;
  border-radius: 999px;
}
.bz-cat.is-active .bz-cat-count { background: rgba(255, 255, 255, 0.25); }
.bz-cat-prop.is-active { background: #2f6fb0; border-color: #2f6fb0; color: #fff; }
.bz-cat-prop:hover { border-color: #2f6fb0; }

/* Property tag on cards + promo strip + purpose label */
.bz-tag-prop {
  position: absolute; top: 8px; left: 8px; background: #2563a8; color: #fff;
  font-size: 0.68rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.03em;
  padding: 3px 8px; border-radius: 6px;
}
.bz-promo {
  display: flex; align-items: center; gap: 16px; margin: 4px 0 4px; padding: 15px 18px;
  border-radius: 14px; border: 1px solid var(--be-border, var(--z-border));
  background: linear-gradient(120deg, rgba(37, 99, 168, 0.10), transparent);
}
.bz-promo-ic { font-size: 1.7rem; }
.bz-promo-txt { flex: 1; display: flex; flex-direction: column; }
.bz-promo-txt b { font-size: 0.98rem; }
.bz-promo-txt span { font-size: 0.84rem; color: var(--be-text-muted, var(--z-muted)); }
.bz-promo-btn {
  background: #2563a8; color: #fff; border: 0; padding: 10px 16px; border-radius: 10px;
  font-weight: 700; font-size: 0.86rem; text-decoration: none; white-space: nowrap;
}
.bz-promo-btn:hover { filter: brightness(1.06); }
.bz-prop-purpose { font-size: 0.82rem; font-weight: 700; color: #2563a8; text-transform: uppercase; letter-spacing: 0.03em; margin-top: 2px; }
:root[data-theme="dark"] .bz-prop-purpose { color: #6ea8e8; }
.bz-promo-svc { background: linear-gradient(120deg, var(--emerald-soft, rgba(13,107,77,0.10)), transparent); }
.bz-promo-btn-svc { background: var(--z-green); }
:root[data-theme="dark"] .bz-promo-btn-svc { color: #06281e; }

/* ── Filter bar ── */
.bz-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px;
  padding: 14px 16px;
  margin: 6px 0 20px;
  background: var(--z-card);
  border: 1px solid var(--be-border, var(--z-border));
  border-radius: 12px;
}
.bz-filter { display: flex; flex-direction: column; gap: 5px; }
.bz-filter > span {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--be-text-muted, var(--z-muted));
}
.bz-filter select,
.bz-filter input {
  padding: 8px 10px;
  border: 1px solid var(--be-border, var(--z-border));
  border-radius: 8px;
  font-size: 0.9rem;
  font-family: inherit;
  background: var(--be-surface, #fff);
  color: var(--be-text, var(--z-text));
}
.bz-price-range { display: flex; gap: 6px; }
.bz-price-range input { width: 90px; }
.bz-filter-apply {
  background: var(--z-green);
  color: #fff;
  border: 0;
  padding: 9px 16px;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
}
.bz-filter-clear {
  color: var(--be-text-muted, var(--z-muted));
  text-decoration: none;
  font-size: 0.85rem;
  padding: 9px 4px;
}
.bz-filter-clear:hover { color: var(--z-green); }

/* ── Results ── */
.bz-results-head { margin: 0 0 14px; color: var(--be-text-soft, var(--z-muted)); font-size: 0.92rem; }
.bz-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
@media (min-width: 640px) { .bz-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 960px) { .bz-grid { grid-template-columns: repeat(4, 1fr); gap: 18px; } }

.bz-card {
  display: flex;
  flex-direction: column;
  background: var(--z-card);
  border: 1px solid var(--be-border, var(--z-border));
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 0.12s, box-shadow 0.12s, border-color 0.12s;
}
.bz-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--be-shadow-hover, var(--shadow-hover));
  border-color: var(--z-green);
}
.bz-card.is-featured { border-color: var(--z-gold); }
.bz-card-media {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--be-surface-2, #eef1f0);
  overflow: hidden;
}
.bz-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bz-card-noimg {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 2.8rem;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25));
}
.bz-gallery-tile { display: grid; place-items: center; }
.bz-gallery-tile span { font-size: 5.5rem; filter: drop-shadow(0 3px 10px rgba(0, 0, 0, 0.28)); }
.bz-badge {
  position: absolute;
  top: 8px; left: 8px;
  background: var(--z-gold);
  color: #1a1a1a;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 3px 8px;
  border-radius: 6px;
}
.bz-card-body { padding: 10px 12px 13px; display: flex; flex-direction: column; gap: 4px; }
.bz-card-price { font-size: 1.05rem; font-weight: 800; color: var(--z-green); font-family: var(--be-font-display, inherit); }
html[data-theme="dark"] .bz-card-price { color: var(--z-green-dark, #34D399); }
.bz-neg { font-size: 0.7rem; font-weight: 600; color: var(--be-text-muted, var(--z-muted)); }
.bz-price-ask { font-size: 0.9rem; font-weight: 600; color: var(--be-text-muted, var(--z-muted)); }
.bz-card-title {
  font-size: 0.92rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bz-card-meta {
  display: flex; flex-wrap: wrap; gap: 8px;
  font-size: 0.78rem;
  color: var(--be-text-muted, var(--z-muted));
  margin-top: 2px;
}

/* ── Empty / error state ── */
.bz-empty { text-align: center; padding: 60px 20px; }
.bz-empty-icon { font-size: 3rem; margin-bottom: 8px; }
.bz-empty h2 { margin: 0 0 6px; }
.bz-empty p { margin: 0 0 18px; color: var(--be-text-muted, var(--z-muted)); }

/* ── Home Services (S2) ── */
.bz-hero-hs { background: linear-gradient(135deg, #0a5c44 0%, #12805f 50%, #0f6ba0 100%); }
.bz-hs-tile .bz-dir-tile-count { min-height: 2.4em; }
.bz-hs-note { margin: 6px 0 50px; color: var(--be-text-muted, var(--z-muted)); font-size: .88rem; }
.bz-hs-note a { color: var(--z-green); }
.bz-hs-grid { display: grid; grid-template-columns: 1fr; gap: 22px; padding-bottom: 60px; }
@media (min-width: 860px) { .bz-hs-grid { grid-template-columns: 1.1fr 1fr; align-items: start; } }
.bz-hs-request { background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); border-radius: 16px; padding: 20px; }
.bz-hs-request h2, .bz-hs-pros h2 { font-size: 1.15rem; margin: 0 0 6px; }
.bz-hs-request .bz-field, .bz-hs-request .btn-primary { margin-top: 12px; }
.bz-hs-request textarea, .bz-hs-request input, .bz-hs-request select { width: 100%; padding: 10px 12px; border: 1px solid var(--be-border-strong, var(--z-border));
  border-radius: 9px; font-family: inherit; font-size: .95rem; background: var(--be-surface, #fff); color: var(--be-text, var(--z-text)); }
.bz-hs-request .btn-primary { width: 100%; }
.bz-hs-pros { min-width: 0; }
.bz-hs-banner { display: flex; align-items: center; gap: 16px; margin: 16px 0 4px; padding: 18px; border-radius: 14px;
  background: linear-gradient(120deg, rgba(15,107,160,.12), transparent); border: 1px solid var(--be-border, var(--z-border)); }
.bz-hs-banner-ic { font-size: 2rem; }
.bz-hs-banner-txt { flex: 1; }
.bz-hs-banner-txt b { font-size: 1rem; }
.bz-hs-banner-txt span { display: block; font-size: .85rem; color: var(--be-text-muted, var(--z-muted)); }
.bz-hs-banner-btn { background: #0f6ba0; color: #fff; text-decoration: none; padding: 10px 16px; border-radius: 10px; font-weight: 700; font-size: .86rem; white-space: nowrap; }

/* ── Services & Business directory ── */
.bz-hero-dir { background: linear-gradient(135deg, #0a5c44 0%, #106b52 45%, #0e7c6a 100%); }
.bz-dir-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; padding-bottom: 50px; }
.bz-dir-tile { display: flex; flex-direction: column; gap: 4px; padding: 20px; border-radius: 14px; text-decoration: none;
  background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); color: inherit;
  transition: transform .12s, box-shadow .12s, border-color .12s; }
.bz-dir-tile:hover { transform: translateY(-3px); box-shadow: var(--be-shadow-hover, var(--shadow-hover)); border-color: var(--z-green); }
.bz-dir-tile-ic { font-size: 2rem; }
.bz-dir-tile-name { font-weight: 700; font-size: 1rem; }
.bz-dir-tile-count { font-size: .82rem; color: var(--be-text-muted, var(--z-muted)); }

.bz-dir-list { display: flex; flex-direction: column; gap: 12px; padding-bottom: 50px; }
.bz-dir-card { display: flex; gap: 12px; align-items: center; background: var(--z-card);
  border: 1px solid var(--be-border, var(--z-border)); border-radius: 12px; padding: 14px 16px; }
.bz-dir-card-main { flex: 1; min-width: 0; text-decoration: none; color: inherit; }
.bz-dir-card-name { font-weight: 700; font-size: 1rem; }
.bz-dir-card-cat { font-size: .84rem; color: var(--z-green); margin: 1px 0; }
:root[data-theme="dark"] .bz-dir-card-cat { color: var(--z-green-dark, #34D399); }
.bz-dir-card-meta { display: flex; flex-wrap: wrap; gap: 10px; font-size: .82rem; color: var(--be-text-muted, var(--z-muted)); }
.bz-dir-card-actions { flex: 0 0 auto; }
.bz-dir-call { display: inline-block; background: var(--z-green); color: #fff; padding: 9px 14px; border-radius: 9px; font-weight: 700; font-size: .86rem; text-decoration: none; }
:root[data-theme="dark"] .bz-dir-call { color: #06281e; }
.bz-dir-card-actions-col { display: flex; gap: 6px; align-items: center; }
.bz-dir-wa { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 9px; text-decoration: none;
  border: 1px solid var(--wa, #1FA855); color: var(--wa, #128C4B); font-size: 1rem; }
.bz-dir-wa:hover { background: rgba(31,168,85,.1); }
:root[data-theme="dark"] .bz-dir-wa { color: #34d399; border-color: #34d399; }
.bz-promo-hs { background: linear-gradient(120deg, rgba(15,107,160,.10), transparent); }
.bz-promo-btn-hs { background: #0f6ba0; }

.bz-biz { max-width: 720px; background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); border-radius: 16px; padding: 24px; margin-bottom: 60px; }
.bz-biz-head { display: flex; gap: 14px; align-items: center; }
.bz-biz-ic { font-size: 2.4rem; }
.bz-biz-name { margin: 0; font-size: 1.4rem; }
.bz-biz-cat { color: var(--z-green); font-size: .9rem; font-weight: 600; }
:root[data-theme="dark"] .bz-biz-cat { color: var(--z-green-dark, #34D399); }
.bz-biz-facts { list-style: none; padding: 0; margin: 18px 0; display: flex; flex-direction: column; gap: 10px; }
.bz-biz-facts li { display: flex; justify-content: space-between; gap: 14px; font-size: .92rem; }
.bz-biz-facts span { color: var(--be-text-muted, var(--z-muted)); }
.bz-biz-facts strong { text-align: right; }
.bz-biz-detail { color: var(--be-text-soft, var(--z-text)); line-height: 1.7; margin-bottom: 18px; }
.bz-biz-contact h3 { font-size: 1rem; margin: 0 0 10px; }
.bz-biz-phones { display: flex; flex-direction: column; gap: 10px; }
.bz-biz-phone { display: flex; gap: 8px; flex-wrap: wrap; }
.bz-biz-call { text-align: center; }
.bz-biz-note { font-size: .82rem; color: var(--be-text-muted, var(--z-muted)); margin-top: 20px; }
.bz-biz-note a { color: var(--z-green); }

/* Rich business profile (S1) */
.bz-biz-headmain { flex: 1; min-width: 0; }
.bz-biz-sub { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 6px; font-size: .86rem; }
.bz-verified { font-size: .72rem; font-weight: 800; color: #fff; background: var(--z-green); padding: 2px 8px; border-radius: 6px; vertical-align: middle; margin-left: 6px; }
:root[data-theme="dark"] .bz-verified { color: #06281e; }
.bz-verified-sm { color: var(--z-green); font-weight: 800; }
.bz-stars { color: #f5a623; letter-spacing: 1px; }
.bz-stars-sm { color: #f5a623; letter-spacing: .5px; font-size: .82rem; }
.bz-rating-num { color: var(--be-text-muted, var(--z-muted)); font-weight: 600; }
.bz-open { color: #0a7d3a; font-weight: 700; }
.bz-open-sm { color: #0a7d3a; font-weight: 700; font-size: .8rem; }
.bz-bookable-sm { color: #0f6ba0; font-weight: 700; font-size: .8rem; }
:root[data-theme="dark"] .bz-bookable-sm { color: #6ea8e8; }
:root[data-theme="dark"] .bz-open, :root[data-theme="dark"] .bz-open-sm { color: #34d399; }
.bz-closed { color: var(--be-text-muted, var(--z-muted)); font-weight: 600; }
.bz-biz-gallery { display: flex; gap: 8px; overflow-x: auto; margin: 16px 0; padding-bottom: 4px; }
.bz-biz-gallery img { width: 150px; height: 110px; object-fit: cover; border-radius: 10px; flex: 0 0 auto; }
.bz-biz-chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0; }
.bz-biz-chip { font-size: .8rem; font-weight: 600; padding: 4px 11px; border-radius: 999px; background: var(--emerald-soft, var(--z-green-light)); color: var(--z-green); }
:root[data-theme="dark"] .bz-biz-chip { color: var(--z-green-dark, #34D399); }
.bz-biz-services h3 { font-size: 1rem; margin: 18px 0 8px; }
.bz-biz-services ul { margin: 0; padding-left: 20px; color: var(--be-text-soft, var(--z-text)); font-size: .9rem; }
.bz-biz-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0; }
.bz-biz-actions .btn-primary, .bz-biz-actions .bz-contact-wa, .bz-btn-req { padding: 11px 16px; font-weight: 700; border-radius: 11px; font-size: .92rem; }
.bz-btn-req { background: none; border: 1px solid var(--z-green); color: var(--z-green); cursor: pointer; }
.bz-btn-req:hover { background: var(--emerald-soft, var(--z-green-light)); }
:root[data-theme="dark"] .bz-btn-req { color: var(--z-green-dark, #34D399); border-color: var(--z-green-dark, #34D399); }

.bz-reviews { margin-top: 24px; border-top: 1px solid var(--be-border, var(--z-border)); padding-top: 18px; }
.bz-reviews-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.bz-reviews-head h3 { margin: 0; font-size: 1.1rem; }
.bz-review { padding: 12px 0; border-bottom: 1px solid var(--be-border, var(--z-border)); }
.bz-review-head { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: .9rem; }
.bz-review-text { margin: 6px 0 0; color: var(--be-text-soft, var(--z-text)); line-height: 1.6; }
.bz-review-reply { margin: 8px 0 0; padding: 8px 12px; background: var(--be-surface-2, #f4f7f5); border-radius: 8px; font-size: .86rem; }
.bz-starpick { display: flex; gap: 4px; margin-bottom: 12px; }
.bz-starbtn { background: none; border: 0; font-size: 1.9rem; line-height: 1; color: #f5a623; cursor: pointer; padding: 0; }
/* Appointment booking (S3) */
.bz-book { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--be-border, var(--z-border)); }
.bz-book h2 { font-size: 1.1rem; margin: 0 0 12px; }
.bz-book-dates { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 8px; margin-bottom: 12px; }
.bz-book-date { flex: 0 0 auto; padding: 8px 14px; border-radius: 10px; border: 1px solid var(--be-border, var(--z-border));
  background: var(--z-card); color: var(--be-text, var(--z-text)); font-weight: 600; font-size: .85rem; cursor: pointer; white-space: nowrap; }
.bz-book-date.on { background: var(--z-green); border-color: var(--z-green); color: #fff; }
:root[data-theme="dark"] .bz-book-date.on { color: #06281e; }
.bz-book-slots { display: flex; flex-wrap: wrap; gap: 8px; }
.bz-book-slots[hidden] { display: none; } /* [hidden] loses to display:flex — restore it (CLAUDE.md §9) */
.bz-slot { padding: 8px 14px; border-radius: 9px; border: 1px solid var(--z-green); background: var(--emerald-soft, var(--z-green-light));
  color: var(--z-green); font-weight: 600; font-size: .86rem; cursor: pointer; font-variant-numeric: tabular-nums; }
.bz-slot:hover { background: var(--z-green); color: #fff; }
:root[data-theme="dark"] .bz-slot { color: var(--z-green-dark, #34D399); }
.bz-slot.booked { background: var(--z-green); color: #fff; border-color: var(--z-green); cursor: default; }
.bz-slot.gone { opacity: .5; text-decoration: line-through; cursor: not-allowed; }
#bz-book-signin { margin-top: 12px; }

/* Availability editor + dashboard appointments */
.bz-avail { border: 1px solid var(--be-border, var(--z-border)); border-radius: 12px; padding: 8px 14px 14px; margin: 4px 0; }
.bz-avail legend { padding: 0 6px; }
.bz-avail-days { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 12px; }
.bz-daychip { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 999px;
  border: 1px solid var(--be-border-strong, var(--z-border)); font-size: .82rem; font-weight: 600; cursor: pointer; }
.bz-dash-appts { margin: 8px 0 14px; }
.bz-dash-appts h4 { margin: 0 0 8px; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; color: var(--be-text-muted, var(--z-muted)); }
.bz-appt-row-actions { display: flex; gap: 12px; margin-top: 4px; }

.bz-review-form { background: var(--be-surface-2, #f4f7f5); border: 1px solid var(--be-border, var(--z-border)); border-radius: 12px; padding: 16px; margin: 4px 0 16px; }
.bz-review-form textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--be-border-strong, var(--z-border)); border-radius: 9px; font-family: inherit; font-size: .95rem; background: var(--be-surface, #fff); color: var(--be-text, var(--z-text)); resize: vertical; }
.bz-rev-anon { margin: 12px 0; }
.bz-rev-anon small { color: var(--be-text-muted, var(--z-muted)); font-weight: 400; }
.bz-review-form-actions { display: flex; gap: 10px; }
.bz-review-note { font-size: .78rem; color: var(--be-text-muted, var(--z-muted)); margin: 10px 0 0; }

.bz-dir-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 16px; }
.bz-fchip { text-decoration: none; font-size: .84rem; font-weight: 600; padding: 7px 13px; border-radius: 999px;
  border: 1px solid var(--be-border, var(--z-border)); background: var(--z-card); color: var(--be-text, var(--z-text)); }
.bz-fchip:hover { border-color: var(--z-green); }
.bz-fchip.on { background: var(--z-green); border-color: var(--z-green); color: #fff; }
:root[data-theme="dark"] .bz-fchip.on { color: #06281e; }
.bz-fchip-clear { text-decoration: none; font-size: .84rem; font-weight: 600; padding: 7px 8px; color: var(--be-text-muted, var(--z-muted)); }

/* Owner dashboard (My Businesses) */
.bz-biz-dash { margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--be-border, var(--z-border)); }
.bz-dash-h { font-size: 1.15rem; margin: 0 0 14px; }
.bz-dash-biz { background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); border-radius: 13px; padding: 16px; margin-bottom: 14px; }
.bz-dash-bizhead { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.bz-dash-bizhead a { text-decoration: none; color: inherit; }
.bz-dash-cols { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 720px) { .bz-dash-cols { grid-template-columns: 1fr 1fr; } }
.bz-dash-col h4 { margin: 0 0 8px; font-size: .82rem; text-transform: uppercase; letter-spacing: .05em; color: var(--be-text-muted, var(--z-muted)); }
.bz-dash-req { font-size: .86rem; padding: 8px 0; border-bottom: 1px solid var(--be-border, var(--z-border)); }
.bz-dash-req a { color: var(--z-green); }
.bz-dash-reqmsg { color: var(--be-text-soft, var(--z-muted)); margin: 2px 0; }
.bz-dash-when { display: block; font-size: .74rem; color: var(--be-text-muted, var(--z-muted)); }
.bz-dash-rev { font-size: .86rem; padding: 8px 0; border-bottom: 1px solid var(--be-border, var(--z-border)); }
.bz-dash-replybox { display: flex; gap: 6px; margin-top: 5px; }
.bz-dash-replybox input { flex: 1; padding: 6px 10px; border: 1px solid var(--be-border-strong, var(--z-border)); border-radius: 8px; font-size: .84rem; background: var(--be-surface, #fff); color: var(--be-text, var(--z-text)); }

/* ── Detail ── */
.bz-detail { padding: 18px 16px 60px; }
.bz-breadcrumb { display: flex; gap: 8px; align-items: center; font-size: 0.85rem; margin-bottom: 14px; color: var(--be-text-muted, var(--z-muted)); }
.bz-breadcrumb a { color: var(--z-green); text-decoration: none; }
.bz-detail-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 900px) { .bz-detail-grid { grid-template-columns: 1.6fr 1fr; align-items: start; } }

.bz-gallery-main {
  aspect-ratio: 4 / 3;
  background: var(--be-surface-2, #eef1f0);
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--be-border, var(--z-border));
}
.bz-gallery-main img { width: 100%; height: 100%; object-fit: contain; display: block; }
.bz-gallery-empty { display: flex; align-items: center; justify-content: center; color: var(--be-text-muted, var(--z-muted)); }
.bz-gallery-thumbs { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.bz-thumb {
  width: 66px; height: 66px;
  border-radius: 8px; overflow: hidden;
  border: 2px solid transparent;
  padding: 0; cursor: pointer; background: none;
}
.bz-thumb.is-active { border-color: var(--z-green); }
.bz-thumb img { width: 100%; height: 100%; object-fit: cover; }

.bz-detail-desc { margin-top: 24px; }
.bz-detail-desc h2 { font-size: 1.15rem; margin: 0 0 10px; }
.bz-desc-body { color: var(--be-text-soft, var(--z-text)); line-height: 1.7; }

.bz-detail-card {
  background: var(--z-card);
  border: 1px solid var(--be-border, var(--z-border));
  border-radius: 14px;
  padding: 18px;
  position: sticky;
  top: 16px;
}
.bz-detail-price { font-size: 1.7rem; font-weight: 800; color: var(--z-green); font-family: var(--be-font-display, inherit); }
html[data-theme="dark"] .bz-detail-price { color: var(--z-green-dark, #34D399); }
.bz-detail-title { font-size: 1.15rem; margin: 4px 0 14px; }
.bz-detail-facts { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-direction: column; gap: 9px; }
.bz-detail-facts li { display: flex; justify-content: space-between; gap: 12px; font-size: 0.9rem; }
.bz-detail-facts span { color: var(--be-text-muted, var(--z-muted)); }
.bz-detail-facts strong { text-align: right; font-weight: 600; }

.bz-contact { display: flex; flex-direction: column; gap: 8px; }
.bz-contact-call { text-align: center; }
.bz-contact-wa {
  display: block; text-align: center;
  padding: 11px 16px; border-radius: 10px;
  border: 1px solid #25D366; color: #128C4B;
  font-weight: 700; text-decoration: none;
}
.bz-contact-wa:hover { background: rgba(37, 211, 102, 0.1); }
html[data-theme="dark"] .bz-contact-wa { color: #34d399; border-color: #34d399; }
.bz-contact-none, .bz-chat-soon { font-size: 0.82rem; color: var(--be-text-muted, var(--z-muted)); margin: 10px 0 0; text-align: center; }
.bz-contact-msg { display: block; text-align: center; padding: 11px 16px; border-radius: 10px;
  border: 1px solid var(--be-border-strong, var(--z-border)); color: var(--be-text, var(--z-text));
  font-weight: 700; text-decoration: none; background: var(--be-surface-2, transparent); }
.bz-contact-msg:hover { border-color: var(--z-green); color: var(--z-green); }
.bz-contact-msg-solo { background: var(--z-green); color: #fff; border-color: var(--z-green); }
:root[data-theme="dark"] .bz-contact-msg-solo { color: #06281e; }

/* ── Chat (messages page) ── */
.bz-msg-wrap { padding: 20px 16px 40px; }
.bz-chat { display: grid; grid-template-columns: 320px 1fr; gap: 18px; min-height: 62vh;
  background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); border-radius: 16px; overflow: hidden; }
.bz-inbox { border-right: 1px solid var(--be-border, var(--z-border)); display: flex; flex-direction: column; min-height: 0; }
.bz-inbox-head { padding: 16px 18px; border-bottom: 1px solid var(--be-border, var(--z-border)); }
.bz-inbox-head h2 { margin: 0; font-size: 1.05rem; }
.bz-inbox-list { overflow-y: auto; flex: 1; }
.bz-inbox-empty { padding: 24px 18px; color: var(--be-text-muted, var(--z-muted)); }
.bz-conv { display: flex; gap: 11px; align-items: center; width: 100%; text-align: left; background: none;
  border: 0; border-bottom: 1px solid var(--be-border, var(--z-border)); padding: 12px 16px; cursor: pointer; color: inherit; }
.bz-conv:hover { background: var(--be-surface-2, #f4f7f5); }
.bz-conv.is-active { background: var(--emerald-soft, var(--z-green-light)); }
.bz-conv-thumb { width: 44px; height: 44px; border-radius: 9px; overflow: hidden; flex: 0 0 auto; display: grid;
  place-items: center; background: var(--be-surface-2, #eef1f0); font-size: 1.3rem; }
.bz-conv-thumb img { width: 100%; height: 100%; object-fit: cover; }
.bz-conv-main { flex: 1; min-width: 0; }
.bz-conv-title { font-weight: 600; font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bz-conv-last { font-size: .8rem; color: var(--be-text-muted, var(--z-muted)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bz-conv-who { font-size: .72rem; color: var(--be-text-muted, var(--z-muted)); flex: 0 0 auto; }

.bz-thread { display: flex; flex-direction: column; min-height: 0; }
.bz-thread-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: var(--be-text-muted, var(--z-muted)); gap: 6px; }
.bz-thread-head { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--be-border, var(--z-border)); }
.bz-thread-back { display: none; font-size: 1.5rem; text-decoration: none; color: var(--z-green); line-height: 1; }
.bz-thread-listing { flex: 1; min-width: 0; }
.bz-thread-title { font-weight: 700; font-size: .95rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bz-thread-who { font-size: .78rem; color: var(--be-text-muted, var(--z-muted)); }
.bz-msgs { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 8px; min-height: 240px; }
.bz-bubble { max-width: 74%; padding: 8px 12px; border-radius: 14px; font-size: .9rem; line-height: 1.4;
  display: flex; flex-direction: column; gap: 2px; }
.bz-bubble-text { white-space: pre-wrap; word-break: break-word; }
.bz-bubble-time { font-size: .66rem; opacity: .7; align-self: flex-end; }
.bz-bubble.mine { align-self: flex-end; background: var(--z-green); color: #fff; border-bottom-right-radius: 4px; }
:root[data-theme="dark"] .bz-bubble.mine { color: #06281e; }
.bz-bubble.theirs { align-self: flex-start; background: var(--be-surface-2, #eef1f0); color: var(--be-text, var(--z-text)); border-bottom-left-radius: 4px; }
.bz-composer { display: flex; gap: 8px; padding: 12px 14px; border-top: 1px solid var(--be-border, var(--z-border)); }
.bz-composer input { flex: 1; padding: 10px 14px; border: 1px solid var(--be-border-strong, var(--z-border)); border-radius: 999px;
  font-size: .95rem; font-family: inherit; background: var(--be-surface, #fff); color: var(--be-text, var(--z-text)); }
.bz-chat-note { font-size: .74rem; color: var(--be-text-muted, var(--z-muted)); text-align: center; margin: 0 0 12px; }

@media (max-width: 760px) {
  .bz-chat { grid-template-columns: 1fr; }
  .bz-inbox { border-right: 0; }
  .bz-chat.show-thread .bz-inbox { display: none; }
  .bz-chat:not(.show-thread) .bz-thread { display: none; }
  .bz-thread-back { display: block; }
}

/* ── Moderation ── */
.bz-admin { padding: 24px 16px 70px; max-width: 900px; }
.bz-admin-tabs { display: flex; gap: 8px; margin: 16px 0 20px; flex-wrap: wrap; }
.bz-tab { background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); border-radius: 999px;
  padding: 8px 16px; font-weight: 600; font-size: .88rem; color: var(--be-text, var(--z-text)); cursor: pointer; }
.bz-tab.is-on { background: var(--z-green); border-color: var(--z-green); color: #fff; }
:root[data-theme="dark"] .bz-tab.is-on { color: #06281e; }
.bz-tab span { font-variant-numeric: tabular-nums; opacity: .8; }
.bz-admin-list { display: flex; flex-direction: column; gap: 14px; }
.bz-adm-card { display: flex; gap: 14px; background: var(--z-card); border: 1px solid var(--be-border, var(--z-border));
  border-radius: 13px; padding: 14px; }
.bz-adm-media { width: 120px; height: 120px; border-radius: 10px; overflow: hidden; flex: 0 0 auto;
  background: var(--be-surface-2, #eef1f0); display: grid; place-items: center; }
.bz-adm-media img { width: 100%; height: 100%; object-fit: cover; }
.bz-adm-noimg { font-size: 2rem; opacity: .6; }
.bz-adm-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.bz-adm-price { font-weight: 800; color: var(--z-green); font-variant-numeric: tabular-nums; }
:root[data-theme="dark"] .bz-adm-price { color: var(--z-green-dark, #34D399); }
.bz-adm-title { font-weight: 600; }
.bz-adm-meta { font-size: .82rem; color: var(--be-text-muted, var(--z-muted)); }
.bz-adm-desc { font-size: .84rem; color: var(--be-text-soft, var(--z-muted)); max-height: 3.6em; overflow: hidden; }
.bz-adm-seller { font-size: .78rem; color: var(--be-text-muted, var(--z-muted)); margin-top: 2px; }
.bz-adm-reason { font-size: .82rem; color: #c0392b; }
.bz-adm-actions { display: flex; gap: 10px; align-items: center; margin-top: 8px; flex-wrap: wrap; }
.bz-adm-actions .btn-primary { padding: 8px 18px; }
@media (max-width: 560px) { .bz-adm-card { flex-direction: column; } .bz-adm-media { width: 100%; height: 160px; } }

.bz-safety {
  margin-top: 16px;
  background: var(--be-surface-2, var(--z-green-light));
  border: 1px solid var(--be-border, var(--z-border));
  border-radius: 12px;
  padding: 14px 16px;
}
.bz-safety h3 { margin: 0 0 8px; font-size: 0.95rem; }
.bz-safety ul { margin: 0 0 10px; padding-left: 18px; font-size: 0.85rem; color: var(--be-text-soft, var(--z-muted)); }
.bz-safety li { margin-bottom: 4px; }
.bz-report { font-size: 0.82rem; color: var(--be-text-muted, var(--z-muted)); }

/* nav dark-toggle + chat button spacing reuse from portal-unify; keep the
   Bazaar "Post ad" pill readable in both themes */
.header-nav .nav-chat { background: none; border: 0; cursor: pointer; font: inherit; }

/* ── Promote (S4) ── */
.bz-promote-target { display: flex; align-items: center; gap: 10px; font-size: 1.05rem; margin: 10px 0; }
.bz-promote-target span { font-size: 1.5rem; }
.bz-promote-price { font-size: 1.5rem; font-weight: 800; color: var(--z-green); font-variant-numeric: tabular-nums; }
:root[data-theme="dark"] .bz-promote-price { color: var(--z-green-dark, #34D399); }
.bz-promote-price span { font-size: .82rem; font-weight: 600; color: var(--be-text-muted, var(--z-muted)); }
.bz-pay-details { list-style: none; padding: 0; margin: 10px 0; display: flex; flex-direction: column; gap: 10px; }
.bz-pay-details li { display: flex; justify-content: space-between; gap: 14px; font-size: .95rem; border-bottom: 1px solid var(--be-border, var(--z-border)); padding-bottom: 8px; }
.bz-pay-details span { color: var(--be-text-muted, var(--z-muted)); }
.bz-pay-details strong { font-variant-numeric: tabular-nums; user-select: all; }
.bz-promoted-sm { color: #d69300; }
.bz-promoted-badge { font-size: .72rem; font-weight: 800; color: #7a5b00; background: #ffe9a8; padding: 2px 8px; border-radius: 6px; vertical-align: middle; margin-right: 6px; }
:root[data-theme="dark"] .bz-promoted-badge { color: #ffe9a8; background: rgba(214,147,0,.22); }
.bz-dash-bizactions { display: flex; gap: 12px; align-items: center; }
.bz-link.feature { color: #b8891a; font-weight: 700; }
:root[data-theme="dark"] .bz-link.feature { color: #e0b544; }

/* ── Post an ad (dedicated page) ── */
.bz-post-page { max-width: 640px; padding: 22px 16px 70px; }
.bz-post-page > h1 { margin: 6px 0 16px; }
.bz-back { display: inline-block; color: var(--z-green); text-decoration: none; font-weight: 600; font-size: .9rem; }
.bz-post-card { background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); border-radius: 16px;
  padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.bz-post-card .bz-auth-icon { font-size: 2.4rem; }
.bz-post-card h2 { margin: 0; }
#bzp-recaptcha { margin: 4px 0; }
.bz-post-foot { display: flex; justify-content: flex-end; gap: 10px; margin-top: 4px; }
.bz-post-foot .bz-btn-ghost { display: inline-flex; align-items: center; }

/* ── Account ── */
.bz-acct { padding: 26px 16px 70px; max-width: 860px; }
.bz-muted { color: var(--be-text-muted, var(--z-muted)); }
.bz-auth-card { text-align: center; background: var(--z-card); border: 1px solid var(--be-border, var(--z-border));
  border-radius: 16px; padding: 40px 24px; max-width: 460px; margin: 30px auto; }
.bz-auth-icon { font-size: 2.6rem; margin-bottom: 6px; }
.bz-auth-card h1 { margin: 0 0 8px; font-size: 1.4rem; }
.bz-auth-card p { color: var(--be-text-soft, var(--z-muted)); margin: 0 0 18px; }
.bz-auth-fine { font-size: .8rem; margin: 14px 0 0 !important; }
.bz-google { width: 100%; max-width: 300px; }
.bz-acct-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.bz-acct-head h1 { margin: 0 0 2px; }
.bz-acct-actions { display: flex; gap: 10px; align-items: center; }
.bz-btn-ghost { background: none; border: 1px solid var(--be-border-strong, var(--z-border)); color: var(--be-text, var(--z-text));
  border-radius: 10px; padding: 9px 14px; font-weight: 600; cursor: pointer; }
.bz-btn-ghost:hover { border-color: var(--z-green); }
.bz-quota { margin: 14px 0 4px; font-size: .88rem; color: var(--be-text-muted, var(--z-muted)); }
.bz-admin-pill { border-color: #2563a8; color: #2563a8; text-decoration: none; }
.bz-admin-pill:hover { border-color: #2563a8; background: rgba(37, 99, 168, .08); }
:root[data-theme="dark"] .bz-admin-pill { color: #6ea8e8; border-color: #3a5f88; }

.bz-ads { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }
.bz-adrow { display: flex; gap: 14px; align-items: center; background: var(--z-card);
  border: 1px solid var(--be-border, var(--z-border)); border-radius: 12px; padding: 12px; }
.bz-adthumb { width: 72px; height: 72px; border-radius: 9px; overflow: hidden; flex: 0 0 auto;
  background: var(--be-surface-2, #eef1f0); display: grid; place-items: center; font-size: 1.6rem; }
.bz-adthumb img { width: 100%; height: 100%; object-fit: cover; }
.bz-adinfo { flex: 1; min-width: 0; }
.bz-adtitle { font-weight: 600; font-size: .95rem; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bz-admeta { font-size: .82rem; color: var(--be-text-muted, var(--z-muted)); margin-top: 3px; }
.bz-adnote { font-size: .8rem; color: #c0392b; margin-top: 3px; }
.bz-adactions { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.bz-pill { font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; padding: 2px 8px; border-radius: 6px; }
.bz-pill.live { background: var(--z-green); color: #fff; }
.bz-pill.pending { background: #f0ad4e; color: #3a2600; }
.bz-pill.sold { background: #6b7280; color: #fff; }
.bz-pill.rejected { background: #d9534f; color: #fff; }
.bz-pill.expired { background: var(--be-surface-2, #e6e6e6); color: var(--be-text-muted, var(--z-muted)); }
.bz-link { background: none; border: 0; color: var(--z-green); font-weight: 600; font-size: .84rem; cursor: pointer; text-decoration: none; padding: 0; }
.bz-link:hover { text-decoration: underline; }
.bz-link.danger { color: #c0392b; }

/* ── Modals ── */
.bz-modal { position: fixed; inset: 0; z-index: 100; background: rgba(8, 20, 15, .55);
  display: flex; align-items: flex-start; justify-content: center; padding: 24px 14px; overflow-y: auto; }
.bz-modal[hidden] { display: none; }
.bz-modal-card { background: var(--z-card); border: 1px solid var(--be-border, var(--z-border)); border-radius: 16px;
  width: 100%; max-width: 560px; box-shadow: var(--be-shadow-hover, 0 20px 50px rgba(0,0,0,.3)); }
.bz-modal-sm { max-width: 420px; }
.bz-modal-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; border-bottom: 1px solid var(--be-border, var(--z-border)); }
.bz-modal-head h2 { margin: 0; font-size: 1.1rem; }
.bz-modal-x { background: none; border: 0; font-size: 1.1rem; color: var(--be-text-muted, var(--z-muted)); cursor: pointer; }
.bz-modal-body { padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.bz-modal-foot { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 18px; border-top: 1px solid var(--be-border, var(--z-border)); }

.bz-field { display: flex; flex-direction: column; gap: 6px; }
.bz-field > span { font-size: .8rem; font-weight: 600; color: var(--be-text-soft, var(--z-text)); }
.bz-field > span small { color: var(--be-text-muted, var(--z-muted)); font-weight: 400; }
.bz-field input, .bz-field select, .bz-field textarea { padding: 10px 12px; border: 1px solid var(--be-border-strong, var(--z-border));
  border-radius: 9px; font-size: .95rem; font-family: inherit; background: var(--be-surface, #fff); color: var(--be-text, var(--z-text)); }
.bz-field textarea { resize: vertical; }
.bz-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bz-price-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.bz-ptype { display: inline-flex; border: 1px solid var(--be-border-strong, var(--z-border)); border-radius: 9px; overflow: hidden; }
.bz-ptype button { background: none; border: 0; padding: 9px 14px; font-weight: 600; font-size: .86rem; cursor: pointer; color: var(--be-text-soft, var(--z-text)); }
.bz-ptype button.is-on { background: var(--z-green); color: #fff; }
.bz-price-row input { flex: 1; min-width: 120px; padding: 9px 12px; border: 1px solid var(--be-border-strong, var(--z-border));
  border-radius: 9px; font-family: inherit; background: var(--be-surface, #fff); color: var(--be-text, var(--z-text)); }
.bz-hint { color: var(--be-text-muted, var(--z-muted)); font-size: .78rem; }
.bz-previews { display: flex; gap: 8px; flex-wrap: wrap; }
.bz-previews img { width: 70px; height: 70px; object-fit: cover; border-radius: 8px; border: 2px solid transparent; }
.bz-previews img.is-cover { border-color: var(--z-green); }
.bz-check { display: flex; gap: 9px; align-items: flex-start; font-size: .85rem; color: var(--be-text-soft, var(--z-text)); }
.bz-check input { margin-top: 3px; }
.bz-err { color: #c0392b; font-size: .86rem; margin: 0; }
.bz-ok { color: var(--z-green); font-weight: 600; font-size: .9rem; margin: 0; }
#bz-recaptcha, #bzw-recaptcha { margin: 4px 0; }
.bz-ptype button[hidden] { display: none; }
@media (max-width: 520px) { .bz-field-row { grid-template-columns: 1fr; } }

/* ── Post wizard ── */
.bz-wizard { max-width: 720px; }
/* Step sections, type blocks, the id-chip and OTP sub-steps are display:flex/grid,
   so the bare [hidden] attribute won't hide them (CLAUDE.md §9). Force it, scoped. */
.bz-wizard [hidden] { display: none !important; }
.bz-steps { list-style: none; display: flex; margin: 10px 0 20px; padding: 0; counter-reset: step; }
.bz-steps li { flex: 1; position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.bz-steps li::before { content: ""; position: absolute; top: 15px; left: -50%; width: 100%; height: 2px;
  background: var(--be-border-strong, var(--z-border)); z-index: 0; }
.bz-steps li:first-child::before { display: none; }
.bz-steps li.is-done::before, .bz-steps li.is-on::before { background: var(--z-green); }
.bz-steps-num { position: relative; z-index: 1; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center;
  background: var(--be-surface, #fff); border: 2px solid var(--be-border-strong, var(--z-border));
  color: var(--be-text-muted, var(--z-muted)); font-weight: 800; font-size: .85rem; transition: all .2s; }
.bz-steps li.is-on .bz-steps-num { border-color: var(--z-green); color: var(--z-green); box-shadow: 0 0 0 4px rgba(16,163,110,.14); }
.bz-steps li.is-done .bz-steps-num { background: var(--z-green); border-color: var(--z-green); color: #fff; font-size: 0; }
.bz-steps li.is-done .bz-steps-num::after { content: "✓"; font-size: .9rem; }
.bz-steps-lbl { font-size: .74rem; font-weight: 600; color: var(--be-text-muted, var(--z-muted)); text-align: center; }
.bz-steps li.is-on .bz-steps-lbl, .bz-steps li.is-done .bz-steps-lbl { color: var(--be-text, var(--z-text)); }

.bz-idchip { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 8px 12px; border-radius: 10px;
  background: rgba(16,163,110,.10); border: 1px solid rgba(16,163,110,.28); font-size: .84rem; color: var(--be-text, var(--z-text)); }
.bz-idchip-ok { width: 20px; height: 20px; border-radius: 50%; background: var(--z-green); color: #fff; display: grid; place-items: center; font-size: .7rem; font-weight: 800; flex: 0 0 auto; }

.bz-step-card { text-align: center; align-items: center; }
.bz-step-card h1 { margin: 4px 0 0; font-size: 1.35rem; }
.bz-step-card > p.bz-muted { max-width: 460px; margin: 0 auto; }
.bz-step-card .bz-field, .bz-step-card #bzw-phone-step1, .bz-step-card #bzw-phone-step2 { text-align: left; width: 100%; max-width: 340px; }
.bz-step-card #bzw-phone-step1, .bz-step-card #bzw-phone-step2 { display: flex; flex-direction: column; gap: 12px; align-items: center; }
.bz-step-card #bzw-phone-step1 .bz-field, .bz-step-card #bzw-phone-step2 .bz-field { max-width: 340px; }
.bz-step-card .btn-primary { min-width: 220px; }

/* verified confirmation */
.bz-verified-step .bz-verified-burst { width: 68px; height: 68px; border-radius: 50%; display: grid; place-items: center;
  background: var(--z-green); color: #fff; font-size: 2rem; font-weight: 800; margin: 4px auto 2px;
  box-shadow: 0 0 0 8px rgba(16,163,110,.14); animation: bzPop .35s ease-out; }
@keyframes bzPop { 0% { transform: scale(.4); opacity: 0; } 70% { transform: scale(1.08); } 100% { transform: scale(1); opacity: 1; } }
.bz-verified-num { font-size: 1.5rem; font-weight: 800; letter-spacing: .04em; color: var(--z-green);
  background: rgba(16,163,110,.10); border: 1px dashed rgba(16,163,110,.4); border-radius: 12px; padding: 10px 22px; }

/* type chooser */
.bz-typegrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; width: 100%; margin-top: 6px; }
.bz-typecard { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; cursor: pointer;
  background: var(--z-card); border: 2px solid var(--be-border, var(--z-border)); border-radius: 14px; padding: 22px 14px;
  color: var(--be-text, var(--z-text)); transition: transform .15s, border-color .15s, box-shadow .15s; }
.bz-typecard:hover { transform: translateY(-3px); border-color: var(--tc); box-shadow: 0 12px 26px rgba(0,0,0,.10); }
.bz-typecard-ic { font-size: 2.2rem; }
.bz-typecard b { font-size: 1.02rem; }
.bz-typecard small { color: var(--be-text-muted, var(--z-muted)); font-size: .78rem; line-height: 1.35; }

/* adaptive form header */
.bz-typebadge { display: flex; align-items: center; gap: 6px; font-size: .9rem; color: var(--be-text-soft, var(--z-text));
  background: var(--be-surface-2, #f3f6f5); border-radius: 10px; padding: 8px 12px; }
.bz-typebadge #bzw-type-emoji { font-size: 1.1rem; }
.bz-typebadge .bz-link { margin-left: auto; }
.bz-typeblk { display: flex; flex-direction: column; gap: 14px; }
:root[data-theme="dark"] .bz-typebadge { background: rgba(255,255,255,.05); }

@media (max-width: 560px) {
  .bz-typegrid { grid-template-columns: 1fr; }
  .bz-steps-lbl { font-size: .68rem; }
}

/* ── Urdu / RTL ──
   dir="rtl" on <html> mirrors flex/grid automatically; these tweaks fix the
   Urdu webfont, a couple of absolutely-positioned bits, and directional arrows. */
html[dir="rtl"] body, html[dir="rtl"] .btn-primary, html[dir="rtl"] input,
html[dir="rtl"] select, html[dir="rtl"] textarea, html[dir="rtl"] button {
  font-family: "Noto Naskh Arabic", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}
html[dir="rtl"] body { line-height: 1.85; }
html[dir="rtl"] .bz-tag-verified { left: auto; right: 8px; }
html[dir="rtl"] .bz-steps li::before { left: auto; right: -50%; }
html[dir="rtl"] .bz-idchip-ok, html[dir="rtl"] .bz-typebadge .bz-link { margin-left: 0; }
html[dir="rtl"] .bz-typebadge .bz-link { margin-right: auto; }
html[dir="rtl"] .bz-back { direction: rtl; }
/* numbers/prices stay LTR so they read correctly inside RTL text */
.bz-card-price, .bz-detail-price, .bz-verified-num, .bz-price-row input { direction: ltr; }
html[dir="rtl"] .bz-card-price, html[dir="rtl"] .bz-detail-price { text-align: right; }

/* ── Service credentials / evidence ── */
.bz-cred { background: rgba(37,99,235,.05); border: 1px solid rgba(37,99,235,.20); border-radius: 12px; padding: 14px; }
:root[data-theme="dark"] .bz-cred { background: rgba(96,140,240,.08); border-color: rgba(96,140,240,.28); }
.bz-cred-head { display: flex; gap: 10px; align-items: flex-start; }
.bz-cred-ic { font-size: 1.5rem; line-height: 1; }
.bz-cred-head b { display: block; font-size: .95rem; }
.bz-cred-head small { display: block; margin-top: 2px; }
.bz-req { color: #c0392b; font-weight: 700; }
.bz-cred-privacy { font-size: .78rem; margin: 2px 0 0 !important; }
.bz-doc-chip { display: inline-flex; align-items: center; gap: 4px; padding: 8px 10px; border-radius: 8px;
  background: var(--be-surface-2, #eef1f0); font-size: .82rem; color: var(--be-text, var(--z-text)); }

/* ── Verified provider badges ── */
.bz-verified-badge { display: inline-flex; align-items: center; gap: 5px; margin: 6px 0 2px; padding: 4px 10px;
  border-radius: 999px; font-size: .8rem; font-weight: 700; color: #fff; background: var(--z-green); }
:root[data-theme="dark"] .bz-verified-badge { color: #06281e; }
.bz-tag-verified { position: absolute; left: 8px; bottom: 8px; z-index: 2; padding: 2px 8px; border-radius: 6px;
  font-size: .68rem; font-weight: 800; color: #fff; background: var(--z-green); box-shadow: 0 2px 6px rgba(0,0,0,.2); }
:root[data-theme="dark"] .bz-tag-verified { color: #06281e; }

/* ── Business / doctor profile (Ola-style header + avatar placeholder) ── */
.bz-doc-head { display: flex; gap: 18px; align-items: center; }
.bz-doc-avatar { position: relative; width: 96px; height: 96px; flex: 0 0 auto; border-radius: 50%; overflow: hidden;
  display: grid; place-items: center; background: linear-gradient(140deg, #e8f1ff, #dbeafe); box-shadow: 0 4px 14px rgba(0,0,0,.08); }
.bz-doc-avatar.is-doc { background: linear-gradient(140deg, #e6f7f0, #cdeee0); }
.bz-doc-avatar.is-law { background: linear-gradient(140deg, #fff4e0, #ffe8bf); }
.bz-doc-avatar img { width: 100%; height: 100%; object-fit: cover; }
.bz-doc-avatar-emoji { font-size: 2.8rem; line-height: 1; }
.bz-doc-avatar-initial { display: none; }
.bz-doc-avatar-check { position: absolute; right: 3px; bottom: 3px; width: 26px; height: 26px; border-radius: 50%;
  background: var(--z-green); color: #fff; display: grid; place-items: center; font-size: .82rem; font-weight: 800; border: 2px solid var(--z-card, #fff); }
:root[data-theme="dark"] .bz-doc-avatar { background: linear-gradient(140deg, #16324a, #0f2740); }
:root[data-theme="dark"] .bz-doc-avatar.is-doc { background: linear-gradient(140deg, #123a2c, #0d2a20); }
:root[data-theme="dark"] .bz-doc-avatar.is-law { background: linear-gradient(140deg, #40320f, #2a2109); }
.bz-doc-qual { font-size: .92rem; font-weight: 600; color: var(--be-text-soft, var(--z-text)); margin-top: 2px; }
.bz-doc-stats { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 8px; }
.bz-doc-stat { font-size: .88rem; color: var(--be-text-soft, var(--z-text)); }
.bz-doc-stat b { color: var(--be-text, var(--z-text)); }
.bz-doc-stat .bz-stars { color: var(--z-gold, #c9a227); }
.bz-doc-loc { color: var(--be-text-muted, var(--z-muted)); font-size: .85rem; }
.bz-claim-cta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: space-between;
  background: var(--be-surface-2, #f3f6f5); border-radius: 12px; padding: 14px 16px; margin-top: 18px; }
.bz-claim-cta > div { flex: 1; min-width: 210px; }
.bz-claim-cta b { display: block; margin-bottom: 2px; }
:root[data-theme="dark"] .bz-claim-cta { background: rgba(255,255,255,.05); }
@media (max-width: 520px) {
  .bz-doc-head { gap: 14px; }
  .bz-doc-avatar { width: 76px; height: 76px; }
  .bz-doc-avatar-emoji { font-size: 2.2rem; }
}
