/* Brújula FIC by Vectoria — design system del servicio 2 (sobre los tokens de Vectoria).
   Estética: terminal financiera editorial — navy profundo, acentos teal, datos protagonistas. */

.bf-body { background: var(--fondo); color: var(--tinta); margin: 0;
  font-family: "Inter", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }

/* ---------- Header ---------- */
.bf-top { position: sticky; top: 42px; z-index: 30; display: flex; align-items: center; gap: 1.1rem;
  background: linear-gradient(120deg, #081d3a 0%, var(--navy) 55%, #0e3360 100%);
  color: #fff; padding: .65rem 1.4rem;
  border-bottom: 1px solid rgba(16,200,168,.25); box-shadow: 0 6px 24px -12px rgba(8,29,58,.6); }
.bf-brand { display: flex; align-items: center; gap: .6rem; text-decoration: none; }
.bf-iso { display: block; filter: drop-shadow(0 2px 6px rgba(16,200,168,.35)); }
.bf-marca { display: flex; flex-direction: column; line-height: 1.05; }
.bf-mark { font-family: "Sora","Inter",sans-serif; font-weight: 800; font-size: 1.12rem; color: #fff; letter-spacing: -.2px; }
.bf-by { font-size: .68rem; color: var(--teal); font-weight: 700; letter-spacing: .6px; text-transform: uppercase; }
.bf-nav { display: flex; gap: .15rem; margin-left: .8rem; flex-wrap: wrap; }
.bf-tab { position: relative; color: #aebdd2; text-decoration: none; font-weight: 600; font-size: .85rem;
  padding: .45rem .7rem; border-radius: 9px; cursor: pointer; transition: color .15s, background .15s; }
.bf-tab:hover { background: rgba(255,255,255,.07); color: #fff; }
.bf-tab.activa { color: #fff; background: rgba(16,200,168,.16); box-shadow: inset 0 -2px 0 var(--teal); }
.bf-otros { margin-left: auto; color: #aebdd2; text-decoration: none; font-size: .8rem; font-weight: 600;
  border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: .3rem .8rem; transition: all .15s; }
.bf-otros:hover { color: #fff; border-color: var(--teal); }

.bf-descargo { background: #0d2c52; color: #c4d3e7; font-size: .74rem; padding: .5rem 1.4rem;
  border-bottom: 1px solid rgba(255,255,255,.06); letter-spacing: .1px; }
.bf-descargo-min { font-size: .72rem; color: var(--gris-txt); margin-top: 1rem; }
.bf-sintesis { margin: .6rem 0 .2rem; padding: .7rem .9rem; font-size: .88rem; line-height: 1.55; background: linear-gradient(180deg, #f7fbff, #eef5ff); border: 1px solid #dbe7fb; border-radius: 12px; }
.bf-term { margin: .7rem 0 .3rem; }
.bf-term-top { display: flex; justify-content: space-between; align-items: baseline; font-size: .9rem; margin-bottom: .3rem; }
.bf-term-nivel { font-weight: 800; }
.bf-term-barra { display: flex; gap: 3px; }
.bf-term-seg { flex: 1; height: 10px; border-radius: 3px; }
.bf-real { margin: .3rem 0 .2rem; font-size: .88rem; }
.bf-sello { display: flex; gap: .6rem; align-items: flex-start; padding: .8rem 1rem; margin: .2rem 0 1rem; background: linear-gradient(180deg, #f1faf5, #e7f6ee); border: 1px solid #b6e6cf; border-radius: 12px; font-size: .9rem; }
.bf-sello-ic { color: #1aa06d; font-weight: 900; font-size: 1.1rem; }
.bf-sello-link { color: #1B4DE4; cursor: pointer; text-decoration: underline; }
.bf-costos-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.2rem; }
.bf-tabla { width: 100%; border-collapse: collapse; font-size: .86rem; }
.bf-tabla th, .bf-tabla td { padding: .4rem .5rem; border-bottom: 1px solid var(--linea, #e6edf6); text-align: left; }
.bf-tabla .num { text-align: right; font-variant-numeric: tabular-nums; }

/* ---------- Layout ---------- */
/* Layout con navegacion en sidebar izquierdo (estilo Portfolio Visualizer / FinanceLab) */
.bf-shell { display: flex; align-items: flex-start; gap: 0; max-width: 1500px; margin: 0 auto; }
.bf-side { flex: 0 0 232px; align-self: stretch; background: linear-gradient(180deg, #0d2c52, var(--navy, #0B2545)); position: sticky; top: 42px; min-height: calc(100vh - 102px); padding: 1rem .6rem; }
.bf-side .bf-nav { display: flex; flex-direction: column; gap: .1rem; margin: 0; flex-wrap: nowrap; }
.bf-side-g { color: #7f93b3; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; margin: .7rem .6rem .2rem; }
.bf-side .bf-tab { display: block; text-align: left; padding: .5rem .7rem; border-radius: 9px; font-size: .88rem; }
.bf-side .bf-tab.activa { box-shadow: inset 3px 0 0 var(--teal, #10C8A8); }
/* Grupos avanzados plegables (P3: organizar sin perder pestañas). En móvil se muestran
   siempre (display:contents) para no ocultar nada. */
.bf-side-more > summary { list-style: none; cursor: pointer; display: flex; align-items: center; }
.bf-side-more > summary::-webkit-details-marker { display: none; }
.bf-side-more > summary::after { content: "+"; margin-left: auto; color: #7f93b3; font-weight: 800; padding-right: .5rem; }
.bf-side-more[open] > summary::after { content: "\2013"; }
@media (max-width: 820px) {
  .bf-side-more { display: contents; }
  .bf-side-more > summary { display: none; }
}
.bf-main { flex: 1 1 auto; max-width: 1240px; padding: 1.6rem 1.4rem 2rem; min-width: 0; }
@media (max-width: 820px) {
  .bf-shell { flex-direction: column; }
  .bf-side { flex-basis: auto; width: 100%; min-height: 0; position: static; padding: .5rem; }
  .bf-side .bf-nav { flex-direction: row; flex-wrap: wrap; }
  .bf-side-g { display: none; }
}
.bf-sec { display: none; }
.bf-sec.activa { display: block; animation: bf-in .25s ease; }
@keyframes bf-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.bf-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1rem; }
.bf-head h1 { font-family: "Sora","Inter",sans-serif; color: var(--navy); margin: 0 0 .2rem; font-size: 1.45rem; letter-spacing: -.3px; }
.bf-head .sub { margin: 0 0 1.1rem; flex-basis: 100%; }
.bf-h2 { font-family: "Sora","Inter",sans-serif; color: var(--navy); font-size: 1.15rem; margin: 1.6rem 0 .8rem; }
.bf-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 900px) { .bf-grid-2 { grid-template-columns: 1fr; } }

/* ---------- Hero ---------- */
.bf-hero { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1.6rem; align-items: center;
  background: linear-gradient(125deg, #081d3a 0%, var(--navy) 50%, #114078 100%);
  border-radius: 18px; padding: 1.8rem 2rem; margin-bottom: 1.2rem; color: #fff;
  position: relative; overflow: hidden; box-shadow: var(--sombra); }
.bf-hero::after { content: ""; position: absolute; right: -120px; top: -120px; width: 360px; height: 360px;
  background: radial-gradient(circle, rgba(16,200,168,.22), transparent 65%); pointer-events: none; }
.bf-hero-txt h1 { font-family: "Sora","Inter",sans-serif; font-size: 1.65rem; line-height: 1.22; margin: 0 0 .6rem; letter-spacing: -.4px; }
.bf-hero-txt p { color: #b9c8dd; font-size: .92rem; line-height: 1.55; margin: 0; max-width: 46ch; }
.bf-hero-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; position: relative; }
.bf-hkpi { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  border-radius: 13px; padding: .8rem 1rem; backdrop-filter: blur(4px); }
.bf-hkpi .v { display: block; font-family: "Sora","Inter",sans-serif; font-weight: 800; font-size: 1.45rem; color: #fff; letter-spacing: -.5px; }
.bf-hkpi .k { display: block; font-size: .68rem; color: var(--teal); font-weight: 700; text-transform: uppercase; letter-spacing: .5px; margin-top: .15rem; }
@media (max-width: 900px) { .bf-hero { grid-template-columns: 1fr; padding: 1.4rem; } }

/* ---------- Tarjetas y filtros ---------- */
.bf-card { background: var(--panel); border: 1px solid var(--linea); border-radius: 14px;
  box-shadow: var(--sombra); padding: 1rem 1.1rem; margin-bottom: 1rem; }
.bf-filtros-card { padding: .7rem .9rem; }
.bf-filtros { display: flex; gap: .5rem; flex-wrap: wrap; }
.bf-filtros input, .bf-filtros select { border: 1px solid var(--linea); border-radius: 10px;
  padding: .52rem .7rem; font-size: .88rem; background: #fff; color: var(--navy); font-family: inherit;
  transition: border-color .15s, box-shadow .15s; }
.bf-filtros input:focus, .bf-filtros select:focus { outline: none; border-color: var(--azul);
  box-shadow: 0 0 0 3px rgba(27,77,228,.12); }
.bf-filtros input { flex: 1; min-width: 220px; }

.bf-btn { display: inline-block; border: none; border-radius: 10px; padding: .5rem 1rem; cursor: pointer;
  font-weight: 700; font-size: .85rem; font-family: inherit; text-decoration: none;
  background: var(--azul); color: #fff; transition: transform .12s, box-shadow .12s, background .12s; }
.bf-btn:hover { background: var(--azul-d); transform: translateY(-1px); box-shadow: 0 6px 16px -8px rgba(27,77,228,.6); }
.bf-btn:focus-visible, .bf-btn:focus, .bf-tab:focus-visible { outline: 2px solid var(--azul); outline-offset: 2px; }
.skip-link { position: absolute; left: .5rem; top: -3rem; z-index: 200; background: var(--azul); color: #fff;
  padding: .55rem .9rem; border-radius: 0 0 8px 8px; font-weight: 700; text-decoration: none; transition: top .15s ease; }
.skip-link:focus { top: 0; outline: 2px solid #fff; outline-offset: 2px; }
.bf-btn.sec { background: #eef2f9; color: var(--navy); border: 1px solid var(--linea); }
.bf-btn.sec:hover { background: #e3eaf6; box-shadow: none; }
.bf-btn:disabled { opacity: .45; cursor: default; transform: none; box-shadow: none; }

/* ---------- Tablas ---------- */
.tabla-scroll { overflow-x: auto; border-radius: 14px; }
table.bf-tabla { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .85rem;
  background: var(--panel); border: 1px solid var(--linea); border-radius: 14px; overflow: hidden; box-shadow: var(--sombra); }
table.bf-tabla th, table.bf-tabla td { padding: .6rem .75rem; border-bottom: 1px solid var(--linea); text-align: left; vertical-align: middle; }
table.bf-tabla tbody tr:last-child td { border-bottom: none; }
table.bf-tabla th.num, table.bf-tabla td.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
table.bf-tabla thead th { position: sticky; top: 0; background: #f3f7fc; color: var(--gris-txt);
  font-weight: 700; font-size: .72rem; text-transform: uppercase; letter-spacing: .45px; z-index: 2; }
table.bf-tabla tbody tr { transition: background .12s; }
table.bf-tabla tbody tr:hover { background: #f6f9fe; }
.bf-nombre { cursor: pointer; }
.bf-nombre b { color: var(--navy); font-weight: 700; }
.bf-nombre:hover b { color: var(--azul); }
.bf-nombre .sub { font-size: .76rem; }

/* Celdas de retorno con signo */
.ret-pos { color: var(--ok); font-weight: 600; }
.ret-neg { color: var(--rojo); font-weight: 600; }

/* Puntos Vectoria — pill con escala de color */
.bf-score { display: inline-block; min-width: 44px; text-align: center; font-weight: 800;
  border-radius: 999px; padding: .16rem .55rem; font-size: .82rem; font-variant-numeric: tabular-nums; }
.bf-score.alto { background: #e3f7ef; color: #0a7c54; border: 1px solid #b7e8d4; }
.bf-score.medio { background: #fdf3e3; color: #9a6206; border: 1px solid #f3ddb3; }
.bf-score.bajo { background: #fdebe9; color: #b03830; border: 1px solid #f3c8c4; }
.bf-score.nd { background: #eef0f6; color: var(--gris-txt); border: 1px solid var(--linea); }

/* Badges de clase de activo */
.bf-clase { display: inline-block; font-size: .7rem; font-weight: 700; letter-spacing: .2px;
  border-radius: 7px; padding: .18rem .5rem; white-space: nowrap; }
.cl-mm { background: #e1f6f1; color: #0a7c6a; }
.cl-rf { background: #e6edfc; color: #1d44b8; }
.cl-rv { background: #efe9fd; color: #5b3bc4; }
.cl-bal { background: #fdf3e3; color: #9a6206; }
.cl-inm { background: #f3ede2; color: #7a5c1e; }
.cl-otr { background: #eef0f6; color: var(--gris-txt); }
.bf-conf { font-size: .66rem; color: var(--gris-txt); margin-left: .25rem; }

.bf-add { background: #fff; border: 1px solid var(--linea); border-radius: 8px; padding: .3rem .65rem;
  cursor: pointer; font-size: .76rem; font-weight: 700; color: var(--azul); transition: all .12s; }
.bf-add:hover { border-color: var(--azul); background: #f3f6fe; }
.bf-add.en { background: var(--azul); color: #fff; border-color: var(--azul); }

.bf-pager { display: flex; align-items: center; gap: 1rem; justify-content: center; margin-top: 1rem; }

/* Barra de magnitud en ranking */
.bf-bar { position: relative; height: 6px; min-width: 110px; background: #edf1f8; border-radius: 999px; overflow: hidden; }
.bf-bar i { position: absolute; inset: 0 auto 0 0; background: linear-gradient(90deg, var(--azul), var(--teal)); border-radius: 999px; }
.bf-rk-pos { font-family: "Sora","Inter",sans-serif; font-weight: 800; color: var(--gris-txt); }
tr.top3 .bf-rk-pos { color: var(--azul); }

/* ---------- Skeleton ---------- */
.skel { display: inline-block; min-width: 60px; border-radius: 7px; color: transparent !important;
  background: linear-gradient(90deg, rgba(255,255,255,.10) 25%, rgba(255,255,255,.28) 50%, rgba(255,255,255,.10) 75%);
  background-size: 400px 100%; animation: skel 1.2s infinite linear; }
.bf-card .skel, td .skel { background: linear-gradient(90deg, #eef1f7 25%, #e2e8f2 50%, #eef1f7 75%); background-size: 400px 100%; }
@keyframes skel { from { background-position: -200px 0; } to { background-position: 200px 0; } }
.bf-cargando { padding: 2.2rem 1rem; text-align: center; color: var(--gris-txt); font-size: .88rem;
  background: var(--panel); border: 1px solid var(--linea); border-radius: 14px; }

/* ---------- Ficha (M5) ---------- */
.bf-ficha { position: fixed; top: 0; right: 0; width: min(620px, 96vw); height: 100vh; background: #fff;
  z-index: 60; box-shadow: -10px 0 50px rgba(8,29,58,.32); overflow-y: auto; padding: 1.3rem 1.5rem 2rem;
  animation: bf-slide .22s ease; }
@keyframes bf-slide { from { transform: translateX(40px); opacity: .4; } to { transform: none; opacity: 1; } }
.bf-backdrop { position: fixed; inset: 0; background: rgba(8,29,58,.45); z-index: 55; backdrop-filter: blur(2px); }
.bf-ficha-cerrar { float: right; background: #eef0f6; border: 1px solid var(--linea); border-radius: 9px;
  padding: .35rem .85rem; cursor: pointer; font-weight: 700; color: var(--navy); }
.bf-ficha-cerrar:hover { background: #e3eaf6; }
.bf-ficha h2 { font-family: "Sora","Inter",sans-serif; color: var(--navy); margin: .2rem 0 .3rem; font-size: 1.18rem; line-height: 1.3; }
.bf-ficha-badges { display: flex; flex-wrap: wrap; gap: .35rem; margin: .4rem 0 .2rem; }
.bf-badge { font-size: .7rem; font-weight: 700; border-radius: 7px; padding: .18rem .5rem; background: #eef2f9; color: var(--navy); }
.bf-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)); gap: .55rem; margin: 1rem 0; }
.bf-kpi { background: #f6f9fd; border: 1px solid var(--linea); border-radius: 11px; padding: .5rem .65rem; }
.bf-kpi-k { display: block; font-size: .64rem; color: var(--gris-txt); text-transform: uppercase; letter-spacing: .4px; font-weight: 700; }
.bf-kpi-v { display: block; font-size: 1.04rem; font-weight: 800; color: var(--navy); font-variant-numeric: tabular-nums; margin-top: .1rem; }

/* Subpuntajes del score */
.bf-subs { margin: .8rem 0 0; }
.bf-sub-fila { display: grid; grid-template-columns: 110px 1fr 38px; align-items: center; gap: .6rem; margin-bottom: .35rem; }
.bf-sub-fila .k { font-size: .74rem; color: var(--gris-txt); font-weight: 600; text-transform: capitalize; }
.bf-sub-fila .n { font-size: .78rem; font-weight: 800; color: var(--navy); text-align: right; font-variant-numeric: tabular-nums; }

/* JuliaProfe */
.bf-julia { margin-top: 1.1rem; border-top: 1px solid var(--linea); padding-top: 1rem; }
.bf-julia-head { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; }
.bf-julia-avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--grad);
  display: inline-flex; align-items: center; justify-content: center; color: #fff;
  font-family: "Sora","Inter",sans-serif; font-weight: 800; font-size: .85rem; }
.bf-julia-out { margin-top: .6rem; }
.bf-julia-txt { background: #f4faf8; border: 1px solid #d6efe7; border-left: 4px solid var(--teal);
  border-radius: 10px; padding: .9rem 1.05rem; line-height: 1.6; font-size: .89rem; }

.bf-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.bf-chip { background: var(--panel); border: 1px solid var(--linea); border-radius: 999px;
  padding: .28rem .8rem; font-size: .8rem; font-weight: 600; color: var(--navy); box-shadow: var(--sombra); }
.bf-chip b { color: var(--rojo); cursor: pointer; margin-left: .35rem; }

/* ---------- Tendencias ---------- */
.bf-tcard h3 { font-family: "Sora","Inter",sans-serif; color: var(--navy); font-size: .98rem; margin: 0 0 .6rem; }
.bf-tcard .nota { font-size: .72rem; color: var(--gris-txt); margin-top: .6rem; }
.bf-tcard.ancha { grid-column: 1 / -1; }

/* ---------- Carteras ---------- */
.bf-cart-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1rem; }
@media (max-width: 1000px) { .bf-cart-grid { grid-template-columns: 1fr; } }
.bf-cart { background: var(--panel); border: 1px solid var(--linea); border-radius: 16px; box-shadow: var(--sombra);
  padding: 1.1rem 1.2rem; display: flex; flex-direction: column; }
.bf-cart h3 { font-family: "Sora","Inter",sans-serif; color: var(--navy); margin: 0; font-size: 1.05rem; }
.bf-cart .obj { font-size: .8rem; color: var(--gris-txt); margin: .25rem 0 .6rem; line-height: 1.45; }
.bf-cart-met { display: flex; gap: .8rem; flex-wrap: wrap; margin: .4rem 0 .6rem; }
.bf-cart-met span { font-size: .76rem; color: var(--gris-txt); }
.bf-cart-met b { color: var(--navy); font-variant-numeric: tabular-nums; }
.bf-cart table { font-size: .78rem; }
.bf-etiqueta { display: inline-block; background: #fdf3e3; color: #9a6206; border: 1px solid #f3ddb3;
  font-size: .72rem; font-weight: 700; border-radius: 8px; padding: .25rem .6rem; margin-bottom: .8rem; }

/* ---------- Aprender ---------- */
.bf-guias { display: grid; gap: .7rem; }
.bf-guia { background: var(--panel); border: 1px solid var(--linea); border-radius: 13px; box-shadow: var(--sombra); }
.bf-guia summary { cursor: pointer; list-style: none; padding: .85rem 1.1rem; font-weight: 700; color: var(--navy);
  font-size: .92rem; display: flex; justify-content: space-between; align-items: center; }
.bf-guia summary::-webkit-details-marker { display: none; }
.bf-guia summary::after { content: "+"; font-family: "Sora",sans-serif; font-size: 1.1rem; color: var(--azul); }
.bf-guia[open] summary::after { content: "–"; }
.bf-guia .cuerpo { padding: 0 1.1rem 1rem; font-size: .87rem; line-height: 1.62; color: #2c3e57; }
.bf-glosario { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: .7rem; }
.bf-glos { background: var(--panel); border: 1px solid var(--linea); border-radius: 13px; padding: .85rem 1rem; box-shadow: var(--sombra); }
.bf-glos h4 { margin: 0 0 .3rem; font-size: .88rem; color: var(--navy); }
.bf-glos p { margin: 0; font-size: .8rem; line-height: 1.5; color: #2c3e57; }
.bf-glos .formula { display: block; margin-top: .45rem; font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: .72rem; color: var(--azul); background: #f3f6fe; border-radius: 7px; padding: .3rem .5rem; }

/* ---------- Metodología ---------- */
.bf-met-grid { display: grid; gap: 1rem; }
.bf-met-card { background: var(--panel); border: 1px solid var(--linea); border-radius: 15px; box-shadow: var(--sombra); padding: 1.1rem 1.25rem; }
.bf-met-card h3 { font-family: "Sora","Inter",sans-serif; color: var(--navy); margin: 0 0 .5rem; font-size: 1rem; }
.bf-met-card p { font-size: .86rem; line-height: 1.6; color: #2c3e57; }

/* ---------- Footer ---------- */
.bf-foot { background: var(--navy); color: #aebdd2; margin-top: 2.5rem; }
.bf-foot-grid { max-width: 1240px; margin: 0 auto; padding: 1.8rem 1.4rem; display: grid;
  grid-template-columns: 1.2fr 1fr 1fr; gap: 1.6rem; }
@media (max-width: 900px) { .bf-foot-grid { grid-template-columns: 1fr; } }
.bf-foot p { font-size: .76rem; line-height: 1.55; margin: .2rem 0; }
.bf-foot a { color: var(--teal); text-decoration: none; }
.bf-foot a:hover { text-decoration: underline; }
.bf-foot-marca { font-family: "Sora","Inter",sans-serif; font-weight: 800; font-size: 1rem; color: #fff; }
.bf-foot-marca span { color: var(--teal); font-size: .72rem; font-weight: 700; margin-left: .3rem; }
.bf-foot-t { font-weight: 800; color: #fff; text-transform: uppercase; font-size: .7rem; letter-spacing: .6px; }

/* ---------- Simulador ---------- */
.bf-peso-fila { display: grid; grid-template-columns: 1fr 160px 48px 18px; align-items: center; gap: .7rem; margin-bottom: .55rem; }
.bf-peso-fila > span:first-child b { color: var(--navy); font-weight: 700; font-size: .85rem; }
.bf-peso { accent-color: var(--azul); }
.bf-peso-val { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--azul); text-align: right; }
.bf-quitar { color: var(--rojo); cursor: pointer; font-weight: 800; }

/* ---------- Plan P1 ---------- */
.bf-plan-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .8rem; align-items: end; margin: 1rem 0; }
.bf-plan-form label { display: flex; flex-direction: column; gap: .25rem; font-size: .76rem; font-weight: 700; color: var(--gris-txt); text-transform: uppercase; letter-spacing: .3px; }
.bf-plan-form input, .bf-plan-form select { border: 1px solid var(--linea); border-radius: 10px; padding: .52rem .7rem; font-size: .9rem; font-family: inherit; color: var(--navy); background: #fff; }
.bf-plan-form input:focus, .bf-plan-form select:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(27,77,228,.12); }
.bf-plan-form .bf-btn { height: fit-content; }

/* ---------- Informarse ---------- */
.bf-insight h3 { font-family: "Sora","Inter",sans-serif; color: var(--navy); font-size: .98rem; margin: 0 0 .35rem; }
.bf-insight p { font-size: .85rem; line-height: 1.55; color: #2c3e57; margin: 0 0 .5rem; }
.bf-fuente { display: block; text-decoration: none; transition: transform .12s, box-shadow .12s; }
.bf-fuente:hover { transform: translateY(-2px); box-shadow: 0 10px 26px -16px rgba(11,37,69,.5); border-color: var(--teal); }
.bf-fuente h3 { font-family: "Sora","Inter",sans-serif; color: var(--navy); font-size: .92rem; margin: .4rem 0 .3rem; }
.bf-fuente p { font-size: .8rem; color: var(--gris-txt); margin: 0; line-height: 1.5; }

/* ---------- ML: estrellas, perfil, discrepancia, cuartil ---------- */
.bf-estrellas { white-space: nowrap; font-size: .92rem; letter-spacing: -1px; }
.bf-star { color: #d6dde8; }
.bf-star.on { color: #f1a83a; }
.bf-perfil { display: inline-block; font-size: .7rem; font-weight: 700; border-radius: 7px; padding: .16rem .5rem; white-space: nowrap; }
.pf-con { background: #e1f6f1; color: #0a7c6a; }
.pf-mod { background: #fdf3e3; color: #9a6206; }
.pf-agr { background: #fdebe9; color: #b03830; }
.bf-disc { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-left: .25rem; border-radius: 50%;
  background: #b03830; color: #fff; font-size: .68rem; font-weight: 800; vertical-align: middle; cursor: help; }
.bf-check { display: inline-flex; align-items: center; gap: .4rem; font-size: .82rem; color: var(--gris-txt); font-weight: 600; }
.bf-check input { accent-color: var(--azul); }
.bf-ficha-rate { display: flex; align-items: center; gap: .8rem; margin: .2rem 0 .5rem; font-size: 1.15rem; }
.bf-aviso { background: #fdf3e3; border: 1px solid #f3ddb3; border-radius: 10px; padding: .7rem .9rem; font-size: .82rem;
  line-height: 1.5; color: #7a5a16; margin: .6rem 0; }
.bf-cuartil { display: flex; align-items: center; gap: .7rem; margin: .6rem 0; }
.bf-q { display: inline-flex; gap: 3px; }
.bf-q span { width: 26px; height: 24px; display: grid; place-items: center; border-radius: 7px; background: #eef2f9;
  color: var(--gris-txt); font-weight: 800; font-size: .8rem; }
.bf-q span.on { background: var(--grad); color: #fff; }

/* ---------- Ficha profesional (analítica avanzada) ---------- */
.bf-pro-h { font-family: "Sora","Inter",sans-serif; color: var(--navy); font-size: .95rem; margin: 1.3rem 0 .5rem;
  padding-top: 1rem; border-top: 1px solid var(--linea); }
.bf-kpi.alerta { background: #fdf3ee; border-color: #f3d9c8; }
.bf-kpi.alerta .bf-kpi-v { color: #b03830; }
.bf-heat { overflow-x: auto; }
table.bf-heat-t { border-collapse: separate; border-spacing: 2px; font-size: .68rem; width: 100%; }
table.bf-heat-t th { color: var(--gris-txt); font-weight: 700; text-align: center; padding: .15rem; }
table.bf-heat-t tbody th { text-align: right; padding-right: .4rem; }
table.bf-heat-t td { text-align: center; border-radius: 5px; padding: .3rem .1rem; font-variant-numeric: tabular-nums; min-width: 30px; }

/* ---------- Capa académica (tarjeta por pestaña) ---------- */
.bf-aca { background: linear-gradient(120deg, #f4f7fc, #eef4ff); border: 1px solid #dbe6f5;
  border-left: 4px solid var(--azul); border-radius: 12px; margin: 0 0 1.2rem; overflow: hidden; }
.bf-aca summary { cursor: pointer; list-style: none; padding: .8rem 1.1rem; font-weight: 700; color: var(--navy);
  font-size: .92rem; display: flex; align-items: center; gap: .6rem; }
.bf-aca summary::-webkit-details-marker { display: none; }
.bf-aca summary::after { content: "+"; margin-left: auto; font-family: "Sora",sans-serif; font-size: 1.1rem; color: var(--azul); }
.bf-aca[open] summary::after { content: "–"; }
.bf-aca-tag { background: var(--navy); color: #fff; font-size: .62rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .08em; border-radius: 6px; padding: .2rem .5rem; }
.bf-aca-body { padding: 0 1.1rem 1rem; font-size: .87rem; line-height: 1.62; color: #2c3e57; }
.bf-aca-idea { font-weight: 600; color: var(--navy); }
.bf-aca-formula { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: .82rem; color: var(--azul);
  background: #fff; border: 1px solid var(--linea); border-radius: 8px; padding: .5rem .7rem; margin: .5rem 0; overflow-x: auto; }
.bf-aca-ref { font-size: .76rem; color: var(--gris-txt); font-style: italic; margin-top: .5rem; }
.bf-aca-lab { margin: .5rem 0 .8rem; }

/* ---------- Asesor / cuestionario ---------- */
.bf-aseq { margin-bottom: 1rem; }
.bf-aseq > b { display: block; color: var(--navy); font-size: .92rem; margin-bottom: .5rem; }
.bf-aseopts { display: flex; flex-wrap: wrap; gap: .5rem; }
.bf-aseopt { border: 1.5px solid var(--linea); background: #fff; color: var(--navy); border-radius: 999px;
  padding: .45rem .9rem; font-size: .84rem; font-weight: 600; cursor: pointer; font-family: inherit; transition: all .12s; }
.bf-aseopt:hover { border-color: var(--azul); }
.bf-aseopt.en { background: var(--navy); color: #fff; border-color: var(--navy); }
.bf-plan-head { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; margin: 1rem 0; }
.bf-plan-head .bf-perfil { font-size: .9rem; padding: .3rem .8rem; }

/* ---------- Asistente "Encuentra tu fondo" (buscador) ---------- */
.bf-find { background: linear-gradient(125deg, #0d2c52, var(--navy)); color: #fff; border-radius: 16px; padding: 1.2rem 1.4rem; margin-bottom: 1rem; }
.bf-find h3 { font-family: "Sora","Inter",sans-serif; margin: 0 0 .8rem; font-size: 1.05rem; }
.bf-find select { border: none; border-radius: 10px; padding: .5rem .7rem; font-size: .88rem; font-family: inherit; margin: 0 .4rem .4rem 0; }
.bf-asistente-ej { color: #aebfd9; font-size: .82rem; margin: -.3rem 0 .7rem; }
.bf-asistente-row { display: flex; gap: .5rem; flex-wrap: wrap; }
.bf-asistente-row input { flex: 1 1 260px; border: none; border-radius: 10px; padding: .6rem .8rem; font-size: .9rem; font-family: inherit; }
.bf-asist-narr { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-left: 3px solid #10C8A8; border-radius: 12px; padding: .7rem .9rem; margin-bottom: .7rem; line-height: 1.55; }
.bf-asist-narr-h { display: flex; align-items: center; gap: .5rem; margin-bottom: .3rem; }
.bf-asist-narr .bf-btn.sec { margin-top: .5rem; }
.bf-vchips { display: inline-flex; gap: .25rem; flex-wrap: wrap; margin: .2rem 0 .6rem; }
.bf-vchip { background: #eef2f9; border: 1px solid var(--linea, #dbe7fb); color: var(--navy, #0B2545); border-radius: 8px; padding: .28rem .6rem; font-size: .8rem; font-weight: 600; cursor: pointer; font-family: inherit; }
.bf-vchip:hover { background: #e3eaf6; }
.bf-vchip.on { background-image: linear-gradient(180deg, #1B4DE4, #10C8A8); color: #fff; border-color: transparent; }
.bf-heat td { text-align: center; font-variant-numeric: tabular-nums; }
.bf-heat th { font-size: .78rem; }
.bf-lab-acc { display: flex; flex-wrap: wrap; gap: .4rem; margin: .3rem 0 .6rem; }
.bf-lab-cfg, .bf-lab-run, .bf-lab-extra { display: flex; flex-wrap: wrap; gap: .6rem; align-items: flex-end; margin: .5rem 0; }
.bf-lab-cfg label, .bf-lab-run label, .bf-lab-extra label { display: flex; flex-direction: column; gap: .2rem; font-size: .8rem; color: var(--navy, #0B2545); font-weight: 600; }
.bf-lab-cfg input, .bf-lab-cfg select, .bf-lab-run select, .bf-lab-extra input, .bf-lab-extra select { border: 1px solid var(--linea, #d6deea); border-radius: 8px; padding: .4rem .55rem; font-size: .85rem; font-family: inherit; }
.bf-lab-cfg input { width: 8.5rem; }
.bf-lab-run { border-top: 1px solid var(--linea, #e3ecf8); padding-top: .6rem; }
.bf-lab-vista { display: flex; gap: .4rem; align-items: center; }
.bf-lab-vista span { min-width: 9rem; font-size: .8rem; }
.bf-lab-vista input { border: 1px solid var(--linea, #d6deea); border-radius: 8px; padding: .35rem .5rem; font-size: .82rem; }
.bf-perf-h { margin: 1rem 0 .3rem; font-size: .98rem; color: var(--navy, #0B2545); }
.bf-perf { width: 100%; font-size: .84rem; }
.bf-perf th, .bf-perf td { border-bottom: 1px solid #eef2f8; padding: .35rem .5rem; }
.bf-perf tbody tr:nth-child(odd) { background: #f8fafd; }
.bf-perf td:first-child, .bf-perf th:first-child { text-align: left; }
.bf-pos { color: #1f7a4d; }
.bf-neg { color: #b42318; }
.bf-mensual { font-size: .76rem; }
.bf-mensual th, .bf-mensual td { padding: .25rem .35rem; }
/* Hub de inicio (estilo Portfolio Visualizer + hilo narrativo) */
.bf-hub-hero { background: linear-gradient(125deg, #0d2c52, var(--navy, #0B2545)); color: #fff; border-radius: 16px; padding: 1.6rem 1.6rem; margin-bottom: 1rem; }
.bf-hub-hero h1 { font-family: "Sora", "Inter", sans-serif; margin: 0 0 .5rem; font-size: 1.7rem; line-height: 1.15; }
.bf-hub-hero p { margin: 0; color: #c9d7ec; max-width: 60ch; }
.bf-hub-steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: .6rem; margin-bottom: 1rem; }
@media (max-width: 900px) { .bf-hub-steps { grid-template-columns: 1fr 1fr; } }
.bf-hub-step { background: #fff; border: 1px solid var(--linea, #e3ecf8); border-radius: 12px; padding: .7rem .8rem; display: flex; flex-direction: column; gap: .25rem; }
.bf-hub-step .n { width: 26px; height: 26px; border-radius: 50%; background-image: linear-gradient(180deg, #1B4DE4, #10C8A8); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; font-size: .82rem; }
.bf-hub-step b { color: var(--navy, #0B2545); font-size: .92rem; }
.bf-hub-step span:not(.n) { font-size: .8rem; color: var(--gris-txt, #5b6b85); flex: 1; }
.bf-hub-step .bf-btn { margin-top: .3rem; }
.bf-hub-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
@media (max-width: 900px) { .bf-hub-grid { grid-template-columns: 1fr; } }
.bf-hub-card { background: #fff; border: 1px solid var(--linea, #e3ecf8); border-radius: 14px; padding: 1rem 1.1rem; }
.bf-hub-card h3 { font-family: "Sora", "Inter", sans-serif; margin: 0 0 .35rem; color: var(--navy, #0B2545); font-size: 1.1rem; border-bottom: 2px solid #eef3fb; padding-bottom: .35rem; }
.bf-hub-card p { margin: .5rem 0 .6rem; font-size: .88rem; color: var(--gris-txt, #5b6b85); line-height: 1.5; }
.bf-hub-card a { display: block; color: #1B4DE4; font-weight: 600; font-size: .88rem; cursor: pointer; padding: .15rem 0; }
.bf-hub-card a:hover { text-decoration: underline; }
.bf-ficha-lab { margin-top: 1rem; border-top: 1px solid var(--linea, #e3ecf8); padding-top: .7rem; }
#bf-lab-out, #bf-ficha-lab-out { margin-top: .5rem; }

/* ---------- Percentiles vs categoría (ficha) ---------- */
.bf-pctl { display: grid; grid-template-columns: 110px 1fr 44px; gap: .5rem; align-items: center; margin-bottom: .35rem; }
.bf-pctl .k { font-size: .76rem; color: var(--gris-txt); font-weight: 600; }
.bf-pctl .barra { height: 8px; background: #eef2f9; border-radius: 999px; overflow: hidden; position: relative; }
.bf-pctl .barra i { position: absolute; inset: 0 auto 0 0; border-radius: 999px; }
.bf-pctl .n { font-size: .78rem; font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; }

/* ---------- Publicaciones por administradora (Informarse) ---------- */
.vx-pub-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .7rem; margin-bottom: 1rem; }

/* ---------- Filtros numéricos y sparklines (buscador) ---------- */
.bf-filtros-num { margin-top: .6rem; align-items: center; gap: 1rem; }
.bf-numf { display: flex; flex-direction: column; gap: .15rem; font-size: .74rem; font-weight: 700; color: var(--gris-txt); min-width: 150px; }
.bf-numf b { color: var(--azul); }
.bf-numf input[type="range"] { accent-color: var(--azul); }
.bf-spark { width: 70px; }
.bf-spark svg { display: block; }

/* ---------- Laboratorio interactivo (Aprender) ---------- */
.bf-lab { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: .8rem; }
.bf-lab label { display: flex; flex-direction: column; gap: .3rem; font-size: .8rem; font-weight: 700; color: var(--gris-txt); }
.bf-lab b { color: var(--azul); font-size: 1rem; }
.bf-lab input[type="range"] { accent-color: var(--azul); }
@media (max-width: 600px) { .bf-lab { grid-template-columns: 1fr; } }

/* ---------- Cinta de cuartiles (ranking) ---------- */
.bf-ribbon { white-space: nowrap; }
.bf-qx { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 5px; font-size: .72rem;
  font-weight: 800; margin-right: 2px; color: #fff; }
.bf-qx.q1 { background: #0a7c54; } .bf-qx.q2 { background: #5bb98c; } .bf-qx.q3 { background: #e0a23a; }
.bf-qx.q4 { background: #d6453c; } .bf-qx.q0 { background: #eef0f6; color: #94a3b8; }

/* ---------- Caja de estilo (style box) ---------- */
table.bf-estilo { border-collapse: separate; border-spacing: 4px; width: 100%; max-width: 640px; }
table.bf-estilo th { font-size: .76rem; color: var(--gris-txt); font-weight: 700; text-align: center; padding: .3rem; }
table.bf-estilo tbody th { text-align: left; }
.bf-estilo-cel { text-align: center; border-radius: 10px; background: #f5f8fc; padding: .7rem .4rem; cursor: pointer;
  transition: transform .12s; border: 1px solid var(--linea); }
.bf-estilo-cel:hover { transform: scale(1.04); }
.bf-estilo-cel b { display: block; font-size: 1.1rem; font-family: "Sora","Inter",sans-serif; }
.bf-estilo-cel span { font-size: .74rem; }

.oculto { display: none !important; }
@media (max-width: 860px) {
  .bf-nav { order: 3; flex-basis: 100%; overflow-x: auto; }
  .bf-top { flex-wrap: wrap; }
}

/* ---------- Palancas del asesor ---------- */
.bf-palancas { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .7rem; margin: 1rem 0; }
.bf-palanca { background: var(--panel); border: 1px solid var(--linea); border-radius: 12px; padding: .8rem 1rem; box-shadow: var(--sombra); }
.bf-palanca > b { display: block; color: var(--navy); font-size: .9rem; }
.bf-palanca > span.sub { font-size: .76rem; }
.bf-palanca-p { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.bf-palanca-p .fl { color: var(--gris-txt); }
.bf-palanca-p .alza { color: #0a7c54; font-size: 1.1rem; }

/* ---------- Asesor (pestaña dedicada) ---------- */
.bf-tab-asesor { background: rgba(16,200,168,.18); }
.bf-pasos { display: flex; gap: .5rem; margin-bottom: 1.2rem; flex-wrap: wrap; }
.bf-paso { display: flex; align-items: center; gap: .5rem; flex: 1; min-width: 120px; background: #fff;
  border: 1px solid var(--linea); border-radius: 12px; padding: .6rem .9rem; font-weight: 700; color: var(--gris-txt); font-size: .88rem; }
.bf-paso span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #eef2f9; color: var(--gris-txt); font-size: .82rem; }
.bf-paso.activa { border-color: var(--azul); color: var(--navy); }
.bf-paso.activa span { background: var(--grad); color: #fff; }
.bf-plan-banner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap;
  background: linear-gradient(120deg, #081d3a, var(--navy)); color: #fff; border-radius: 16px; padding: 1.3rem 1.6rem; margin-bottom: 1rem; }
.bf-plan-prob { text-align: center; }
.bf-plan-prob .v { display: block; font-family: "Sora","Inter",sans-serif; font-weight: 800; font-size: 2.4rem;
  background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.bf-plan-prob .k { font-size: .72rem; color: var(--teal); text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }

/* Asesor · tipos de meta y supuestos avanzados */
.bf-metas { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem; margin: .6rem 0 1rem; }
.bf-meta { text-align: left; background: #fff; border: 1.5px solid var(--linea); border-radius: 12px; padding: .7rem .8rem;
  cursor: pointer; display: flex; flex-direction: column; gap: .2rem; font-family: inherit; transition: border-color .15s, box-shadow .15s; }
.bf-meta:hover { border-color: var(--azul); }
.bf-meta.en { border-color: var(--azul); box-shadow: 0 0 0 3px rgba(27,77,228,.12); background: #f5f8ff; }
.bf-meta b { color: var(--navy); font-size: .9rem; }
.bf-meta span { color: var(--gris-txt); font-size: .76rem; line-height: 1.25; }
.bf-as-avz { margin: .3rem 0 1rem; border: 1px solid var(--linea); border-radius: 12px; padding: .3rem .9rem; background: #fbfcfe; }
.bf-as-avz > summary { cursor: pointer; font-weight: 700; color: var(--navy); font-size: .86rem; padding: .5rem 0; }
.bf-min { font-size: .78rem; color: var(--gris-txt); line-height: 1.4; }
.bf-aj-tag { display: inline-block; margin-left: .5rem; font-size: .68rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; color: #cfe0ff; background: rgba(27,77,228,.28); border: 1px solid rgba(120,160,255,.5);
  border-radius: 999px; padding: .15rem .55rem; vertical-align: middle; }

/* Asesor · afinidad por administradora (chips con monograma) */
.bf-casas-wrap { margin: .2rem 0 1rem; border: 1px solid var(--linea); border-radius: 12px; padding: .8rem 1rem; background: #fbfcfe; }
.bf-casas-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; color: var(--navy); }
.bf-casas { display: flex; flex-wrap: wrap; gap: .5rem; }
.bf-casas.inhab { opacity: .45; pointer-events: none; }
.bf-casa { display: inline-flex; align-items: center; gap: .45rem; border: 1.5px solid var(--linea); background: #fff;
  color: var(--navy); border-radius: 999px; padding: .32rem .7rem .32rem .35rem; font-size: .8rem; font-weight: 600;
  font-family: inherit; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.bf-casa:hover { border-color: var(--azul); }
.bf-casa.en { border-color: var(--azul); box-shadow: 0 0 0 3px rgba(27,77,228,.12); background: #f5f8ff; }
.bf-casa-ini { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--grad);
  color: #fff; font-weight: 800; font-size: .8rem; text-transform: uppercase; }
.bf-pref-nota { background: rgba(16,200,168,.1); border-left: 3px solid var(--teal); border-radius: 8px;
  padding: .5rem .8rem; font-size: .84rem; color: var(--navy); margin-bottom: .7rem; }

/* Asesor · KPIs de 4 columnas y escenarios */
.bf-kpis-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: .7rem; }
.bf-escs { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .8rem; }
.bf-esc { border: 1px solid var(--linea); border-radius: 12px; padding: .9rem 1rem; display: flex; flex-direction: column; gap: .15rem; }
.bf-esc.mal { background: rgba(214,69,60,.06); border-color: rgba(214,69,60,.3); }
.bf-esc.med { background: rgba(27,77,228,.06); border-color: rgba(27,77,228,.3); }
.bf-esc.bien { background: rgba(16,200,168,.08); border-color: rgba(16,200,168,.35); }
.bf-esc-k { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--gris-txt); }
.bf-esc-v { font-family: "Sora","Inter",sans-serif; font-weight: 800; font-size: 1.5rem; color: var(--navy); }
.bf-esc-r { font-size: .8rem; font-weight: 700; color: var(--azul); }
.bf-esc-g { font-size: .76rem; color: var(--gris-txt); line-height: 1.35; margin-top: .1rem; }

/* Comparador · tabla de líderes (quién gana en cada ventana) */
.bf-lideres th:first-child { text-align: left; color: var(--gris-txt); font-weight: 700; }
.bf-lideres td.bf-lider { background: rgba(16,200,168,.16); color: var(--navy); font-weight: 800;
  box-shadow: inset 3px 0 0 var(--teal); }
.bf-lideres tr.bf-lid-tot th, .bf-lideres tr.bf-lid-tot td { border-top: 2px solid var(--linea); background: #f7f9fc; }
.bf-lideres tr.bf-lid-tot td b { color: var(--azul); }

/* Ranking · fondo destacado (hero) */
.bf-destacado { display: flex; gap: 1.5rem; flex-wrap: wrap; justify-content: space-between; align-items: center;
  background: linear-gradient(120deg, #081d3a, var(--navy)); color: #fff; border-radius: 16px; padding: 1.3rem 1.6rem; margin-bottom: 1rem; }
.bf-dest-izq { flex: 1; min-width: 280px; }
.bf-dest-tag { display: inline-block; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
  color: var(--teal); background: rgba(16,200,168,.14); border-radius: 999px; padding: .25rem .7rem; }
.bf-dest-izq h3 { font-family: "Sora","Inter",sans-serif; font-size: 1.45rem; margin: .55rem 0 .2rem; cursor: pointer; }
.bf-dest-izq h3:hover { color: var(--teal); }
.bf-dest-admin { font-size: .82rem; color: #c9d7ec; margin: 0 0 .6rem; display: flex; align-items: center; gap: .5rem; }
.bf-dest-nota { font-size: .86rem; line-height: 1.5; color: #e7eefb; margin: 0 0 .9rem; max-width: 56ch; }
.bf-dest-der { display: flex; flex-direction: column; gap: .8rem; align-items: flex-end; }
.bf-dest-kpi { text-align: center; }
.bf-dest-kpi .v { display: block; font-family: "Sora","Inter",sans-serif; font-weight: 800; font-size: 2.6rem;
  background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; line-height: 1; }
.bf-dest-kpi .k { font-size: .68rem; color: var(--teal); text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
.bf-dest-mini { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .9rem; font-size: .78rem; color: #c9d7ec; }
.bf-dest-mini b { color: #fff; }

/* Categorías · barra de brecha (dónde importa elegir) */
.bf-brecha { background: #eef2f9; border-radius: 6px; height: 12px; min-width: 90px; overflow: hidden; }
.bf-brecha span { display: block; height: 100%; background: linear-gradient(90deg, var(--azul), var(--teal)); }

/* Tendencias · cuadrantes de persistencia del momentum */
.bf-cuads { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin: .4rem 0 .2rem; }
.bf-cuad { border: 1px solid var(--linea); border-radius: 10px; padding: .55rem .5rem; text-align: center; }
.bf-cuad .v { display: block; font-family: "Sora","Inter",sans-serif; font-weight: 800; font-size: 1.4rem; color: var(--navy); }
.bf-cuad .k { display: block; font-size: .76rem; font-weight: 700; color: var(--navy); }
.bf-cuad .d { display: block; font-size: .68rem; color: var(--gris-txt); line-height: 1.2; margin-top: .15rem; }
.bf-cuad.ok { border-top: 3px solid #0a7c54; } .bf-cuad.warn { border-top: 3px solid #9a6206; }
.bf-cuad.info { border-top: 3px solid var(--azul); } .bf-cuad.bad { border-top: 3px solid #b03830; }

/* Carteras · delta costo de la simplicidad */
.bf-delta { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; background: #f7f9fc; border: 1px solid var(--linea);
  border-radius: 12px; padding: .8rem 1.1rem; margin-top: .6rem; font-size: .82rem; color: var(--gris-txt); }
.bf-delta b { font-family: "Sora","Inter",sans-serif; font-size: 1.2rem; color: var(--navy); }
.bf-delta .fl { color: var(--azul); font-size: 1.3rem; }
.bf-delta-d { color: var(--azul); font-weight: 700; }
.bf-delta-d .sub { font-weight: 400; }

/* Simulador · beneficio de diversificación */
.bf-divbox { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; background: #f5f8ff; border: 1px solid var(--linea);
  border-radius: 12px; padding: .8rem 1rem; margin-bottom: .8rem; }
.bf-divkpi { text-align: center; min-width: 90px; }
.bf-divkpi .v { display: block; font-family: "Sora","Inter",sans-serif; font-weight: 800; font-size: 1.9rem; color: var(--azul); line-height: 1; }
.bf-divkpi .k { font-size: .66rem; text-transform: uppercase; letter-spacing: .05em; color: var(--gris-txt); font-weight: 700; }
.bf-divtxt { flex: 1; min-width: 200px; }
.bf-divtxt p { margin: 0 0 .3rem; font-size: .84rem; color: var(--navy); line-height: 1.45; }

/* Buscador · badge de fondo eficiente (frontera de Pareto) */
.bf-efic { display: inline-block; margin-left: .45rem; font-size: .62rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; color: #0a7c54; background: rgba(10,124,84,.12); border-radius: 999px; padding: .08rem .45rem;
  vertical-align: middle; cursor: help; }

/* Paywall suave de Brújula FIC */
.bf-paywall{text-align:center;padding:2.4rem 1.6rem;max-width:760px;margin:1rem auto}
.bf-paywall-tag{display:inline-block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--azul,#1B4DE4);background:rgba(27,77,228,.1);border-radius:999px;padding:.3rem .9rem;margin-bottom:.7rem}
.bf-paywall h1{font-size:1.6rem;margin:.2rem 0 .4rem}
.bf-paywall-cta{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap;margin:1.2rem 0 .4rem}
.bf-tab-lock::after{content:"·";margin-left:.3rem;opacity:.5}
.bf-tab-lock{position:relative}
.bf-tab-lock::before{content:"premium";font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#9a6206;background:rgba(154,98,6,.12);border-radius:6px;padding:.05rem .3rem;margin-right:.35rem;vertical-align:middle}

/* Capa prospectiva (cono de escenarios educativo) + tooltips "¿qué significa esto?" */
.bf-prosp{margin-top:1rem;border:1px solid #e2e8f2;border-radius:14px;padding:.9rem 1rem;background:linear-gradient(180deg,#fbfdff,#f4f8ff)}
.bf-prosp h3{margin:0 0 .5rem;font-size:1rem;color:#14385c}
.bf-prosp-tag{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#1B4DE4;background:rgba(27,77,228,.1);border-radius:6px;padding:.1rem .4rem;margin-left:.4rem;vertical-align:middle}
.bf-prosp-cards{display:flex;gap:.6rem;flex-wrap:wrap;margin:.6rem 0}
.bf-prosp-card{flex:1;min-width:90px;text-align:center;border-radius:10px;padding:.5rem;border:1px solid #e2e8f2}
.bf-prosp-card span{display:block;font-size:.72rem;color:#5a6675}
.bf-prosp-card b{font-size:1.05rem;color:#14385c;font-variant-numeric:tabular-nums}
.bf-prosp-card.adv{background:#fdf6f5;border-color:#f0c3bf}
.bf-prosp-card.cen{background:#eef3ff;border-color:#c9d8f5}
.bf-prosp-card.fav{background:#eef7f1;border-color:#bfe3cc}
.bf-prosp-narr{margin:.5rem 0;font-size:.92rem;line-height:1.55;color:#22303f}
.bf-tip{position:relative;cursor:help;border-bottom:1px dotted #1B4DE4;color:#1B4DE4;font-weight:600}
.bf-tip>i{font-style:normal;font-size:.62rem;font-weight:800;background:#1B4DE4;color:#fff;border-radius:50%;padding:0 .28rem;margin-left:.15rem;vertical-align:super}
.bf-tip>em{display:none;position:absolute;left:0;bottom:140%;z-index:30;width:240px;font-style:normal;font-weight:400;font-size:.78rem;line-height:1.4;color:#fff;background:#14385c;border-radius:8px;padding:.5rem .6rem;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.bf-tip:hover>em,.bf-tip:focus>em{display:block}
.bf-prosp-extra{display:flex;gap:.6rem;flex-wrap:wrap;margin:.5rem 0}
.bf-prosp-chip{flex:1;min-width:130px;border:1px solid #c9d8f5;background:#f4f8ff;border-radius:10px;padding:.45rem .6rem;display:flex;flex-direction:column;gap:.2rem}
.bf-prosp-chip b{font-size:1.05rem;color:#14385c;font-variant-numeric:tabular-nums}
.bf-bandas{list-style:none;margin:.4rem 0;padding:0}
.bf-band{border:1px solid #e2e8f2;border-left-width:4px;border-radius:9px;padding:.45rem .7rem;margin:.35rem 0;font-size:.9rem;line-height:1.45}
.bf-band.alerta{border-left-color:#d6453c;background:#fdf6f5}
.bf-band.favor{border-left-color:#0a7c54;background:#eef7f1}
.bf-score-prosa{margin:.5rem 0 0;font-size:.9rem;line-height:1.55;color:#22303f}
.bf-score-prosa:empty{display:none}
.bf-meta{margin:.6rem 0;border:1px dashed #c9d8f5;border-radius:10px;padding:.6rem .8rem;background:#f7faff}
.bf-meta label{display:block;margin:.3rem 0;font-size:.88rem}
.bf-meta input{border:1px solid #d6deea;border-radius:7px;padding:.25rem .45rem;width:140px}
.bf-meta-out{margin:.3rem 0 0;font-size:.88rem;color:#14385c;line-height:1.5}

/* Estilo, dato del corte, mini-botones (FIC extra) */
.bf-estilo{margin:.5rem 0;font-size:.88rem;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.bf-tag{background:#eef5ff;border:1px solid #dbe7fb;border-radius:999px;padding:.05rem .5rem;font-size:.74rem;color:#1B4DE4}
.bf-historia{background:linear-gradient(180deg,#f7fbff,#eef5ff);border:1px solid #dbe7fb;border-left:3px solid #1B4DE4;border-radius:12px;padding:.8rem .95rem;margin:.7rem 0}
.bf-historia-h{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;font-size:.96rem;color:var(--navy)}
.bf-historia-txt{margin:.2rem 0 .5rem;line-height:1.6;font-size:.95rem;color:#0f2147}
.bf-historia-vig{background:#fff;border:1px solid #e3ecf8;border-radius:9px;padding:.5rem .7rem;font-size:.86rem}
.bf-historia-vig ul{margin:.25rem 0 0;padding-left:1.05rem}
.bf-btn.sec.activo{background:#fdecec;color:#b42318;border-color:#f3c0bb}
.bf-mini{background:#fff;border:1px solid #d6deea;border-radius:8px;padding:.2rem .55rem;font-size:.76rem;cursor:pointer;color:#0B2545}
.bf-corte{background:linear-gradient(180deg,#fffdf5,#fff7e6);border:1px solid #f0e2bb;border-radius:12px;padding:.7rem .9rem;margin-bottom:1rem;font-size:.9rem}

/* Espejismos (FIC) */
.bf-espejismo{margin:.6rem 0;padding:.6rem .8rem;background:linear-gradient(180deg,#fffaf2,#fff3e0);border:1px solid #f0d9b3;border-radius:11px;font-size:.88rem}
.bf-espejismo ul{margin:.3rem 0 0;padding-left:1.1rem}
