/* =========================================================
   BASE — tokens y componentes compartidos por todo el sitio
   (Home, Análisis, Login, Hub, Indicadores, Mapa, Tablero)
   El análisis premium (premium/analisis.html) usa además
   su propia hoja: informe.css
   ========================================================= */
:root{
  --blue-900:#052699; --blue-800:#0D2B8C; --blue-700:#0A2379;
  --blue-600:#116CF8; --blue-400:#5B8DF7; --blue-300:#94B8FA;
  --cyan-500:#21BDEE; --cyan-300:#7ADFF0;
  --ink:#121212; --muted:#5A6A9A; --soft:#8A93A6;
  --line:#DCE3E9; --line-soft:#E8ECF2;
  --bg:#F4F6FA; --card:#FFFFFF;
  --pos:#33B993; --pos-bg:#DDF3EA; --pos-ink:#0B7D5B;
  --neg:#E67C73;
  --radius:16px; --maxw:1180px; --maxw-app:1280px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;}
a{color:var(--blue-600);text-decoration:none;} a:hover{color:var(--blue-900);}
button{font-family:inherit;cursor:pointer;}
::selection{background:var(--cyan-500);color:var(--blue-900);}
.mono{font-family:'IBM Plex Mono','SFMono-Regular',Consolas,monospace;font-variant-numeric:tabular-nums;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.wrap--app{max-width:var(--maxw-app);}
@media(max-width:640px){.wrap{padding:0 18px;}}

/* ---------- Botones ---------- */
.btn{display:inline-block;border-radius:999px;border:none;font-weight:600;
  font-size:13.5px;padding:10px 19px;text-align:center;}
.btn--primary{background:var(--blue-600);color:#fff;}
.btn--primary:hover{background:var(--blue-900);color:#fff;}
.btn--cyan{background:var(--cyan-500);color:var(--blue-900);font-weight:700;}
.btn--cyan:hover{background:var(--cyan-300);color:var(--blue-900);}
.btn--ghost{background:transparent;border:1px solid var(--line);color:var(--ink);}
.btn--ghost:hover{border-color:var(--blue-600);color:var(--blue-600);}
.btn--ghost-dark{background:transparent;border:1px solid #3D57B8;color:#fff;}
.btn--ghost-dark:hover{border-color:var(--cyan-500);color:var(--cyan-500);}
.btn--dark{background:var(--ink);color:#fff;}
.btn--dark:hover{background:var(--blue-900);color:#fff;}

/* ---------- Header público (blanco) ---------- */
.pubbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40;}
.pubbar .inner{max-width:var(--maxw);margin:0 auto;padding:0 28px;height:66px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;}
.brand{display:flex;align-items:center;gap:11px;color:var(--ink);}
.brand:hover{color:var(--ink);}
.brand .logo{width:30px;height:30px;border-radius:8px;background:var(--blue-600);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;flex:none;}
.brand .name{font-weight:800;font-size:15px;letter-spacing:-.01em;line-height:1.1;}
.brand .sub{font-size:10.5px;color:var(--blue-600);font-weight:600;letter-spacing:.12em;text-transform:uppercase;}
.pubnav{display:flex;gap:26px;font-size:14px;font-weight:500;}
.pubnav a{color:var(--muted);} .pubnav a:hover{color:var(--blue-900);}
.pubbar .actions{display:flex;gap:10px;align-items:center;}
@media(max-width:760px){.pubnav{display:none;}}

/* ---------- Header premium (azul) ---------- */
.appbar{background:var(--blue-900);color:#fff;position:sticky;top:0;z-index:40;}
.appbar .inner{max-width:var(--maxw-app);margin:0 auto;padding:0 28px;height:60px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;}
.appbar .brand{color:#fff;}
.appbar .brand .logo{width:28px;height:28px;border-radius:7px;background:var(--cyan-500);color:var(--blue-900);font-size:13px;}
.appbar .brand .name{font-size:14.5px;}
.badge-premium{font-size:10px;font-weight:700;background:var(--cyan-500);color:var(--blue-900);
  border-radius:999px;padding:2px 8px;margin-left:6px;vertical-align:2px;}
.appnav{display:flex;gap:4px;font-size:13.5px;font-weight:600;}
.appnav a{padding:8px 14px;border-radius:8px;color:#C7D3F5;}
.appnav a:hover{background:rgba(255,255,255,.08);color:#fff;}
.appnav a.is-active{background:rgba(255,255,255,.14);color:#fff;}
.appbar .user{display:flex;align-items:center;gap:12px;}
.appbar .org{font-size:12px;color:var(--blue-300);}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--blue-600);border:none;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;}
@media(max-width:860px){.appnav{display:none;} .appbar .org{display:none;}}

/* ---------- Pies ---------- */
.footer-public{background:var(--blue-900);color:var(--blue-300);}
.footer-public .inner{max-width:var(--maxw);margin:0 auto;padding:26px 28px;display:flex;
  justify-content:space-between;align-items:center;font-size:12.5px;flex-wrap:wrap;gap:12px;}
.footer-public strong{color:#fff;}

/* ---------- Tarjetas y utilidades ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);}
.kicker{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-600);}
.pill-free{font-size:11px;font-weight:700;color:var(--pos-ink);background:var(--pos-bg);border-radius:999px;padding:4px 11px;}
.pill-premium{font-size:11px;font-weight:700;color:var(--blue-900);background:var(--line);border-radius:999px;padding:4px 11px;}
.delta-pos{color:var(--pos);} .delta-neg{color:var(--neg);} .delta-flat{color:var(--soft);}
