/* cc.css — the Command Center stylesheet (formerly the inline <style> of Indicio_CC.html lines 11–2863; extracted verbatim 2026-09-21). Modules add their own <style id="…-css"> at runtime, after this. */
:root{
  /* ─── Brand surface (matches iOS DenarisARViewer) ──────────────── */
  --bg:#FAF9F7;           /* warm off-white */
  --bg2:#F3F1EC;          /* secondary surface */
  --bg3:#EAE7DF;          /* tertiary surface */
  --bg4:#DDD9CF;          /* quaternary surface */
  --paper:#FFFFFF;        /* pure white card lift */
  --card:#FFFFFF;         /* alias preserved */
  --border:rgba(45,38,80,.10);        /* hairline, navy-tinted */
  --border-strong:rgba(45,38,80,.18);
  /* ─── Type colors (navy-led, not gray) ─────────────────────────── */
  --text:#0C1231;         /* brand navy */
  --text2:#4A4768;        /* muted */
  --text3:#8B89A0;        /* hint */
  /* ─── Accent system (iOS parity: navy primary + purple secondary) */
  --accent:#0C1231;       /* navy — structural / wordmark / KPIs */
  --accent-rgb:12,18,49;
  --accent2:#5A44D1;      /* Denaris purple — interactive / highlight */
  --accent2-soft:rgba(90,68,209,.08);
  --accent2-line:rgba(90,68,209,.22);
  /* Semantic (slightly desaturated, editorial) */
  --green:#0F7A53;       --green-bg:rgba(15,122,83,.08);
  --amber:#B5781E;       --amber-bg:rgba(181,120,30,.08);
  --red:#B53030;         --red-bg:rgba(181,48,48,.08);
  --blue:#1F4FA0;        --blue-bg:rgba(31,79,160,.08);
  --purple:#5A44D1;      --purple-bg:rgba(90,68,209,.08);
  --violet-bg:rgba(90,68,209,.08);
  --cyan:#0E7C9C;
  /* ─── Typography (Manrope everywhere; SF Mono retired) ─────────── */
  --serif:'Cormorant Garamond','Garamond','Times New Roman',serif;
  --sans:'Manrope','SF Pro Display','SF Pro Text',-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;
  --mono:'Manrope','SF Pro Display','SF Pro Text',-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;
  /* Geometry (iOS parity — soft rounded) */
  --radius:12px;
  --radius-sm:8px;
  --radius-lg:16px;
  --radius-pill:999px;
  /* Elevation — navy-tinted shadows (iOS parity) */
  --shadow-light:0 1px 2px rgba(12,18,49,.04);
  --shadow-card:0 1px 3px rgba(12,18,49,.05),0 1px 1px rgba(12,18,49,.03);
  --shadow-elevated:0 8px 24px rgba(12,18,49,.08),0 2px 6px rgba(12,18,49,.04);
  --shadow-panel:-8px 0 28px rgba(12,18,49,.10);
  --ease:cubic-bezier(.4,0,.2,1);
  --footer-bg:#1a1d24;
}

*{margin:0;padding:0;box-sizing:border-box}
body{
  background:var(--bg);color:var(--text);
  font-family:var(--sans);font-size:14px;line-height:1.5;
  height:100vh;overflow:hidden;display:flex;flex-direction:column;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  letter-spacing:-.005em;
}
::selection{background:var(--accent2);color:#fff}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}

/* ============================================================ */
/* HEADER + TOP BAR                                             */
/* ============================================================ */
header{
  padding:14px 24px;
  border-bottom:0.5px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  flex-shrink:0;background:var(--paper);
}
header .logo{display:flex;align-items:center;gap:11px;cursor:default}
header .cc-mark{
  width:34px;height:34px;flex-shrink:0;display:inline-block;
  filter:drop-shadow(0 2px 6px rgba(12,18,49,.10));
}
.cc-wordmark{display:flex;align-items:center;gap:9px;line-height:1}
.cc-name{
  display:inline-flex;flex-direction:column;align-items:flex-start;
  font-family:var(--sans);font-style:normal;font-weight:600;font-size:22px;
  color:#0C1232;letter-spacing:-.04em;
  text-transform:none;line-height:1;white-space:nowrap;
}
.cc-name-word{display:inline-flex;align-items:baseline}
.cc-name-dot{color:#5B44D2;margin-left:1px}
.cc-name .cc-by{
  font-family:var(--sans);font-weight:400;font-size:11px;
  color:var(--text2);letter-spacing:.005em;text-transform:none;
  margin-top:4px;line-height:1;
}
.cc-divider{
  width:0.5px;height:14px;background:var(--border-strong);
  display:inline-block;flex-shrink:0;
}

.cc-parent{
  font-family:var(--sans);
  font-style:italic;font-weight:500;font-size:16px;
  color:var(--accent);letter-spacing:.005em;white-space:nowrap;
}

/* legacy h1 if anyone uses it */
header h1{font-size:14px;font-weight:600;letter-spacing:.18em;color:var(--accent);font-family:var(--sans);text-transform:uppercase}
header h1 span{color:var(--text3);font-weight:400;margin-left:8px;font-size:13px;font-family:var(--sans);font-style:italic;letter-spacing:0;text-transform:none}

.hr{
  display:flex;align-items:center;gap:14px;
  font-family:var(--mono);font-size:10px;color:var(--text3);
  letter-spacing:.06em;text-transform:uppercase;
}
.refreshing #lastUp{animation:pulse .9s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ============================================================ */
/* CONNECT / CONFIG SCREEN                                      */
/* ============================================================ */
#cfgBar{padding:60px 24px;text-align:center;max-width:540px;margin:auto}
#cfgBar h2{
  font-family:var(--sans);font-weight:600;
  color:var(--accent);font-size:13px;
  letter-spacing:.32em;text-transform:uppercase;
  margin-bottom:6px;
}
#cfgBar h2::after{
  content:'Capital intelligence layer';display:block;
  margin-top:6px;font-family:var(--sans);font-style:italic;
  font-weight:400;font-size:18px;color:var(--text2);
  letter-spacing:.01em;text-transform:none;
}
#cfgBar input{
  display:block;width:100%;
  background:var(--paper);border:0.5px solid var(--border);color:var(--text);
  padding:10px 14px;border-radius:0;
  margin:8px 0;font-family:var(--sans);font-size:12px;
  transition:border-color .15s ease,box-shadow .15s ease;
}
#cfgBar input:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px var(--accent2-soft)}
#cfgBar button{
  background:var(--accent);color:#fff;border:none;
  padding:12px 24px;border-radius:0;cursor:pointer;
  font-family:var(--sans);font-weight:500;font-size:14px;
  letter-spacing:.1em;text-transform:uppercase;
  margin-top:14px;transition:transform .12s var(--ease),background .15s ease;
}
#cfgBar button:hover{background:#3D35B0}
#cfgBar button:active{transform:scale(.97)}
#cSt{
  font-family:var(--mono);font-size:10px;margin-top:14px;color:var(--text3);
  letter-spacing:.06em;text-transform:uppercase;
}
/* ─── AUTH SCREEN ─────────────────────────────────────────────────────── */
#authScreen{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:var(--bg);
  position:relative;padding:24px;
}
/* Desktop: two-column split — editorial brand left, form panel right */
#authScreen .auth-card{
  width:100%;max-width:1080px;
  display:grid;grid-template-columns:1.05fr 0.95fr;
  background:var(--paper);border:0.5px solid var(--border);
  border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-elevated);
  min-height:560px;
  text-align:left;padding:0;
}
/* ── Brand panel (left) ── */
#authScreen .auth-brand{
  background:linear-gradient(155deg,var(--bg2) 0%,var(--bg3) 100%);
  position:relative;
  display:flex;align-items:center;justify-content:center;
  padding:64px 56px;overflow:hidden;
}
#authScreen .auth-brand::before{
  content:'';position:absolute;right:-80px;bottom:-80px;width:340px;height:340px;
  background:radial-gradient(circle,var(--accent2-soft) 0%,transparent 65%);
  pointer-events:none;
}
#authScreen .auth-brand-inner{
  position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:flex-start;
  max-width:340px;width:100%;
}
#authScreen .auth-brand .auth-logo{margin-bottom:0;text-align:left}
#authScreen .auth-brand .auth-logo svg{
  width:240px;height:240px;display:block;margin:0 0 28px -16px;
  filter:drop-shadow(0 12px 32px rgba(12,18,49,.12));
}
/* ── Identical to iOS load-screen animation timing ── */
@keyframes lsNeedleSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes lsFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes lsGoldDot{0%,60%{opacity:0}75%{opacity:1}100%{opacity:1}}
/* Needle rotation handled by SMIL <animateTransform> inside the SVG —
   bulletproof across browsers, unlike CSS transform-origin on SVG groups. */
#authScreen .auth-compass .ls-fade-1{opacity:0;animation:lsFadeIn .6s ease-out .2s forwards}
#authScreen .auth-compass .ls-fade-2{opacity:0;animation:lsFadeIn .6s ease-out .5s forwards}
#authScreen .auth-compass .ls-fade-3{opacity:0;animation:lsFadeIn .6s ease-out .8s forwards}
#authScreen .auth-compass .ls-fade-4{opacity:0;animation:lsFadeIn .6s ease-out 1.1s forwards}
#authScreen .auth-compass .ls-gold-dot{opacity:0;animation:lsGoldDot 3.2s ease-out forwards}
@media(prefers-reduced-motion:reduce){
  #authScreen .auth-compass .ls-needle animateTransform{display:none}
  #authScreen .auth-compass [class*="ls-fade"],
  #authScreen .auth-compass .ls-gold-dot{opacity:1;animation:none;transform:none}
}
#authScreen .auth-brand .auth-title{
  align-items:flex-start;text-align:left;
  font-size:64px;line-height:1;margin-bottom:0;gap:6px;
}
#authScreen .auth-brand .auth-title-by{margin-top:14px;font-size:14px}
#authScreen .auth-brand .auth-subtitle{
  font-family:var(--serif);font-style:italic;font-weight:400;font-size:18px;
  color:var(--text2);letter-spacing:.005em;
  margin:18px 0 0;text-align:left;line-height:1.4;
}
#authScreen .auth-brand-rule{
  width:48px;height:1px;background:var(--accent2);opacity:.45;
  margin:28px 0 14px;
}
#authScreen .auth-brand-meta{
  font-family:var(--mono);font-size:10px;
  color:var(--text3);letter-spacing:.16em;text-transform:uppercase;
}
/* ── Form panel (right) ── */
#authScreen .auth-form{
  background:var(--paper);
  display:flex;align-items:center;justify-content:center;
  padding:64px 56px;
}
#authScreen .auth-form-inner{
  width:100%;max-width:340px;
  display:flex;flex-direction:column;align-items:center;text-align:center;
}
#authScreen .auth-form-heading{
  font-family:var(--serif);font-weight:500;font-size:26px;
  color:var(--text);letter-spacing:-.005em;line-height:1.1;
  margin-bottom:4px;text-align:center;
}
#authScreen .auth-form-lede{
  font-family:var(--sans);font-size:13px;color:var(--text3);
  letter-spacing:.005em;line-height:1.45;
  margin:0 0 14px;text-align:center;
}
/* Tablet & mobile fallback */
@media(max-width:880px){
  #authScreen{padding:0;align-items:stretch}
  #authScreen .auth-card{
    grid-template-columns:1fr;min-height:100vh;
    border-radius:0;border:none;box-shadow:none;
    max-width:100%;
  }
  #authScreen .auth-brand{padding:40px 32px 28px}
  #authScreen .auth-brand-inner{align-items:center;max-width:none}
  #authScreen .auth-brand .auth-logo{text-align:center}
  #authScreen .auth-brand .auth-logo svg{margin:0 auto 18px;width:72px;height:72px}
  #authScreen .auth-brand .auth-title{align-items:center;text-align:center;font-size:48px}
  #authScreen .auth-brand .auth-subtitle{text-align:center}
  #authScreen .auth-brand-rule{margin:20px auto 10px}
  #authScreen .auth-brand-meta{text-align:center}
  #authScreen .auth-form{padding:32px 24px 48px}
  #authScreen .auth-form-inner{margin:0 auto}
}
#authScreen .auth-logo svg [fill="#5046E5"]{fill:var(--accent2)}
#authScreen .auth-logo svg [stroke="#5046E5"]{stroke:var(--accent2)}
#authScreen .auth-title{
  font-family:var(--sans);font-weight:600;
  color:#0C1232;font-size:36px;line-height:1;margin-bottom:6px;
  letter-spacing:-.04em;
  display:flex;flex-direction:column;align-items:center;gap:6px;
}
#authScreen .auth-title-word{display:inline-flex;align-items:baseline}
#authScreen .auth-title-dot{color:#5B44D2;font-weight:600;margin-left:1px}
#authScreen .auth-title-by{
  font-family:var(--sans);font-weight:400;
  font-size:13px;color:var(--text2);
  letter-spacing:.005em;text-transform:none;
  margin-top:4px;
}
#authScreen .auth-subtitle{
  font-family:var(--sans);font-weight:400;
  font-size:13px;color:var(--text3);letter-spacing:.04em;margin-bottom:28px;
}
/* Language toggle */
.auth-lang-toggle{
  position:absolute;top:20px;right:24px;display:flex;gap:0;
  border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden;
}
.auth-lang-btn{
  padding:6px 14px;font-family:var(--sans);font-size:11px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;cursor:pointer;
  border:none;background:transparent;color:var(--text3);
  transition:all .15s ease;
}
.auth-lang-btn.active{background:var(--accent2);color:#fff}
.auth-lang-btn:hover:not(.active){background:var(--accent2-soft);color:var(--accent2)}
@media(max-width:520px){
  .auth-lang-toggle{top:16px;right:16px}
}
#authScreen input{
  display:block;width:100%;background:var(--paper);border:1px solid var(--border-strong);
  color:var(--text);padding:12px 16px;border-radius:var(--radius-sm);
  margin:8px 0;font-family:var(--sans);font-size:14px;
  box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease;
}
#authScreen input:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px var(--accent2-soft)}
#authScreen input::placeholder{color:var(--text3)}
#authScreen .auth-btn{
  background:var(--accent2);color:#fff;border:none;width:100%;
  padding:12px 18px;border-radius:var(--radius-pill);cursor:pointer;
  font-family:var(--sans);font-weight:500;font-size:14px;
  letter-spacing:.005em;text-transform:none;line-height:1;
  display:flex;align-items:center;justify-content:center;gap:12px;
  box-sizing:border-box;min-height:44px;
  margin-top:10px;transition:transform .12s ease,background .15s ease,opacity .15s ease;
}
#authScreen .auth-btn:hover{background:#4836B5;transform:translateY(-1px)}
#authScreen .auth-btn:active{transform:scale(.98)}
#authScreen .auth-oauth{
  border-radius:var(--radius-pill);font-family:var(--sans);
  font-size:14px;font-weight:500;letter-spacing:.005em;text-transform:none;
  padding:12px 18px;display:flex;align-items:center;justify-content:center;
  gap:12px;line-height:1;min-height:44px;box-sizing:border-box;
}
#authScreen .auth-oauth:hover{opacity:.92;transform:translateY(-1px)}
#authScreen .auth-oauth-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;flex-shrink:0;
}
#authScreen .auth-oauth-icon svg{display:block}
#authScreen .auth-oauth-label{
  display:inline-block;font-family:var(--sans);
  font-size:14px;font-weight:500;letter-spacing:.005em;
  text-transform:none;color:#fff;line-height:1;
}
#authScreen .auth-oauth--google{
  background:#fff;color:#1f1f1f;
  border:0.5px solid #dadce0;
  margin-top:0;
}
#authScreen .auth-oauth--google:hover{background:#f7f8f8;opacity:1}
#authScreen .auth-oauth--google .auth-oauth-label{color:#1f1f1f}
#authScreen .auth-oauth--apple{
  background:#000;color:#fff;
  margin-top:10px;
}
#authScreen .auth-oauth--apple:hover{background:#111;opacity:1}
#authScreen .auth-oauth--apple .auth-oauth-icon{
  /* Apple mark sits a hair above optical center — nudge down */
  transform:translateY(-1px);
}
#authScreen .auth-divider{
  display:flex;align-items:center;gap:12px;margin:20px 0;
}
#authScreen .auth-divider span{
  font-family:var(--sans);font-size:10px;color:var(--text3);
  text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;
}
#authScreen .auth-divider::before,
#authScreen .auth-divider::after{
  content:'';flex:1;height:1px;background:var(--border-strong);
}
#authScreen .auth-toggle{
  margin-top:18px;font-family:var(--sans);
  font-size:13px;color:var(--text3);
  width:100%;text-align:center;align-self:stretch;
}
#authScreen .auth-toggle a{color:var(--accent2);cursor:pointer;text-decoration:none;font-weight:600}
#authScreen .auth-toggle a:hover{color:#4836B5;text-decoration:underline}
#authStatus{
  font-family:var(--mono);font-size:10px;margin-top:14px;color:var(--text3);
  letter-spacing:.06em;text-transform:uppercase;
}
/* 2026-06-05 · Cerrar Sesión / Sign Out — signature Denaris purple per
   Alejandro request. Filled background, white text, no margin (parent
   flex handles spacing). Hover deepens shade. */
.auth-signout{
  font-family:var(--mono);font-size:10px;color:#fff;cursor:pointer;
  letter-spacing:.06em;text-transform:uppercase;padding:4px 12px;
  border:0.5px solid var(--accent2);border-radius:var(--radius-sm);
  background:var(--accent2);transition:all .15s ease;
}
.auth-signout:hover{background:#4933b8;border-color:#4933b8}
.disclaimer-bar{
  font-family:var(--sans);font-size:9px;color:var(--text3);padding:8px 24px;
  border-top:0.5px solid var(--border);text-align:center;letter-spacing:.02em;
  background:var(--bg2);border-radius:var(--radius) var(--radius) 0 0;
  margin:0 12px;
}

#app{display:none;flex:1;flex-direction:column;min-height:0}

/* ============================================================ */
/* TABS                                                         */
/* ============================================================ */
.tabs{
  display:flex;border-bottom:0.5px solid var(--border);
  flex-shrink:0;background:var(--paper);
  padding:0 24px;gap:0;overflow-x:auto;
  justify-content:center;
}
.tabs::-webkit-scrollbar{height:0}
.tab{
  padding:12px 18px;flex:1;text-align:center;
  font-family:var(--sans);font-size:14px;font-weight:400;
  cursor:pointer;color:var(--text2);
  border-bottom:none;
  white-space:nowrap;transition:color .18s var(--ease);
  position:relative;letter-spacing:0;text-transform:none;
}
.tab::after{
  content:'';position:absolute;left:18px;right:18px;bottom:6px;height:2px;
  background:transparent;border-radius:var(--radius-pill);
  transition:background .18s var(--ease),left .18s var(--ease),right .18s var(--ease);
}
.tab:hover{color:var(--accent)}
.tab.active{color:var(--accent);font-weight:500}
.tab.active::after{background:var(--accent2);left:24px;right:24px}
.tab-badge{
  position:absolute;top:5px;right:5px;
  min-width:14px;height:14px;border-radius:7px;
  font-family:var(--mono);font-size:8px;font-weight:600;
  display:flex;align-items:center;justify-content:center;
  padding:0 4px;line-height:1;letter-spacing:0;text-transform:none;
}
.tab-badge.urgent{background:var(--red);color:#fff}
.tab-badge.info{background:var(--accent2);color:#fff}
.tab-badge.green{background:var(--green);color:#fff}

/* ============================================================ */
/* PANELS                                                       */
/* ============================================================ */
.pnl{flex:1;overflow-y:auto;display:none;min-height:0}
.pnl.active{display:flex;flex-direction:column;overflow-y:auto}

/* ============================================================ */
/* OVERVIEW: KPI strip                                          */
/* ============================================================ */
.krow{display:flex;gap:10px;padding:14px 24px 10px;flex-wrap:wrap}
.kpi{
  background:var(--paper);border:0.5px solid var(--border);
  border-radius:var(--radius);padding:12px 14px 14px;
  flex:1;min-width:140px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:3px;
  box-shadow:var(--shadow-card);
  transition:box-shadow .2s var(--ease),transform .2s var(--ease);
  position:relative;overflow:hidden;
}
.kpi::before{
  content:'';position:absolute;top:10px;left:50%;transform:translateX(-50%);
  width:24px;height:2px;
  background:var(--accent2);border-radius:var(--radius-pill);
  opacity:.85;
}
.kpi.g::before{background:var(--green)}
.kpi.a::before{background:var(--amber)}
.kpi.r::before{background:var(--red)}
.kpi.gl::before{background:var(--accent2)}
.kpi:hover{box-shadow:var(--shadow-elevated);transform:translateY(-1px)}
.kpi .kl{
  font-family:var(--sans);font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.16em;color:var(--text3);
  margin-top:2px;line-height:1.2;
}
.kpi .kv{
  font-family:var(--sans);font-size:28px;font-weight:300;
  margin:0;letter-spacing:-.02em;color:var(--accent);
  line-height:1.05;font-variant-numeric:tabular-nums;
}
.kpi .ks{
  font-family:var(--sans);font-size:11px;color:var(--text3);
  letter-spacing:.005em;line-height:1.35;margin-top:2px;
  max-width:18ch;
}
.kpi .ks a{color:var(--accent2);font-weight:500}
.kpi.g .kv{color:var(--green)}
.kpi.a .kv{color:var(--amber)}
.kpi.gl .kv{color:var(--accent2)}

/* ─── Featured Avg Score card (leads the KPI row) ────────────────── */
.kpi--score{
  flex:1.25;min-width:200px;
  background:linear-gradient(165deg,rgba(90,68,209,.06) 0%,var(--paper) 55%);
  border:0.5px solid var(--accent2-line);
  padding:12px 16px 14px;align-items:stretch;text-align:left;
  gap:3px;
}
.kpi--score::before{
  background:var(--accent2);
  width:32px;
  left:14px;transform:none;
}
.kpi--score .kl{
  color:var(--accent2);margin-top:8px;align-self:flex-start;
}
.kpi--score .kv{
  display:flex;align-items:baseline;justify-content:flex-start;gap:4px;
  font-size:36px;line-height:1;color:var(--text);
  font-weight:300;margin:0 0 8px;
}
.kpi-score-max{
  font-family:var(--sans);font-size:14px;font-weight:500;
  color:var(--text3);letter-spacing:0;
}
.kpi-bar{
  position:relative;width:100%;height:3px;
  background:rgba(12,18,49,.08);border-radius:var(--radius-pill);
  overflow:hidden;margin-bottom:8px;
}
.kpi-bar-fill{
  position:absolute;left:0;top:0;bottom:0;
  background:var(--accent2);border-radius:var(--radius-pill);
  transition:width .6s var(--ease);
}
.kpi--score-high .kpi-bar-fill{background:var(--green)}
.kpi--score-mid .kpi-bar-fill{background:var(--amber)}
.kpi--score-low .kpi-bar-fill{background:var(--text3)}
.kpi--score-high .kpi--score .kl{color:var(--green)}
.kpi-score-meta{
  font-family:var(--sans);font-size:11px;color:var(--text3);
  letter-spacing:.005em;line-height:1.4;margin-bottom:8px;
  align-self:flex-start;
}
.kpi-score-cta{
  display:inline-flex;align-items:center;gap:6px;align-self:flex-start;
  background:var(--accent2);color:#fff;border:none;cursor:pointer;
  padding:6px 12px;border-radius:var(--radius-pill);
  font-family:var(--sans);font-size:11px;font-weight:500;
  letter-spacing:.005em;line-height:1;
  transition:background .15s ease,transform .12s ease;
}
.kpi-score-cta:hover{background:#4836B5}
.kpi-score-cta:active{transform:scale(.97)}
.kpi-score-cta svg{flex-shrink:0}

/* ============================================================ */
/* MARKET INTELLIGENCE TERMINAL                                  */
/* ============================================================ */
/* ── Ticker Bar ──────────────────────────────────────────── */
.mkt-ticker{overflow:hidden;background:var(--bg2);border-bottom:1px solid var(--border);padding:6px 0;margin:-18px -24px 18px;position:relative}
.mkt-ticker::before,.mkt-ticker::after{content:'';position:absolute;top:0;bottom:0;width:48px;z-index:2;pointer-events:none}
.mkt-ticker::before{left:0;background:linear-gradient(90deg,var(--bg2),transparent)}
.mkt-ticker::after{right:0;background:linear-gradient(270deg,var(--bg2),transparent)}
.mkt-ticker-track{display:flex;gap:0;animation:mktScroll 50s linear infinite;width:max-content}
.mkt-ticker-track:hover{animation-play-state:paused}
.mkt-ticker-item{display:flex;align-items:center;gap:8px;padding:0 22px;white-space:nowrap;font-size:12px;font-family:var(--mono,monospace);border-right:1px solid var(--border);cursor:pointer;transition:background .15s}
.mkt-ticker-item:hover{background:rgba(90,68,209,.08)}
.mkt-ticker-sym{font-weight:800;letter-spacing:.05em;font-size:13px}
.mkt-ticker-price{color:var(--text2);font-weight:600}
.mkt-ticker-delta{font-weight:700;font-size:11px}
.mkt-ticker-delta.up{color:var(--accent2)}
.mkt-ticker-delta.down{color:var(--accent);opacity:.5}
.mkt-ticker-delta.flat{color:var(--text3)}
.mkt-ticker-vol{font-size:9px;color:var(--text3);opacity:.6}
@keyframes mktScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
/* ── Macro Indicator Cards ─────────────────────────────── */
.mkt-macro-row{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
.mkt-macro-card{flex:1 1 110px;min-width:100px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:10px 12px;text-align:center}
.mkt-macro-val{font-size:18px;font-weight:700;font-family:var(--mono,monospace);color:var(--text);line-height:1.2}
.mkt-macro-label{font-size:10px;font-family:var(--mono,monospace);color:var(--text2);margin-top:2px;text-transform:uppercase;letter-spacing:.04em}
.mkt-macro-sub{font-size:9px;font-family:var(--mono,monospace);color:var(--text3);margin-top:2px}
/* ── Interactive Municipality Choropleth Map ─────────────── */
.mkt-map-container{display:flex;gap:16px;min-height:340px}
.mkt-map-svg-wrap{flex:1;min-width:0;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:16px 12px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
.mkt-map-svg{width:100%;height:auto;max-height:520px}
.mkt-map-state{fill:#e8e8ec;stroke:#fff;stroke-width:0.4;stroke-linejoin:round;pointer-events:none}
.mkt-map-muni{cursor:pointer;transition:fill-opacity .25s,stroke-width .2s,filter .2s}
.mkt-map-muni:hover{fill-opacity:.85 !important;stroke-width:1.8;filter:drop-shadow(0 1px 4px rgba(12,18,50,.2))}
.mkt-map-muni.active{fill-opacity:.92 !important;stroke-width:2.5;filter:drop-shadow(0 0 8px rgba(90,68,209,.4))}
.mkt-map-label{font-family:var(--mono,monospace);font-size:7.5px;font-weight:700;text-anchor:middle;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;paint-order:stroke;stroke-linejoin:round}
.mkt-map-label-bg{font-family:var(--mono,monospace);font-size:7.5px;font-weight:700;text-anchor:middle;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;stroke-width:2.5px;stroke-linejoin:round;paint-order:stroke}
.mkt-map-zoom-out{position:absolute;top:12px;left:12px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 10px;font-family:var(--mono,monospace);font-size:9px;color:var(--text1);cursor:pointer;letter-spacing:.04em;display:none;z-index:2;transition:background .15s,border-color .15s}
.mkt-map-zoom-out:hover{background:var(--accent2);color:#fff;border-color:var(--accent2)}
.mkt-map-zoom-out.visible{display:block}
.mkt-map-legend{display:flex;align-items:center;gap:6px;margin-top:10px;font-family:var(--mono,monospace);font-size:8px;color:var(--text3);letter-spacing:.06em;text-transform:uppercase}
.mkt-map-legend-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;width:140px}
.mkt-map-legend-bar span{flex:1}
.mkt-map-info{width:240px;flex-shrink:0;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:14px;overflow-y:auto;max-height:360px}
.mkt-map-info-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}
.mkt-map-info .info-hdr{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.mkt-map-info .info-sym{font-family:var(--mono,monospace);font-size:13px;font-weight:800;color:var(--accent);letter-spacing:.05em}
.mkt-map-info .info-name{font-size:11px;color:var(--text2);font-weight:500}
.mkt-map-info .info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mkt-map-info .info-cell{text-align:center;padding:6px 4px;background:var(--bg3);border-radius:var(--radius-sm)}
.mkt-map-info .info-cell-lbl{font-size:8px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:3px}
.mkt-map-info .info-cell-val{font-size:16px;font-weight:800;color:var(--accent);letter-spacing:-.02em}
.mkt-map-info .info-cell-val.sm{font-size:12px}
.mkt-map-info .info-detail-btn{display:block;width:100%;margin-top:10px;padding:7px;border:1px solid var(--accent2);border-radius:var(--radius-sm);background:none;color:var(--accent2);font-size:10px;font-weight:600;font-family:var(--mono,monospace);cursor:pointer;text-align:center;letter-spacing:.04em;transition:background .15s,color .15s}
.mkt-map-info .info-detail-btn:hover{background:var(--accent2);color:#fff}
/* Data layer selector */
.mkt-layer-bar{display:flex;align-items:center;gap:2px;margin-bottom:10px;width:100%}
.mkt-layer-btn{flex:1;padding:5px 0;border:1px solid var(--border);background:var(--bg3);color:var(--text3);font-family:var(--mono,monospace);font-size:8px;font-weight:600;letter-spacing:.08em;cursor:pointer;text-align:center;transition:background .15s,color .15s,border-color .15s}
.mkt-layer-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}
.mkt-layer-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.mkt-layer-btn.active{background:var(--accent2);color:#fff;border-color:var(--accent2)}
.mkt-layer-btn:hover:not(.active){background:var(--bg2);color:var(--text1)}
.mkt-map-toolbar{display:flex;align-items:center;gap:8px;width:100%;margin-bottom:6px}
.mkt-map-toolbar .mkt-layer-bar{margin-bottom:0}
.mkt-state-toggle{padding:5px 10px;border:1px solid var(--border);background:var(--bg3);color:var(--text3);font-family:var(--mono,monospace);font-size:8px;font-weight:600;letter-spacing:.08em;cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap;transition:background .15s,color .15s}
.mkt-state-toggle:hover{background:var(--bg2);color:var(--text1)}
/* Enhanced info panel — Reventure-inspired */
/* Score sub-tabs */
.mkt-score-tabs{display:flex;background:var(--bg3);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:10px}
.mkt-score-tab{flex:1;padding:5px 2px;border:none;background:transparent;color:var(--text3);font-family:var(--mono,monospace);font-size:7.5px;font-weight:600;letter-spacing:.06em;cursor:pointer;text-align:center;transition:background .15s,color .15s;text-transform:uppercase}
.mkt-score-tab.active{background:var(--accent);color:#fff;border-radius:var(--radius-sm)}
.mkt-score-tab:hover:not(.active){color:var(--text1)}
/* Half-circle gauge */
.mkt-gauge-wrap{text-align:center;margin:6px 0 4px;position:relative}
.mkt-gauge-svg{display:block;margin:0 auto}
.mkt-gauge-val{font-family:var(--mono,monospace);font-size:26px;font-weight:800;color:var(--accent);letter-spacing:-.03em;margin-top:-18px;position:relative}
.mkt-gauge-lbl{font-family:var(--mono,monospace);font-size:8px;color:var(--text3);letter-spacing:.06em;text-transform:uppercase;margin-top:1px}
.mkt-gauge-bench{display:inline-block;font-family:var(--mono,monospace);font-size:8px;color:var(--text3);letter-spacing:.04em;margin-top:3px;padding:2px 8px;border:1px solid var(--border);border-radius:10px}
/* Component bars with circular badges */
.mkt-score-bars{margin:8px 0}
.mkt-score-row{display:flex;align-items:center;gap:6px;margin-bottom:7px}
.mkt-score-row-label{font-family:var(--mono,monospace);font-size:8px;color:var(--text3);letter-spacing:.04em;width:68px;text-align:right;flex-shrink:0}
.mkt-score-row-bar{flex:1;height:6px;background:var(--bg3);border-radius:3px;overflow:hidden;position:relative}
.mkt-score-row-fill{height:100%;border-radius:3px;transition:width .4s ease-out}
.mkt-score-row-badge{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--mono,monospace);font-size:8px;font-weight:800;color:#fff;flex-shrink:0;margin-left:-2px}
/* Micro sparkline */
.mkt-sparkline-wrap{margin:6px 0;padding:6px 0;border-top:1px solid var(--border)}
.mkt-sparkline-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.mkt-sparkline-title{font-family:var(--mono,monospace);font-size:8px;color:var(--text3);letter-spacing:.06em;text-transform:uppercase}
.mkt-sparkline-delta{font-family:var(--mono,monospace);font-size:9px;font-weight:700;letter-spacing:.02em}
.mkt-sparkline-delta.up{color:#2d6a4f}
.mkt-sparkline-delta.down{color:#c1121f}
.mkt-sparkline-delta.flat{color:var(--text3)}
/* Source attribution */
.mkt-source-attr{font-family:var(--mono,monospace);font-size:7px;color:var(--text3);letter-spacing:.04em;text-align:center;margin-top:6px;opacity:.6}
.mkt-info-divider{border:none;border-top:1px solid var(--border);margin:8px 0}
.mkt-info-mini-table{width:100%}
.mkt-info-mini-table tr td{font-family:var(--mono,monospace);font-size:9px;padding:2px 0;color:var(--text2)}
.mkt-info-mini-table tr td:last-child{text-align:right;font-weight:600;color:var(--text1)}
.mkt-info-colonias-list{margin:0;padding:0;list-style:none}
.mkt-info-colonias-list li{display:flex;justify-content:space-between;font-family:var(--mono,monospace);font-size:9px;color:var(--text2);padding:2px 0;border-bottom:1px solid var(--bg3)}
.mkt-info-colonias-list li span:last-child{font-weight:600;color:var(--text1)}
@media(max-width:700px){.mkt-map-container{flex-direction:column}.mkt-map-info{width:100%;max-height:200px}}
/* ── Header ──────────────────────────────────────────────── */
.mkt-header{margin-bottom:20px}
.mkt-header h2{font-family:var(--serif);font-weight:400;font-size:26px;color:var(--accent);margin-bottom:2px;letter-spacing:-.03em}
.mkt-header .mkt-sub{font-size:12px;color:var(--text3);margin-bottom:14px}
.mkt-header .mkt-ts{font-size:10px;color:var(--text3);font-family:var(--mono,monospace);opacity:.5}
/* ── Operation Toggle ────────────────────────────────────── */
.mkt-ops{display:flex;gap:2px;background:var(--bg3);border-radius:var(--radius-sm);padding:2px;width:fit-content}
.mkt-op-btn{background:none;border:none;border-radius:calc(var(--radius-sm) - 1px);padding:6px 18px;font-size:11px;font-weight:600;color:var(--text3);cursor:pointer;transition:all .15s var(--ease);font-family:var(--sans)}
.mkt-op-btn:hover{color:var(--text)}
.mkt-op-btn.active{background:var(--accent);color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18)}
/* ── Pulse KPI Strip ─────────────────────────────────────── */
.mkt-pulse{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin-bottom:26px}
.mkt-pulse-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:14px 16px;position:relative;overflow:hidden;transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.mkt-pulse-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-elevated)}
.mkt-pulse-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--border);border-radius:0 0 var(--radius) var(--radius)}
.mkt-pulse-card .bar-fill{position:absolute;bottom:0;left:0;height:3px;border-radius:0 0 var(--radius) var(--radius);transition:width .8s cubic-bezier(.34,1.56,.64,1)}
.mkt-pulse-lbl{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:6px}
.mkt-pulse-val{font-size:28px;font-weight:800;color:var(--accent);letter-spacing:-.04em;line-height:1}
.mkt-pulse-sub{font-size:11px;color:var(--text3);margin-top:5px;display:flex;align-items:center;gap:4px}
/* ── Section headers ─────────────────────────────────────── */
.mkt-section{margin-bottom:28px}
.mkt-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.mkt-section-title{font-size:11px;font-weight:800;color:var(--text2);text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px}
.mkt-section-badge{font-size:10px;color:var(--text3);font-family:var(--mono,monospace)}
/* ── Sector Cards (Municipality = Sector) ────────────────── */
.mkt-sectors{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:10px;margin-bottom:10px}
.mkt-sector{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:all .2s var(--ease);position:relative;overflow:hidden}
.mkt-sector:hover{border-color:var(--accent2);transform:translateY(-2px);box-shadow:var(--shadow-elevated)}
.mkt-sector.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-elevated)}
.mkt-sector-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}
.mkt-sector-sym{font-size:16px;font-weight:900;font-family:var(--mono,monospace);letter-spacing:.06em}
.mkt-sector-heat{font-size:9px;font-weight:700;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}
.heat-blazing{background:rgba(90,68,209,.15);color:var(--accent2)}
.heat-hot{background:rgba(90,68,209,.10);color:var(--accent2)}
.heat-warming{background:rgba(12,18,49,.12);color:var(--accent)}
.heat-stable{background:rgba(12,18,49,.08);color:var(--text2)}
.heat-cooling{background:rgba(12,18,49,.05);color:var(--text3)}
.mkt-sector-name{font-size:11px;color:var(--text3);margin-bottom:10px;font-weight:500}
.mkt-sector-price{font-size:22px;font-weight:800;letter-spacing:-.03em;line-height:1;margin-bottom:2px}
.mkt-sector-price-lbl{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.mkt-sector-metrics{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px}
.mkt-sector-metric-lbl{font-size:8px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.mkt-sector-metric-val{font-size:12px;font-weight:700;color:var(--text)}
.mkt-sector-bar{height:4px;background:var(--bg3);border-radius:2px;margin-top:10px;overflow:hidden}
.mkt-sector-bar-fill{height:100%;border-radius:2px;transition:width .6s var(--ease)}
/* ── Market Movers ───────────────────────────────────────── */
.mkt-movers{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:10px}
@media(max-width:700px){.mkt-movers{grid-template-columns:1fr}}
.mkt-movers-col h4{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin:0 0 10px;display:flex;align-items:center;gap:6px}
.mkt-mover{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius-sm);transition:background .15s;margin-bottom:2px}
.mkt-mover:hover{background:var(--bg3)}
.mkt-mover-rank{font-size:14px;font-weight:800;color:var(--text3);width:20px;text-align:center;font-family:var(--mono,monospace)}
.mkt-mover-info{flex:1;min-width:0}
.mkt-mover-name{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mkt-mover-sub{font-size:10px;color:var(--text3)}
.mkt-mover-val{font-size:13px;font-weight:700;text-align:right;white-space:nowrap}
.mkt-mover-bar{width:50px;height:4px;background:var(--bg3);border-radius:2px;overflow:hidden}
.mkt-mover-bar-fill{height:100%;border-radius:2px}
/* ── Charts Row ──────────────────────────────────────────── */
.mkt-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:10px}
@media(max-width:700px){.mkt-charts{grid-template-columns:1fr}}
.mkt-chart-box{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:16px;position:relative}
.mkt-chart-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:14px}
/* ── Bell Curve ──────────────────────────────────────────── */
.mkt-bell{padding:0;margin-bottom:6px}
.mkt-bell__chart{position:relative;height:var(--chartH,110px);display:flex;align-items:flex-end}
.mkt-bell__baseline{position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--border)}
.mkt-bell__bars{display:flex;align-items:flex-end;justify-content:center;gap:4px;width:100%;height:100%}
.mkt-bell__col{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1;max-width:70px;cursor:default;transition:transform .15s var(--ease)}
.mkt-bell__col:hover{transform:translateY(-3px)}
.mkt-bell__count{font-size:10px;font-weight:700;color:var(--text);opacity:.6}
.mkt-bell__pct{font-size:8px;color:var(--text3);display:none}
.mkt-bell__col:hover .mkt-bell__pct{display:block}
.mkt-bell__col:hover .mkt-bell__count{opacity:1}
.mkt-bell__bar{width:100%;border-radius:3px 3px 0 0;transition:height .5s var(--ease);min-height:4px}
.mkt-bell__col.is-mode .mkt-bell__count{font-weight:800;opacity:1}
.mkt-bell__col.is-mode .mkt-bell__bar{box-shadow:0 -3px 12px rgba(var(--accent-rgb),.2)}
.mkt-bell__labels{display:flex;justify-content:center;gap:4px;margin-top:8px}
.mkt-bell__label{font-size:9px;text-transform:uppercase;letter-spacing:.04em;text-align:center;flex:1;max-width:70px;opacity:.5}
.mkt-bell__label.is-mode{font-weight:800;opacity:1}
/* ── Price Histogram ─────────────────────────────────────── */
.mkt-histo-wrap{position:relative}
.mkt-histo{display:flex;align-items:flex-end;gap:2px;height:80px;margin-bottom:4px}
.mkt-histo-bar{flex:1;min-width:0;border-radius:2px 2px 0 0;opacity:.7;transition:height .4s var(--ease),opacity .15s;position:relative;cursor:default}
.mkt-histo-bar:hover{opacity:1}
.mkt-histo-bar:hover::after{content:attr(data-tip);position:absolute;top:-22px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--text);background:var(--bg2);padding:2px 6px;border-radius:3px;white-space:nowrap;border:0.5px solid var(--border);z-index:5;pointer-events:none}
.mkt-histo-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--text3)}
.mkt-histo-median{position:absolute;top:0;bottom:20px;width:2px;background:var(--accent);opacity:.4;pointer-events:none}
.mkt-histo-median::after{content:'MED';position:absolute;top:-14px;left:50%;transform:translateX(-50%);font-size:7px;color:var(--accent);font-weight:800;letter-spacing:.06em}
/* ── Screener Table ──────────────────────────────────────── */
.mkt-screener-bar{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.mkt-screener-bar input{flex:1;min-width:160px;max-width:280px;padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:12px;font-family:var(--sans);background:var(--bg2);color:var(--text)}
.mkt-screener-bar input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.15)}
.mkt-screener-count{font-size:11px;color:var(--text3);font-family:var(--mono,monospace)}
.mkt-table{width:100%;border-collapse:collapse;font-size:12px}
.mkt-table th{text-align:left;padding:7px 10px;font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);white-space:nowrap;user-select:none;font-weight:800}
.mkt-table th:hover{color:var(--accent)}
.mkt-table th.sorted{color:var(--accent)}
.mkt-table td{padding:7px 10px;border-bottom:0.5px solid var(--border)}
.mkt-table tr{transition:background .1s}
.mkt-table tr:hover{background:var(--bg2)}
.mkt-table .col-name{font-weight:700;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mkt-table .col-sector{font-size:10px;font-weight:800;font-family:var(--mono,monospace);letter-spacing:.04em;opacity:.7}
.mkt-table .col-pm2{font-weight:700;color:var(--accent)}
.mkt-table .col-heat{font-size:10px;font-weight:700}
/* ── Sentiment bar ───────────────────────────────────────── */
.mkt-sent{display:flex;height:6px;border-radius:3px;overflow:hidden;width:55px}
.mkt-sent-sale{background:var(--accent)}
.mkt-sent-rent{background:var(--accent2)}
/* ── Type chip ───────────────────────────────────────────── */
.mkt-type-chip{font-size:10px;font-weight:600;padding:1px 8px;border-radius:10px;display:inline-flex;align-items:center;gap:3px;border:0.5px solid var(--border)}
.mkt-type-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
/* ── Animate-in ──────────────────────────────────────────── */
@keyframes mktFadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes mktSlideIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
.mkt-anim{animation:mktFadeUp .4s var(--ease) both}
/* ── Sector Detail Popup ─────────────────────────────────── */
.mkt-popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:9000;display:flex;align-items:center;justify-content:center;animation:mktFadeIn .2s var(--ease);backdrop-filter:blur(4px)}
@keyframes mktFadeIn{from{opacity:0}to{opacity:1}}
.mkt-popup{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:90%;max-width:680px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:mktPopIn .25s cubic-bezier(.34,1.56,.64,1);position:relative}
@keyframes mktPopIn{from{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
.mkt-popup-close{position:absolute;top:12px;right:14px;background:none;border:none;font-size:18px;color:var(--text3);cursor:pointer;z-index:2;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .15s}
.mkt-popup-close:hover{background:var(--bg3);color:var(--text)}
.mkt-popup-header{padding:20px 24px 14px;border-bottom:1px solid var(--border)}
.mkt-popup-header h3{font-size:20px;font-weight:800;margin:0 0 2px;display:flex;align-items:center;gap:10px}
.mkt-popup-header .mkt-popup-sub{font-size:12px;color:var(--text3)}
.mkt-popup-body{padding:20px 24px}
.mkt-popup-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
@media(max-width:580px){.mkt-popup-grid{grid-template-columns:1fr}}
.mkt-popup-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius-sm);padding:14px}
.mkt-popup-card-title{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:10px}
/* Heat breakdown bars */
.mkt-heat-bars{display:flex;flex-direction:column;gap:8px}
.mkt-heat-row{display:flex;align-items:center;gap:8px}
.mkt-heat-row-label{font-size:11px;color:var(--text2);width:80px;flex-shrink:0}
.mkt-heat-row-bar{flex:1;height:8px;background:var(--bg3);border-radius:4px;overflow:hidden}
.mkt-heat-row-fill{height:100%;border-radius:4px;transition:width .5s var(--ease)}
.mkt-heat-row-val{font-size:11px;font-weight:700;width:36px;text-align:right}
/* Box plot */
.mkt-boxplot{position:relative;height:40px;margin:12px 0 4px}
.mkt-boxplot-track{position:absolute;top:50%;left:0;right:0;height:2px;background:var(--border);transform:translateY(-50%)}
.mkt-boxplot-box{position:absolute;top:8px;height:24px;border:2px solid var(--accent);border-radius:3px;background:rgba(var(--accent-rgb),.08)}
.mkt-boxplot-median{position:absolute;top:4px;height:32px;width:3px;background:var(--accent);border-radius:2px}
.mkt-boxplot-whisker{position:absolute;top:50%;height:2px;background:var(--text3);transform:translateY(-50%)}
.mkt-boxplot-dot{position:absolute;top:50%;width:6px;height:6px;border-radius:50%;background:var(--text3);transform:translate(-50%,-50%)}
.mkt-boxplot-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--text3);margin-top:2px}
/* Top colonias mini list */
.mkt-popup-rank{display:flex;flex-direction:column;gap:4px}
.mkt-popup-rank-item{display:flex;align-items:center;gap:8px;font-size:11px}
.mkt-popup-rank-num{font-weight:800;color:var(--text3);width:14px;font-family:var(--mono,monospace)}
.mkt-popup-rank-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mkt-popup-rank-val{font-weight:700;color:var(--accent)}
/* Type composition mini bars */
.mkt-popup-types{display:flex;flex-direction:column;gap:4px}
.mkt-popup-type-row{display:flex;align-items:center;gap:6px;font-size:11px}
.mkt-popup-type-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.mkt-popup-type-name{width:55px;flex-shrink:0}
.mkt-popup-type-bar{flex:1;height:6px;background:var(--bg3);border-radius:3px;overflow:hidden}
.mkt-popup-type-fill{height:100%;border-radius:3px}
.mkt-popup-type-pct{font-weight:700;width:36px;text-align:right}
/* ── Market Depth Bands ──────────────────────────────────── */
.mkt-depth{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
@media(max-width:600px){.mkt-depth{grid-template-columns:1fr 1fr}}
.mkt-depth-band{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius-sm);padding:12px;text-align:center;position:relative;overflow:hidden}
.mkt-depth-band::before{content:'';position:absolute;bottom:0;left:0;right:0;height:4px}
.mkt-depth-band.band-affordable::before{background:var(--accent);opacity:.4}
.mkt-depth-band.band-mid::before{background:var(--accent);opacity:.65}
.mkt-depth-band.band-premium::before{background:var(--accent2);opacity:.65}
.mkt-depth-band.band-luxury::before{background:var(--accent2)}
.mkt-depth-label{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:4px}
.mkt-depth-count{font-size:22px;font-weight:800;line-height:1}
.mkt-depth-pct{font-size:10px;color:var(--text3);margin-top:2px}
.mkt-depth-range{font-size:9px;color:var(--text3);margin-top:4px;font-family:var(--mono,monospace)}
/* ── Volatility badge ────────────────────────────────────── */
.mkt-vol-badge{font-size:8px;font-weight:700;padding:1px 6px;border-radius:8px;letter-spacing:.04em;margin-left:4px}
.vol-low{background:rgba(12,18,49,.06);color:var(--text3)}
.vol-mid{background:rgba(12,18,49,.10);color:var(--accent)}
.vol-high{background:rgba(90,68,209,.12);color:var(--accent2)}
/* ── Yield leaderboard ───────────────────────────────────── */
.mkt-yield-board{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:700px){.mkt-yield-board{grid-template-columns:1fr}}
/* ── Dev Opportunity Panel ───────────────────────────────── */
.mkt-dev{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:20px;position:relative;overflow:hidden}
.mkt-dev::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.mkt-dev-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.mkt-dev-head h4{font-size:14px;font-weight:800;margin:0;display:flex;align-items:center;gap:8px}
.mkt-dev-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;background:rgba(90,68,209,.1);color:var(--accent2)}
.mkt-dev-loading{text-align:center;padding:30px;color:var(--text3);font-size:13px}
.mkt-dev-loading .spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:mktSpin .8s linear infinite;margin-right:8px;vertical-align:middle}
@keyframes mktSpin{to{transform:rotate(360deg)}}
/* Category cards */
.mkt-dev-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
@media(max-width:550px){.mkt-dev-cats{grid-template-columns:1fr}}
.mkt-dev-cat{border-radius:var(--radius-sm);padding:14px;text-align:center;position:relative}
.mkt-dev-cat.cat-potential{background:rgba(90,68,209,.08);border:1px solid rgba(90,68,209,.2)}
.mkt-dev-cat.cat-maxed{background:rgba(12,18,49,.06);border:1px solid rgba(12,18,49,.12)}
.mkt-dev-cat.cat-empty{background:rgba(12,18,49,.04);border:1px solid rgba(12,18,49,.08)}
.mkt-dev-cat-icon{font-size:22px;margin-bottom:4px}
.mkt-dev-cat-count{font-size:24px;font-weight:800;line-height:1}
.mkt-dev-cat-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);margin-top:4px}
.mkt-dev-cat-pct{font-size:11px;color:var(--text3);margin-top:2px}
/* Utilization gauge */
.mkt-dev-gauge{display:flex;align-items:center;gap:14px;margin-bottom:18px;padding:12px;background:var(--bg3);border-radius:var(--radius-sm)}
.mkt-dev-gauge-ring{width:64px;height:64px;flex-shrink:0;position:relative}
.mkt-dev-gauge-ring svg{width:100%;height:100%}
.mkt-dev-gauge-val{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800}
.mkt-dev-gauge-info{flex:1}
.mkt-dev-gauge-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text3)}
.mkt-dev-gauge-big{font-size:20px;font-weight:800;color:var(--text);line-height:1.2}
.mkt-dev-gauge-sub{font-size:11px;color:var(--text3)}
/* CUS distribution */
.mkt-dev-cus{display:flex;align-items:flex-end;gap:3px;height:60px;margin-bottom:4px}
.mkt-dev-cus-bar{flex:1;min-width:0;border-radius:2px 2px 0 0;transition:height .4s var(--ease);cursor:default;position:relative}
.mkt-dev-cus-bar:hover{opacity:1}
.mkt-dev-cus-bar:hover::after{content:attr(data-tip);position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-size:9px;background:var(--bg);padding:2px 6px;border-radius:3px;border:0.5px solid var(--border);white-space:nowrap;z-index:5;pointer-events:none}
.mkt-dev-cus-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--text3)}

/* ── Market Intel Sub-Tab Navigation ── */
.mkt-subtabs{display:flex;gap:2px;background:var(--bg2);border-radius:10px;padding:3px;margin-bottom:18px;border:1px solid var(--border)}
.mkt-subtab{flex:1;padding:10px 16px;border-radius:8px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:all .2s;color:var(--text3);text-align:center;border:none;background:transparent;font-family:var(--sans)}
.mkt-subtab:hover{color:var(--text1);background:var(--bg3)}
.mkt-subtab.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px rgba(99,102,241,.3)}
.mkt-subtab .mkt-subtab-icon{margin-right:6px;font-size:14px}

/* ── Alpha Opportunities Table ── */
.alpha-table-wrap{overflow-x:auto;max-height:600px;overflow-y:auto;border-radius:8px;border:1px solid var(--border)}
.alpha-table{width:100%;border-collapse:collapse;font-size:11px;font-family:var(--mono)}
.alpha-table thead{position:sticky;top:0;z-index:2}
.alpha-table th{background:var(--bg2);color:var(--text3);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;padding:8px 10px;text-align:left;cursor:pointer;white-space:nowrap;border-bottom:2px solid var(--border);user-select:none}
.alpha-table th:hover{color:var(--text1)}
.alpha-table th.sorted{color:var(--accent)}
.alpha-table td{padding:7px 10px;border-bottom:1px solid var(--border);color:var(--text1);white-space:nowrap}
.alpha-table tr:hover td{background:var(--bg2)}
.alpha-clave{font-family:var(--mono);font-size:10px;color:var(--accent);cursor:pointer;text-decoration:underline;text-decoration-style:dotted}
.alpha-clave:hover{color:var(--accent2)}
.alpha-zone-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.05em}
.alpha-zone-badge.hm{background:rgba(90,68,209,.15);color:var(--accent2);border:1px solid rgba(90,68,209,.25)}
.alpha-zone-badge.cs{background:rgba(12,18,49,.08);color:var(--accent);border:1px solid rgba(12,18,49,.15)}
.alpha-zone-badge.mx{background:rgba(12,18,49,.05);color:var(--text2);border:1px solid rgba(12,18,49,.10)}
.alpha-zone-badge.other{background:var(--bg3);color:var(--text3);border:1px solid var(--border)}
.alpha-gain{color:var(--accent2);font-weight:700}
.alpha-util{display:inline-flex;align-items:center;gap:4px}
.alpha-util-bar{width:40px;height:5px;background:var(--bg3);border-radius:3px;overflow:hidden}
.alpha-util-fill{height:100%;border-radius:3px}
.alpha-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.alpha-filter-btn{padding:5px 12px;border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.04em;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text3);transition:all .15s;font-family:var(--sans)}
.alpha-filter-btn:hover{border-color:var(--text3);color:var(--text1)}
.alpha-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.alpha-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:18px}
.alpha-summary-card{background:var(--bg2);border-radius:8px;padding:12px 14px;border:1px solid var(--border)}
.alpha-summary-card .lbl{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:4px}
.alpha-summary-card .val{font-size:22px;font-weight:800;color:var(--text1);line-height:1.1}
.alpha-summary-card .sub{font-size:10px;color:var(--text3);margin-top:2px}
.alpha-colonia-chip{display:inline-block;padding:2px 6px;border-radius:4px;font-size:9px;background:var(--bg3);color:var(--text2);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ── Alpha Listing Match Styles ── */
.alpha-listing-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.03em;background:rgba(90,68,209,.12);color:var(--accent2);border:1px solid rgba(90,68,209,.2)}
.alpha-listing-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--accent2);animation:alpha-pulse 2s infinite}
@keyframes alpha-pulse{0%,100%{opacity:1}50%{opacity:.4}}
.alpha-listing-count{font-size:9px;font-weight:800;color:var(--accent2);background:rgba(90,68,209,.12);border-radius:10px;padding:1px 6px;min-width:16px;text-align:center;display:inline-block}
.alpha-listing-expand{cursor:pointer;user-select:none;transition:transform .2s}
.alpha-listing-expand.open{transform:rotate(90deg)}
.alpha-listing-row{background:rgba(90,68,209,.04) !important}
.alpha-listing-row td{padding:5px 10px !important;border-bottom:1px solid rgba(90,68,209,.1) !important}
.alpha-listing-card{display:flex;gap:10px;align-items:center;font-size:10px;padding:4px 0}
.alpha-listing-card+.alpha-listing-card{border-top:1px solid var(--border);padding-top:6px;margin-top:2px}
.alpha-listing-price{font-weight:800;font-size:12px;color:var(--text1)}
.alpha-listing-meta{color:var(--text3);font-size:9px}
.alpha-listing-link{color:var(--accent);text-decoration:none;font-weight:600;font-size:10px}
.alpha-listing-link:hover{text-decoration:underline}
.alpha-listing-src{display:inline-block;padding:1px 5px;border-radius:3px;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--bg3);color:var(--text3)}
.alpha-kpi-listing{border-left:3px solid var(--accent2)}

/* ── Alpha Parcel Detail Panel ── */
.alpha-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);z-index:9998;opacity:0;transition:opacity .2s;pointer-events:auto}
.alpha-detail-overlay.open{opacity:1}
.alpha-detail-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:min(960px,92vw);max-height:85vh;background:var(--bg1);border:1px solid var(--border);border-radius:14px;z-index:9999;box-shadow:0 12px 48px rgba(0,0,0,.4);overflow:hidden;opacity:0;transition:opacity .2s,transform .2s}
.alpha-detail-panel.open{opacity:1;transform:translate(-50%,-50%) scale(1)}
.alpha-detail-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--bg2)}
.alpha-detail-head .title{font-size:14px;font-weight:800;color:var(--text1);display:flex;align-items:center;gap:8px}
.alpha-detail-head .title .clave-tag{font-size:11px;font-weight:600;color:var(--accent);background:rgba(59,130,246,.1);padding:2px 8px;border-radius:5px;font-family:var(--mono)}
.alpha-detail-close{cursor:pointer;font-size:16px;color:var(--text3);padding:4px 8px;border-radius:6px;border:none;background:transparent;font-family:var(--sans)}
.alpha-detail-close:hover{background:var(--bg3);color:var(--text1)}
.alpha-detail-body{display:grid;grid-template-columns:340px 1fr;gap:0;max-height:calc(85vh - 56px);overflow-y:auto}
@media(max-width:700px){.alpha-detail-body{grid-template-columns:1fr;max-height:calc(85vh - 56px)}}
.alpha-detail-map{height:320px;border-right:1px solid var(--border);position:relative}
@media(max-width:700px){.alpha-detail-map{height:220px;border-right:none;border-bottom:1px solid var(--border)}}
.alpha-detail-map .mapboxgl-ctrl-attrib{display:none !important}
.alpha-detail-data{padding:16px 20px;display:grid;grid-template-columns:1fr 1fr;gap:16px;align-content:start}
@media(max-width:700px){.alpha-detail-data{grid-template-columns:1fr}}
.alpha-detail-section{background:var(--bg2);border-radius:10px;padding:14px;border:1px solid var(--border)}
.alpha-detail-section.full{grid-column:1/-1}
.alpha-detail-section .sec-title{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:10px;display:flex;align-items:center;gap:6px}
.alpha-detail-section .sec-title .dot{width:6px;height:6px;border-radius:50%}
.alpha-detail-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:11px}
.alpha-detail-row .lbl{color:var(--text3)}
.alpha-detail-row .val{color:var(--text1);font-weight:600;font-family:var(--mono);font-size:11px}
.alpha-detail-row .val.green{color:var(--accent2)}
.alpha-detail-row .val.amber{color:var(--accent)}
.alpha-detail-row .val.blue{color:var(--text2)}
.alpha-detail-big{text-align:center;padding:8px 0}
.alpha-detail-big .num{font-size:28px;font-weight:800;line-height:1.1}
.alpha-detail-big .sub{font-size:10px;color:var(--text3);margin-top:2px}
.alpha-detail-util{margin-top:8px}
.alpha-detail-util-bar{width:100%;height:8px;background:var(--bg3);border-radius:4px;overflow:hidden;margin-top:4px}
.alpha-detail-util-fill{height:100%;border-radius:4px;transition:width .5s}
.alpha-detail-listing{background:var(--bg2);border-radius:10px;padding:14px;border:1px solid rgba(90,68,209,.25);grid-column:1/-1}
.alpha-detail-listing .listing-price{font-size:20px;font-weight:800;color:var(--text1)}
.alpha-detail-listing .listing-addr{font-size:11px;color:var(--text2);margin-top:2px}
.alpha-detail-listing .listing-meta{font-size:10px;color:var(--text3);margin-top:4px;display:flex;gap:8px;flex-wrap:wrap}
.alpha-detail-listing .listing-link{display:inline-block;margin-top:8px;font-size:10px;color:var(--accent);text-decoration:none;font-weight:600}
.alpha-detail-listing .listing-link:hover{text-decoration:underline}
.alpha-detail-actions{grid-column:1/-1;display:flex;gap:8px;justify-content:flex-end;padding-top:4px}
.alpha-detail-actions button{padding:6px 14px;border-radius:6px;font-size:10px;font-weight:700;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text2);font-family:var(--sans);transition:all .15s}
.alpha-detail-actions button:hover{border-color:var(--text3);color:var(--text1)}
.alpha-detail-actions button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.alpha-detail-actions button.primary:hover{opacity:.9}


/* Top opportunity colonias */
.mkt-dev-top{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
@media(max-width:600px){.mkt-dev-top{grid-template-columns:1fr}}

/* ─── Property-type distribution (bell-curve chart, revamped) ─────────────── */
.cat-dist{padding:8px 24px 14px;color:var(--accent)}
.cat-dist__head{
  display:flex;align-items:baseline;justify-content:space-between;
  margin-bottom:14px;gap:12px;flex-wrap:wrap;
}
.cat-dist__title{
  font-family:var(--sans);font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;color:var(--text);
}
.cat-dist__sub{
  font-family:var(--sans);font-size:11px;color:var(--text3);
  letter-spacing:.005em;font-weight:500;
}
.cat-dist__sub b{color:var(--text);font-weight:600}
.cat-dist__chart{
  position:relative;height:var(--chartH,112px);
}
.cat-dist__baseline{
  position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--border-strong) 12%,var(--border-strong) 88%,transparent);
  pointer-events:none;
}
.cat-dist__bars{
  position:absolute;inset:0;display:flex;align-items:flex-end;gap:8px;
}
.cat-dist__col{
  flex:1;display:flex;flex-direction:column;align-items:center;
  gap:4px;justify-content:flex-end;height:100%;
  position:relative;
  background:none;border:none;padding:0;cursor:pointer;
  font:inherit;color:inherit;
  transition:transform .18s var(--ease);
}
.cat-dist__col:hover{transform:translateY(-2px)}
.cat-dist__count{
  font-family:var(--sans);font-size:11px;font-weight:600;
  color:var(--text2);letter-spacing:-.005em;line-height:1;
  font-variant-numeric:tabular-nums;
  transition:color .15s ease,transform .15s ease;
}
.cat-dist__pct{
  position:absolute;top:0;left:50%;transform:translateX(-50%) translateY(-4px);
  font-family:var(--sans);font-size:9px;font-weight:500;
  color:var(--col,var(--accent2));letter-spacing:.04em;
  background:var(--paper);
  border:0.5px solid var(--border-strong);
  border-radius:var(--radius-pill);
  padding:2px 7px;line-height:1;white-space:nowrap;
  opacity:0;pointer-events:none;
  transition:opacity .15s ease,transform .15s ease;
  z-index:2;box-shadow:var(--shadow-card);
  font-variant-numeric:tabular-nums;
}
.cat-dist__col:hover .cat-dist__pct{
  opacity:1;transform:translateX(-50%) translateY(-10px);
}
.cat-dist__col:hover .cat-dist__count{
  color:var(--col,var(--accent));
  transform:scale(1.08);
}
.cat-dist__col.is-mode .cat-dist__count{color:var(--text);font-weight:700}
.cat-dist__bar{
  width:100%;max-width:56px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;
  background:linear-gradient(180deg,var(--col,var(--accent2)) 0%,color-mix(in oklch,var(--col,var(--accent2)) 78%,var(--paper)) 100%);
  opacity:.85;
  transition:height .45s var(--ease),opacity .18s ease,box-shadow .18s ease,filter .18s ease;
  position:relative;
}
.cat-dist__col:hover .cat-dist__bar{
  opacity:1;filter:saturate(1.15);
  box-shadow:0 6px 16px -4px var(--col,rgba(12,18,49,.2));
}
.cat-dist__col.is-mode .cat-dist__bar{
  opacity:1;
  box-shadow:0 0 0 1px rgba(255,255,255,.55) inset,0 4px 14px -4px var(--col,rgba(12,18,49,.15));
}
.cat-dist__labels{display:flex;gap:8px;margin-top:8px}
.cat-dist__label{
  flex:1;text-align:center;font-family:var(--sans);font-size:11px;font-weight:500;
  letter-spacing:.005em;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;opacity:.85;
  transition:opacity .15s ease,transform .15s ease;
}
.cat-dist__label.is-mode{font-weight:600;opacity:1}
.cat-dist__label.is-hover{opacity:1;transform:translateY(1px)}

/* Overnight drops + recent strip */
.overnight{padding:6px 24px 10px;max-height:200px;overflow-y:auto}
.overnight h3{
  font-family:var(--sans);font-size:9px;font-weight:600;
  text-transform:uppercase;letter-spacing:.16em;
  color:var(--text3);margin-bottom:8px;
}
.oi{
  display:flex;align-items:center;gap:8px;
  padding:6px 8px;border-bottom:0.5px solid var(--border);
  cursor:pointer;font-size:12px;border-radius:var(--radius-sm);
  transition:background .15s ease;
}
.oi:hover{background:var(--bg2)}
.sp{
  font-family:var(--mono);font-weight:600;font-size:14px;
  padding:3px 8px;border-radius:4px;min-width:32px;text-align:center;
  letter-spacing:-.01em;
}
.ti{
  font-family:var(--mono);font-size:8px;text-transform:uppercase;
  padding:2px 6px;border-radius:3px;font-weight:600;letter-spacing:.06em;
}
.prof-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text2)}
.prof-preset{border-radius:6px;font-family:var(--sans)}
.prof-preset.active{border:2px solid var(--accent)!important;background:rgba(var(--accent-rgb,45,90,75),.08)!important}

/* ─── Profile Modal — iOS-styled (mirrors .dpn detail panel) ─────────── */
.pm-overlay{
  position:fixed;inset:0;z-index:9999;
  background:rgba(12,18,49,.32);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  padding:24px;overflow-y:auto;
  animation:pmFadeIn .22s var(--ease);
}
@keyframes pmFadeIn{from{opacity:0}to{opacity:1}}
@keyframes pmCardIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
.pm-card{
  width:100%;max-width:600px;max-height:calc(100vh - 48px);
  background:var(--bg);
  border:0.5px solid rgba(12,18,49,.12);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-elevated);
  display:flex;flex-direction:column;overflow:hidden;
  animation:pmCardIn .25s var(--ease);
}
.pm-header{
  padding:22px 24px 14px;
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  border-bottom:0.5px solid rgba(12,18,49,.08);
  flex-shrink:0;
}
.pm-title-wrap{flex:1;min-width:0}
.pm-title{
  font-family:var(--sans);font-weight:600;font-size:20px;
  color:#000;letter-spacing:-.01em;line-height:1.2;
  margin-bottom:4px;
}
.pm-subtitle{
  font-family:var(--sans);font-style:normal;font-weight:400;
  font-size:14px;color:var(--text2);line-height:1.45;
  letter-spacing:0;
}
.pm-close{
  background:rgba(12,18,49,.06);border:none;
  width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  font-family:var(--mono);font-size:16px;color:var(--text);
  transition:background .15s ease,transform .12s ease;flex-shrink:0;
}
.pm-close:hover{background:rgba(12,18,49,.12)}
.pm-close:active{transform:scale(.92)}
.pm-body{
  padding:18px 24px 8px;overflow-y:auto;flex:1;
  -webkit-overflow-scrolling:touch;
}
.pm-section{margin-bottom:18px}
.pm-sec-hdr{
  font-family:var(--sans);font-size:11px;letter-spacing:.14em;
  color:#000;opacity:.7;text-transform:uppercase;font-weight:700;
  padding:0 0 8px;border-bottom:1px solid rgba(12,18,49,.18);
  margin-bottom:12px;display:block;
}
/* Preset grid */
.pm-preset-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
  gap:8px;
}
.pm-preset{
  background:rgba(255,255,255,.6);
  border:0.5px solid rgba(12,18,49,.10);
  border-radius:var(--radius);
  padding:14px 10px;cursor:pointer;text-align:center;
  font-family:var(--sans);
  transition:border-color .15s ease,background .15s ease,transform .12s ease,box-shadow .15s ease;
  display:flex;flex-direction:column;align-items:center;gap:4px;
}
.pm-preset:hover{border-color:var(--accent2-line);box-shadow:var(--shadow-card)}
.pm-preset:active{transform:scale(.985)}
.pm-preset.active{
  border:1.5px solid var(--accent2);
  background:var(--accent2-soft);
  box-shadow:0 0 0 3px var(--accent2-soft);
}
.pm-preset-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;
  background:var(--accent2-soft);color:var(--accent2);
  margin-bottom:8px;flex-shrink:0;
  transition:background .15s ease,color .15s ease;
}
.pm-preset-icon svg{width:18px;height:18px;display:block}
.pm-preset.active .pm-preset-icon{background:var(--accent2);color:#fff}
.pm-preset-label{
  font-family:var(--sans);font-size:13px;font-weight:600;
  color:#000;letter-spacing:-.005em;line-height:1.2;
}
.pm-preset-desc{
  font-family:var(--sans);font-size:11px;color:var(--text2);
  line-height:1.4;letter-spacing:0;
}
/* Chip row (property types) */
.pm-chips{display:flex;flex-wrap:wrap;gap:6px}
.pm-chip{
  background:var(--paper);
  border:0.5px solid rgba(12,18,49,.14);
  color:#000;
  border-radius:var(--radius-pill);
  padding:7px 16px;cursor:pointer;
  font-family:var(--sans);font-size:13px;font-weight:500;line-height:1;
  letter-spacing:-.005em;
  transition:all .15s ease;
}
.pm-chip:hover{border-color:var(--accent2);color:var(--accent2)}
.pm-chip.active{
  background:var(--accent2);color:#fff;border-color:var(--accent2);
}
/* Input grid */
.pm-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pm-grid.full{grid-template-columns:1fr}
.pm-field-label{
  font-family:var(--sans);font-size:11px;letter-spacing:.04em;
  color:#000;opacity:.7;text-transform:none;font-weight:600;
  display:block;margin-bottom:6px;
}
.pm-input{
  width:100%;height:40px;
  background:var(--paper);
  border:0.5px solid rgba(12,18,49,.16);
  border-radius:var(--radius-sm);
  color:#000;
  padding:0 12px;
  font-family:var(--sans);font-size:14px;font-weight:500;
  transition:border-color .15s ease,box-shadow .15s ease;
  box-sizing:border-box;
}
.pm-input:focus{
  outline:none;border-color:var(--accent2);
  box-shadow:0 0 0 3px var(--accent2-soft);
}
.pm-input::placeholder{color:var(--text3);opacity:.7}
/* Segmented control (risk tolerance) */
.pm-segments{
  display:flex;background:rgba(12,18,49,.06);
  border-radius:var(--radius-sm);padding:3px;gap:0;
}
.pm-segment{
  flex:1 1 0;min-width:0;background:transparent;border:none;cursor:pointer;
  padding:8px 10px;border-radius:calc(var(--radius-sm) - 2px);
  font-family:var(--sans);font-size:13px;font-weight:500;
  color:var(--text2);letter-spacing:-.005em;line-height:1;
  text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:all .15s ease;
}
.pm-segment:hover:not(.active){color:#000}
.pm-segment.active{
  background:var(--paper);color:#000;font-weight:600;
  box-shadow:0 1px 2px rgba(12,18,49,.10);
}
/* Inline checkbox row */
.pm-check-row{
  display:flex;align-items:center;gap:10px;cursor:pointer;
  font-family:var(--sans);font-size:13px;font-weight:500;
  color:#000;user-select:none;padding:10px 0 0;
}
.pm-check-row input[type=checkbox]{
  width:16px;height:16px;accent-color:var(--accent2);cursor:pointer;
  margin:0;
}
/* Footer actions */
.pm-footer{
  padding:14px 24px max(14px,env(safe-area-inset-bottom));
  border-top:0.5px solid rgba(12,18,49,.08);
  display:flex;gap:10px;justify-content:flex-end;flex-shrink:0;
  background:var(--bg);
}
.pm-btn{
  height:40px;padding:0 24px;border:none;border-radius:var(--radius-pill);
  cursor:pointer;
  font-family:var(--sans);font-size:14px;font-weight:600;
  letter-spacing:.005em;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;
  transition:transform .12s ease,background .15s ease,opacity .15s ease;
}
.pm-btn:active{transform:scale(.97)}
.pm-btn--ghost{background:transparent;color:#000;border:0.5px solid rgba(12,18,49,.18)}
.pm-btn--ghost:hover{background:rgba(12,18,49,.04);color:var(--text)}
.pm-btn--primary{background:var(--accent2);color:#fff}
.pm-btn--primary:hover{background:#4836B5}
@media(max-width:600px){
  .pm-overlay{padding:0;align-items:stretch}
  .pm-card{max-width:100%;max-height:100vh;border-radius:0;border:none}
  .pm-grid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .pm-overlay,.pm-card{animation:none}
}
.ti.strong_match{background:var(--green-bg);color:var(--green)}
.ti.worth_a_look{background:var(--amber-bg);color:var(--amber)}
.ti.pass{background:var(--bg3);color:var(--text3)}
.ti.noise{background:var(--red-bg);color:var(--red)}

.rstrip{display:flex;gap:8px;padding:8px 24px 14px;flex-wrap:wrap}
.rc{
  display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;
  background:rgba(255,255,255,.7);
  border:0.5px solid var(--border);
  border-radius:var(--radius-sm);
  padding:8px 14px;
  width:130px;flex-shrink:0;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.rc:hover{border-color:var(--accent2-line);box-shadow:var(--shadow-card)}
.rl{
  color:var(--text3);text-transform:uppercase;
  font-family:var(--sans);font-size:10px;font-weight:600;
  letter-spacing:.14em;line-height:1.2;
}
.rv{
  color:var(--text);font-family:var(--sans);
  font-size:15px;font-weight:500;
  letter-spacing:-.01em;line-height:1.1;
  font-variant-numeric:tabular-nums;
}

/* ============================================================ */
/* FILTER BAR                                                   */
/* ============================================================ */
.fbar{display:flex;gap:7px;align-items:center;padding:10px 24px;flex-wrap:wrap}
.fbar select,.fbar input[type=text]{
  background:var(--paper);border:0.5px solid var(--border);color:var(--text);
  padding:6px 10px;border-radius:0;
  font-family:var(--sans);font-size:12px;font-weight:400;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.fbar select{
  -webkit-appearance:none;appearance:none;padding-right:26px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'width='10'height='10'viewBox='0 0 10 10'%3E%3Cpath d='M2 4l3 3 3-3'stroke='%238B89A0'stroke-width='1.2'fill='none'stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 8px center;
}
.fbar select:not(#fPreset),.fbar input[type=text]{width:130px;flex-shrink:0}
  .fbar select:focus,.fbar input[type=text]:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px var(--accent2-soft)}
.fbar .ct{
  margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--text3);
  letter-spacing:.06em;text-transform:uppercase;
}
.cmp-btn{
  background:var(--accent2);color:#fff;border:0.5px solid var(--accent2);
  height:32px;min-width:0;padding:0 14px;
  border-radius:var(--radius-pill);cursor:pointer;
  font-family:var(--sans);font-size:12px;font-weight:500;
  letter-spacing:.005em;text-transform:none;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  box-sizing:border-box;white-space:nowrap;
  transition:all .15s ease;
}
.cmp-btn:hover{background:#4836B5;border-color:#4836B5}
.cmp-btn:active{transform:scale(.97)}
/* Filter-bar select styled to match .cmp-btn dimensions */
.fbar select#fPreset{
  height:32px;padding:0 28px 0 14px;
  border-radius:var(--radius-pill);
  background-color:var(--paper);
  border:0.5px solid var(--border-strong);
  color:var(--text);
  font-family:var(--sans);font-size:12px;font-weight:500;line-height:1;
  cursor:pointer;
}
.fbar select#fPreset:focus{
  outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px var(--accent2-soft);
}

/* ============================================================ */
/* TABLES                                                       */
/* ============================================================ */
table{width:100%;border-collapse:collapse;font-size:13px}
th{
  text-align:left;padding:10px 10px;
  border-bottom:0.5px solid var(--border-strong);
  background:var(--bg);
  font-family:var(--sans);font-size:12px;font-weight:500;
  text-transform:uppercase;letter-spacing:.15em;color:var(--text3);
  cursor:pointer;user-select:none;
  position:sticky;top:0;z-index:1;
}
th:hover{color:var(--accent)}
td{
  padding:9px 10px;border-bottom:0.5px solid var(--border);
  font-family:var(--sans);font-size:14px;color:var(--text2);
}
.pr{text-align:right;font-family:var(--mono);font-size:14px;letter-spacing:-.01em;font-weight:500}
.sc{
  font-family:var(--mono);font-weight:600;font-size:14px;
  padding:3px 8px;border-radius:4px;letter-spacing:-.02em;
}
.sc.hi{background:var(--green-bg);color:var(--green)}
.sc.mi{background:var(--amber-bg);color:var(--amber)}
.sc.lo{background:var(--bg3);color:var(--text3)}
.sr{font-family:var(--mono);font-size:12px;color:var(--text3);letter-spacing:.04em}
.es{
  font-family:var(--sans);font-style:italic;
  color:var(--text3);font-size:14px;text-align:center;padding:48px;
  letter-spacing:.01em;
}
tr:hover{background:var(--bg2)}
tr.sel{background:var(--accent2-soft)}
.chk{accent-color:var(--accent2)}

/* ============================================================ */
/* MAP                                                          */
/* ============================================================ */
#map{width:100%;height:100%}
.map-controls{position:absolute;top:12px;left:12px;z-index:10;display:flex;flex-direction:column;gap:0}
.map-toolbar{
  display:flex;gap:4px;align-items:center;
  background:rgba(250,249,247,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:0.5px solid var(--border);border-radius:0;
  padding:6px 10px;flex-wrap:nowrap;box-shadow:var(--shadow-card);
}
.map-toolbar-sep{width:0.5px;height:18px;background:var(--border-strong);margin:0 4px;flex-shrink:0}

/* Map sidebar */
.map-sidebar{
  position:absolute;top:0;right:0;bottom:0;width:280px;z-index:10;
  background:rgba(250,249,247,.985);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-left:0.5px solid var(--border);
  padding:16px 14px;overflow-y:auto;overflow-x:hidden;
  transition:width .3s var(--ease);
  box-shadow:var(--shadow-panel);
  scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;
}
.map-sidebar::-webkit-scrollbar{width:3px}
.map-sidebar::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}
.map-sidebar.collapsed{width:0;padding:0;overflow:hidden;border-left:none}
.map-sidebar-toggle{
  position:absolute;top:14px;right:292px;z-index:11;
  background:rgba(250,249,247,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:0.5px solid var(--border);border-right:none;
  border-radius:0;
  padding:7px 10px;cursor:pointer;
  font-family:var(--sans);font-size:12px;color:var(--text3);
  transition:all .25s var(--ease);box-shadow:-2px 0 8px rgba(31,31,31,.05);
}
.map-sidebar-toggle:hover{color:var(--accent)}
.map-sidebar.collapsed+.map-sidebar-toggle,.map-sidebar.collapsed~.map-sidebar-toggle{
  right:0;border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:0.5px solid var(--border);
}
.sb-section{margin-bottom:18px}
/* 2026-06-05 · master section header — visually dominant navy uppercase
   with bottom border. Anchors a whole sb-section. The sb-sublabel below
   carries deliberately weaker treatment so the eye reads master-vs-sub
   instantly. Per Alejandro: sections and subsections MUST not look alike. */
.sb-title{
  font-family:var(--sans);font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.18em;color:var(--accent);
  margin:14px 0 10px;padding-bottom:6px;
  border-bottom:1px solid var(--border);
}
.sb-hint{
  font-family:var(--sans);font-style:italic;font-size:12px;
  color:var(--text3);margin-bottom:7px;line-height:1.4;letter-spacing:.005em;
}
.sb-row{display:flex;gap:4px;margin-bottom:4px}
.sb-row:last-child{margin-bottom:0}
.sb-sep{height:0.5px;background:var(--border);margin:10px 0}
/* 2026-06-05 · subsection label — deliberately LOW contrast vs sb-title.
   Natural case (not uppercase), lower weight, no border, no caps tracking.
   Reads as "this is a sub-group label", never confusable with a section header. */
.sb-sublabel{
  font-family:var(--sans);font-size:10px;font-weight:500;
  color:var(--text3);margin:10px 0 4px 0;
  text-transform:none;letter-spacing:.02em;
}
/* 2026-06-05 · enforce consistent right edge across ALL sb-row buttons.
   Rows with .sb-info-btn already extend to the right edge; rows without
   one get 28px reserved space (the info-btn slot width) so their right
   edge aligns with the others. Per Alejandro: every toggle must meet the
   right margin like SPGG · Potencial de Desarrollo. */
.sb-row{padding-right:28px}
.sb-row:has(.sb-info-btn){padding-right:0}
.sb-row.fed-row:has(.sb-info-btn){padding-right:8px} /* 2026-06-17 · align Federal·Elegibilidad info-rows to the no-info button width */

/* ================================================================== */
/* 2026-06-05 · SIDEBAR UI UNIFORMITY — single source of truth.        */
/* Killed competing styles: cat-filter-btn, src-picker-btn, native     */
/* <select>, Cargar Predios inline overrides. Every interactive        */
/* control in the map sidebar now reads as the SAME pill: 32px tall,   */
/* 0.5px border, paper bg, navy ink, sharp corners (Denaris rule).     */
/* Specificity .map-sidebar .sb-section beats both upstream .map-btn   */
/* declarations + inline styles on background/color/border/font.       */
/* ================================================================== */
.map-sidebar .sb-section .map-btn,
.map-sidebar .sb-section select,
.map-sidebar .sb-section .src-picker-btn{
  height:32px;box-sizing:border-box;
  padding:0 12px;
  font-family:var(--sans);font-size:11px;font-weight:500;
  letter-spacing:.01em;text-transform:none;
  color:var(--text2);
  background:rgba(250,249,247,.94);
  border:0.5px solid var(--border);
  border-radius:0;
  box-shadow:none;
  cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:all .15s ease;
  display:inline-flex;align-items:center;
}
.map-sidebar .sb-section .map-btn:hover,
.map-sidebar .sb-section select:hover,
.map-sidebar .sb-section .src-picker-btn:hover{
  background:var(--bg3);border-color:var(--accent2);color:var(--accent2);
}
.map-sidebar .sb-section .map-btn.active,
.map-sidebar .sb-section .cat-filter-btn.active,
.map-sidebar .sb-section .src-picker-btn.has-filter{
  background:var(--accent);color:#fff;border-color:var(--accent);
}
/* Native <select> needs the system chevron killed so all dropdowns
   share the same custom navy arrow drawn via SVG background-image. */
.map-sidebar .sb-section select{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  padding-right:28px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none'><path d='M2 2 L6 6 L10 2' stroke='%230C1231' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat:no-repeat;background-position:right 10px center;background-size:10px 7px;
}
/* Cancel the legacy inline purple/box-shadow on the Cargar Predios button —
   the .map-sidebar specificity above wins, but the inline `style="..."`
   attribute still wins over both. Strip the inline override at the source
   instead (see HTML edit). This selector covers the active-state hover. */
.map-sidebar .sb-section #kukakuPrediosToggle{
  background:rgba(250,249,247,.94)!important;color:var(--text2)!important;
  border-color:var(--border)!important;box-shadow:none!important;
  font-weight:500!important;letter-spacing:.01em!important;
}
.map-sidebar .sb-section #kukakuPrediosToggle:hover{
  background:var(--bg3)!important;border-color:var(--accent2)!important;color:var(--accent2)!important;
}
.map-sidebar .sb-section #kukakuPrediosToggle.active{
  background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important;
}
/* Source picker chevron — kept (already navy via currentColor) but parked
   at the right edge so it aligns with native-select chevron. */
.map-sidebar .sb-section .src-picker-btn{
  justify-content:space-between;padding-right:28px;position:relative;
}
.sb-section /* sidebar uniformity text overflow */
.sb-row .map-btn{
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:11px;
  padding:6px 8px;
}
.sb-row{gap:4px;margin-bottom:4px}
.sb-section{margin-bottom:8px}
.map-btn{font-size:11px;padding:6px 10px;background:var(--bg2);border-color:var(--border)}
.sb-section .map-btn:hover{background:var(--bg3);border-color:var(--accent2);color:var(--accent2)}
.sb-section .map-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ─── Map Sidebar v2 — rounded, segmented, collapsible ─────────────── */
/* Sidebar search */
.sb-search-wrap{
  position:sticky;top:0;background:var(--paper);z-index:5;
  padding:0 0 10px;margin:0 0 4px;
  border-bottom:0.5px solid var(--border);
}
.sb-search-row{display:flex;align-items:center;gap:6px}
.sb-search-row .sb-search{flex:1;min-width:0}
.sb-search{
  width:100%;height:34px;
  background:var(--bg);
  border:0.5px solid var(--border-strong);
  border-radius:var(--radius-pill);
  color:var(--text);padding:0 14px 0 32px;
  font-family:var(--sans);font-size:12px;font-weight:500;
  box-sizing:border-box;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Ccircle cx='6' cy='6' r='4.2' fill='none' stroke='%238B89A0' stroke-width='1.3'/%3E%3Cpath d='M9.5 9.5l3 3' stroke='%238B89A0' stroke-width='1.3' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:11px center;
}
.sb-search:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px var(--accent2-soft)}
.sb-search::placeholder{color:var(--text3)}
/* Compact reset button to the right of the search; only visible when overlays are active */
.sb-reset-btn{
  flex-shrink:0;display:none;
  background:transparent;border:0.5px solid var(--border-strong);
  color:var(--text3);width:34px;height:34px;
  border-radius:50%;cursor:pointer;
  align-items:center;justify-content:center;
  transition:all .15s ease;
}
.sb-reset-btn.has-overlays{display:inline-flex}
.sb-reset-btn:hover{color:var(--accent2);border-color:var(--accent2);background:var(--accent2-soft)}
.sb-reset-btn svg{width:14px;height:14px;flex-shrink:0}

/* Collapsible section header */
.sb-section-head{
  display:flex;align-items:center;gap:8px;cursor:pointer;
  background:none;border:none;width:100%;padding:8px 0;
  font-family:var(--sans);font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;color:var(--text);
  user-select:none;text-align:left;
}
.sb-section-head:hover{color:var(--accent2)}
.sb-section-head-label{
  flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.sb-section-chev{
  width:8px;height:8px;flex-shrink:0;
  border-right:1.3px solid currentColor;border-bottom:1.3px solid currentColor;
  transform:rotate(45deg);transition:transform .2s var(--ease);
  margin-right:2px;
}
.sb-section--collapsed .sb-section-chev{transform:rotate(-45deg)}
.sb-section-count{
  margin-left:auto;font-family:var(--sans);font-size:9px;font-weight:600;
  color:var(--accent2);letter-spacing:0;
  background:var(--accent2-soft);padding:2px 7px;border-radius:var(--radius-pill);
  text-transform:none;line-height:1.2;
}
.sb-section-count:empty,.sb-section-count.zero{display:none}
.sb-section-body{
  overflow:hidden;
  transition:max-height .25s var(--ease),opacity .15s ease;
}
.sb-section--collapsed .sb-section-body{max-height:0!important;opacity:0;pointer-events:none}

/* Toggle button (sidebar variant) */
.sb-section .map-btn{
  font-family:var(--sans);font-size:12px;font-weight:500;
  padding:8px 12px 8px 14px;
  background:var(--paper);
  border:0.5px solid var(--border);
  color:var(--text);
  border-radius:var(--radius-sm);
  display:inline-flex;align-items:center;gap:8px;
  position:relative;line-height:1.2;
  text-align:left;justify-content:flex-start;
  letter-spacing:.005em;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.sb-section .map-btn:hover{
  background:var(--bg2);border-color:var(--accent2-line);color:var(--text);
}
.sb-section .map-btn.active{
  background:var(--accent2-soft);
  color:var(--accent);font-weight:600;
  border-color:var(--accent2-line);
  border-left:2px solid var(--accent2);
  padding-left:13px;
}
.sb-section .map-btn.active::before{display:none}
/* small leading dot indicator for layer category color (set via CSS variable) */
.sb-section .map-btn[data-dot]::before{
  content:'';display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--btn-dot,var(--text3));flex-shrink:0;
  opacity:.6;
}
.sb-section .map-btn[data-dot].active::before{opacity:1}

/* ── Control vocabulary: each control TYPE has one visual tell ──────────────
   .ctl-toggle  = layer on/off  → right-side status dot (hollow off / filled on)
   .ctl-chip    = multi-select  → centered, check when selected, no left bar
   .ctl-select  = pick one      → field look, distinct from toggle buttons      */
.sb-section .map-btn.ctl-ico::before{content:'';display:inline-block;width:15px;height:15px;flex:none;opacity:.82;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.sb-section .map-btn.ctl-ico.active::before{display:inline-block;opacity:1}
.map-sidebar .sb-section:not(.ctl-skip) .sb-row>button.map-btn:not(.cat-filter-btn):not(.src-picker-btn){justify-content:center;padding-left:20px;padding-right:20px}
.map-sidebar .sb-section:not(.ctl-skip) .sb-row>button.map-btn:not(.cat-filter-btn):not(.src-picker-btn)::after{content:'';position:absolute;right:9px;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%;border:1.5px solid var(--text3);box-sizing:border-box;transition:all .15s ease}
.map-sidebar .sb-section:not(.ctl-skip) .sb-row>button.map-btn:not(.cat-filter-btn):not(.src-picker-btn).active::after{background:var(--accent2);border-color:var(--accent2)}
.sb-section .map-btn.ctl-chip{justify-content:center;gap:6px}
.sb-section .map-btn.ctl-chip.active{border-left:0.5px solid var(--accent2-line);padding-left:12px}
.sb-section .map-btn.ctl-chip.active::after{content:'\2713';margin-left:1px;font-weight:700;color:var(--accent2);font-size:11px}
.map-sidebar .sb-section:not(.ctl-skip) select{background:var(--bg2);color:var(--text2);font-weight:500}
.leads-mini{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border:0.5px solid var(--border);border-radius:var(--radius-pill);background:var(--paper);font-family:var(--sans);font-size:11px;font-weight:500;color:var(--text2);cursor:pointer;line-height:1;white-space:nowrap}
.leads-mini .lm-dot{width:7px;height:7px;border-radius:50%;border:1.5px solid var(--text3);box-sizing:border-box;flex:none}
.leads-mini:hover{border-color:var(--accent2-line);color:var(--text)}
.leads-mini.active{background:var(--accent2-soft);color:var(--accent);border-color:var(--accent2-line)}
.leads-mini.active .lm-dot{background:var(--accent2);border-color:var(--accent2)}
#infra-permisos-friction-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V4h9v17'/%3E%3Cpath d='M7 7h3M7 10h3M7 13h3'/%3E%3Cpath d='M3 21h11'/%3E%3Ccircle cx='17.5' cy='15.5' r='4.5'/%3E%3Cpath d='M15.6 15.6l1.3 1.4 2.4-2.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V4h9v17'/%3E%3Cpath d='M7 7h3M7 10h3M7 13h3'/%3E%3Cpath d='M3 21h11'/%3E%3Ccircle cx='17.5' cy='15.5' r='4.5'/%3E%3Cpath d='M15.6 15.6l1.3 1.4 2.4-2.6'/%3E%3C/svg%3E")}
#infra-safety-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 2.5v5.5c0 4.2-3 7.2-7 9-4-1.8-7-4.8-7-9V5.5z'/%3E%3Cpath d='M12 8.5v4'/%3E%3Ccircle cx='12' cy='15.6' r='0.5' fill='%23000' stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 2.5v5.5c0 4.2-3 7.2-7 9-4-1.8-7-4.8-7-9V5.5z'/%3E%3Cpath d='M12 8.5v4'/%3E%3Ccircle cx='12' cy='15.6' r='0.5' fill='%23000' stroke='none'/%3E%3C/svg%3E")}
#infonavitZcuToggle::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='15.5' cy='8.5' r='4.5'/%3E%3Cpath d='M12.3 11.7L4 20'/%3E%3Cpath d='M6 18l2 2M8.5 15.5l2 2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='15.5' cy='8.5' r='4.5'/%3E%3Cpath d='M12.3 11.7L4 20'/%3E%3Cpath d='M6 18l2 2M8.5 15.5l2 2'/%3E%3C/svg%3E")}
#landUseZoningToggle::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='1'/%3E%3Cpath d='M3 10h18M13 3v7M9 10v11'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='1'/%3E%3Cpath d='M3 10h18M13 3v7M9 10v11'/%3E%3C/svg%3E")}
#sedatuLuraToggle::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4.5' width='14' height='16.5' rx='2'/%3E%3Cpath d='M9 4.5V3.6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v.9'/%3E%3Cpath d='M8.5 12.5l2.2 2.2 4.3-4.4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4.5' width='14' height='16.5' rx='2'/%3E%3Cpath d='M9 4.5V3.6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v.9'/%3E%3Cpath d='M8.5 12.5l2.2 2.2 4.3-4.4'/%3E%3C/svg%3E")}
#zonForestalToggle::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l4.5 7h-3l3.5 6H7l3.5-6h-3z'/%3E%3Cpath d='M12 16v5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l4.5 7h-3l3.5 6H7l3.5-6h-3z'/%3E%3Cpath d='M12 16v5'/%3E%3C/svg%3E")}
#permisosUnifiedToggle::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 3h4v3l1.5 4.5h-7L10 6z'/%3E%3Crect x='5.5' y='10.5' width='13' height='3.5' rx='1'/%3E%3Cpath d='M5.5 18h13'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 3h4v3l1.5 4.5h-7L10 6z'/%3E%3Crect x='5.5' y='10.5' width='13' height='3.5' rx='1'/%3E%3Cpath d='M5.5 18h13'/%3E%3C/svg%3E")}
#infra-tenure-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M12 3l9 4.5-9 4.5-9-4.5z'/%3E%3Cpath d='M3 12l9 4.5 9-4.5'/%3E%3Cpath d='M3 16.5l9 4.5 9-4.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M12 3l9 4.5-9 4.5-9-4.5z'/%3E%3Cpath d='M3 12l9 4.5 9-4.5'/%3E%3Cpath d='M3 16.5l9 4.5 9-4.5'/%3E%3C/svg%3E")}
#infra-fedland-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 3 8h18z'/%3E%3Cpath d='M5 8v12M9.5 8v12M14.5 8v12M19 8v12'/%3E%3Cpath d='M3 21h18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 3 8h18z'/%3E%3Cpath d='M5 8v12M9.5 8v12M14.5 8v12M19 8v12'/%3E%3Cpath d='M3 21h18'/%3E%3C/svg%3E")}
#sedatuLprToggle::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4.5h11a2 2 0 0 1 2 2V21H7a2 2 0 0 1-2-2z'/%3E%3Cpath d='M9 4.5V21'/%3E%3Cpath d='M12 9.5h3M12 13h3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4.5h11a2 2 0 0 1 2 2V21H7a2 2 0 0 1-2-2z'/%3E%3Cpath d='M9 4.5V21'/%3E%3Cpath d='M12 9.5h3M12 13h3'/%3E%3C/svg%3E")}
#sedatuRanExpropToggle::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 21V4'/%3E%3Cpath d='M6 4h12l-2.5 3.5L18 11H6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 21V4'/%3E%3Cpath d='M6 4h12l-2.5 3.5L18 11H6'/%3E%3C/svg%3E")}
#sedatuRanInfraToggle::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linejoin='round'%3E%3Crect x='3.5' y='3.5' width='7' height='7' rx='1'/%3E%3Crect x='13.5' y='3.5' width='7' height='7' rx='1'/%3E%3Crect x='3.5' y='13.5' width='7' height='7' rx='1'/%3E%3Crect x='13.5' y='13.5' width='7' height='7' rx='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linejoin='round'%3E%3Crect x='3.5' y='3.5' width='7' height='7' rx='1'/%3E%3Crect x='13.5' y='3.5' width='7' height='7' rx='1'/%3E%3Crect x='3.5' y='13.5' width='7' height='7' rx='1'/%3E%3Crect x='13.5' y='13.5' width='7' height='7' rx='1'/%3E%3C/svg%3E")}
#infra-vias_ferreas-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='3' width='12' height='13' rx='2.5'/%3E%3Cpath d='M6 11h12M9 19l-2 2M15 19l2 2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='3' width='12' height='13' rx='2.5'/%3E%3Cpath d='M6 11h12M9 19l-2 2M15 19l2 2'/%3E%3C/svg%3E")}
#infra-carreteras-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 21L9 3M17 21l-2-18M12 5v3M12 11v3M12 16v3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 21L9 3M17 21l-2-18M12 5v3M12 11v3M12 16v3'/%3E%3C/svg%3E")}
#infra-vialidades-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 21L8 3M18 21l-2-18M12 6v2.5M12 12v2.5M12 17.5v1.5'/%3E%3Ccircle cx='12' cy='3.4' r='1.5' fill='%23000' stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 21L8 3M18 21l-2-18M12 6v2.5M12 12v2.5M12 17.5v1.5'/%3E%3Ccircle cx='12' cy='3.4' r='1.5' fill='%23000' stroke='none'/%3E%3C/svg%3E")}
#infra-aeropuertos-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M21 16v-1.6l-7.5-4.7V4.2a1.5 1.5 0 0 0-3 0v5.5L3 14.4V16l7.5-2.3V18l-2 1.4V21l3.5-1 3.5 1v-1.6L13.5 18v-4.3z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M21 16v-1.6l-7.5-4.7V4.2a1.5 1.5 0 0 0-3 0v5.5L3 14.4V16l7.5-2.3V18l-2 1.4V21l3.5-1 3.5 1v-1.6L13.5 18v-4.3z'/%3E%3C/svg%3E")}
#infra-puertos-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='5' r='2'/%3E%3Cpath d='M12 7v13M6 11h12M5 12a7 7 0 0 0 14 0M5 12H3M19 12h2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='5' r='2'/%3E%3Cpath d='M12 7v13M6 11h12M5 12a7 7 0 0 0 14 0M5 12H3M19 12h2'/%3E%3C/svg%3E")}
#infra-energiared-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M13 2L5 13h5l-1 9 8-11h-5z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M13 2L5 13h5l-1 9 8-11h-5z'/%3E%3C/svg%3E")}
#infra-fibra-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 4C7 4 2.7 6 0 9l2 2c2.2-2.5 5.8-4 10-4s7.8 1.5 10 4l2-2C21.3 6 17 4 12 4zm0 5c-3 0-5.7 1.2-7.5 3l2 2c1.4-1.4 3.4-2 5.5-2s4.1.6 5.5 2l2-2C17.7 10.2 15 9 12 9zm0 5a3 3 0 100 6 3 3 0 000-6z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 4C7 4 2.7 6 0 9l2 2c2.2-2.5 5.8-4 10-4s7.8 1.5 10 4l2-2C21.3 6 17 4 12 4zm0 5c-3 0-5.7 1.2-7.5 3l2 2c1.4-1.4 3.4-2 5.5-2s4.1.6 5.5 2l2-2C17.7 10.2 15 9 12 9zm0 5a3 3 0 100 6 3 3 0 000-6z'/%3E%3C/svg%3E")}
#infra-agua-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2.5C12 2.5 5 10 5 14.5a7 7 0 0 0 14 0C19 10 12 2.5 12 2.5z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2.5C12 2.5 5 10 5 14.5a7 7 0 0 0 14 0C19 10 12 2.5 12 2.5z'/%3E%3C/svg%3E")}
#infra-movil-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M3 18h3v-4H3v4zM8 18h3V9H8v9zM13 18h3V5h-3v13zM18 18h3V2h-3v16z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M3 18h3v-4H3v4zM8 18h3V9H8v9zM13 18h3V5h-3v13zM18 18h3V2h-3v16z'/%3E%3C/svg%3E")}
#infra-ejidos-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M3 6l6-2 6 2 6-2v14l-6 2-6-2-6 2z'/%3E%3Cpath d='M9 4v14M15 6v14'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M3 6l6-2 6 2 6-2v14l-6 2-6-2-6 2z'/%3E%3Cpath d='M9 4v14M15 6v14'/%3E%3C/svg%3E")}
#infra-casetas-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='21' x2='5' y2='6'/%3E%3Ccircle cx='5' cy='4.5' r='1.6'/%3E%3Cline x1='6' y1='8' x2='20' y2='13'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='21' x2='5' y2='6'/%3E%3Ccircle cx='5' cy='4.5' r='1.6'/%3E%3Cline x1='6' y1='8' x2='20' y2='13'/%3E%3C/svg%3E")}
#infra-cargotheft-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v9H2z'/%3E%3Cpath d='M13 9h4l4 4v2h-8z'/%3E%3Ccircle cx='6' cy='18' r='1.6'/%3E%3Ccircle cx='17' cy='18' r='1.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M2 6h11v9H2z'/%3E%3Cpath d='M13 9h4l4 4v2h-8z'/%3E%3Ccircle cx='6' cy='18' r='1.6'/%3E%3Ccircle cx='17' cy='18' r='1.6'/%3E%3C/svg%3E")}
#infra-power-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M12 3L6 21M12 3L18 21M5 7H19M9.4 11H14.6M8.2 16H15.8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Cpath d='M12 3L6 21M12 3L18 21M5 7H19M9.4 11H14.6M8.2 16H15.8'/%3E%3C/svg%3E")}
#infra-sitescore-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4.6'/%3E%3Ccircle cx='12' cy='12' r='1.2' fill='%23000' stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='4.6'/%3E%3Ccircle cx='12' cy='12' r='1.2' fill='%23000' stroke='none'/%3E%3C/svg%3E")}
#infra-resscore-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-8 9 8'/%3E%3Cpath d='M5 9.5V20h14V9.5'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-8 9 8'/%3E%3Cpath d='M5 9.5V20h14V9.5'/%3E%3Cpath d='M10 20v-5h4v5'/%3E%3C/svg%3E")}
#infra-comscore-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M4 9l1.5-5h13L20 9M4 9v11h16V9M4 9h16'/%3E%3Cpath d='M9 20v-6h6v6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M4 9l1.5-5h13L20 9M4 9v11h16V9M4 9h16'/%3E%3Cpath d='M9 20v-6h6v6'/%3E%3C/svg%3E")}
#infra-indbase-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M3 21V11l5 3.5V11l5 3.5V11l5 3.5V21z'/%3E%3Cpath d='M3 21h18M18 11V4h2v7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M3 21V11l5 3.5V11l5 3.5V11l5 3.5V21z'/%3E%3Cpath d='M3 21h18M18 11V4h2v7'/%3E%3C/svg%3E")}
#infra-sitereport-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M14 3H6v18h12V7z'/%3E%3Cpath d='M14 3v4h4M8.5 12h7M8.5 15.5h7M8.5 8.5h2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M14 3H6v18h12V7z'/%3E%3Cpath d='M14 3v4h4M8.5 12h7M8.5 15.5h7M8.5 8.5h2'/%3E%3C/svg%3E")}
#infra-incentives-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12.5 3H20v7.5L10 20.5 2.5 13z'/%3E%3Ccircle cx='16.3' cy='7' r='1.2'/%3E%3Cpath d='M7.5 10.5l5 5' stroke-linecap='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12.5 3H20v7.5L10 20.5 2.5 13z'/%3E%3Ccircle cx='16.3' cy='7' r='1.2'/%3E%3Cpath d='M7.5 10.5l5 5' stroke-linecap='round'/%3E%3C/svg%3E")}
#infra-indland-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Crect x='3' y='3' width='18' height='18' rx='1'/%3E%3Cpath d='M3 9l6-6M3 15l12-12M3 21l18-18M9 21l12-12M15 21l6-6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Crect x='3' y='3' width='18' height='18' rx='1'/%3E%3Cpath d='M3 9l6-6M3 15l12-12M3 21l18-18M9 21l12-12M15 21l6-6'/%3E%3C/svg%3E")}
#infra-gridaccess-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17a8 8 0 0 1 16 0'/%3E%3Cpath d='M12 17l4.5-4'/%3E%3Ccircle cx='12' cy='17' r='1.3' fill='%23000' stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17a8 8 0 0 1 16 0'/%3E%3Cpath d='M12 17l4.5-4'/%3E%3Ccircle cx='12' cy='17' r='1.3' fill='%23000' stroke='none'/%3E%3C/svg%3E")}
#infra-transit-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3.5' width='14' height='13' rx='2.5'/%3E%3Cpath d='M5 10.5h14'/%3E%3Ccircle cx='9' cy='13.5' r='1.1' fill='%23000' stroke='none'/%3E%3Ccircle cx='15' cy='13.5' r='1.1' fill='%23000' stroke='none'/%3E%3Cpath d='M8 16.5l-2.5 4.5M16 16.5l2.5 4.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3.5' width='14' height='13' rx='2.5'/%3E%3Cpath d='M5 10.5h14'/%3E%3Ccircle cx='9' cy='13.5' r='1.1' fill='%23000' stroke='none'/%3E%3Ccircle cx='15' cy='13.5' r='1.1' fill='%23000' stroke='none'/%3E%3Cpath d='M8 16.5l-2.5 4.5M16 16.5l2.5 4.5'/%3E%3C/svg%3E")}
#infra-polos-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3.2'/%3E%3Ccircle cx='12' cy='4' r='1.5'/%3E%3Ccircle cx='12' cy='20' r='1.5'/%3E%3Ccircle cx='4' cy='12' r='1.5'/%3E%3Ccircle cx='20' cy='12' r='1.5'/%3E%3Cpath d='M12 8.8V5.5M12 15.2v3.3M8.8 12H5.5M15.2 12h3.3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3.2'/%3E%3Ccircle cx='12' cy='4' r='1.5'/%3E%3Ccircle cx='12' cy='20' r='1.5'/%3E%3Ccircle cx='4' cy='12' r='1.5'/%3E%3Ccircle cx='20' cy='12' r='1.5'/%3E%3Cpath d='M12 8.8V5.5M12 15.2v3.3M8.8 12H5.5M15.2 12h3.3'/%3E%3C/svg%3E")}
#infra-incentivosest-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='5.5'/%3E%3Cpath d='M9 13.5l-1.5 7 4.5-2.5 4.5 2.5-1.5-7'/%3E%3Cpath d='M12 6l.9 1.9 2 .2-1.5 1.3.5 2L12 10.5l-1.9 1 .5-2L9.1 8.1l2-.2z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='5.5'/%3E%3Cpath d='M9 13.5l-1.5 7 4.5-2.5 4.5 2.5-1.5-7'/%3E%3Cpath d='M12 6l.9 1.9 2 .2-1.5 1.3.5 2L12 10.5l-1.9 1 .5-2L9.1 8.1l2-.2z'/%3E%3C/svg%3E")}
#infra-reservoirs-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 6v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6'/%3E%3Cpath d='M4 6h16'/%3E%3Cpath d='M6 14c1.5 0 1.5-1.5 3-1.5s1.5 1.5 3 1.5 1.5-1.5 3-1.5 1.5 1.5 3 1.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 6v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6'/%3E%3Cpath d='M4 6h16'/%3E%3Cpath d='M6 14c1.5 0 1.5-1.5 3-1.5s1.5 1.5 3 1.5 1.5-1.5 3-1.5 1.5 1.5 3 1.5'/%3E%3C/svg%3E")}
#infra-watercov-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='6' height='3.2' rx='0.6'/%3E%3Cpath d='M6 8V5.5M4.5 5.5h3'/%3E%3Cpath d='M9 9.6h4a3.2 3.2 0 0 1 3.2 3.2V14'/%3E%3Ccircle cx='16.2' cy='16.8' r='1.4' fill='%23000' stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='6' height='3.2' rx='0.6'/%3E%3Cpath d='M6 8V5.5M4.5 5.5h3'/%3E%3Cpath d='M9 9.6h4a3.2 3.2 0 0 1 3.2 3.2V14'/%3E%3Ccircle cx='16.2' cy='16.8' r='1.4' fill='%23000' stroke='none'/%3E%3C/svg%3E")}
#infra-ptar-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7.5A6 6 0 0 1 18 9'/%3E%3Cpath d='M18 6v3h-3'/%3E%3Cpath d='M16 16.5A6 6 0 0 1 6 15'/%3E%3Cpath d='M6 18v-3h3'/%3E%3Cpath d='M12 9.5s-2 2.2-2 3.6a2 2 0 0 0 4 0c0-1.4-2-3.6-2-3.6z' fill='%23000' stroke='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7.5A6 6 0 0 1 18 9'/%3E%3Cpath d='M18 6v3h-3'/%3E%3Cpath d='M16 16.5A6 6 0 0 1 6 15'/%3E%3Cpath d='M6 18v-3h3'/%3E%3Cpath d='M12 9.5s-2 2.2-2 3.6a2 2 0 0 0 4 0c0-1.4-2-3.6-2-3.6z' fill='%23000' stroke='none'/%3E%3C/svg%3E")}
#infra-drncov-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='5' rx='1'/%3E%3Cpath d='M8 5.5v5M12 5.5v5M16 5.5v5'/%3E%3Cpath d='M10.5 10.5v4.5M13.5 10.5v4.5'/%3E%3Cpath d='M9.5 15h5l-1.3 4h-2.4z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='5' rx='1'/%3E%3Cpath d='M8 5.5v5M12 5.5v5M16 5.5v5'/%3E%3Cpath d='M10.5 10.5v4.5M13.5 10.5v4.5'/%3E%3Cpath d='M9.5 15h5l-1.3 4h-2.4z'/%3E%3C/svg%3E")}
#infra-bridgewait-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7v5.2l3.4 2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7v5.2l3.4 2'/%3E%3C/svg%3E")}
#infra-aduanas-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 2.5v5.5c0 4.2-3 7.2-7 9-4-1.8-7-4.8-7-9V5.5z'/%3E%3Cpath d='M8.8 12l2.2 2.2 4.2-4.4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 2.5v5.5c0 4.2-3 7.2-7 9-4-1.8-7-4.8-7-9V5.5z'/%3E%3Cpath d='M8.8 12l2.2 2.2 4.2-4.4'/%3E%3C/svg%3E")}
#infra-intermodal-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5v2.5M8.5 5h7'/%3E%3Crect x='4' y='7.5' width='16' height='9' rx='1'/%3E%3Cpath d='M8 7.5v9M12 7.5v9M16 7.5v9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.5v2.5M8.5 5h7'/%3E%3Crect x='4' y='7.5' width='16' height='9' rx='1'/%3E%3Cpath d='M8 7.5v9M12 7.5v9M16 7.5v9'/%3E%3C/svg%3E")}
#infra-datacenters-btn::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='4.5' width='17' height='6' rx='1.2'/%3E%3Crect x='3.5' y='13.5' width='17' height='6' rx='1.2'/%3E%3Ccircle cx='7' cy='7.5' r='1' fill='%23000' stroke='none'/%3E%3Cpath d='M10 7.5h7'/%3E%3Ccircle cx='7' cy='16.5' r='1' fill='%23000' stroke='none'/%3E%3Cpath d='M10 16.5h7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='4.5' width='17' height='6' rx='1.2'/%3E%3Crect x='3.5' y='13.5' width='17' height='6' rx='1.2'/%3E%3Ccircle cx='7' cy='7.5' r='1' fill='%23000' stroke='none'/%3E%3Cpath d='M10 7.5h7'/%3E%3Ccircle cx='7' cy='16.5' r='1' fill='%23000' stroke='none'/%3E%3Cpath d='M10 16.5h7'/%3E%3C/svg%3E")}
.ctl-chip[data-cat="casa"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11l8-6 8 6M6 10v9h12v-9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11l8-6 8 6M6 10v9h12v-9'/%3E%3C/svg%3E")}
.ctl-chip[data-cat="depto"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='9' height='16' rx='1'/%3E%3Cpath d='M14 9h5v11M9 20v-4h2v4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='9' height='16' rx='1'/%3E%3Cpath d='M14 9h5v11M9 20v-4h2v4'/%3E%3C/svg%3E")}
.ctl-chip[data-cat="terreno"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5L4 7v12l5-2 6 2 5-2V5l-5 2-6-2zM9 5v12M15 7v12'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5L4 7v12l5-2 6 2 5-2V5l-5 2-6-2zM9 5v12M15 7v12'/%3E%3C/svg%3E")}
.ctl-chip[data-cat="local"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9l1.5-4h13L20 9M5 9v10h14V9M9 19v-6h6v6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9l1.5-4h13L20 9M5 9v10h14V9M9 19v-6h6v6'/%3E%3C/svg%3E")}
.ctl-chip[data-cat="oficina"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='1.5'/%3E%3Cpath d='M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 13h18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='1.5'/%3E%3Cpath d='M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 13h18'/%3E%3C/svg%3E")}
.ctl-chip[data-cat="bodega"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V9l9-5 9 5v12M7 21v-7h10v7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V9l9-5 9 5v12M7 21v-7h10v7'/%3E%3C/svg%3E")}
.ctl-chip[data-cat="nave"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V11l6 3.5V11l6 3.5V8h3v13z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V11l6 3.5V11l6 3.5V8h3v13z'/%3E%3C/svg%3E")}
.ctl-chip[data-cat="edificio"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='3' width='12' height='18' rx='1'/%3E%3Cpath d='M10 21v-4h4v4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='3' width='12' height='18' rx='1'/%3E%3Cpath d='M10 21v-4h4v4'/%3E%3C/svg%3E")}

/* Segmented control (Lead Filters) */
.sb-segments{
  display:flex;background:rgba(12,18,49,.06);
  border-radius:var(--radius-sm);padding:3px;gap:0;margin-bottom:6px;
}
.sb-segment{
  flex:1;background:transparent;border:none;cursor:pointer;
  padding:6px 8px;border-radius:calc(var(--radius-sm) - 2px);
  font-family:var(--sans);font-size:11px;font-weight:500;
  color:var(--text2);letter-spacing:-.005em;line-height:1;
  transition:all .15s ease;white-space:nowrap;
}
.sb-segment:hover:not(.active){color:var(--text)}
.sb-segment.active{
  background:var(--paper);color:var(--text);font-weight:600;
  box-shadow:0 1px 2px rgba(12,18,49,.08);
}

/* Hide info buttons by default, reveal on row hover */
.sb-row{position:relative}
.sb-row .sb-info-btn{opacity:0;transition:opacity .15s ease}
.sb-row:hover .sb-info-btn,.sb-row .sb-info-btn:focus{opacity:.7}
.sb-row .sb-info-btn:hover{opacity:1}

/* Search-hidden state */
.sb-row.sb-hidden,.sb-section.sb-hidden{display:none!important}

/* Active layer chip strip */
.sb-active-strip{
  display:flex;flex-wrap:wrap;gap:4px;padding:10px 0 6px;
  border-bottom:0.5px solid var(--border);margin-bottom:8px;
}
.sb-active-strip:empty{display:none;padding:0;border:none;margin:0}
.sb-active-chip{
  display:inline-flex;align-items:center;gap:5px;max-width:100%;min-width:0;
  background:var(--accent2);color:#fff;border:none;
  padding:4px 6px 4px 10px;border-radius:var(--radius-pill);
  font-family:var(--sans);font-size:10px;font-weight:500;line-height:1.2;
  letter-spacing:.005em;cursor:pointer;
  transition:background .15s ease;
}
.sb-active-chip:hover{background:#4836B5}
.sb-active-chip-label{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:140px;
}
.sb-active-chip-x{
  display:inline-flex;align-items:center;justify-content:center;
  width:14px;height:14px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,.18);font-size:9px;
}
.map-ctrl-row{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.map-group-label{
  font-family:var(--sans);font-size:8px;font-weight:600;
  text-transform:uppercase;letter-spacing:.16em;color:var(--text3);
  min-width:36px;padding-right:3px;
}
.map-btn{
  background:rgba(250,249,247,.94);border:0.5px solid var(--border);color:var(--text2);
  padding:5px 11px;border-radius:0;
  font-family:var(--sans);font-size:12px;font-weight:400;
  cursor:pointer;transition:all .15s var(--ease);
  backdrop-filter:blur(10px);white-space:nowrap;
  letter-spacing:.01em;
}
.map-btn:hover{border-color:var(--accent);color:var(--accent)}
.map-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.map-btn:active{transform:scale(.97)}
.map-expand-panel{
  display:none;background:rgba(250,249,247,.96);backdrop-filter:blur(14px);
  border:0.5px solid var(--border);border-radius:0;
  padding:10px 12px;margin-top:6px;max-width:440px;box-shadow:var(--shadow-card);
}
.map-expand-panel.open{display:block}
.map-expand-title{
  font-family:var(--sans);font-size:9px;font-weight:600;
  text-transform:uppercase;letter-spacing:.16em;color:var(--text3);
  margin-bottom:7px;display:flex;align-items:center;gap:5px;
}
.map-expand-row{display:flex;gap:4px;flex-wrap:wrap}
.map-search{
  background:rgba(250,249,247,.96);border:0.5px solid var(--border);color:var(--text);
  padding:7px 12px;border-radius:0;
  font-family:var(--sans);font-size:12px;width:260px;
  backdrop-filter:blur(14px);box-shadow:var(--shadow-card);letter-spacing:.01em;
}
.map-search:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px var(--accent2-soft)}
.map-search-results{
  position:absolute;top:40px;left:0;
  background:var(--paper);border:0.5px solid var(--border);
  border-radius:0;
  max-height:220px;overflow-y:auto;width:260px;display:none;z-index:20;
  box-shadow:var(--shadow-elevated);
}
.map-search-results.open{display:block}
/* Risk toolbar — sits directly under the map-search bar (sidebar redesign 2026-05).
   4 icon buttons toggle ZMM-wide flood / landslide / rockfall / subsidence overlays.
   Each button fires sources from every muni that has data for that risk type. */
.risk-toolbar{
  display:flex;gap:4px;margin-top:6px;
  background:rgba(250,249,247,.96);
  border:0.5px solid var(--border);
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow-card);
  padding:4px;width:260px;box-sizing:border-box;
}
.risk-icon-btn{
  flex:1;height:34px;display:flex;align-items:center;justify-content:center;
  background:transparent;border:0.5px solid transparent;border-radius:0;
  color:var(--text2);cursor:pointer;transition:all .15s ease;
  position:relative;
}
.risk-icon-btn:hover{background:var(--paper-2);border-color:var(--border);color:var(--text)}
.risk-icon-btn.active[data-risk="flood"]      {background:rgba(37,99,235,.12);border-color:#2563eb;color:#2563eb}
.risk-icon-btn.active[data-risk="landslide"]  {background:rgba(22,163,74,.12);border-color:#16a34a;color:#16a34a}
.risk-icon-btn.active[data-risk="rockfall"]   {background:rgba(146,64,14,.12);border-color:#92400e;color:#92400e}
.risk-icon-btn.active[data-risk="subsidence"] {background:rgba(124,58,237,.12);border-color:#7c3aed;color:#7c3aed}
.risk-icon-btn.active[data-risk="fire"]       {background:rgba(215,48,31,.12);border-color:#d7301f;color:#d7301f}
.risk-icon-btn.active[data-risk="earthquake"] {background:rgba(234,88,12,.12);border-color:#ea580c;color:#ea580c}
.risk-icon-btn.active[data-risk="faults"]     {background:rgba(13,148,136,.12);border-color:#0d9488;color:#0d9488}
.risk-icon-btn.active[data-vista="buildings"] {background:rgba(124,58,237,.12);border-color:#7c3aed;color:#7c3aed}
.risk-icon-btn svg{width:18px;height:18px;display:block}
/* Tooltip below the icon */
.risk-icon-btn::after{
  content:attr(data-label);
  position:absolute;top:100%;left:50%;transform:translateX(-50%);
  margin-top:4px;padding:3px 7px;
  background:rgba(20,20,20,.92);color:#fff;
  font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  white-space:nowrap;border-radius:2px;
  opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:30;
}
.risk-icon-btn:hover::after{opacity:1}
.map-sr{
  padding:8px 12px;font-size:11px;cursor:pointer;
  border-bottom:0.5px solid var(--border);
}
.map-sr:hover{background:var(--bg2);color:var(--accent)}

.mapboxgl-popup-content{
  background:var(--paper)!important;color:var(--text)!important;
  border:0.5px solid var(--border)!important;border-radius:var(--radius)!important;
  padding:12px 16px!important;font-family:var(--sans)!important;font-size:12px!important;
  box-shadow:var(--shadow-elevated)!important;max-width:280px!important;
}
.mapboxgl-popup-tip{border-top-color:var(--paper)!important}
.mapboxgl-popup-close-button{color:var(--text3)!important;font-size:18px!important;padding:3px 7px!important}

/* ============================================================ */
/* PIPELINE (Kanban)                                            */
/* ============================================================ */
.pcols{display:flex;gap:14px;padding:18px 24px;height:100%;overflow-y:auto}
.pcol{
  flex:1;background:var(--bg2);border:0.5px solid var(--border);
  border-radius:0;
  display:flex;flex-direction:column;overflow:hidden;
}
.ph{
  padding:12px 14px;
  font-family:var(--sans);font-size:12px;font-weight:500;
  text-transform:uppercase;letter-spacing:.15em;
  border-bottom:0.5px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;
  background:var(--paper);color:var(--accent);
}
.cb{
  background:var(--accent2-soft);padding:2px 8px;border-radius:10px;
  font-family:var(--mono);font-size:10px;color:var(--accent2);
  margin-left:8px;font-weight:600;letter-spacing:0;text-transform:none;
}
.pcrds{flex:1;overflow-y:auto;padding:8px}
.pc{
  background:var(--paper);border:0.5px solid var(--border);
  border-radius:0;
  padding:10px 12px;margin-bottom:7px;cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
  box-shadow:var(--shadow-light);
}
.pc:hover{border-color:var(--accent2-line);box-shadow:var(--shadow-card);transform:translateY(-1px)}
.pt{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.pa{
  font-family:var(--sans);font-size:12px;font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:var(--text);letter-spacing:-.01em;
}
.pm{font-family:var(--mono);font-size:12px;color:var(--text3);letter-spacing:.02em}
.pn{
  font-family:var(--sans);font-style:italic;font-size:12px;color:var(--text2);
  margin-top:4px;line-height:1.4;letter-spacing:.005em;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.pbtns{display:flex;gap:5px;margin-top:7px}
.pbtns button{
  flex:1;font-family:var(--sans);font-size:10px;font-weight:600;
  padding:5px 0;border-radius:4px;cursor:pointer;
  border:0.5px solid var(--border);background:var(--bg2);color:var(--text2);
  letter-spacing:.04em;transition:all .15s ease;
}
.pbtns button:hover{border-color:var(--accent2);color:var(--accent2)}

/* ============================================================ */
/* COMPARE                                                      */
/* ============================================================ */
.cmp-panel{padding:24px}
.cmp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.cmp-grid{display:grid;gap:0.5px;background:var(--border);border-radius:0;overflow:hidden}
.cmp-cell{background:var(--paper);padding:11px 13px;font-size:12px}
.cmp-cell.label{
  background:var(--bg2);color:var(--text3);
  font-family:var(--sans);font-size:9px;font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;
}
.best{color:var(--green);font-weight:700}

/* ============================================================ */
/* TRENDS                                                       */
/* ============================================================ */
.chart-wrap{padding:24px;display:flex;flex-direction:column;gap:24px}
.chart-box{background:var(--paper);border:0.5px solid var(--border);border-radius:0;padding:16px;box-shadow:var(--shadow-light)}
.chart-box h4{
  font-family:var(--sans);font-size:12px;font-weight:500;
  text-transform:uppercase;letter-spacing:.15em;
  color:var(--text3);margin-bottom:14px;
}
.trend-row{display:flex;gap:4px;height:140px;align-items:flex-end}
.trend-bar{border-radius:3px 3px 0 0;min-height:2px;position:relative;cursor:pointer;transition:opacity .15s ease}
.trend-bar:hover{opacity:.85}
.tb-tip{
  display:none;position:absolute;bottom:calc(100% + 5px);left:50%;
  transform:translateX(-50%);
  background:var(--accent);color:#fff;
  padding:4px 8px;border-radius:4px;
  font-family:var(--mono);font-size:10px;
  white-space:nowrap;z-index:10;letter-spacing:-.01em;
  box-shadow:var(--shadow-card);
}
.trend-bar:hover .tb-tip{display:block}
.trend-labels{display:flex;gap:4px;font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.04em}
.trend-labels span{flex:1;text-align:center}

/* ============================================================ */
/* BROKER + LLC                                                 */
/* ============================================================ */
.broker-table{padding:24px;overflow-y:auto}
.llc-track{padding:24px;overflow-y:auto}
.llc-cat{margin-bottom:20px}
.llc-cat h4{
  font-family:var(--sans);font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.16em;color:var(--accent2);
  margin-bottom:9px;border-bottom:0.5px solid var(--border);padding-bottom:6px;
}
.llc-item{display:flex;gap:10px;align-items:flex-start;padding:7px 0;cursor:pointer;border-bottom:0.5px solid var(--border)}
.llc-item .chk-box{
  width:16px;height:16px;border-radius:3px;
  border:0.5px solid var(--border-strong);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;
}
.llc-item .chk-box.done{background:var(--green);border-color:var(--green)}
.llc-item .chk-box.done::after{content:'';color:#fff;font-size:11px;font-weight:700}
.llc-item .li-text{flex:1;font-size:12px;color:var(--text)}
.llc-item .li-text.done{text-decoration:line-through;color:var(--text3)}
.llc-item .li-date{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.02em}
.llc-item .li-note{font-family:var(--sans);font-style:italic;font-size:12px;color:var(--text2);margin-top:2px}

/* ============================================================ */
/* CATEGORY BADGES                                              */
/* ============================================================ */
.cat-badge{
  font-family:var(--mono);font-size:9px;font-weight:600;
  padding:2px 7px;border-radius:3px;letter-spacing:.06em;
  display:inline-block;text-transform:uppercase;
}
.cat-casa{background:rgba(15,122,83,.10);color:#0F7A53}
.cat-depto{background:rgba(31,79,160,.10);color:#1F4FA0}
.cat-terreno{background:rgba(133,82,12,.10);color:#85540C}
.cat-local{background:rgba(181,120,30,.10);color:#B5781E}
.cat-oficina{background:rgba(90,68,209,.10);color:#5A44D1}
.cat-bodega{background:rgba(196,84,18,.10);color:#C45412}
.cat-nave{background:rgba(181,48,48,.10);color:#B53030}
.cat-edificio{background:rgba(168,40,98,.10);color:#A82862}
.cat-unknown{background:var(--bg3);color:var(--text3)}

/* ============================================================ */
/* MAP LEGENDS                                                  */
/* ============================================================ */
.map-legend{
  position:absolute;bottom:12px;left:12px;
  background:rgba(250,249,247,.96);border:0.5px solid var(--border);border-radius:0;
  padding:10px 13px;z-index:500;backdrop-filter:blur(14px);
  display:none;font-size:10px;max-width:240px;max-height:calc(70vh - 100px);overflow-y:auto;
  box-shadow:var(--shadow-card);
}
.map-legend.visible{display:block}
#dnFloatLegends{position:absolute;bottom:16px;right:306px;z-index:6;display:flex;flex-direction:column;gap:8px;align-items:flex-end;transition:right .25s var(--ease,ease);pointer-events:none}
.map-sidebar.collapsed ~ #dnFloatLegends{right:16px}
#dnFloatLegends>*{pointer-events:auto}
.map-legend h5,.map-legend .lg-title{
  font-family:var(--sans);font-size:8px;font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;color:var(--text3);
  margin-bottom:5px;
}
.map-legend .lg-section{margin-bottom:8px;padding-bottom:6px;border-bottom:0.5px solid var(--border)}
.map-legend .lg-section:last-child{margin:0;padding:0;border:none}
.map-legend .lg-item{display:flex;align-items:center;gap:6px;padding:2px 0}
.map-legend .lg-swatch{width:10px;height:10px;border-radius:2px;border:0.5px solid var(--border-strong);flex-shrink:0}
.map-legend .lg-ico{width:13px;height:13px;flex-shrink:0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.map-legend .lg-line{width:14px;height:0;border-top:2px solid;flex-shrink:0}
.map-legend .lg-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.map-legend .lg-label{color:var(--text2);font-size:10px}
.legend-row{display:flex;align-items:center;gap:7px;padding:2px 0}
.legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.map-color-mode{font-family:var(--mono);font-size:9px;color:var(--text3);margin-left:5px;letter-spacing:.04em}

/* Second legend (rentals) — sits above the venta legend so both are bottom-aligned */
.map-legend-renta{
  position:absolute;left:12px;
  background:rgba(250,249,247,.96);border:0.5px solid var(--border);border-radius:0;
  padding:10px 13px;z-index:500;backdrop-filter:blur(14px);
  display:none;font-size:10px;max-width:240px;max-height:40vh;overflow-y:auto;
  box-shadow:var(--shadow-card);
  /* Positioned dynamically via JS above the venta legend */
  bottom:12px;
}
.map-legend-renta.visible{display:block}

/* ============================================================ */
/* INFO BUTTONS & TOASTS                                        */
/* ============================================================ */
.sb-filter-row{
  display:flex;align-items:center;justify-content:space-between;
  margin:8px 0 4px 0;
}
.sb-filter-row .sb-sublabel{margin:0}
.sb-info-btn{
  width:16px;height:16px;min-width:16px;border-radius:50%;
  border:none;background:transparent;
  color:var(--text3);
  padding:0;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:color .15s var(--ease),background .15s var(--ease),transform .1s var(--ease);
  flex-shrink:0;
  position:relative;
}
.sb-info-btn svg{width:13px;height:13px;display:block}
.sb-info-btn:hover{
  color:var(--accent);background:rgba(201,168,76,0.12);
}
.sb-info-btn:active{transform:scale(0.9)}
.sb-info-btn-inline{
  display:inline-flex;margin-left:4px;vertical-align:middle;
}

/* ── Source picker (multi-select checkbox dropdown in sidebar) ── */
.src-picker{
  position:relative;width:100%;
}
.src-picker-btn{
  width:100%;background:var(--bg2);border:0.5px solid var(--border);
  color:var(--text2);padding:6px 10px;border-radius:0;
  font-family:var(--sans);font-size:12px;font-weight:400;cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:6px;
  transition:all .15s var(--ease);
}
.src-picker-btn:hover{border-color:var(--accent2);color:var(--accent2)}
.src-picker-btn.has-filter{background:var(--accent);color:#fff;border-color:var(--accent)}
.src-picker-btn .sp-chevron{
  width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid currentColor;transition:transform .15s var(--ease);
}
.src-picker.open .sp-chevron{transform:rotate(180deg)}
.src-picker-panel{
  display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:600;
  background:rgba(250,249,247,.98);border:0.5px solid var(--border);
  border-radius:0;box-shadow:var(--shadow-card);
  backdrop-filter:blur(14px);padding:6px;max-height:260px;overflow-y:auto;
}
.src-picker.open .src-picker-panel{display:block}
.src-picker-item{
  display:flex;align-items:center;gap:7px;padding:5px 7px;
  border-radius:3px;cursor:pointer;font-family:var(--sans);font-size:11px;
  color:var(--text2);transition:background .12s var(--ease);
}
.src-picker-item:hover{background:rgba(201,168,76,0.08)}
.src-picker-item input[type=checkbox]{margin:0;cursor:pointer;accent-color:var(--accent)}
.src-picker-item .sp-swatch{
  width:9px;height:9px;border-radius:50%;flex-shrink:0;
  border:0.5px solid rgba(0,0,0,.1);
}
.src-picker-item .sp-label{flex:1}
.src-picker-item .sp-count{
  font-family:var(--mono);font-size:9px;color:var(--text3);
}
.src-picker-actions{
  display:flex;gap:4px;padding:4px 2px 6px;
  border-bottom:0.5px solid var(--border);margin-bottom:4px;
}
.src-picker-actions button{
  flex:1;background:transparent;border:0.5px solid var(--border);
  color:var(--text3);font-family:var(--sans);font-size:9px;font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;padding:3px 6px;
  border-radius:3px;cursor:pointer;transition:all .12s var(--ease);
}
.src-picker-actions button:hover{color:var(--accent);border-color:var(--accent)}
.info-toast{
  position:fixed;z-index:9999;
  background:rgba(26,29,38,.98);color:#fff;
  border-radius:var(--radius);padding:12px 14px 12px 14px;
  max-width:320px;min-width:260px;
  box-shadow:0 8px 32px rgba(0,0,0,.25),0 0 0 0.5px rgba(255,255,255,.08);
  font-family:var(--sans);font-size:12px;line-height:1.45;
  backdrop-filter:blur(14px);
  opacity:0;transform:translateY(4px);
  transition:opacity .18s var(--ease),transform .18s var(--ease);
  pointer-events:auto;
}
.info-toast.visible{opacity:1;transform:translateY(0)}
.info-toast .it-title{
  font-weight:600;color:var(--accent);margin-bottom:5px;
  font-size:11px;letter-spacing:.02em;
  display:flex;justify-content:space-between;align-items:center;gap:8px;
}
.info-toast .it-close{
  background:transparent;border:none;color:#888;
  font-size:16px;line-height:1;cursor:pointer;padding:0;
}
.info-toast .it-close:hover{color:#fff}
.info-toast .it-headline{color:#e8e6df;margin-bottom:6px;font-size:12px}
.info-toast .it-detail{
  color:#a8a6a0;font-size:11px;line-height:1.5;
  padding-top:6px;border-top:0.5px solid rgba(255,255,255,.08);
  display:none;
}
.info-toast .it-detail.expanded{display:block}
.info-toast .it-toggle{
  background:transparent;border:0.5px solid rgba(255,255,255,.15);
  color:#c9a84c;font-family:var(--mono);font-size:9px;
  padding:3px 7px;border-radius:3px;cursor:pointer;
  letter-spacing:.08em;text-transform:uppercase;
  margin-top:6px;transition:all .15s var(--ease);
}
.info-toast .it-toggle:hover{background:rgba(201,168,76,.15);border-color:#c9a84c}

/* Density zone mapbox popup — bigger, more legible */
.mapboxgl-popup.density-zone-popup{max-width:none !important}
.mapboxgl-popup.density-zone-popup .mapboxgl-popup-content{
  padding:12px 14px !important;min-width:240px;
  font-family:var(--sans);
}
.mleg{
  position:absolute;bottom:12px;left:12px;
  background:rgba(250,249,247,.94);padding:7px 13px;
  border-radius:var(--radius-sm);
  font-family:var(--mono);font-size:10px;display:flex;gap:14px;color:var(--text2);
  backdrop-filter:blur(10px);border:0.5px solid var(--border);
  letter-spacing:.04em;text-transform:uppercase;font-weight:500;
}
.mleg .d{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;vertical-align:middle}

/* ============================================================ */
/* DETAIL OVERLAY                                               */
/* ============================================================ */
.dov{
  position:fixed;inset:0;
  background:rgba(31,31,31,.32);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  z-index:200;display:none;justify-content:flex-end;
}
.dov.open{display:flex}
.dpn{
  width:640px;max-width:92vw;background:var(--bg);
  border-left:0.5px solid var(--border);height:100%;overflow-y:auto;
  padding:26px 24px;animation:si .25s var(--ease);
  box-shadow:var(--shadow-panel);
}
@keyframes si{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.dpn .dc{
  float:right;background:transparent;border:none;
  width:32px;height:32px;border-radius:0;
  color:var(--text3);cursor:pointer;font-size:20px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s ease;
}
.dpn .dc:hover{background:var(--bg2);color:var(--text)}
.dpn .dt{
  font-family:var(--sans);font-size:18px;font-weight:400;
  margin-bottom:4px;color:var(--text);
  padding-right:42px;letter-spacing:-.01em;line-height:1.3;
  display:flex;align-items:baseline;gap:6px;
}
.dpn .dt-addr{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.dpn .dt-edit{
  font-size:12px;cursor:pointer;opacity:.3;transition:opacity .15s;flex-shrink:0;
}
.dpn .dt-edit:hover{opacity:.85}
.dpn .ds{
  font-family:var(--sans);font-style:italic;font-size:14px;
  color:var(--text2);margin-bottom:18px;letter-spacing:.01em;line-height:1.4;
}
.dpn .dsec{margin-bottom:18px}
.dpn .dsec h4{
  font-family:var(--sans);font-size:12px;font-weight:500;
  text-transform:uppercase;letter-spacing:.15em;
  color:var(--text3);margin-bottom:8px;
}
.dpn .dr{
  display:flex;justify-content:space-between;
  padding:6px 0;border-bottom:0.5px solid var(--border);
  font-size:12px;line-height:1.4;
}
.dpn .dr .dk{
  color:var(--text3);font-weight:500;
  text-transform:uppercase;font-size:10px;letter-spacing:.04em;min-width:80px;
}
.dpn .dr .dv{font-family:var(--mono);text-align:right;color:var(--text);font-weight:500;letter-spacing:-.005em;max-width:65%;word-break:break-word}

/* ─── Property Detail Panel v2 — hero + tabs ─────────────── */
.dpn-hero{
  padding:18px 20px 16px;
  background:linear-gradient(170deg,rgba(90,68,209,.045) 0%,var(--bg) 60%);
  border-bottom:0.5px solid var(--border);
  position:relative;
}
.dpn-hero-top{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px}
.dpn-hero-title{flex:1;min-width:0}
.dpn-addr{
  font-family:var(--serif);font-weight:500;font-size:22px;
  color:var(--text);letter-spacing:-.005em;line-height:1.2;
  margin:0 0 4px;
  display:flex;align-items:baseline;gap:6px;
}
.dpn-addr-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;display:block;word-break:break-word;white-space:normal}
.dpn-addr-edit{font-size:12px;cursor:pointer;opacity:.3;transition:opacity .15s;flex-shrink:0}
.dpn-addr-edit:hover{opacity:.85}
.dpn-meta{
  font-family:var(--sans);font-size:12px;color:var(--text3);
  letter-spacing:.005em;margin:0;line-height:1.4;
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;
}
.dpn-meta-sep{opacity:.45}
.dpn-hero-score{
  flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:6px;
}
.dpn-score-num{
  font-family:var(--sans);font-size:32px;font-weight:300;line-height:1;
  color:var(--accent);letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}
.dpn-score-num.hi{color:var(--green)}
.dpn-score-num.mi{color:var(--amber)}
.dpn-score-num.lo{color:var(--text3)}
.dpn-tier-pill{
  font-family:var(--sans);font-size:9px;font-weight:600;
  text-transform:uppercase;letter-spacing:.12em;
  padding:3px 9px;border-radius:var(--radius-pill);
  white-space:nowrap;line-height:1.2;
}
.dpn-tier-pill.strong_match{background:var(--green-bg);color:var(--green)}
.dpn-tier-pill.worth_a_look{background:var(--amber-bg);color:var(--amber)}
.dpn-tier-pill.pass,.dpn-tier-pill.noise{background:var(--red-bg);color:var(--red)}
.dpn-tier-pill.other,.dpn-tier-pill.unknown{background:var(--bg3);color:var(--text3)}

/* Hero stats strip — 3 big numbers */
.dpn-hero-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  background:var(--paper);
  border:0.5px solid var(--border);border-radius:var(--radius);
  overflow:hidden;margin-bottom:14px;
}
.dpn-stat{padding:10px 14px;border-right:0.5px solid var(--border)}
.dpn-stat:last-child{border-right:none}
.dpn-stat-label{
  display:block;font-family:var(--sans);font-size:9px;font-weight:600;
  text-transform:uppercase;letter-spacing:.14em;color:var(--text3);
  margin-bottom:3px;
}
.dpn-stat-value{
  display:block;font-family:var(--sans);font-size:18px;font-weight:500;
  color:var(--text);letter-spacing:-.01em;line-height:1.15;
  font-variant-numeric:tabular-nums;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}
.dpn-stat-value.green{color:var(--green)}
.dpn-stat-value.amber{color:var(--amber)}
.dpn-stat-value.red{color:var(--red)}
.dpn-stat-sub{font-size:9px;font-weight:500;color:var(--text3);margin-left:3px;letter-spacing:0}

/* Hero actions */
.dpn-hero .dacts{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.dpn-hero .dacts button,.dpn-hero .dacts a button{
  padding:6px 14px;border-radius:var(--radius-pill);cursor:pointer;
  font-family:var(--sans);font-size:11px;font-weight:500;
  border:0.5px solid var(--border);background:var(--paper);color:var(--text2);
  transition:transform .12s ease,background .15s ease,border-color .15s ease;
}
.dpn-hero .dacts button:hover,.dpn-hero .dacts a button:hover{
  background:var(--bg2);border-color:var(--accent2-line);
}
.dpn-hero .dacts button:active,.dpn-hero .dacts a button:active{transform:scale(.96)}
.dpn-hero .bp{background:var(--accent2);color:#fff;border-color:var(--accent2)}
.dpn-hero .bp:hover{background:#4836B5;border-color:#4836B5}
.dpn-hero .bw{color:var(--amber);border-color:rgba(181,120,30,.3)}
.dpn-hero .bx{color:var(--red);border-color:rgba(181,48,48,.3)}

/* Sticky tab bar */
.dpn-tabs{
  display:flex;position:sticky;top:0;z-index:5;
  background:var(--bg);border-bottom:0.5px solid var(--border);
  padding:0 8px;
}
.dpn-tab{
  flex:1;background:transparent;border:none;cursor:pointer;
  padding:12px 10px;
  font-family:var(--sans);font-size:12px;font-weight:500;
  color:var(--text3);letter-spacing:.005em;line-height:1;
  border-bottom:2px solid transparent;
  transition:color .15s ease,border-color .15s ease;
  position:relative;
}
.dpn-tab:hover{color:var(--text2)}
.dpn-tab.active{color:var(--text);border-bottom-color:var(--accent2);font-weight:600}

.dpn-tab-body{padding:18px 20px 24px;display:none}
.dpn-tab-body.active{display:block}
.dpn-tab-empty{
  font-family:var(--sans);font-style:italic;font-size:12px;
  color:var(--text3);padding:20px 0;text-align:center;
}

/* Editable fields */
.dr .dv[data-editable]{
  cursor:pointer;position:relative;
  border-bottom:1px dashed var(--accent2-line);
}
.dr .dv[data-editable]:hover{background:var(--accent2-soft);border-radius:0;border-bottom-style:solid}
.dr .dv[data-editable]::after{content:'';font-size:9px;opacity:0;margin-left:5px;transition:opacity .15s}
.dr .dv[data-editable]:hover::after{opacity:.7}
.edit-overlay{
  position:fixed;inset:0;background:rgba(31,31,31,.28);backdrop-filter:blur(3px);
  z-index:300;display:flex;align-items:center;justify-content:center;
}
.edit-box{
  background:var(--paper);border:0.5px solid var(--border);
  border-radius:0;padding:20px;width:440px;max-width:92vw;
  box-shadow:var(--shadow-elevated);animation:si .18s ease;
}
.edit-box h4{
  font-family:var(--sans);font-size:12px;font-weight:500;
  text-transform:uppercase;letter-spacing:.15em;color:var(--accent);
  margin-bottom:6px;
}
.edit-box .edit-desc{
  font-family:var(--sans);font-style:italic;font-size:13px;
  color:var(--text2);margin-bottom:14px;line-height:1.5;
  background:var(--bg2);padding:10px 12px;border-radius:0;
}
.edit-box input,.edit-box textarea,.edit-box select{
  width:100%;padding:8px 12px;
  border:0.5px solid var(--border);border-radius:0;
  font-family:var(--sans);font-size:12px;
  background:var(--paper);color:var(--text);margin-bottom:8px;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.edit-box input:focus,.edit-box textarea:focus,.edit-box select:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px var(--accent2-soft)}
.edit-box textarea{height:100px;resize:vertical;font-family:var(--sans)}
.edit-box .edit-range{font-family:var(--mono);font-size:10px;color:var(--text3);margin-bottom:10px;letter-spacing:.02em}
.edit-box .edit-btns{display:flex;gap:8px;justify-content:flex-end}
.edit-box .edit-btns button{
  padding:8px 18px;border-radius:0;
  font-family:var(--sans);font-size:12px;font-weight:500;
  cursor:pointer;border:0.5px solid var(--border);
  letter-spacing:.05em;text-transform:uppercase;
  transition:transform .12s ease;
}
.edit-box .edit-btns button:active{transform:scale(.96)}
.edit-box .edit-btns .save{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:500}
.edit-box .edit-btns .cancel{background:var(--bg2);color:var(--text2)}

/* Provenance section */
/* Provenance section — same chrome as other .dsec sections */
.prov-section{margin-bottom:18px}
.prov-section h4{color:var(--text3)}
.prov-row{
  display:flex;gap:10px;align-items:flex-start;
  padding:6px 0;border-bottom:0.5px solid var(--border);
  font-size:12px;line-height:1.4;
}
.prov-row:last-child{border:none}
.prov-icon{font-size:14px;flex-shrink:0;width:22px;text-align:center;padding-top:1px;color:var(--text3)}
.prov-body{flex:1;min-width:0}
.prov-field{
  font-family:var(--sans);font-size:12px;font-weight:500;
  color:var(--text);display:flex;align-items:center;gap:7px;flex-wrap:wrap;
}
.prov-val{font-family:var(--sans);font-size:12px;color:var(--text);font-weight:500;letter-spacing:-.005em}
.prov-conf{
  font-family:var(--mono);font-size:8px;font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;
  padding:2px 6px;border-radius:3px;
}
.prov-source{font-family:var(--mono);font-size:9px;color:var(--accent2);margin-top:2px;letter-spacing:.02em}
.prov-method{font-family:var(--sans);font-style:italic;font-size:11px;color:var(--text3);line-height:1.4;margin-top:2px;letter-spacing:.005em}
.prov-sub{font-size:11px;color:var(--text3);margin-bottom:8px;line-height:1.4;font-family:var(--sans)}

.dpn .drsn{
  background:var(--bg2);border:0.5px solid var(--border);
  border-radius:0;padding:14px 16px;
  font-family:var(--sans);font-style:italic;font-size:14px;
  line-height:1.65;color:var(--text2);
  white-space:pre-wrap;max-height:240px;overflow-y:auto;letter-spacing:.005em;
}
.dpn .dacts{display:flex;gap:8px;margin:14px 0;flex-wrap:wrap}
.dpn .dacts button,.dpn .dacts a button{
  padding:8px 16px;border-radius:0;cursor:pointer;
  font-family:var(--sans);font-size:12px;font-weight:500;
  border:0.5px solid;letter-spacing:.05em;text-transform:uppercase;
  transition:transform .12s ease;
}
.dpn .dacts button:active,.dpn .dacts a button:active{transform:scale(.96)}
.dpn .bp{background:var(--green-bg);border-color:rgba(15,122,83,.3);color:var(--green)}
.dpn .bw{background:var(--amber-bg);border-color:rgba(181,120,30,.3);color:var(--amber)}
.dpn .bx{background:var(--red-bg);border-color:rgba(181,48,48,.3);color:var(--red)}
.dpn .bu{background:var(--bg2);border-color:var(--border);color:var(--text2)}
.dpn .dnotes textarea{
  width:100%;background:var(--paper);border:0.5px solid var(--border);color:var(--text);
  padding:10px 12px;border-radius:0;
  font-family:var(--sans);font-size:13px;resize:vertical;min-height:60px;margin-top:6px;
}
.dpn .dnotes textarea:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px var(--accent2-soft)}
.dpn .dnotes button{
  margin-top:6px;padding:5px 14px;border-radius:0;
  border:0.5px solid var(--border);background:var(--bg2);color:var(--text2);cursor:pointer;
  font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;
}
.ni{border-bottom:0.5px solid var(--border);padding:5px 0;font-size:12px}
.nd{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.02em}

/* ============================================================ */
/* DATA HEALTH                                                  */
/* ============================================================ */
.hbar{height:14px;background:var(--bg3);border-radius:0;overflow:hidden;margin:3px 0}
.hbar-fill{height:100%;border-radius:0;transition:width .3s var(--ease)}
.health-row{display:flex;align-items:center;gap:12px;padding:6px 0;font-size:12px}
.health-row .hl{width:140px;color:var(--text3);font-weight:500}
.health-row .hp{width:54px;text-align:right;font-family:var(--mono);font-size:10px;letter-spacing:-.01em;font-weight:600}

/* ============================================================ */
/* TOAST                                                        */
/* ============================================================ */
.toast-container{position:fixed;top:20px;right:20px;z-index:999;display:flex;flex-direction:column;gap:8px}
.toast{
  padding:10px 16px;border-radius:0;
  font-family:var(--sans);font-size:13px;
  animation:toastIn .3s var(--ease),toastOut .3s ease 3.5s forwards;
  max-width:360px;border:0.5px solid;display:flex;align-items:center;gap:10px;
  box-shadow:var(--shadow-elevated);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.toast.success{background:rgba(15,122,83,.10);border-color:rgba(15,122,83,.3);color:var(--green)}
.toast.error{background:rgba(181,48,48,.10);border-color:rgba(181,48,48,.3);color:var(--red)}
.toast.warn{background:rgba(181,120,30,.10);border-color:rgba(181,120,30,.3);color:var(--amber)}
@keyframes toastIn{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes toastOut{to{transform:translateX(40px);opacity:0}}

/* ============================================================ */
/* ZILLOW BADGE                                                 */
/* ============================================================ */
.zest-badge{
  display:inline-flex;align-items:center;gap:4px;
  font-family:var(--mono);font-size:10px;font-weight:600;
  padding:2px 7px;border-radius:4px;letter-spacing:-.005em;
}
.zest-badge.below{background:var(--green-bg);color:var(--green)}
.zest-badge.above{background:var(--red-bg);color:var(--red)}
.zest-badge.neutral{background:var(--bg3);color:var(--text3)}

/* ============================================================ */
/* GP REVIEW                                                    */
/* ============================================================ */
.review-nav{
  display:flex;gap:10px;padding:18px 24px;align-items:center;
  border-bottom:0.5px solid var(--border);
}
.review-nav .rn-count{
  font-family:var(--mono);font-size:11px;color:var(--text3);
  letter-spacing:.04em;
}
.review-nav button{
  padding:8px 18px;border-radius:0;
  border:0.5px solid var(--border);background:var(--accent);color:#fff;
  cursor:pointer;font-family:var(--sans);font-size:12px;font-weight:500;
  letter-spacing:.05em;text-transform:uppercase;
  transition:all .15s ease;
}
.review-nav button:hover{border-color:var(--accent2);color:var(--accent2)}
.review-nav button:active{transform:scale(.97)}
  /* CHG-001 · Pin quick-action toolbar (boxed, mirrors .review-nav button). */
  .pin-quick-bar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;flex-shrink:0}
  .pin-quick-btn{padding:7px 14px;border-radius:0;border:0.5px solid var(--border);background:var(--accent);color:#fff;cursor:pointer;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;line-height:1;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:all .15s ease}
  .pin-quick-btn:hover{border-color:var(--accent2);color:var(--accent2)}
  .pin-quick-btn:active{transform:scale(.97)}
  .pin-quick-btn.is-active{background:var(--accent2);border-color:var(--accent2);color:#fff}
  .pin-quick-btn.is-active:hover{background:#4836B5;border-color:#4836B5;color:#fff}
  .pin-quick-btn.is-delete:hover{border-color:var(--red);color:var(--red)}
.review-nav select{
  background:var(--paper);border:0.5px solid var(--border);color:var(--text);
  padding:7px 12px;border-radius:0;
  font-family:var(--sans);font-size:12px;font-weight:400;
}
.review-card{padding:24px;overflow-y:auto;flex:1}
.rc-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}
.rc-score{
  font-family:var(--sans);font-weight:300;font-size:48px;
  letter-spacing:-.03em;line-height:1;
}
.rc-score.hi{color:var(--green)}
.rc-score.mi{color:var(--amber)}
.rc-score.lo{color:var(--text3)}
.rc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.rc-box{background:var(--paper);border:0.5px solid var(--border);border-radius:0;padding:14px 16px;box-shadow:var(--shadow-light)}
.rc-box h5{
  font-family:var(--sans);font-size:12px;font-weight:500;
  text-transform:uppercase;letter-spacing:.15em;color:var(--text3);margin-bottom:8px;
}
.rc-box .dr{display:flex;justify-content:space-between;padding:5px 0;border-bottom:0.5px solid var(--border);font-size:12px}
.rc-box .dr .dk{color:var(--text3);font-size:10px;text-transform:uppercase;letter-spacing:.04em;font-weight:500}
.rc-box .dr .dv{font-family:var(--mono);text-align:right;color:var(--text);font-weight:500}
.rc-actions{display:flex;gap:12px;padding:18px 24px;border-top:0.5px solid var(--border);flex-shrink:0}
.rc-actions button{
  flex:1;padding:14px;border-radius:0;
  font-family:var(--sans);font-size:12px;font-weight:500;
  letter-spacing:.08em;text-transform:uppercase;
  cursor:pointer;border:none;transition:transform .12s ease;
}
.rc-actions button:active{transform:scale(.97)}
.rc-actions .ra-pursue{background:var(--green);color:#fff}
.rc-actions .ra-watch{background:var(--amber);color:#fff}
.rc-actions .ra-pass{background:var(--bg2);color:var(--text3);border:0.5px solid var(--border)}
.rc-actions textarea{
  flex:2;background:var(--paper);border:0.5px solid var(--border);color:var(--text);
  padding:10px 14px;border-radius:0;
  font-family:var(--sans);font-size:13px;resize:none;
}
.rc-actions textarea:focus{outline:none;border-color:var(--accent2);box-shadow:0 0 0 3px var(--accent2-soft)}

/* ============================================================ */
/* FOOTER                                                       */
/* ============================================================ */
footer{
  padding:8px 24px;border-top:0.5px solid var(--border);
  font-family:var(--mono);font-size:10px;color:var(--text3);
  display:flex;justify-content:space-between;align-items:center;flex-shrink:0;background:var(--paper);
  letter-spacing:.06em;text-transform:uppercase;
}

/* ============================================================ */
/* VISOR URBANO — same chrome as other .dsec sections          */
/* ============================================================ */
.vu-section{margin-bottom:18px}
.vu-section h4{color:var(--text3)!important}
.vu-badge{
  display:inline-block;padding:2px 6px;border-radius:3px;
  font-family:var(--mono);font-size:8px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
}
.vu-badge.exact{background:rgba(15,122,83,.10);color:var(--green);border:0.5px solid rgba(15,122,83,.25)}
.vu-badge.nearest{background:var(--amber-bg);color:var(--amber);border:0.5px solid rgba(181,120,30,.25)}
.vu-badge.delegation{background:var(--accent2-soft);color:var(--accent2);border:0.5px solid var(--accent2-line)}
.vu-giros{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.vu-giro{
  padding:2px 6px;border-radius:3px;
  font-family:var(--mono);font-size:9px;font-weight:500;
  background:rgba(14,124,156,.08);color:var(--cyan);
  border:0.5px solid rgba(14,124,156,.18);letter-spacing:.02em;
}
.vu-giro.cond{background:var(--amber-bg);color:var(--amber);border-color:rgba(181,120,30,.18)}
.vu-prop{
  background:var(--accent2-soft);border:0.5px solid var(--accent2-line);
  border-radius:0;padding:6px 8px;margin:4px 0;
  font-size:11px;color:var(--text2);
}
.vu-prop .vu-ptipo{
  display:inline-block;padding:1px 5px;border-radius:3px;
  font-family:var(--mono);font-size:8px;font-weight:600;
  text-transform:uppercase;letter-spacing:.06em;margin-right:5px;
}
.vu-prop .vu-ptipo.cambio_uso_suelo{background:var(--red-bg);color:var(--red)}
.vu-prop .vu-ptipo.cambio_densidad{background:var(--amber-bg);color:var(--amber)}
.vu-prop .vu-ptipo.infraestructura_vial{background:rgba(14,124,156,.10);color:var(--cyan)}
.vu-prop .vu-ptipo.conservacion{background:var(--green-bg);color:var(--green)}
.vu-normas{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;font-size:11px;margin-top:5px}
.vu-normas span:nth-child(odd){color:var(--text3);font-size:10px;letter-spacing:.02em}
.vu-normas span:nth-child(even){font-family:var(--mono);font-weight:500;letter-spacing:-.005em}

/* ============================================================ */
/* PARCEL PANEL                                                 */
/* ============================================================ */
.parcel-panel{
  /* 2026-07-10 · top offset so the parcel dossier never covers the tab bar (audit fix #4) */
  position:fixed;right:0;top:88px;width:440px;height:calc(100vh - 88px);
  background:var(--bg);border-left:0.5px solid var(--border);
  z-index:2000;overflow-y:auto;
  transform:translateX(100%);transition:transform .35s var(--ease);
  padding:24px;box-shadow:var(--shadow-panel);
}
.parcel-panel.open{transform:translateX(0)}
.parcel-panel .dc{
  float:right;background:transparent;border:none;color:var(--text3);
  width:32px;height:32px;border-radius:0;
  cursor:pointer;font-size:20px;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s ease;
}
.parcel-panel .dc:hover{background:var(--bg2);color:var(--text)}
.parcel-panel .dt{
  font-family:var(--sans);font-size:16px;font-weight:400;
  margin-bottom:4px;color:var(--text);letter-spacing:-.01em;padding-right:42px;
}
.parcel-panel .ds{
  font-family:var(--sans);font-style:italic;font-size:13px;color:var(--text2);
  margin-bottom:18px;letter-spacing:.01em;
}
.parcel-panel .dsec{margin-bottom:16px}
.parcel-panel .dsec h4{
  font-family:var(--sans);font-size:12px;font-weight:500;
  text-transform:uppercase;letter-spacing:.15em;color:var(--text3);margin-bottom:8px;
}
.parcel-panel .dr{display:flex;justify-content:space-between;padding:5px 0;border-bottom:0.5px solid var(--border);font-size:12px}
.parcel-panel .dk{color:var(--text3);font-weight:500;text-transform:uppercase;font-size:10px;letter-spacing:.04em}
.parcel-panel .dv{font-family:var(--mono);text-align:right;color:var(--text);font-weight:500;letter-spacing:-.005em}
.pp-row{display:flex;justify-content:space-between;padding:4px 0;font-size:12px;border-bottom:0.5px solid var(--border)}
.pp-row .pk{color:var(--text3);min-width:110px;font-weight:500;text-transform:uppercase;font-size:10px;letter-spacing:.04em}
.pp-row .pv{color:var(--text);text-align:right;font-family:var(--mono);font-weight:500;letter-spacing:-.005em}
.pp-giros{display:flex;flex-wrap:wrap;gap:4px;margin:7px 0}
.pp-giro{padding:3px 8px;border-radius:4px;font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.pp-giro.permitido{background:var(--green-bg);color:var(--green);border:0.5px solid rgba(15,122,83,.22)}
.pp-giro.condicionado{background:var(--amber-bg);color:var(--amber);border:0.5px solid rgba(181,120,30,.22)}
.pp-normas{
  display:grid;grid-template-columns:1fr 1fr;gap:3px 10px;font-size:11px;
  margin:6px 0;padding:10px 12px;
  background:rgba(14,124,156,.04);border:0.5px solid rgba(14,124,156,.14);
  border-radius:0;
}
.pp-normas span:nth-child(odd){color:var(--text3);font-weight:500;text-transform:uppercase;font-size:9px;letter-spacing:.04em}
.pp-normas span:nth-child(even){color:var(--text);font-family:var(--mono);font-weight:500;letter-spacing:-.005em}

/* ============================================================ */
/* INEGI / SVC                                                  */
/* ============================================================ */
.svc-popup{font-size:12px}
.svc-popup .svc-name{font-family:var(--sans);font-weight:600;color:var(--text);margin-bottom:3px}
.svc-popup .svc-type{color:var(--cyan);font-family:var(--mono);font-size:10px;letter-spacing:.02em}
.svc-popup .svc-status{color:var(--text3);font-family:var(--mono);font-size:9px;letter-spacing:.02em;margin-top:2px}
.parks-legend,.svc-legend{
  position:absolute;bottom:60px;right:12px;
  background:var(--paper);border:0.5px solid var(--border);
  border-radius:0;padding:8px 12px;
  font-family:var(--sans);font-size:10px;z-index:500;display:none;
  box-shadow:var(--shadow-card);letter-spacing:.02em;
}
.parks-legend.visible,.svc-legend.visible{display:block}

/* ============================================================ */
/* RELOCATE MODE                                                */
/* ============================================================ */
.relocate-banner{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  background:rgba(80,70,229,.96);color:#fff;padding:14px 28px;
  border-radius:0;font-family:var(--sans);font-size:13px;font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;
  z-index:2000;pointer-events:none;text-align:center;
  box-shadow:var(--shadow-elevated);animation:relocPulse 1.6s infinite;
  border:0.5px solid var(--accent);
}
@keyframes relocPulse{0%,100%{opacity:1}50%{opacity:.75}}
.relocate-banner small{
  display:block;font-family:var(--sans);font-style:italic;
  font-size:11px;font-weight:400;margin-top:4px;
  opacity:.85;letter-spacing:0;text-transform:none;
}
.btn-relocate{
  background:var(--paper);border:0.5px solid var(--border);color:var(--text2);
  padding:7px 14px;border-radius:0;cursor:pointer;
  font-family:var(--sans);font-size:12px;font-weight:500;
  letter-spacing:.05em;text-transform:uppercase;
  transition:all .15s ease;
}
.btn-relocate:hover{border-color:var(--accent);color:var(--accent)}
.btn-relocate.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.crosshair-cursor .mapboxgl-canvas{cursor:crosshair!important}

/* ============================================================ */
/* LOCAL FONTS — bundled .woff2 next to this HTML              */
/* Mirrors the AR app's font bundle.                            */
/* ============================================================ */
/* Local font bundle — used when running inside the iOS WKWebView with the
   Fonts/ folder shipped alongside the HTML. Injected via JS below so the
   browser doesn't error out with "Not allowed to load local resource" when
   the dashboard is opened standalone from file:// on a desktop. Google
   Fonts CDN (linked in <head>) provides the same families as a fallback. */
/* ── Pin Mode ── */
.pin-mode-banner{position:absolute;top:0;left:0;right:0;z-index:20;background:rgba(12,18,49,.92);padding:10px 18px;display:flex;align-items:center;gap:10px;font-size:12px;color:#F4F2EC;letter-spacing:.3px;backdrop-filter:blur(8px)}
.pin-mode-banner .pin-dot{width:10px;height:10px;border-radius:50%;background:#5A44D1;animation:pinPulse 1.5s infinite}
@keyframes pinPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}
.pin-mode-banner .pin-cancel{margin-left:auto;padding:4px 14px;border-radius:6px;background:rgba(181,48,48,.2);color:#B53030;border:none;cursor:pointer;font-size:11px;font-weight:600}
.pin-mode-banner .pin-cancel:hover{background:rgba(181,48,48,.35)}

/* 2026-06-05 · right-click context menu on the map. Mirrors the paper-bg /
   border / shadow language of the search box and georisk toolbar so it
   sits in the same visual family. */
.map-ctx-menu{
  position:absolute;background:rgba(250,249,247,.96);
  border:0.5px solid var(--border);box-shadow:var(--shadow-card);
  padding:4px;z-index:1000;font-family:var(--sans);min-width:170px;
  backdrop-filter:blur(14px);
}
.map-ctx-menu button{
  display:flex;align-items:center;width:100%;background:transparent;border:none;
  padding:8px 12px;font-family:var(--sans);font-size:12px;color:var(--text);
  cursor:pointer;white-space:nowrap;text-align:left;letter-spacing:.01em;
}
.map-ctx-menu button:hover{background:var(--bg3);color:var(--accent2)}
.pin-popup-form{font-family:var(--sans);width:260px}
.pin-popup-form .ppf-detected{font-size:9px;font-weight:500;color:#8B89A0;letter-spacing:.8px;text-transform:uppercase;margin-bottom:2px}
.pin-popup-form .ppf-address{font-size:11px;color:#4A4768;font-weight:500;margin-bottom:8px;line-height:1.4}
.pin-popup-form .ppf-divider{height:1px;background:rgba(12,18,49,.08);margin-bottom:8px}
.pin-popup-form .ppf-label{font-size:9px;font-weight:600;color:#8B89A0;letter-spacing:.8px;text-transform:uppercase;margin-bottom:4px}
.pin-popup-form input.ppf-input,.pin-popup-form textarea.ppf-input{width:100%;padding:6px 10px;border:0.5px solid rgba(12,18,49,.1);border-radius:8px;background:#F3F1EC;font-size:11px;font-family:var(--sans);color:#0C1231;outline:none;box-sizing:border-box;resize:none}
.pin-popup-form input.ppf-input:focus,.pin-popup-form textarea.ppf-input:focus{border-color:#5A44D1;box-shadow:0 0 0 2px rgba(90,68,209,.12)}
.pin-popup-form .ppf-colors{display:flex;gap:8px;align-items:center;margin:8px 0}
.pin-popup-form .ppf-color{width:18px;height:18px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:border-color .15s,transform .15s}
.pin-popup-form .ppf-color:hover{transform:scale(1.15)}
.pin-popup-form .ppf-color.active{border-color:#0C1231;transform:scale(1.15)}
.pin-popup-form .ppf-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:10px}
.pin-popup-form .ppf-btn{padding:5px 16px;border-radius:6px;font-size:10px;font-weight:600;cursor:pointer;border:none;letter-spacing:.3px}
.pin-popup-form .ppf-btn-cancel{background:#F3F1EC;color:#8B89A0;border:0.5px solid rgba(12,18,49,.1)}
.pin-popup-form .ppf-btn-cancel:hover{background:#EAE7DF}
.pin-popup-form .ppf-btn-save{background:#5A44D1;color:#fff}
.pin-popup-form .ppf-btn-save:hover{background:#4a38b8}
.pin-popup-form .ppf-btn-save:disabled{opacity:.5;cursor:not-allowed}
/* Pin detail popup (existing pins) */
.pin-detail-popup{font-family:var(--sans);width:220px}
.pin-detail-popup .pdp-title{font-size:13px;font-weight:600;color:#0C1231;margin-bottom:2px}
.pin-detail-popup .pdp-notes{font-size:11px;color:#4A4768;line-height:1.4;margin-bottom:6px}
.pin-detail-popup .pdp-coords{font-size:9px;font-family:var(--mono);color:#8B89A0;margin-bottom:4px}
.pin-detail-popup .pdp-date{font-size:9px;color:#8B89A0;margin-bottom:8px}
.pin-detail-popup .pdp-actions{display:flex;gap:6px}
.pin-detail-popup .pdp-btn{padding:3px 10px;border-radius:6px;font-size:10px;font-weight:600;cursor:pointer;border:0.5px solid rgba(12,18,49,.1);background:#F3F1EC;color:#4A4768}
.pin-detail-popup .pdp-btn:hover{background:#EAE7DF}
.pin-detail-popup .pdp-btn-del{color:#B53030}
.pin-detail-popup .pdp-btn-del:hover{background:rgba(181,48,48,.1)}

/* ─── Building Detail Panel ─────────────────────────────────────── */
#bldgPanel{
  /* 2026-07-10 · top offset so the dossier never covers the tab bar (user could not
     switch tabs while a parcel was open). 88px = topbar + tab row. */
  position:fixed;right:0;top:88px;width:420px;height:calc(100vh - 88px);
  background:var(--paper);border-left:0.5px solid var(--border);
  z-index:99998;overflow-y:auto;
  transform:translateX(100%);transition:transform .3s var(--ease,cubic-bezier(.4,0,.2,1));
  box-shadow:-4px 0 24px rgba(0,0,0,.08);
  padding:0;
}
#bldgPanel.open{transform:translateX(0)}
#bldgPanel .bp-close{
  position:absolute;top:12px;right:12px;background:transparent;border:none;
  color:var(--text3);width:32px;height:32px;cursor:pointer;font-size:20px;
  display:flex;align-items:center;justify-content:center;border-radius:6px;
  transition:all .15s ease;z-index:2;
}
#bldgPanel .bp-close:hover{background:var(--bg2);color:var(--text)}
#bldgPanel .bp-body{padding:20px 22px 28px}
#bldgPanel .bp-subtitle{font-size:14px;font-weight:600;color:var(--accent2);margin-bottom:2px;letter-spacing:-.01em}
#bldgPanel .bp-colonia{font-size:12px;color:var(--text2);margin-bottom:1px}
#bldgPanel .bp-ubicacion{font-size:11px;color:var(--text3);margin-bottom:10px}
#bldgPanel .bp-name-row{display:flex;gap:6px;margin-bottom:14px}
#bldgPanel .bp-name-input{
  flex:1;padding:6px 10px;border:1px solid var(--border-strong);border-radius:6px;
  font:13px var(--sans);color:var(--text);background:var(--bg);outline:none;
}
#bldgPanel .bp-name-input:focus{border-color:var(--accent2);box-shadow:0 0 0 2px var(--accent2-soft)}
#bldgPanel .bp-name-save{
  padding:6px 14px;border-radius:6px;border:none;
  background:var(--accent2);color:#fff;font:600 12px var(--sans);cursor:pointer;
  transition:opacity .15s;
}
#bldgPanel .bp-name-save:hover{opacity:.85}
#bldgPanel .bp-sec{margin-bottom:14px}
#bldgPanel .bp-sec-hdr{
  font:600 11px/1 var(--sans);text-transform:uppercase;letter-spacing:.12em;
  color:var(--accent2);margin-bottom:8px;
}
#bldgPanel .bp-row{
  display:flex;justify-content:space-between;padding:4px 0;
  border-bottom:0.5px solid var(--border);font-size:12px;
}
#bldgPanel .bp-rk{color:var(--text3);font-weight:500;text-transform:uppercase;font-size:10px;letter-spacing:.04em}
#bldgPanel .bp-rv{color:var(--text);font-weight:500;text-align:right;letter-spacing:-.005em}
#bldgPanel .bp-hr{border:0;border-top:0.5px solid var(--border);margin:10px 0}
#bldgPanel .bp-stat-line{font-size:12px;color:var(--text);line-height:1.5}
#bldgPanel .bp-prog-bar{
  width:100%;height:8px;background:var(--bg3);border-radius:4px;overflow:hidden;margin:4px 0 2px;
}
#bldgPanel .bp-prog-fill{height:100%;border-radius:4px;transition:width .3s}
#bldgPanel .bp-callout{
  padding:8px 10px;border-radius:6px;font-size:12px;font-weight:600;margin:6px 0;
}
#bldgPanel .bp-callout.green{background:var(--green-bg);color:var(--green)}
#bldgPanel .bp-callout.amber{background:var(--amber-bg);color:var(--amber)}
#bldgPanel .bp-callout.red{background:var(--red-bg);color:var(--red)}
#bldgPanel .bp-callout.blue{background:var(--blue-bg);color:var(--blue)}
#bldgPanel .bp-tag{
  display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;
  margin:2px 3px 2px 0;
}
#bldgPanel .bp-tag.t1{background:var(--accent2-soft);color:var(--accent2)}
#bldgPanel .bp-tag.t2{background:var(--blue-bg);color:var(--blue)}
#bldgPanel .bp-tag.t3{background:var(--bg2);color:var(--text3)}
#bldgPanel .bp-accordion{margin:6px 0}
#bldgPanel .bp-acc-toggle{
  width:100%;text-align:left;background:var(--bg);border:0.5px solid var(--border);
  border-radius:6px;padding:8px 12px;font:600 11px var(--sans);color:var(--text2);
  cursor:pointer;display:flex;justify-content:space-between;align-items:center;
}
#bldgPanel .bp-acc-toggle:hover{background:var(--bg2)}
#bldgPanel .bp-acc-body{display:none;padding:8px 0 0}
#bldgPanel .bp-acc-body.show{display:block}
#bldgPanel .bp-permit-card{
  padding:8px 10px;background:var(--bg);border-radius:6px;
  border:0.5px solid var(--border);margin-bottom:6px;font-size:11px;
}
#bldgPanel .bp-biz{
  display:inline-block;padding:2px 8px;border-radius:10px;
  font-size:10px;background:var(--bg2);color:var(--text2);margin:2px 2px 2px 0;
}

/* Market Intel Data Sources */
.mi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-bottom:20px}
.mi-card{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:14px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.mi-card h4{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin-bottom:8px;font-family:var(--mono)}
.mi-card .mi-val{font-size:26px;font-weight:600;font-family:var(--mono);color:var(--text)}
.mi-card .mi-sub{font-size:10px;color:var(--text3);margin-top:2px}
.mi-card.accent .mi-val{color:var(--accent)}
.mi-card.green .mi-val{color:var(--green)}
.mi-card.amber .mi-val{color:var(--amber)}
.mi-bar-chart{display:flex;align-items:flex-end;gap:2px;height:120px;margin-top:8px}
.mi-bar{flex:1;background:var(--accent);border-radius:2px 2px 0 0;min-width:8px;position:relative;transition:height .3s}
.mi-bar:hover{opacity:.8}
.mi-bar .mi-tip{display:none;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:2px 6px;border-radius:3px;font-size:9px;font-family:var(--mono);white-space:nowrap;z-index:5}
.mi-bar:hover .mi-tip{display:block}
.mi-labels{display:flex;gap:2px;margin-top:4px}.mi-labels span{flex:1;text-align:center;font-size:8px;color:var(--text3);font-family:var(--mono);overflow:hidden}
.mi-section{margin-bottom:24px}.mi-section h3{font-size:13px;font-weight:600;color:var(--text);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border);font-family:var(--sans)}
.mi-table{width:100%;font-size:11px;font-family:var(--mono)}.mi-table th{text-align:left;padding:4px 6px;border-bottom:1px solid var(--border);color:var(--text3);font-size:9px;text-transform:uppercase;letter-spacing:.3px}
.mi-table td{padding:4px 6px;border-bottom:1px solid rgba(0,0,0,.05)}.mi-table tr:hover{background:var(--bg2)}
.mi-table .num{text-align:right;font-weight:500}.mi-hl{background:rgba(80,70,229,.06);font-weight:600}
.mi-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.mi-toolbar select{font-family:var(--mono);font-size:11px;padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:var(--card);color:var(--text)}
.mi-toolbar button{font-family:var(--mono);font-size:10px;padding:4px 10px;border:1px solid var(--border);border-radius:4px;background:var(--card);color:var(--accent);cursor:pointer}
.mi-toolbar button:hover{background:var(--bg2)}
.mi-toolbar .mi-status{font-family:var(--mono);font-size:10px;color:var(--text3);margin-left:auto}
