: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:#566270; --line:#E4E8EC; --panel:#F4F8FA;
  --muted:#67737F; --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; }

/* home / overview */
.hero{ padding:34px 0 26px; border-bottom:1px solid var(--line); }
.hero-eyebrow{ font-size:12px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; color:var(--brand-dk); }
.hero-h1{ font-size:42px; font-weight:800; letter-spacing:-1px; color:var(--ink); margin:12px 0 10px; line-height:1.05; }
.hero-sub{ font-size:17px; color:var(--slate); line-height:1.55; max-width:760px; }
.hero-cta{ display:flex; gap:12px; margin-top:22px; flex-wrap:wrap; }
.btn.ghost{ background:#fff; color:var(--ink); border:1px solid var(--line); }
.btn.ghost:hover{ background:var(--panel); }
.hkpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:26px 0; }
.hk{ border:1px solid var(--line); border-radius:12px; padding:16px 18px; background:var(--panel); }
.hk-n{ font-size:26px; font-weight:800; color:var(--ink); letter-spacing:-.5px; }
.hk-l{ font-size:11.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.5px; margin-top:4px; font-weight:700; }
.hcards{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:6px 0 30px; }
.hcard{ position:relative; display:block; border:1px solid var(--line); border-radius:14px; padding:22px; background:#fff; transition:transform .08s, box-shadow .08s; }
.hcard:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(17,35,55,.08); }
.hcard.feat{ border:1.5px solid var(--brand); background:color-mix(in oklab,var(--brand),transparent 95%); }
.hbadge{ position:absolute; top:14px; right:14px; font-size:10px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:#fff; background:var(--brand); padding:3px 9px; border-radius:20px; }
.hcard-t{ font-size:19px; font-weight:800; color:var(--ink); }
.hcard-b{ font-size:14px; color:var(--slate); line-height:1.55; margin:8px 0 16px; }
.hcard-cta{ font-size:14px; font-weight:800; color:var(--brand-dk); }
.hhow{ border-top:1px solid var(--line); padding-top:24px; }
.hhow-t{ font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--slate); margin-bottom:16px; }
.hsteps{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.hstep{ display:flex; gap:12px; align-items:flex-start; }
.hstep-n{ flex:none; width:28px; height:28px; border-radius:50%; background:color-mix(in oklab,var(--brand),transparent 86%); color:var(--brand-dk); font-weight:800; font-size:13px; display:flex; align-items:center; justify-content:center; }
.hstep b{ display:block; font-size:14px; color:var(--ink); } .hstep span{ display:block; font-size:12.5px; color:var(--muted); line-height:1.45; margin-top:2px; }

/* book match */
.bookgrid{ display:grid; grid-template-columns:1.1fr .9fr; gap:26px; margin-top:18px; align-items:start; }
.bookwhy{ background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:20px; }
.bookwhy-t{ font-size:12px; font-weight:800; letter-spacing:.8px; text-transform:uppercase; color:var(--slate); margin-bottom:12px; }
.bookwhy .lead-card{ background:#fff; margin-bottom:14px; }
.bookwhy-l{ list-style:none; }
.bookwhy-l li{ font-size:13.5px; color:var(--slate); line-height:1.5; padding:6px 0 6px 22px; position:relative; }
.bookwhy-l li::before{ content:"✓"; position:absolute; left:0; color:var(--brand-dk); font-weight:800; }
@media (max-width:820px){ .bookgrid{ grid-template-columns:1fr; } }
.modecard{ border:1px solid var(--line); border-radius:11px; padding:13px 14px; cursor:pointer; background:#fff; transition:border-color .08s,background .08s; }
.modecard.on{ border:1.5px solid var(--brand); background:color-mix(in oklab,var(--brand),transparent 95%); }
.modecard .mc-t{ font-size:14px; font-weight:800; color:var(--ink); }
.modecard .mc-s{ font-size:12px; color:var(--slate); line-height:1.45; margin-top:5px; }

/* login wall: request-access footer */
.login-foot{ margin-top:16px; font-size:12.5px; color:var(--muted); text-align:left; }
.login-foot a{ color:var(--brand-dk); font-weight:700; text-decoration:none; }
.login-foot a:hover{ text-decoration:underline; }

/* motion: bars fill in, numbers count up (carried from the marketing site) */
.abar{ transition: width .85s cubic-bezier(.2,.7,.2,1); }
@media (prefers-reduced-motion: reduce){ .abar{ transition:none; } }

/* topbar right group: user greeting + market switcher */
.tb-right{ display:flex; align-items:center; gap:16px; }
.tb-user .tb-greet{ font-size:13px; font-weight:600; color:var(--brand-dk); text-decoration:none; white-space:nowrap; }
.tb-user .tb-greet:hover{ text-decoration:underline; }

/* market switcher (topbar select + Home chooser) */
.tb-market{ display:flex; align-items:center; gap:7px; }
.mkt-pin{ color:var(--brand); font-size:9px; }
.mkt-sel{ font:inherit; font-size:13px; font-weight:600; border:1px solid var(--line); border-radius:8px; padding:6px 10px; color:var(--ink); background:var(--panel); cursor:pointer; }
.mkt-sel:hover{ border-color:var(--brand); }
.homemkt{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:0 0 22px; }
.homemkt-l{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.6px; color:var(--muted); }
.homemkt-row{ display:flex; gap:9px; flex-wrap:wrap; }
.mchip{ font:inherit; font-size:13px; font-weight:600; color:var(--slate); background:#fff; border:1px solid var(--line); border-radius:20px; padding:7px 14px; cursor:pointer; transition:border-color .08s,background .08s; }
.mchip b{ color:var(--brand-dk); margin-left:5px; }
.mchip:hover{ border-color:var(--brand); }
.mchip.on{ background:var(--rowtint); border-color:var(--brand); color:var(--ink); }

/* campaign multi-select bar + radar grid flourishes */
#campbar{ position:fixed; left:50%; bottom:24px; transform:translateX(-50%); z-index:80; background:var(--ink); color:#fff; border-radius:12px; padding:11px 12px 11px 18px; display:flex; align-items:center; gap:14px; box-shadow:0 16px 44px rgba(0,0,0,.32); animation:ssFade .2s ease; }
@keyframes ssFade{ from{ opacity:0; } to{ opacity:1; } }
.pingdot{ position:relative; width:8px; height:8px; border-radius:50%; background:var(--brand); display:inline-block; flex:none; }
.pingdot::after{ content:""; position:absolute; inset:0; border-radius:50%; background:var(--brand); animation:ssPing 1.6s cubic-bezier(0,0,.2,1) infinite; }
@keyframes ssPing{ 75%,100%{ transform:scale(2.6); opacity:0; } }
.login-sub{ font-size:13px; color:var(--slate); line-height:1.5; margin:6px 0 18px; text-align:left; }

/* dossier redesign (Claude Design) */
@keyframes ssSpin{ to{ transform:rotate(360deg); } }
@keyframes ssPulse{ 0%{ box-shadow:0 0 0 0 rgba(255,255,255,.55); } 70%{ box-shadow:0 0 0 7px rgba(255,255,255,0); } 100%{ box-shadow:0 0 0 0 rgba(255,255,255,0); } }
.dossier-grid{ display:grid; grid-template-columns:300px 1fr; gap:22px; align-items:start; margin-top:4px; }
.spin{ width:18px; height:18px; border:2.5px solid var(--line); border-top-color:var(--brand); border-radius:50%; animation:ssSpin .7s linear infinite; display:inline-block; flex:none; }
.spin.sm{ width:9px; height:9px; border-width:2px; border-top-color:#fff; border-color:rgba(255,255,255,.45); border-top-color:#fff; }
.pulsedot{ width:9px; height:9px; border-radius:50%; background:#fff; display:inline-block; animation:ssPulse 1.8s infinite; flex:none; }
@media (max-width:820px){ .dossier-grid{ grid-template-columns:1fr; } }

/* dossier action bar (system of record) */
.actionbar{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:var(--panel); border:1px solid var(--line); border-radius:11px; padding:12px 16px; margin-bottom:14px; }
.ab-grp{ display:flex; align-items:center; gap:8px; }
.ab-grp label{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.5px; color:var(--slate); }
.ab-sel,.ab-inp{ font:inherit; font-size:13px; border:1px solid var(--line); border-radius:8px; padding:7px 10px; background:#fff; color:var(--ink); }
.ab-inp{ width:118px; }
.ab-saved{ font-size:12.5px; color:var(--brand-dk); font-weight:800; margin-left:auto; }
.sellnow{ background:var(--brand); color:#fff; border-radius:11px; padding:13px 18px; font-size:15px; font-weight:700; margin-bottom:14px; }
.hero-actions{ display:flex; gap:10px; margin-top:18px; flex-wrap:wrap; }
.btn.sm{ padding:8px 14px; font-size:13px; }

/* radar filter bar + status pill */
.rfilters{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:14px 0 6px; }
.rfilters .fsel{ font:inherit; font-size:13px; border:1px solid var(--line); border-radius:8px; padding:7px 10px; background:#fff; color:var(--ink); }
.rfilters .fchip{ font-size:13px; font-weight:700; border:1px solid var(--line); border-radius:8px; padding:7px 12px; background:#fff; color:var(--slate); cursor:pointer; }
.rfilters .fchip.on{ background:color-mix(in oklab,var(--brand),transparent 88%); color:var(--brand-dk); border-color:color-mix(in oklab,var(--brand),transparent 70%); }
.rfilters .rcount{ margin-left:auto; font-size:12.5px; color:var(--muted); }
.spill{ display:inline-block; font-size:10px; font-weight:800; padding:2px 8px; border-radius:20px; text-transform:uppercase; letter-spacing:.4px; }
.spill.new{ background:#EEF1F4; color:#5A6573; } .spill.contacted{ background:#E6F0FB; color:#1E5FA8; }
.spill.meeting{ background:#FBEFD6; color:#9A6B12; } .spill.closed{ background:color-mix(in oklab,var(--brand),transparent 84%); color:var(--brand-dk); }
.spill.not_fit{ background:#F3E7E7; color:#9A4444; }
.livebar{ display:flex; align-items:center; gap:10px; margin:18px 0 10px; padding:10px 14px; background:color-mix(in oklab,var(--brand),transparent 93%); border:1px solid color-mix(in oklab,var(--brand),transparent 78%); border-left:4px solid var(--brand); border-radius:10px; }
.livebar .lb-dot{ width:9px; height:9px; border-radius:50%; background:var(--brand); box-shadow:0 0 0 4px color-mix(in oklab,var(--brand),transparent 80%); }
.livebar .lb-t{ font-size:14px; font-weight:800; color:var(--ink); } .livebar .lb-s{ font-size:12.5px; color:var(--slate); }

/* 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; }
