:root{
  /* Defaults = ClientGen / Seller Signal skin; overridden at runtime per tenant by applyBrand(). */
  --brand:#3FA24A; --brand-dk:#2E7D38; --accent-bright:#61BD6B; --ink:#112337;
  --on-dark:#B0DAAF; --slate:#5A6A72; --line:#E4E8EC; --panel:#F4F8FA;
  --muted:#7A8893; --rowtint:#F1F8F2; --hair:#E4E8EC;
}
*{ box-sizing:border-box; margin:0; padding:0; }
body{ font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased; }
.hidden{ display:none !important; }
a{ color:var(--brand-dk); text-decoration:none; }

/* login */
.login{ position:fixed; inset:0; background:var(--ink); display:flex; align-items:center; justify-content:center; z-index:1000; }
.login-card{ background:#fff; border-radius:14px; padding:34px 30px; width:340px; text-align:center; box-shadow:0 24px 70px rgba(0,0,0,.4); }
.login-logo{ display:flex; justify-content:center; margin-bottom:16px; min-height:40px; align-items:center; }
.login-logo:empty{ display:none; }
.login-brand{ font-size:22px; font-weight:800; color:var(--ink); letter-spacing:-.3px; }
.login-tag{ font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--brand-dk); font-weight:700; margin:4px 0 22px; }
.login-card input{ width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:8px; font-size:14px; margin-bottom:12px; }
.login-card button{ width:100%; padding:11px; border:0; border-radius:8px; background:var(--brand); color:#fff; font-weight:700; font-size:14px; cursor:pointer; }
.login-err{ color:#c0392b; font-size:12px; margin-top:10px; min-height:14px; }

/* shell */
.topbar{ display:flex; align-items:center; justify-content:space-between; padding:13px 28px; border-bottom:1px solid var(--line); position:sticky; top:0; background:#fff; z-index:50; }
.tb-left{ display:flex; align-items:center; }
.tb-logo{ display:inline-flex; align-items:center; }
.tb-logo:empty{ display:none; }
.tb-brand{ font-size:18px; font-weight:800; color:var(--ink); }
.tb-tag{ font-size:10px; letter-spacing:1.3px; text-transform:uppercase; color:var(--brand-dk); font-weight:700; margin-left:13px; padding-left:13px; border-left:1px solid var(--line); }
.tb-market{ font-size:12px; color:var(--slate); }
.tb-nav{ display:flex; gap:6px; margin-left:24px; }
.tb-nav a{ font-size:13px; font-weight:700; color:var(--slate); padding:6px 12px; border-radius:7px; }
.tb-nav a:hover{ background:var(--panel); color:var(--ink); }
.tb-nav a.on{ background:color-mix(in oklab,var(--brand),transparent 88%); color:var(--brand-dk); }
textarea.book{ width:100%; min-height:150px; border:1px solid var(--line); border-radius:10px; padding:12px 14px; font-size:14px; font-family:inherit; resize:vertical; }
.btn{ background:var(--brand); color:#fff; border:0; border-radius:8px; padding:11px 20px; font-size:14px; font-weight:700; cursor:pointer; }
.matchbanner{ background:var(--ink); color:#fff; border-radius:12px; padding:16px 20px; margin:18px 0; font-size:17px; }
.matchbanner b{ color:#fff; }
.lead-card{ display:flex; align-items:center; gap:16px; border:1px solid var(--line); border-radius:11px; padding:14px 16px; margin-bottom:10px; cursor:pointer; }
.lead-card:hover{ background:var(--panel); }
.lead-card .sc{ width:46px; height:46px; border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:15px; }
.lead-card .nm{ font-size:16px; font-weight:800; } .lead-card .meta{ font-size:12.5px; color:var(--slate); margin-top:2px; }
.lead-card .right{ margin-left:auto; text-align:right; }
.view{ max-width:1180px; margin:0 auto; padding:26px 28px 60px; }

.page-title{ font-size:26px; font-weight:800; letter-spacing:-.3px; }
.page-sub{ color:var(--slate); font-size:14px; line-height:1.5; margin-top:5px; max-width:8.5in; }
.muted{ color:var(--muted); }
.crumb-back{ background:#fff; border:1px solid var(--line); border-radius:8px; padding:7px 13px; font-size:13px; color:var(--ink); cursor:pointer; margin-bottom:14px; }

.pill{ display:inline-block; font-size:10.5px; font-weight:700; padding:2px 8px; border-radius:20px; }
.pill.good{ background:color-mix(in oklab,var(--brand),transparent 86%); color:var(--brand-dk); }
.pill.warn{ background:#FBEFD6; color:#9A6B12; }

.stats{ display:flex; gap:10px; margin:6px 0 16px; flex-wrap:wrap; }
.stat{ flex:1; min-width:120px; border:1px solid var(--hair); border-radius:9px; padding:11px 13px; }
.stat .n{ font-size:19px; font-weight:800; }
.stat .l{ font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; margin-top:2px; }

.eyebrow{ font-size:11px; font-weight:800; letter-spacing:1px; text-transform:uppercase; }

.rt{ width:100%; border-collapse:collapse; }
.rt th{ text-align:left; font-size:11px; color:var(--slate); text-transform:uppercase; letter-spacing:.4px; padding:9px 12px; border-bottom:1px solid var(--line); }
.rt th.num,.rt td.num{ text-align:right; }
.rt td{ padding:12px; border-bottom:1px solid var(--line); font-size:13.5px; vertical-align:top; }
.rt tr[data-id]{ cursor:pointer; } .rt tr[data-id]:hover{ background:var(--panel); }

.panel{ border:1px solid var(--line); border-radius:11px; overflow:hidden; }
.panel.acc{ border-left:3px solid var(--brand); }
.ph{ background:var(--panel); padding:8px 13px; font-size:10.5px; font-weight:800; letter-spacing:.8px; text-transform:uppercase; color:var(--brand-dk); }
.pc{ padding:6px 13px 10px; }
.kv{ display:flex; justify-content:space-between; gap:14px; padding:7px 0; border-bottom:1px solid var(--line); }
.kv:last-child{ border-bottom:0; }
.kv .k{ font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; }
.kv .v{ text-align:right; } .kv .v.b{ font-weight:700; }

/* radar header + Table/Map view toggle */
.radar-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.vtoggle{ display:flex; gap:3px; background:var(--panel); border:1px solid var(--line); border-radius:9px; padding:3px; flex:none; margin-top:3px; }
.vseg{ border:none; border-radius:6px; font-family:inherit; font-size:12px; cursor:pointer; padding:6px 14px; background:transparent; color:var(--slate); font-weight:600; }
.vseg.on{ background:#fff; color:var(--ink); font-weight:700; box-shadow:0 1px 2px rgba(0,0,0,.08); }

/* interactive radar map (Leaflet) — all tracked owners */
#rmap{ height:520px; border-radius:12px; overflow:hidden; border:1px solid var(--line); background:#0b1f29; }
#rmap .leaflet-tile-pane{ filter:saturate(.85); }
.maplegend{ position:absolute; bottom:14px; left:14px; z-index:500; display:flex; gap:14px; background:rgba(11,31,41,.85); padding:7px 11px; border-radius:7px; color:#fff; font-size:11px; }
.maplegend span{ display:flex; align-items:center; gap:6px; }
.maplegend i{ width:9px; height:9px; border-radius:50%; display:block; }
