/* ==========================================================================
   BUILTVY CORE — app screens (login, dashboard, submit, compare, search)
   Uses the theme's CSS variables when present, with safe fallbacks so the
   plugin still looks right on any theme.
   ========================================================================== */

/* Scoped to :root so EVERY plugin element gets the variables — the search
   form sits outside .bv-auth/.bv-dash, and without this its gold button
   rendered with no background at all. */
:root {
  --bv-brand:      var(--brand, #052F21);
  --bv-brand-500:  var(--brand-500, #0A5138);
  --bv-brand-50:   var(--brand-50, #F1F7F4);
  --bv-brand-100:  var(--brand-100, #DFEDE6);
  --bv-accent:     var(--accent, #D6B355);
  --bv-accent-600: var(--accent-600, #BE9B3E);
  --bv-ink:        var(--ink, #15181E);
  --bv-ink-2:      var(--ink-2, #3D444F);
  --bv-ink-3:      var(--ink-3, #697586);
  --bv-ink-4:      var(--ink-4, #9AA4B2);
  --bv-line:       var(--line, #E3E9E6);
  --bv-line-2:     var(--line-2, #EEF3F0);
  --bv-r:          12px;
  --bv-rs:         8px;
}

.bv-hide{display:none !important}

/* ---------- buttons ---------- */
.bv-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 18px;border-radius:var(--bv-rs);font-size:14px;font-weight:600;
  border:none;cursor:pointer;text-decoration:none;transition:.18s;line-height:1.2;
  font-family:inherit;
}
.bv-btn:hover{text-decoration:none}
.bv-btn-accent{background:var(--bv-accent);color:#02170F}
.bv-btn-accent:hover{background:var(--bv-accent-600);color:#02170F}
.bv-btn-primary{background:var(--bv-brand);color:#fff}
.bv-btn-primary:hover{background:var(--bv-brand-500);color:#fff}
.bv-btn-line{background:#fff;color:var(--bv-ink-2);border:1px solid var(--bv-line)}
.bv-btn-line:hover{border-color:var(--bv-brand);color:var(--bv-brand)}
.bv-btn-wa{background:#0E8A4C;color:#fff}
.bv-btn-wa:hover{background:#0B7A3D;color:#fff}
.bv-btn-sm{padding:7px 13px;font-size:12.5px}
.bv-btn-lg{padding:14px 26px;font-size:15px}
.bv-btn-block{width:100%}

/* ---------- notes ---------- */
.bv-note{
  padding:13px 16px;border-radius:var(--bv-rs);font-size:14px;line-height:1.5;
  background:var(--bv-brand-50);border:1px solid var(--bv-line);color:var(--bv-ink-2);
  margin:0 0 18px;
}
.bv-note-ok{background:#E6F5EC;border-color:#BFE4CE;color:#0B5F31}
.bv-note-error{background:#FDECEC;border-color:#F5C6C6;color:#A32020}

/* ---------- fields ---------- */
.bv-fld{margin-bottom:15px}
.bv-fld label{display:block;font-size:12.5px;font-weight:600;color:var(--bv-ink-2);margin-bottom:5px}
.bv-fld label i{color:#D93F3F;font-style:normal}
.bv-fld input[type=text],.bv-fld input[type=email],.bv-fld input[type=tel],
.bv-fld input[type=password],.bv-fld input[type=number],.bv-fld select,.bv-fld textarea{
  width:100%;padding:11px 13px;border:1px solid var(--bv-line);border-radius:var(--bv-rs);
  font-size:14px;font-family:inherit;background:#fff;color:var(--bv-ink);outline:none;transition:.15s;
}
.bv-fld input:focus,.bv-fld select:focus,.bv-fld textarea:focus{
  border-color:var(--bv-brand);box-shadow:0 0 0 3px var(--bv-brand-100);
}
.bv-fld textarea{resize:vertical;min-height:90px;line-height:1.55}
.bv-fld small{display:block;font-size:11.5px;color:var(--bv-ink-4);margin-top:4px;line-height:1.45}
.bv-fld input[type=file]{
  width:100%;padding:9px;border:1px dashed var(--bv-line);border-radius:var(--bv-rs);
  font-size:13px;background:#FAFBFA;
}
.bv-inline{display:flex;gap:8px}
.bv-inline input{flex:2;min-width:0}
.bv-inline select{flex:1;min-width:0}
.bv-hint{display:block;font-size:12px;color:var(--bv-ink-4);line-height:1.5}

.bv-check{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--bv-ink-2);cursor:pointer}
.bv-check input{width:16px;height:16px;accent-color:var(--bv-brand);cursor:pointer;flex-shrink:0}
.bv-check-top{align-items:flex-start;margin:6px 0 16px}
.bv-check-top input{margin-top:2px}
.bv-checks{display:flex;flex-wrap:wrap;gap:14px 24px;margin-top:6px}
.bv-row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;font-size:13px}

.bv-g2{display:grid;grid-template-columns:repeat(2,1fr);gap:0 16px}
.bv-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
.bv-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:0 16px}

/* ---------- avatar ---------- */
.bv-av{
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  background:var(--bv-brand-100);color:var(--bv-brand);font-weight:800;font-size:19px;flex-shrink:0;
}
.bv-av-sm{width:38px;height:38px;font-size:13px}
.bv-av-lg{width:84px;height:84px;font-size:28px;margin:0 auto 14px}

/* ==========================================================================
   AUTH
   ========================================================================== */
.bv-auth{display:grid;grid-template-columns:1fr 480px;min-height:520px;border-radius:var(--bv-r);overflow:hidden;border:1px solid var(--bv-line)}
.bv-auth-side{
  padding:48px 44px;color:#fff;display:flex;flex-direction:column;justify-content:center;
  background:linear-gradient(140deg,var(--bv-brand),var(--bv-brand-500));
}
.bv-auth-side h2{font-size:30px;font-weight:800;letter-spacing:-.9px;line-height:1.2;margin:0 0 14px;color:#fff}
.bv-auth-side p{color:rgba(255,255,255,.78);font-size:15px;line-height:1.6;margin:0 0 28px}
.bv-pt{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px}
.bv-tick{color:var(--bv-accent);font-size:17px;font-weight:800;line-height:1.3;flex-shrink:0}
.bv-pt b{display:block;font-size:14.5px;font-weight:700;color:#fff}
.bv-pt span{font-size:13px;color:rgba(255,255,255,.7);line-height:1.5}

.bv-auth-form{background:#fff;padding:44px 40px;display:flex;flex-direction:column;justify-content:center}
.bv-auth-form h1{font-size:24px;font-weight:800;letter-spacing:-.6px;margin:0 0 5px}
.bv-lede{font-size:13.5px;color:var(--bv-ink-3);margin:0 0 22px}
.bv-swap{text-align:center;font-size:13.5px;color:var(--bv-ink-3);margin:18px 0 0}
.bv-swap button{background:none;border:none;color:var(--bv-brand);font-weight:700;cursor:pointer;font-size:13.5px;font-family:inherit;padding:0}

.bv-roles{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:18px}
.bv-role{
  border:1px solid var(--bv-line);border-radius:var(--bv-rs);padding:12px 12px;
  text-align:left;background:#fff;cursor:pointer;transition:.15s;font-family:inherit;
}
.bv-role:hover{border-color:var(--bv-brand)}
.bv-role.on{border-color:var(--bv-brand);background:var(--bv-brand-50);box-shadow:0 0 0 3px var(--bv-brand-100)}
.bv-role b{display:block;font-size:13.5px;font-weight:700;color:var(--bv-ink);margin-bottom:2px}
.bv-role span{font-size:11.5px;color:var(--bv-ink-3);line-height:1.35;display:block}

.bv-already{text-align:center;padding:56px 24px;border:1px solid var(--bv-line);border-radius:var(--bv-r);background:#fff}
.bv-already h2{font-size:22px;font-weight:700;margin:0 0 4px}
.bv-already p{color:var(--bv-ink-3);margin:0 0 20px}
.bv-already-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* ==========================================================================
   DASHBOARD
   ========================================================================== */
.bv-dash{display:grid;grid-template-columns:250px 1fr;gap:24px;align-items:start}

.bv-dnav{background:#fff;border:1px solid var(--bv-line);border-radius:var(--bv-r);overflow:hidden;position:sticky;top:24px}
.bv-dnav-user{padding:22px 18px;text-align:center;border-bottom:1px solid var(--bv-line-2)}
.bv-dnav-user .bv-av{margin:0 auto 11px}
.bv-dnav-user b{display:block;font-size:14.5px;font-weight:700}
.bv-dnav-user>span{display:block;font-size:11.5px;color:var(--bv-ink-3);margin-top:2px}
.bv-plan{
  display:inline-block;margin-top:10px;font-size:10.5px;font-weight:700;letter-spacing:.4px;
  background:#FAF3E1;color:#7A5F14;padding:4px 11px;border-radius:100px;
}
.bv-dnav ul{list-style:none;margin:0;padding:10px 0}
.bv-dnav li{margin:0}
.bv-dnav a{
  display:flex;align-items:center;gap:10px;padding:11px 18px;font-size:13.5px;
  font-weight:500;color:var(--bv-ink-2);text-decoration:none;border-left:3px solid transparent;transition:.15s;
}
.bv-dnav a:hover{background:var(--bv-brand-50);color:var(--bv-brand)}
.bv-dnav a.on{background:var(--bv-brand-50);color:var(--bv-brand);font-weight:600;border-left-color:var(--bv-accent)}
.bv-badge{
  margin-left:auto;background:var(--bv-line-2);color:var(--bv-ink-3);font-size:10.5px;font-weight:700;
  min-width:20px;height:20px;border-radius:100px;display:grid;place-items:center;padding:0 6px;
}
.bv-badge-hot{background:var(--bv-accent);color:#02170F}

.bv-dmain{min-width:0}
.bv-dhead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px;flex-wrap:wrap}
.bv-dhead h2{font-size:22px;font-weight:800;letter-spacing:-.6px;margin:0}
.bv-dhead p{font-size:13.5px;color:var(--bv-ink-3);margin:5px 0 0}

.bv-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.bv-stat{background:#fff;border:1px solid var(--bv-line);border-radius:var(--bv-r);padding:18px}
.bv-stat b{display:block;font-size:26px;font-weight:800;letter-spacing:-.8px;color:var(--bv-brand);line-height:1.1}
.bv-stat span{font-size:12px;color:var(--bv-ink-3)}

.bv-panel{background:#fff;border:1px solid var(--bv-line);border-radius:var(--bv-r);margin-bottom:20px;overflow:hidden}
.bv-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-bottom:1px solid var(--bv-line-2);flex-wrap:wrap}
.bv-panel-head b{font-size:15px;font-weight:700}

.bv-empty{padding:44px 20px;text-align:center}
.bv-empty p{color:var(--bv-ink-3);font-size:14px;margin:0 0 16px;line-height:1.55}

/* tables */
.bv-tblwrap{overflow-x:auto}
.bv-tbl{width:100%;border-collapse:collapse;min-width:640px}
.bv-tbl th{
  text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;
  color:var(--bv-ink-4);padding:11px 18px;border-bottom:1px solid var(--bv-line-2);background:#FBFCFB;
}
.bv-tbl td{padding:13px 18px;border-bottom:1px solid var(--bv-line-2);font-size:13.5px;vertical-align:middle}
.bv-tbl tr:last-child td{border-bottom:none}
.bv-tprop{display:flex;align-items:center;gap:11px;min-width:0}
.bv-th{width:54px;height:42px;border-radius:6px;object-fit:cover;flex-shrink:0;display:block}
.bv-th-empty{background:linear-gradient(135deg,#DDEAE3,#C2D6CB)}
.bv-tprop b{display:block;font-size:13.5px;font-weight:600;line-height:1.3}
.bv-tprop span{font-size:11.5px;color:var(--bv-ink-4)}
.bv-tact{display:flex;gap:10px;flex-wrap:wrap}
.bv-tact a{font-size:12.5px;font-weight:600;color:var(--bv-brand);text-decoration:none;white-space:nowrap}
.bv-tact a:hover{text-decoration:underline}
.bv-tact .bv-del{color:#C33}

.bv-pill{font-size:10.5px;font-weight:700;padding:4px 10px;border-radius:100px;white-space:nowrap;display:inline-block}
.bv-pill-live{background:#E6F5EC;color:#0B7A3D}
.bv-pill-pend{background:#FAF3E1;color:#7A5F14}
.bv-pill-exp{background:#FDECEC;color:#B32B2B}
.bv-pill-grey{background:var(--bv-line-2);color:var(--bv-ink-3)}
.bv-pill-new{background:var(--bv-brand-100);color:var(--bv-brand)}

/* leads */
.bv-lead{display:flex;gap:13px;padding:16px 18px;border-bottom:1px solid var(--bv-line-2);align-items:flex-start}
.bv-lead:last-child{border-bottom:none}
.bv-lead-body{flex:1;min-width:0}
.bv-lead-body b{font-size:14px;font-weight:700}
.bv-when{font-size:11.5px;color:var(--bv-ink-4);margin-left:7px;font-weight:500}
.bv-lead-body p{font-size:13px;color:var(--bv-ink-3);margin:4px 0 0;line-height:1.5}
.bv-lead-purpose{font-weight:600;color:var(--bv-ink-2) !important}
.bv-on-prop{display:inline-block;font-size:12px;color:var(--bv-brand);font-weight:600;margin-top:6px;text-decoration:none}
.bv-on-prop:hover{text-decoration:underline}
.bv-lead-acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;align-items:center}
.bv-lead-status{padding:7px 11px;border:1px solid var(--bv-line);border-radius:var(--bv-rs);font-size:12.5px;background:#fff;font-family:inherit}

/* saved cards */
.bv-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:18px}
.bv-scard{display:block;border:1px solid var(--bv-line);border-radius:var(--bv-r);overflow:hidden;text-decoration:none;color:inherit;transition:.18s;background:#fff}
.bv-scard:hover{box-shadow:0 10px 26px -12px rgba(2,23,15,.3)}
.bv-scard img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.bv-scard-b{padding:13px 14px}
.bv-scard-b b{display:block;font-size:17px;font-weight:800;color:var(--bv-brand);letter-spacing:-.4px}
.bv-scard-b span{display:block;font-size:13.5px;font-weight:600;margin:3px 0;line-height:1.35}
.bv-scard-b small{font-size:12px;color:var(--bv-ink-4)}

/* ==========================================================================
   SUBMIT FORM
   ========================================================================== */
.bv-form{max-width:960px}
.bv-fs{background:#fff;border:1px solid var(--bv-line);border-radius:var(--bv-r);padding:22px;margin-bottom:18px}
.bv-fs h3{font-size:16px;font-weight:700;letter-spacing:-.3px;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--bv-line-2)}
.bv-amen-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:11px 18px}
.bv-thumbs{display:flex;flex-wrap:wrap;gap:9px;margin-top:11px}
.bv-thumbs img{width:74px;height:74px;object-fit:cover;border-radius:7px;display:block}
.bv-thumb{position:relative;display:block;cursor:pointer}
.bv-thumb input{position:absolute;top:5px;left:5px;width:16px;height:16px;accent-color:var(--bv-brand)}
.bv-thumb span{
  position:absolute;bottom:0;left:0;right:0;background:rgba(2,23,15,.72);color:#fff;
  font-size:10px;font-weight:700;text-align:center;padding:2px;border-radius:0 0 7px 7px;
}
.bv-form-actions{display:flex;gap:11px;align-items:center;flex-wrap:wrap;padding:4px 0 40px}

/* ==========================================================================
   COMPARE
   ========================================================================== */
.bv-cmp-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px;flex-wrap:wrap}
.bv-cmp-head h2{font-size:22px;font-weight:800;letter-spacing:-.6px;margin:0}
.bv-cmp-head p{font-size:13.5px;color:var(--bv-ink-3);margin:5px 0 0}
.bv-cmp-wrap{background:#fff;border:1px solid var(--bv-line);border-radius:var(--bv-r);overflow-x:auto;margin-bottom:40px}
.bv-cmp{width:100%;border-collapse:collapse;min-width:820px}
.bv-cmp th,.bv-cmp td{padding:14px 16px;border-bottom:1px solid var(--bv-line-2);text-align:left;font-size:13.5px;vertical-align:top}
.bv-cmp td:first-child,.bv-cmp th:first-child{width:190px;background:var(--bv-brand-50);font-weight:600;color:var(--bv-ink-2);position:sticky;left:0;border-right:1px solid var(--bv-line-2)}
.bv-cmp thead th{background:#fff;border-bottom:1px solid var(--bv-line);padding:16px}
.bv-cmp thead th:first-child{background:var(--bv-brand-50)}
.bv-cmp-card img,.bv-cmp-noimg{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--bv-rs);margin-bottom:11px;display:block;background:linear-gradient(135deg,#DDEAE3,#C2D6CB)}
.bv-cmp-card b{display:block;font-size:14px;font-weight:600;line-height:1.35;margin-bottom:4px}
.bv-cmp-price{font-size:19px;font-weight:800;color:var(--bv-brand);letter-spacing:-.4px;margin-bottom:3px}
.bv-cmp-loc{display:block;font-size:12px;color:var(--bv-ink-3);margin-bottom:11px}
.bv-cmp-remove{display:inline-block;font-size:12px;color:var(--bv-ink-4);margin-top:9px;text-decoration:none;font-weight:600}
.bv-cmp-remove:hover{color:#C33}
.bv-yes{color:#0E8A4C;font-weight:700}
.bv-no{color:var(--bv-ink-4)}
.bv-best{background:#E6F5EC;position:relative}
.bv-best::after{content:"BEST";position:absolute;top:8px;right:10px;font-size:9px;font-weight:800;letter-spacing:.6px;color:#0E8A4C}

/* ==========================================================================
   SEARCH FORM
   ========================================================================== */
.bv-search{background:#fff;border-radius:16px;box-shadow:0 12px 34px -10px rgba(2,23,15,.2);overflow:hidden}
.bv-search-tabs{display:flex;gap:0;border-bottom:1px solid var(--bv-line-2);padding:0 8px;overflow-x:auto}
.bv-search-tabs a{
  padding:14px 18px;font-size:14px;font-weight:600;color:var(--bv-ink-3);text-decoration:none;
  border-bottom:2.5px solid transparent;white-space:nowrap;
}
.bv-search-tabs a.on{color:var(--bv-brand);border-bottom-color:var(--bv-accent)}
.bv-search-row{display:flex;align-items:center;gap:0;padding:10px}
.bv-sfield{flex:1;padding:8px 14px;border-right:1px solid var(--bv-line-2);min-width:0}
.bv-sfield-wide{flex:1.6}
.bv-sfield:last-of-type{border-right:none}
.bv-sfield label{display:block;font-size:10.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--bv-ink-4);margin-bottom:3px}
.bv-sfield input,.bv-sfield select{
  width:100%;border:none;outline:none;font-size:14.5px;font-weight:600;color:var(--bv-ink);
  background:transparent;font-family:inherit;padding:0;
}
.bv-sfield input{font-weight:500}
.bv-search-row .bv-btn{flex-shrink:0;margin-left:6px}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media(max-width:1024px){
  .bv-auth{grid-template-columns:1fr}
  .bv-auth-side{display:none}
  .bv-dash{grid-template-columns:1fr}
  .bv-dnav{position:static}
  .bv-dnav ul{display:flex;flex-wrap:wrap;padding:8px}
  .bv-dnav a{border-left:none;border-radius:8px;padding:9px 13px}
  .bv-dnav a.on{border-left:none}
  .bv-stats{grid-template-columns:repeat(2,1fr)}
  .bv-g3,.bv-g4{grid-template-columns:repeat(2,1fr)}
  .bv-amen-pick{grid-template-columns:repeat(3,1fr)}
  .bv-cards{grid-template-columns:repeat(2,1fr)}
  .bv-search-row{flex-wrap:wrap}
  .bv-sfield{flex:1 1 45%;border-right:none;border-bottom:1px solid var(--bv-line-2)}
  .bv-search-row .bv-btn{width:100%;margin:8px 0 0}
}
@media(max-width:640px){
  .bv-auth-form{padding:28px 20px}
  .bv-roles{grid-template-columns:1fr}
  .bv-g2,.bv-g3,.bv-g4{grid-template-columns:1fr}
  .bv-amen-pick{grid-template-columns:repeat(2,1fr)}
  .bv-cards{grid-template-columns:1fr}
  .bv-stats{grid-template-columns:1fr 1fr}
  .bv-fs{padding:16px}
  .bv-dhead h2{font-size:19px}
}

/* Agent code chip in the dashboard sidebar */
.bv-code{
  display:inline-block;margin-top:8px;font-size:12px;font-weight:700;letter-spacing:.8px;
  background:var(--bv-brand);color:var(--bv-accent);padding:5px 12px;border-radius:100px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* ---------- city suggestions ---------- */
.bv-suggest{
  position:absolute;top:100%;left:0;right:0;z-index:60;margin-top:6px;
  background:#fff;border:1px solid var(--bv-line);border-radius:var(--bv-r);
  box-shadow:0 14px 36px -12px rgba(2,23,15,.32);overflow:hidden;max-height:300px;overflow-y:auto;
}
.bv-sg{
  display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;
  background:none;border:none;text-align:left;cursor:pointer;font-family:inherit;
  font-size:14px;font-weight:500;color:var(--bv-ink);transition:.12s;
}
.bv-sg svg{width:15px;height:15px;stroke:var(--bv-ink-4);flex-shrink:0}
.bv-sg:hover,.bv-sg.on{background:var(--bv-brand-50);color:var(--bv-brand)}
.bv-sg:hover svg,.bv-sg.on svg{stroke:var(--bv-brand)}

/* ==========================================================================
   MASTER PANEL
   ========================================================================== */
.bv-dnav-sep{
  padding:14px 18px 6px;font-size:10.5px;font-weight:800;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--bv-ink-4);border-top:1px solid var(--bv-line-2);margin-top:8px;
}
.bv-code-sm{
  display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.5px;
  background:var(--bv-brand-50);color:var(--bv-brand);padding:2px 8px;border-radius:100px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}

.bv-filterbar{display:flex;flex-wrap:wrap;gap:8px;padding:16px 18px;border-bottom:1px solid var(--bv-line-2)}
.bv-chip{
  display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:100px;
  border:1px solid var(--bv-line);background:#fff;font-size:12.5px;font-weight:600;
  color:var(--bv-ink-2);text-decoration:none;transition:.15s;
}
.bv-chip:hover{border-color:var(--bv-brand);color:var(--bv-brand)}
.bv-chip.on{background:var(--bv-brand);border-color:var(--bv-brand);color:#fff}
.bv-chip span{font-size:11px;opacity:.75}

/* approval cards */
.bv-approve{display:flex;gap:16px;padding:18px;border-bottom:1px solid var(--bv-line-2)}
.bv-approve:last-child{border-bottom:none}
.bv-approve-img{width:180px;flex-shrink:0}
.bv-approve-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--bv-rs);display:block}
.bv-noimg{
  display:grid;place-items:center;width:100%;aspect-ratio:4/3;border-radius:var(--bv-rs);
  background:linear-gradient(135deg,#DDEAE3,#C2D6CB);color:var(--bv-ink-4);font-size:12px;font-weight:600;
}
.bv-approve-body{flex:1;min-width:0}
.bv-approve-body > b{display:block;font-size:15.5px;font-weight:700;line-height:1.35;margin-bottom:4px}
.bv-approve-price{font-size:19px;font-weight:800;color:var(--bv-brand);letter-spacing:-.4px;margin-bottom:6px}
.bv-approve-meta{font-size:12.5px;color:var(--bv-ink-3);line-height:1.5}
.bv-approve-by{font-size:12.5px;color:var(--bv-ink-3);margin-top:8px}
.bv-warn{
  display:inline-block;margin-top:8px;margin-right:8px;font-size:11.5px;font-weight:600;
  background:#FEF6E7;color:#8A6210;padding:4px 11px;border-radius:6px;
}
.bv-approve-acts{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.bv-danger{color:#C33 !important;border-color:#F0C8C8 !important}
.bv-danger:hover{background:#FDECEC !important;border-color:#C33 !important}

/* ==========================================================================
   PWA INSTALL BAR
   ========================================================================== */
.bv-install{
  position:fixed;left:12px;right:12px;bottom:12px;z-index:9999;
  display:flex;align-items:center;gap:12px;padding:12px 14px;
  background:#fff;border:1px solid var(--bv-line);border-radius:14px;
  box-shadow:0 18px 44px -14px rgba(2,23,15,.45);
  transform:translateY(140%);transition:transform .3s cubic-bezier(.2,.8,.25,1);
  max-width:460px;margin:0 auto;
}
.bv-install.on{transform:translateY(0)}
.bv-install img{width:44px;height:44px;border-radius:10px;object-fit:contain;background:var(--bv-brand);flex-shrink:0}
.bv-install-t{flex:1;min-width:0}
.bv-install-t b{display:block;font-size:14px;font-weight:700;color:var(--bv-ink)}
.bv-install-t span{font-size:12px;color:var(--bv-ink-3)}
.bv-install-go{
  background:var(--bv-accent);color:#02170F;border:none;border-radius:8px;
  font-weight:700;font-size:13px;padding:9px 18px;cursor:pointer;font-family:inherit;flex-shrink:0;
}
.bv-install-no{
  background:none;border:none;color:var(--bv-ink-4);font-size:22px;line-height:1;
  cursor:pointer;padding:0 4px;flex-shrink:0;
}

@media(max-width:900px){
  .bv-approve{flex-direction:column}
  .bv-approve-img{width:100%;max-width:280px}
  .bv-filterbar{padding:12px}
}

/* ==========================================================================
   MOBILE — plugin screens
   ========================================================================== */
@media (max-width: 900px) {

  .bv-dash{ grid-template-columns:1fr; gap:16px; }
  .bv-dnav{ position:static; }
  .bv-dnav-user{ padding:16px; }
  .bv-dnav ul{ display:flex; flex-wrap:wrap; gap:4px; padding:10px; }
  .bv-dnav li{ flex:0 0 auto; }
  .bv-dnav a{ border-left:none; border-radius:8px; padding:9px 13px; font-size:13px; }
  .bv-dnav a.on{ border-left:none; }
  .bv-dnav-sep{
    flex:1 0 100%; padding:10px 6px 2px; margin-top:4px; border-top:1px solid var(--bv-line-2);
  }

  .bv-dhead{ flex-direction:column; align-items:flex-start; gap:10px; }
  .bv-dhead h2{ font-size:19px; }
  .bv-dhead .bv-btn{ width:100%; }

  .bv-stats{ grid-template-columns:1fr 1fr; gap:10px; }
  .bv-stat{ padding:14px; }
  .bv-stat b{ font-size:22px; }

  .bv-panel-head{ padding:13px 14px; }
  .bv-fs{ padding:16px; }
  .bv-g2, .bv-g3, .bv-g4{ grid-template-columns:1fr; }
  .bv-amen-pick{ grid-template-columns:1fr 1fr; }
  .bv-form-actions{ flex-direction:column; align-items:stretch; }
  .bv-form-actions .bv-btn{ width:100%; }

  /* 16px keeps iOS from zooming the page when a field is focused */
  .bv-fld input, .bv-fld select, .bv-fld textarea{ font-size:16px; }

  .bv-lead{ padding:14px; }
  .bv-lead-acts{ gap:6px; }
  .bv-lead-acts .bv-btn{ flex:1; min-width:calc(50% - 3px); }

  .bv-cards{ grid-template-columns:1fr; padding:14px; }

  .bv-auth{ grid-template-columns:1fr; border:none; }
  .bv-auth-side{ display:none; }
  .bv-auth-form{ padding:24px 18px; }
  .bv-roles{ grid-template-columns:1fr; }

  .bv-approve{ flex-direction:column; padding:14px; }
  .bv-approve-img{ width:100%; max-width:none; }
  .bv-approve-acts .bv-btn{ flex:1; min-width:calc(50% - 4px); }

  .bv-cmp-head{ flex-direction:column; align-items:flex-start; gap:10px; }
  .bv-filterbar{ padding:12px; gap:6px; }
  .bv-chip{ padding:6px 11px; font-size:12px; }

  /* tables scroll rather than squash */
  .bv-tblwrap{ -webkit-overflow-scrolling:touch; }
  .bv-tbl{ min-width:560px; }
  .bv-tbl th, .bv-tbl td{ padding:11px 12px; }
  .bv-tprop .bv-th{ width:44px; height:34px; }

  /* real tap targets */
  .bv-btn{ min-height:44px; }
  .bv-btn-sm{ min-height:38px; }
}

@media (max-width: 560px) {
  .bv-stats{ grid-template-columns:1fr 1fr; }
  .bv-amen-pick{ grid-template-columns:1fr; }
  .bv-auth-form h1{ font-size:21px; }
  .bv-suggest{ max-height:240px; }
}

/* ==========================================================================
   LEAD GATE — the buyer's details come before the agent's number
   ========================================================================== */
.bv-gate{
  background:linear-gradient(160deg, var(--bv-brand) 0%, var(--bv-brand-500) 100%);
  border-radius:var(--bv-r); padding:18px; color:#fff;
}
.bv-gate-head{ display:flex; gap:12px; align-items:flex-start; margin-bottom:16px; }
.bv-gate-lock{
  width:38px; height:38px; border-radius:10px; flex-shrink:0; display:grid; place-items:center;
  background:rgba(214,179,85,.18); color:var(--bv-accent);
}
.bv-gate-head b{ display:block; font-size:14.5px; font-weight:700; color:#fff; line-height:1.35; margin-bottom:3px; }
.bv-gate-head span{ font-size:12.5px; color:rgba(255,255,255,.7); line-height:1.5; }

.bv-gate .bv-fld{ margin-bottom:10px; }
.bv-gate input, .bv-gate select{
  width:100%; padding:12px 13px; border-radius:var(--bv-rs); font-size:14px; font-family:inherit;
  border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.08); color:#fff; outline:none;
}
.bv-gate input::placeholder{ color:rgba(255,255,255,.5); }
.bv-gate select option{ color:var(--bv-ink); background:#fff; }
.bv-gate input:focus, .bv-gate select:focus{
  border-color:var(--bv-accent); background:rgba(255,255,255,.13);
}
.bv-gate .btn, .bv-gate .bv-btn{ margin-top:4px; }
.bv-gate-note{
  font-size:11px; color:rgba(255,255,255,.5); text-align:center;
  margin:11px 0 0; line-height:1.5;
}
.bv-gate .bv-note{ background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.2); color:#fff; }

.bv-contact-open{ display:flex; flex-direction:column; gap:9px; }
.dactions .bv-contact-open,
.mobile-cta .bv-contact-open{ flex-direction:row; gap:8px; flex:1; }
.dactions .bv-contact-open .btn,
.mobile-cta .bv-contact-open .btn{ flex:1; }

.bv-gate-jump{ text-decoration:none; }

@media (max-width: 900px){
  .bv-gate{ padding:15px; }
  .bv-gate-head b{ font-size:14px; }
}

.bv-lead-agent{ font-size:12px; color:var(--bv-ink-3); margin-top:5px; }
.bv-lead-agent b{ color:var(--bv-ink-2); }

/* ==========================================================================
   BRANDING PANEL
   ========================================================================== */
.bv-brandform .bv-panel{ margin-bottom:18px; }
.bv-brandform h3{ font-size:15px; font-weight:700; margin:0 0 14px; color:var(--bv-ink); }

.bv-brand-logo{ display:grid; grid-template-columns:220px 1fr; gap:20px; align-items:start; }
.bv-logo-prev{
  height:96px; border:1px dashed var(--bv-line); border-radius:var(--bv-rs);
  display:grid; place-items:center; padding:12px; background:var(--bv-brand);
}
.bv-logo-prev img{ max-width:100%; max-height:72px; object-fit:contain; }
.bv-logo-prev.is-empty{ background:#FAFBFA; }
.bv-logo-prev span{ font-size:12px; color:var(--bv-ink-4); }
.bv-fav-prev{ height:96px; }
.bv-fav-prev img{ max-height:56px; border-radius:8px; }

.bv-colorfld{ display:flex; gap:9px; align-items:center; }
.bv-colorfld input[type=color]{
  width:52px; height:44px; padding:3px; border:1px solid var(--bv-line);
  border-radius:var(--bv-rs); background:#fff; cursor:pointer; flex-shrink:0;
}
.bv-colorfld input[type=text]{
  flex:1; min-width:0; font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:lowercase;
}

.bv-swatches{ display:flex; flex-wrap:wrap; gap:10px; margin-top:6px; }
.bv-sw{
  font-size:11px; color:var(--bv-ink-3); text-align:center;
  display:flex; flex-direction:column; gap:5px; align-items:center;
}
.bv-sw span{
  width:64px; height:40px; border-radius:8px; display:block;
  border:1px solid var(--bv-line); background:#eee;
}

/* ==========================================================================
   CATEGORIES PANEL
   ========================================================================== */
.bv-txnav{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:18px; }
.bv-txtab{
  display:inline-flex; align-items:center; gap:7px; padding:9px 14px;
  border:1px solid var(--bv-line); border-radius:999px; background:#fff;
  font-size:13px; font-weight:600; color:var(--bv-ink-2); text-decoration:none; transition:.15s;
}
.bv-txtab:hover{ border-color:var(--bv-brand); color:var(--bv-brand); }
.bv-txtab.on{ background:var(--bv-brand); border-color:var(--bv-brand); color:#fff; }
.bv-txtab i{
  font-style:normal; font-size:11px; font-weight:700; padding:1px 7px;
  border-radius:999px; background:var(--bv-brand-50); color:var(--bv-brand);
}
.bv-txtab.on i{ background:rgba(255,255,255,.2); color:#fff; }

.bv-txadd{ display:flex; gap:9px; }
.bv-txadd input{
  flex:1; min-width:0; padding:11px 13px; border:1px solid var(--bv-line);
  border-radius:var(--bv-rs); font-size:14px; font-family:inherit; outline:none;
}
.bv-txadd input:focus{ border-color:var(--bv-brand); box-shadow:0 0 0 3px var(--bv-brand-100); }

.bv-txlist{ display:flex; flex-direction:column; }
.bv-txrow{
  display:flex; align-items:center; gap:12px;
  padding:10px 0; border-bottom:1px solid var(--bv-line-2);
}
.bv-txrow:last-child{ border-bottom:none; }
.bv-txedit{ display:flex; gap:7px; flex:1; min-width:0; }
.bv-txedit input{
  flex:1; min-width:0; padding:8px 11px; border:1px solid transparent;
  border-radius:var(--bv-rs); font-size:14px; font-family:inherit;
  background:transparent; color:var(--bv-ink); outline:none; transition:.15s;
}
.bv-txedit input:hover{ border-color:var(--bv-line); background:#fff; }
.bv-txedit input:focus{ border-color:var(--bv-brand); background:#fff; box-shadow:0 0 0 3px var(--bv-brand-100); }
.bv-txedit .bv-btn{ opacity:0; transition:.15s; }
.bv-txrow:hover .bv-txedit .bv-btn,
.bv-txedit input:focus ~ .bv-btn{ opacity:1; }
.bv-txcount{ font-size:12px; color:var(--bv-ink-4); white-space:nowrap; }
.bv-txdel{ display:flex; }
.bv-txx{
  width:30px; height:30px; border-radius:8px; border:1px solid var(--bv-line);
  background:#fff; color:var(--bv-ink-4); font-size:17px; line-height:1; cursor:pointer;
  transition:.15s; flex-shrink:0;
}
.bv-txx:hover{ border-color:#E5B4B4; background:#FDECEC; color:#A32020; }
.bv-txlock{ font-size:13px; opacity:.35; width:30px; text-align:center; flex-shrink:0; }

/* ==========================================================================
   SUBMIT FORM — photo guidance, compression note, conditional fields
   ========================================================================== */
.bv-photorules{
  background:var(--bv-brand-50); border:1px solid var(--bv-line);
  border-radius:var(--bv-rs); padding:14px 16px; margin-bottom:18px;
}
.bv-photorules b{ display:block; font-size:13px; font-weight:700; color:var(--bv-ink); margin-bottom:7px; }
.bv-photorules ul{ margin:0; padding-left:18px; }
.bv-photorules li{ font-size:12.5px; color:var(--bv-ink-2); line-height:1.65; }

.bv-shrink{ font-size:12px; color:var(--bv-ink-4); margin:6px 0 0; min-height:0; line-height:1.5; }
.bv-shrink.on{ color:var(--bv-brand); font-weight:600; }

/* Fields that do not apply to the chosen property type. */
.bv-off{ display:none !important; }

@media (max-width: 720px){
  .bv-brand-logo{ grid-template-columns:1fr; }
  .bv-txrow{ flex-wrap:wrap; gap:8px; }
  .bv-txedit{ flex-basis:100%; }
  .bv-txedit .bv-btn{ opacity:1; }
}

/* ==========================================================================
   MOBILE — the listing form is used standing in someone's flat, on a phone.
   ========================================================================== */
@media (max-width: 780px){

  /* One field per row. Two 150px-wide selects side by side are unusable. */
  .bv-g2, .bv-g3, .bv-g4{ grid-template-columns:1fr; gap:0; }

  /* 16px is the threshold below which iOS Safari zooms the page on focus,
     and the zoom never quite comes back. Everything tappable is 46px tall. */
  .bv-fld input[type=text], .bv-fld input[type=email], .bv-fld input[type=tel],
  .bv-fld input[type=password], .bv-fld input[type=number],
  .bv-fld select, .bv-fld textarea,
  .bv-txadd input, .bv-txedit input{
    font-size:16px; padding:13px 14px; min-height:46px;
  }
  .bv-fld label{ font-size:13px; }

  .bv-inline{ gap:7px; }
  .bv-inline input{ flex:1.6; }
  .bv-inline select{ flex:1; }

  /* Amenity checkboxes: two comfortable columns, not a wall of text. */
  .bv-checks{ display:grid; grid-template-columns:1fr 1fr; gap:12px 10px; }
  .bv-check{ font-size:13.5px; min-height:34px; }
  .bv-check input{ width:20px; height:20px; }

  /* File inputs are the most-tapped things on this form. */
  .bv-fld input[type=file]{ padding:14px 12px; font-size:14px; }

  .bv-photorules li{ font-size:13px; }

  /* Save stays reachable without scrolling to the bottom of a long form. */
  .bv-submit .bv-save{
    position:sticky; bottom:0; z-index:20;
    background:#fff; border-top:1px solid var(--bv-line);
    padding:12px 0; margin:0 0 -8px;
  }
  .bv-submit .bv-save .bv-btn{ width:100%; min-height:50px; font-size:15.5px; }

  .bv-fs{ margin-bottom:22px; }
  .bv-fs h3{ font-size:15px; }
}

/* ==========================================================================
   EMAIL VERIFICATION
   ========================================================================== */
.bv-verify-note{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px;
}
.bv-verify-note b{ font-weight:700; }
.bv-verify-note span{ flex:1; min-width:220px; font-size:13px; line-height:1.55; }
.bv-verify-note .bv-btn{ flex-shrink:0; }

.bv-vchip{
  display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.2px;
  padding:2px 7px; border-radius:999px; white-space:nowrap;
}
.bv-vchip.is-ok{ background:#E6F5EC; color:#0B5F31; }
.bv-vchip.is-no{ background:#FDECEC; color:#A32020; }

@media (max-width:600px){
  .bv-verify-note{ flex-direction:column; align-items:flex-start; }
  .bv-verify-note .bv-btn{ width:100%; }
}

/* ==========================================================================
   PHOTO TRAY
   ========================================================================== */
.bv-tray{ margin-top:4px; }

.bv-tray-bar{ display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.bv-tray-btn{ gap:8px; }
.bv-tray-btn svg{ flex-shrink:0; }
.bv-tray-count{ font-size:12px; color:var(--bv-ink-4); margin-left:auto; }

.bv-tray-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(88px, 1fr));
  gap:9px; margin-top:12px;
}
.bv-tray-grid:empty{ margin-top:0; }

.bv-tray-cell{
  position:relative; aspect-ratio:4/3; border-radius:var(--bv-rs);
  overflow:hidden; border:1px solid var(--bv-line); background:#F4F6F5;
}
.bv-tray-cell img{ width:100%; height:100%; object-fit:cover; display:block; }

.bv-tray-x{
  position:absolute; top:4px; right:4px;
  width:24px; height:24px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(12,20,16,.72); color:#fff; font-size:16px; line-height:1;
  display:grid; place-items:center; padding:0; transition:.15s;
}
.bv-tray-x:hover{ background:#A32020; }

.bv-tray-first{
  position:absolute; left:4px; bottom:4px;
  font-size:9.5px; font-weight:700; letter-spacing:.3px; text-transform:uppercase;
  padding:2px 6px; border-radius:4px;
  background:var(--bv-accent); color:#12160F;
}

.bv-shrink.is-warn{ color:#A32020; font-weight:600; }

@media (max-width:780px){
  /* Two full-width buttons — thumb-sized, not squeezed side by side. */
  .bv-tray-btn{ flex:1 1 100%; min-height:48px; font-size:14.5px; }
  .bv-tray-count{ margin-left:0; width:100%; text-align:center; }
  .bv-tray-grid{ grid-template-columns:repeat(3, 1fr); }
  .bv-tray-x{ width:28px; height:28px; }
}

/* ==========================================================================
   SEARCH BAR — folded filters
   ========================================================================== */
.bv-more-toggle{
  display:inline-flex; align-items:center; gap:6px;
  margin:2px 0 0 14px; padding:8px 2px 12px;
  background:none; border:none; cursor:pointer; font-family:inherit;
  font-size:12.5px; font-weight:600; color:var(--bv-ink-3); transition:.15s;
}
.bv-more-toggle:hover{ color:var(--bv-brand); }
.bv-more-toggle svg{ transition:transform .2s; }
.bv-more-toggle.on svg{ transform:rotate(180deg); }

.bv-more-row{
  display:flex; gap:0; align-items:stretch;
  border-top:1px solid var(--bv-line-2);
  padding:0 6px 6px;
}
.bv-more-row[hidden]{ display:none; }

@media (max-width:780px){
  .bv-more-toggle{ margin-left:10px; width:calc(100% - 20px); justify-content:center;
                   border:1px dashed var(--bv-line); border-radius:8px; padding:11px; }
  .bv-more-row{ display:block; padding:6px; }
}

.bv-verify-block{ text-align:center; padding:38px 24px; }
.bv-verify-block h3{ font-size:18px; font-weight:700; margin:0 0 8px; color:var(--bv-ink); }
.bv-verify-block p{ font-size:14px; color:var(--bv-ink-2); line-height:1.6; margin:0 auto 8px; max-width:460px; }
.bv-verify-block .bv-hint{ font-size:12.5px; margin-bottom:18px; }
