/* Portal SUMA · estilos (v7)
   Todo lo que se pinta con el color principal lee --pri / --pri-hover / --sobre-pri:
   Mi perfil cambia esas variables por usuario (guia §116.2). Los colores con
   significado (ok, alerta, error) NO se personalizan. */
:root{
  --pri:#1A9A5E; --pri-hover:#157A4B; --sobre-pri:#FFFFFF; --pri-suave:#E3F5EC;
  --side:#1C2636; --side-2:#2A3650; --side-txt:#FFFFFF; --side-dim:#8E9AB0; --marca:#22B573; --tinta-marca:#131E28;
  --bg:#F4F6F5; --card:#FFFFFF; --line:#E1E6E3; --txt:#1F2A24; --dim:#66736B;
  --ok:#1E8E3E; --ok-bg:#E6F4EA; --warn:#B26A00; --warn-bg:#FFF4E0; --err:#C62828; --err-bg:#FDECEA;
  --info:#3E6FB0; --info-bg:#E8F0FB;
  --r:10px; --sombra:0 1px 2px rgba(16,24,20,.06),0 2px 8px rgba(16,24,20,.05);
  --font:'Lato',-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--font);font-size:14px;letter-spacing:.1px;color:var(--txt);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--pri)}
h1,h2,h3{margin:0;color:var(--txt)}
button,input,select,textarea{font:inherit}

/* ── Acceso ─────────────────────────────────────────────── */
.acceso{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#F6F9F7;
  background-image:radial-gradient(circle at 0% 100%,rgba(46,125,79,.10),transparent 40%),radial-gradient(circle at 100% 0%,rgba(59,130,182,.10),transparent 45%)}
.acceso .caja{background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px;max-width:400px;width:100%;box-shadow:0 18px 40px rgba(20,35,27,.10)}
.marca{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.marca img{height:64px;width:auto}
.marca b{display:block;font-size:16px}.marca small{color:var(--dim)}

/* ── Formularios y botones ──────────────────────────────── */
label{display:block;font-size:12px;font-weight:600;color:var(--dim);margin:12px 0 5px}
input,select,textarea{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--txt)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--pri-suave);border-color:var(--pri)}
.btn{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:8px;padding:9px 15px;font-weight:600;cursor:pointer;
  background:var(--pri);color:var(--sobre-pri);white-space:nowrap}
.btn:hover{background:var(--pri-hover)}
.btn:disabled{opacity:.55;cursor:default}
.btn.sec{background:#fff;color:var(--txt);border:1px solid var(--line)}
.btn.sec:hover{background:#F1F4F2}
.btn.peligro{background:var(--err);color:#fff}
.btn.sec.peligro-txt{color:var(--err);border-color:var(--err)}
.btn.chico{padding:5px 10px;font-size:12px}
.btn.ancho{width:100%;justify-content:center;margin-top:18px}
.aviso{padding:11px 13px;border-radius:8px;margin:12px 0;font-size:13px;line-height:1.5}
.aviso.ok{background:var(--ok-bg);color:var(--ok)}.aviso.err{background:var(--err-bg);color:var(--err)}
.aviso.warn{background:var(--warn-bg);color:var(--warn)}.aviso.info{background:var(--info-bg);color:var(--info)}

/* ── Estructura del portal ──────────────────────────────── */
.portal{display:flex;min-height:100vh}
.lateral{width:248px;flex:0 0 248px;background:var(--side);color:var(--side-txt);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.lateral .cab{padding:22px 18px 18px;border-bottom:1px solid rgba(255,255,255,.07);text-align:center}
.lateral .cab img{display:block;height:62px;width:auto;margin:0 auto 10px}
.lateral .cab small{display:block;color:var(--side-dim);font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;font-weight:600}
.menu{flex:1;overflow-y:auto;padding:10px 0 14px}
.menu::-webkit-scrollbar{width:6px}.menu::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:3px}
.menu .grupo{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--side-dim);padding:16px 22px 6px;font-weight:700}
.menu a{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 10px;padding:10px 12px;border-radius:10px;
  color:var(--side-txt);text-decoration:none;font-size:12.5px;font-weight:600;letter-spacing:.1px;transition:background .15s}
.menu a:hover{background:rgba(255,255,255,.06)}
.menu a.activo{background:var(--side-2);box-shadow:inset 3px 0 0 var(--marca)}
.lateral .pie{padding:12px 18px;border-top:1px solid rgba(255,255,255,.07);font-size:11px;color:var(--side-dim)}
.contenido{flex:1;min-width:0;display:flex;flex-direction:column}
.barra{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 26px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.barra h1{font-size:17px}
.barra .usr{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--dim)}
.burger{display:none;background:none;border:0;font-size:22px;cursor:pointer;color:var(--txt)}
.vista{padding:22px 26px 40px;max-width:1400px;width:100%}

/* ── Tarjetas, KPIs y tablas ────────────────────────────── */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sombra);padding:18px;margin-bottom:18px}
.card h2{font-size:14.5px;margin-bottom:12px}
.card .sub{color:var(--dim);font-size:12px;margin:-6px 0 12px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}
.kpi{background:#fff;border:2px solid #E7ECEA;border-radius:14px;padding:22px 16px 20px;text-align:center;
  box-shadow:0 2px 6px rgba(20,35,27,.04);transition:box-shadow .2s,transform .2s;position:relative}
.kpi:hover{box-shadow:0 8px 20px rgba(20,35,27,.08);transform:translateY(-1px)}
.kpi small{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#5F6B66;font-weight:600}
.kpi b{display:block;font-family:'Lato',sans-serif;font-weight:700;font-size:30px;line-height:1.1;margin:12px 0 8px;color:var(--txt);font-variant-numeric:tabular-nums}
.kpi span{font-size:12px;color:#7A8680}
/* Acento superior de color (como las tarjetas de precio del reporte actual) */
.kpi.acento{border-top:4px solid var(--acento,#1A9A5E)}
.kpi.a-ok{--acento:#1A9A5E}.kpi.a-info{--acento:#5B9BD5}.kpi.a-warn{--acento:#F39C12}.kpi.a-err{--acento:#E74C3C}
.k-ok b{color:#2E9E5B}.k-info b{color:#5B9BD5}.k-warn b{color:#F39C12}.k-err b{color:#E74C3C}
/* Medidor semicircular */
.medidor{display:block;margin:10px auto 0;width:150px;height:84px}
.medidor + b{margin-top:-34px;font-size:22px}
.kpi b.largo{font-size:24px;word-break:break-word}
.tabla-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
table{width:100%;border-collapse:collapse;font-size:12.5px;background:#fff}
th{background:#F5F7F6;text-align:left;font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--dim);padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid #EEF1EF;vertical-align:top}
tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
tr.total td{font-weight:700;background:#FAFBFA}
.chip{display:inline-block;padding:2px 9px;border-radius:12px;font-size:11px;font-weight:600;background:#EEF1EF;color:var(--dim)}
.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}
.chip.err{background:var(--err-bg);color:var(--err)}.chip.info{background:var(--info-bg);color:var(--info)}
.filtros{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:14px}
.filtros > div{min-width:160px}
.filtros label{margin-top:0}
.acciones{display:flex;flex-wrap:wrap;gap:8px}
.vacio{padding:28px;text-align:center;color:var(--dim)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cargando{padding:40px;text-align:center;color:var(--dim)}
.spin{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--pri);border-radius:50%;margin:0 auto 10px;animation:g .8s linear infinite}
@keyframes g{to{transform:rotate(360deg)}}
.paleta{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.paleta button{width:34px;height:34px;border-radius:8px;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;word-break:break-all}

/* ── Finanzas y KPIs (v7) ───────────────────────────────── */
.titulo-bloque{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--dim);margin:6px 0 10px;font-weight:700}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 14px}
.form-grid label{margin-top:10px}
.ayuda{display:block;color:var(--dim);font-size:11px;margin-top:4px;line-height:1.35}
.fila-inline{display:flex;gap:8px;align-items:center;margin:6px 0}
.fila-inline input{max-width:200px}
.num-cuota{width:28px;text-align:right;color:var(--dim);font-weight:600}
label.check{display:flex;gap:8px;align-items:center;font-weight:500;color:var(--txt)}
label.check input{width:auto}
.cab-cuenta{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.cab-cuenta h2{font-size:19px;display:flex;align-items:center;gap:10px;margin:4px 0}
.volver{font-size:12px;text-decoration:none;font-weight:600}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:4px 0 0}
.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:10px 14px;font-weight:600;color:var(--dim);cursor:pointer;font-size:12.5px}
.tabs button.activo{color:var(--pri);border-bottom-color:var(--pri)}
.tabs + .card{border-top-left-radius:0;border-top-right-radius:0}
.datos{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px 16px;margin:8px 0 16px}
.dato small{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--dim);font-weight:600}
.dato b{display:block;font-size:13px;margin-top:2px;font-weight:600}
.card h3{font-size:13px;margin:6px 0 4px}
.rojo{color:var(--err);font-weight:600}
.barras{display:flex;flex-direction:column;gap:8px}
.barra-fila{display:grid;grid-template-columns:minmax(80px,30%) 1fr auto;gap:10px;align-items:center;font-size:12px}
.barra-fila span{color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.barra-pista{background:#EEF2F0;border-radius:6px;height:12px;overflow:hidden}
.barra-relleno{height:100%;background:var(--pri);border-radius:6px}
.barra-relleno.b-warn{background:#F39C12}.barra-relleno.b-err{background:#E74C3C}
.barra-fila b{font-variant-numeric:tabular-nums;font-size:12px}
.kpis-mini{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.kpi.kpi-mini{padding:14px 12px 12px;text-align:left;border-width:1px;border-left-width:4px}
.kpi.kpi-mini b{font-size:21px;margin:8px 0 4px}
.kpi.kpi-mini em{display:block;font-style:normal;font-size:10.5px;color:var(--dim);margin-top:6px}
.kpi.kpi-mini .ver-lista{margin-top:8px}
.kpi.kpi-mini .sem{position:absolute;top:12px;right:12px}
.kpi.kpi-mini.nd{opacity:.7;border-style:dashed}
.sem-borde-verde{border-left-color:#2E9E5B}.sem-borde-amarillo{border-left-color:#F39C12}.sem-borde-rojo{border-left-color:#E74C3C}.sem-borde-n{border-left-color:#C9D2CD}
.sem{display:inline-block;width:11px;height:11px;border-radius:50%;vertical-align:middle;margin:0 4px 0 8px}
.sem-verde{background:#2E9E5B}.sem-amarillo{background:#F39C12}.sem-rojo{background:#E74C3C}
.leyenda{font-size:11.5px;color:var(--dim);line-height:1.8}
.notas-sac{background:#F5F7F6;border-radius:8px;padding:10px;white-space:pre-wrap;max-height:160px;overflow:auto;margin:0}

/* ── Ventanas ───────────────────────────────────────────── */
.modal-fondo{position:fixed;inset:0;background:rgba(10,15,12,.5);display:flex;align-items:center;justify-content:center;padding:18px;z-index:50}
.modal{background:#fff;border-radius:12px;max-width:720px;width:100%;max-height:92vh;overflow:auto;padding:22px;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.modal h3{font-size:16px;margin-bottom:6px}
.modal .pie-modal{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.checks label{display:flex;gap:8px;align-items:center;margin:0;font-weight:500;color:var(--txt)}
.checks input{width:auto}

/* ── Celular ────────────────────────────────────────────── */
@media (max-width:900px){
  .lateral{position:fixed;left:-260px;z-index:40;transition:left .2s}
  .lateral.abierto{left:0;box-shadow:0 0 40px rgba(0,0,0,.4)}
  .burger{display:block}
  .barra{padding:12px 16px}
  .vista{padding:16px}
  .grid2{grid-template-columns:1fr}
  .barra .usr span{display:none}
  .barra-fila{grid-template-columns:90px 1fr auto}
  .tabs button{padding:8px 10px}
}
/* v8 · Dashboard Comercial y Marketing */
.barra-relleno.b-info{background:#3B82C4}
.kpis-5{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
@media (min-width:1280px){.kpis-5{grid-template-columns:repeat(5,1fr)}}
.kpi .var{display:block;margin-top:6px;font-style:normal;font-size:11.5px;font-weight:600;color:#7A8680}
.kpi .var.var-ok{color:#2E9E5B}.kpi .var.var-err{color:#E74C3C}
.card-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-cab h2{margin:0}
.card.looker{padding:12px}
.looker-marco{position:relative;width:100%;max-width:1200px;margin:0 auto;background:#F4F6F5;border-radius:10px;overflow:hidden}
.looker-marco iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.card.looker .sub{margin-top:8px;text-align:center}
.kpi b small{display:inline;font-size:13px;letter-spacing:0;text-transform:none;font-weight:600;color:#7A8680;margin-left:2px}
/* v8 · Buscar cuenta para registrar pago */
.bp-res{margin-top:10px;max-height:360px;overflow:auto;display:flex;flex-direction:column;gap:6px}
.bp-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font:inherit}
.bp-item:hover{border-color:var(--pri);background:#F6FAF8}
.bp-item span{font-size:12px;color:#7A8680}.bp-item em{color:var(--err);font-style:normal;font-weight:600}
/* v9 · Estado de cuenta en vivo (pagina publica) y modal para compartir */
.enlace-fila{display:flex;gap:8px}.enlace-fila input{flex:1;font-size:12px}
.ec-cuerpo{background:#F4F6F5;height:auto;min-height:100%}
.ec{max-width:1040px;margin:0 auto;padding:22px 16px 30px}
.ec-cab{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.ec-cab img{width:64px;height:auto}.ec-cab b{display:block;font-size:18px}.ec-cab small{color:#7A8680;font-size:12px}
.ec-cliente{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.ec-cliente h1{font-size:20px;margin:0 0 4px}.ec-acciones{display:flex;gap:8px}
.ec-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.ec-cargando{text-align:center;color:#7A8680;padding:40px}
.ec-nota{font-size:12px;color:#7A8680;text-align:center;margin:6px 0 14px}
.ec-pie{font-size:11.5px;color:#9AA5A0;text-align:center;border-top:1px solid #E1E6E3;padding-top:14px}
@media (max-width:600px){.ec-cliente h1{font-size:17px}.ec .kpi b.largo{font-size:20px}}
@media (max-width:600px){.ec-kpis{grid-template-columns:1fr 1fr;gap:10px}.ec .kpi{padding:14px 10px}.ec .kpi span{font-size:11px}}
/* v10 · Portal del cliente (pestañas, checklist) y ficha WorkDrive */
.ec-tabs{margin:0 0 14px;background:#fff;border-radius:12px;padding:0 8px}
.ec-faltan{margin:8px 0 0;padding-left:20px;line-height:1.9}
.ec .datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.ec .datos small{display:block;font-size:11px;color:#7A8680;text-transform:uppercase;letter-spacing:.5px}
.ec .card textarea,.ec .card input{width:100%;box-sizing:border-box}
.ec .card .btn{margin-top:12px}
.wd-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:22px}
.wd-cab h3{margin:0}
.wd-grupo{margin-top:12px}.wd-grupo b{font-size:13px}
/* v11 · Expediente del broker */
.bk-fila{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.bk-fila b{display:block;color:var(--txt)}.bk-fila small{display:block;color:#7A8680;font-size:11.5px}
.bk-fila:hover b{color:var(--pri)}
.bk-avatar{flex:none;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--pri-suave);color:var(--pri);font-weight:700;font-size:12.5px;letter-spacing:.5px}
.bk-avatar.grande{width:58px;height:58px;font-size:19px}
.bk-cab .volver{display:inline-block;font-size:12.5px;margin-bottom:10px}
.bk-perfil{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.bk-perfil h2{margin:0 0 2px;font-size:20px}
.bk-contacto{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px;font-size:12.5px}
.bk-proy{margin-left:auto}
.chips-filtro{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.chips-filtro button{border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 14px;font:inherit;font-size:12.5px;cursor:pointer;color:var(--dim)}
.chips-filtro button b{margin-left:4px;color:var(--txt)}
.chips-filtro button.activo{background:var(--pri);border-color:var(--pri);color:#fff}.chips-filtro button.activo b{color:#fff}
.bk-barra{height:6px;border-radius:4px;background:#E8ECEA;overflow:hidden;min-width:90px;margin-bottom:3px}
.bk-barra i{display:block;height:100%;background:var(--pri)}
.txt-warn{color:var(--warn)}.txt-ok{color:var(--ok)}
@media (max-width:700px){.bk-proy{margin-left:0;width:100%}}
.card td .sub,td .sub{display:block;margin:3px 0 0;line-height:1.35;font-size:11.5px}
.kpis-6{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
@media (min-width:1280px){.kpis-6{grid-template-columns:repeat(6,1fr)}}
/* Enlace de pago del cliente (v13) */
.pg-unidades{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:4px}
.pg-unidad small{display:block;color:#7A8680;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px}
.pg-unidad>b{display:block;font-size:17px;margin:2px 0 10px}
.pg-fila{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:5px 0;border-top:1px solid #EEF1EF}
.pg-fila strong{font-size:15px}
.txt-err{color:var(--err)}
.pg-hist{display:flex;flex-direction:column}
.pg-mov{padding:11px 0;border-top:1px solid #EEF1EF}
.pg-mov-a{display:flex;justify-content:space-between;align-items:center;gap:10px}.pg-mov-a b{font-size:15px}
.pg-mov-b{font-size:12.5px;color:#4E5A54;margin:2px 0}
/* Finanzas: proyecciones y flujo real (v14) */
.fin-corte{margin-top:8px}
table.pivot th,table.pivot td{white-space:nowrap}
table.pivot th.centro{text-align:center}
table.pivot td.proy{color:var(--info);font-style:italic}
table.pivot th.th-proy{color:var(--info)}table.pivot th.th-err{color:var(--err)}
table.pivot .col-total{background:#F4F7F5}
table.pivot tr.fila-total td{font-weight:700;background:#F7F9F8}
table.pivot td a{color:inherit;text-decoration:none;border-bottom:1px dotted #9AA5A0}
table.pivot td a:hover{color:var(--pri)}
/* v39.1: primera columna fija al desplazar la tabla a la derecha */
table.pivot thead tr:first-child th:first-child,table.pivot tbody td:first-child{position:sticky;left:0;z-index:2;box-shadow:inset -1px 0 0 var(--line),4px 0 6px -4px rgba(0,0,0,.12)}
table.pivot thead tr:first-child th:first-child{background:#F5F7F6;z-index:3}
table.pivot tbody td:first-child{background:var(--card)}
table.pivot tr.fila-total td:first-child{background:#F7F9F8}
.leyenda{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11.5px}
.leyenda.real{background:#EEF1EF;color:var(--txt)}.leyenda.proy{background:var(--info-bg);color:var(--info);font-style:italic}
/* ── v16: enlaces al CRM, filas con ficha, comentarios ─────────────────── */
.enlaces-crm{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin-top:6px;font-size:12.5px}
.enlaces-crm span{color:var(--dim);font-weight:600}
.enlaces-crm a{font-weight:600;text-decoration:none;color:var(--pri)}
.enlaces-crm a:hover{text-decoration:underline}
a.chip{text-decoration:none}
tr.clic{cursor:pointer}
tr.clic:hover td{background:var(--pri-suave,#EAF6F0)}
tr.clic:focus{outline:2px solid var(--pri);outline-offset:-2px}
.card-sub{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#FAFBFA;margin-top:10px}
.comentarios{display:flex;flex-direction:column;gap:10px}
.comentario{border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:#fff}
.com-cab{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12.5px}
.com-cab b{font-size:13px}
.com-cab a{font-size:12px}
.com-crm{margin-left:auto}
.com-texto{white-space:pre-wrap;font-size:13px;line-height:1.55;margin-top:6px;color:var(--txt)}
@media (max-width:600px){.com-crm{margin-left:0}.enlaces-crm{font-size:12px}}

/* ── v18: etiqueta «Revisar fechas plan», resumen de abonos ───────────────── */
.chip.etiqueta-revisar { background: #E04F4F; color: #fff; border-color: #E04F4F; font-weight: 600; white-space: nowrap; }
.etiqueta-revisar-aviso { border-left: 4px solid #E04F4F; }
.kpis-abono .kpi small { display: block; }
.kpis-abono .kpi .sub { display: block; font-size: 12px; }
.barra-abono { height: 6px; border-radius: 3px; background: rgba(127, 127, 127, .2); margin-top: 6px; overflow: hidden; }
.barra-abono span { display: block; height: 100%; background: currentColor; opacity: .75; border-radius: 3px; }

/* ── v19: Estado de comisiones, ficha de empresa broker y enlace del broker ── */
.barra-com{height:6px;background:#E7ECEA;border-radius:4px;overflow:hidden;margin:6px auto 0;min-width:60px;max-width:180px}
.barra-com span{display:block;height:100%;background:var(--pri);border-radius:4px}
.kpi .barra-com{margin:8px auto 0}
td .barra-com{margin-left:auto;margin-right:0}
.verde{color:var(--ok);font-weight:600}
.naranja{color:var(--warn);font-weight:600}
tr.fila-suma td{background:#F2FAF6}
tr.fila-suma td:first-child{border-left:3px solid var(--pri)}
td small{color:var(--dim)}
.cab-ficha{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.cab-ficha .acciones{display:flex;gap:8px;flex-wrap:wrap}
.ec-explica{font-size:13px;line-height:1.55;color:#3D4A43;background:var(--pri-suave);border:1px solid #CDEBDC}
.ec-acciones select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit}
.solo-imprimir{display:none}
.informe-cab{align-items:center;gap:16px;margin-bottom:14px}
.informe-cab h1{font-size:18px;margin:0}
@media print{
  body{background:#fff}
  .lateral,.barra,.no-imprimir,.filtros,.acciones,.ec-acciones,.tabs,button,.btn,.ec-pie,#modales{display:none!important}
  .solo-imprimir{display:block}.informe-cab.solo-imprimir{display:flex}
  .vista,.ec{padding:0!important;margin:0!important;max-width:none!important}
  .card{box-shadow:none;border:1px solid #DDD;break-inside:avoid;page-break-inside:avoid}
  .kpis{grid-template-columns:repeat(4,1fr)!important;gap:8px}
  .kpi{padding:10px 6px}.kpi b,.kpi b.largo{font-size:16px}
  table{font-size:10.5px}th,td{padding:4px 6px!important}
  a{color:inherit;text-decoration:none}
  .tabla-wrap{overflow:visible!important}
  tr.clic{cursor:default}
}
.kpis-com{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}
.kpis-com .kpi{padding:16px 10px 14px}
.kpis-com .kpi b.largo{font-size:21px;white-space:nowrap}
.tabla-com table{font-size:12px}
.tabla-com th,.tabla-com td{padding:7px 6px}
.tabla-com td.num{white-space:nowrap}
.tabla-com td:first-child{min-width:130px}
@media (max-width:600px){.kpis-com{grid-template-columns:1fr 1fr}.kpis-com .kpi b.largo{font-size:17px}}
/* Enlace del broker en teléfono: la tabla se desliza dentro de su marco en vez de apretar las columnas */
.bk-p .tabla-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.bk-p td:first-child{white-space:nowrap}
@media (max-width:700px){.bk-p .tabla-wrap table{min-width:680px}.bk-p .tabla-wrap::after{content:'Deslice la tabla →';display:block;font-size:11px;color:#7A8680;padding:6px 10px}}

/* ── v20: pendiente en tres bloques (cortes cobrados · último corte · posterior), alertas ── */
.bloques{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:6px 0 10px}
.bloque{border-radius:12px;padding:14px 14px 12px;border:1px solid var(--line);background:#fff;border-top:4px solid #ccc}
.bloque small{display:block;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:#5F6B66;font-weight:700}
.bloque b{display:block;font-size:22px;margin:6px 0 4px;font-variant-numeric:tabular-nums;white-space:nowrap}
.bloque span{font-size:12px;color:#7A8680;line-height:1.4}
.bloque.b-real{border-top-color:#2E9E5B}.bloque.b-real b{color:#1E7E46}
.bloque.b-corte{border-top-color:#5B9BD5}.bloque.b-corte b{color:#2F6EAD}
.bloque.b-post{border-top-color:#F39C12}.bloque.b-post b{color:#B26A00}
.bloque.b-total{border-top-color:#C62828;background:#FFF8F7}.bloque.b-total b{color:var(--err)}
.bloques-ficha{margin-top:-4px}
.bloques-mini{margin-top:4px}
.bloque-lin{font-size:11px;color:#66736B;white-space:nowrap;line-height:1.5}
.bloque-lin b{font-weight:600;color:#3D4A43}
.punto{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:middle}
.punto.b-real{background:#2E9E5B}.punto.b-corte{background:#5B9BD5}.punto.b-post{background:#F39C12}
.texto-alerta{font-size:12px;line-height:1.45;max-width:340px;white-space:normal}
.aviso.warn{background:var(--warn-bg);color:#7A4A00;border-left:4px solid var(--warn)}
@media print{.bloque{break-inside:avoid}.bloque b{font-size:15px}}
.ec-kpis .kpi b.largo{font-size:21px;white-space:nowrap}
@media (max-width:600px){.ec-kpis .kpi b.largo{font-size:16px}}

/* ── v21: filtros de fecha con atajos y gráfico mes a mes ── */
.barra-fechas{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 16px;margin:10px 0 4px}
.bf-campos{display:flex;gap:10px}
.bf-campos input{padding:7px 9px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px}
.bf-chips{display:flex;flex-wrap:wrap;gap:6px}
.chip-filtro{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font:inherit;font-size:12px;font-weight:600;color:#3D4A43;cursor:pointer}
.chip-filtro:hover{border-color:var(--pri);color:var(--pri)}
.chip-filtro.activo{background:var(--pri);border-color:var(--pri);color:#fff}
.card-fechas{padding-top:6px;padding-bottom:8px}
.segmento{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.segmento button{border:0;background:#fff;padding:6px 14px;font:inherit;font-size:12px;font-weight:600;color:#3D4A43;cursor:pointer}
.segmento button.activo{background:var(--pri);color:#fff}
.grafico{width:100%;height:auto;display:block;margin-top:4px}
.g-reja{stroke:#E7ECEA;stroke-width:1}
.g-eje{font-size:11px;fill:#7A8680;font-family:inherit}
.g-eje-s{fill:#C62828}
.g-gen{fill:#1A9A5E}.g-pag{fill:#5B9BD5}
.g-saldo{fill:none;stroke:#C62828;stroke-width:2.2;stroke-linejoin:round}
.g-punto{fill:#fff;stroke:#C62828;stroke-width:2}
.g-leyenda{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:12.5px;color:#3D4A43;margin-top:6px}
.g-leyenda i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.g-l-gen{background:#1A9A5E}.g-l-pag{background:#5B9BD5}.g-l-saldo{background:#C62828;height:3px!important;border-radius:2px!important;vertical-align:3px!important}
.g-txt-gen{color:#1E7E46;font-weight:600}.g-txt-pag{color:#2F6EAD;font-weight:600}
@media (max-width:600px){.bf-campos{width:100%}.bf-campos>div{flex:1}.bf-campos input{width:100%}}
@media print{.grafico{max-height:240px}}
.periodo-mini{font-size:11px;color:#66736B;margin-top:3px;line-height:1.45;white-space:nowrap}

/* ══ v22: menú lateral Novazys — grupos plegables con ícono y color, punto por opción, destacadas, ☰ y tono ══ */
.lateral .cab{padding:18px 18px 14px}
.lateral .cab img{height:56px}
.menu{padding:8px 0 14px}
.menu .m-grupo{margin-top:2px}
.menu .m-grupo > .grupo{display:flex;align-items:center;gap:10px;width:calc(100% - 20px);margin:4px 10px 2px;padding:8px 10px;border:0;border-radius:10px;background:none;cursor:pointer;
  font:inherit;font-size:10.5px;text-transform:uppercase;letter-spacing:1.1px;color:var(--side-dim);font-weight:700;text-align:left;transition:background .15s,color .15s}
.menu .m-grupo > .grupo span{flex:1}
.menu .m-grupo > .grupo:hover{background:rgba(255,255,255,.05);color:var(--side-txt)}
.menu .m-grupo > .grupo:focus-visible{outline:2px solid var(--marca);outline-offset:1px}
.m-gico{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:color-mix(in srgb,var(--gc) 22%,transparent);color:var(--gc)}
.m-gico svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.menu .m-grupo.abierto > .grupo{color:var(--side-txt)}
.menu .chev{width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .2s;margin-right:4px;opacity:.7}
.menu .m-grupo.abierto .chev{transform:rotate(45deg)}
.menu .m-cuenta{font-style:normal;font-size:9.5px;letter-spacing:0;padding:1px 7px;border-radius:9px;background:rgba(255,255,255,.08);color:var(--side-dim);transition:opacity .2s}
.menu .m-grupo.abierto .m-cuenta{opacity:0}
.menu .m-items{display:grid;grid-template-rows:0fr;transition:grid-template-rows .22s ease}
.menu .m-grupo.abierto .m-items{grid-template-rows:1fr}
.menu .m-items > div{overflow:hidden;min-height:0}
.menu a{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:1px 10px 1px 18px;padding:8px 12px;border-radius:999px;font-size:12.5px;font-weight:600}
.menu a .m-txt{flex:1;min-width:0}
.m-punto{flex:none;width:8px;height:8px;border-radius:50%;background:var(--gc);box-shadow:0 0 0 3px color-mix(in srgb,var(--gc) 18%,transparent)}
.menu a:hover{background:rgba(255,255,255,.06)}
.menu a.activo{background:color-mix(in srgb,var(--gc) 26%,var(--side));box-shadow:inset 3px 0 0 var(--gc);color:#fff}
/* Destacadas: Integraciones (celeste → violeta) e Importar históricos / migración (verde → azul) */
.menu a.m-integ{margin:6px 10px 6px 18px;padding:9px 12px;border-radius:12px;color:#fff;font-weight:700;
  background:linear-gradient(135deg,rgba(14,165,233,.22),rgba(124,58,237,.30));border:1px solid rgba(167,139,250,.45)}
.menu a.m-integ:hover{background:linear-gradient(135deg,rgba(14,165,233,.35),rgba(124,58,237,.45))}
.menu a.m-integ.activo{background:linear-gradient(135deg,#0EA5E9,#7C3AED);border-color:transparent;box-shadow:0 6px 18px -6px rgba(124,58,237,.7)}
.m-integ-ico{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,#0EA5E9,#7C3AED);color:#fff;font-style:normal;font-size:12px;font-weight:800}
.menu a.m-integ.activo .m-integ-ico{background:rgba(255,255,255,.25)}
.menu a.m-migra{background:linear-gradient(135deg,rgba(34,181,115,.22),rgba(14,165,233,.28));border-color:rgba(52,211,153,.5)}
.menu a.m-migra:hover{background:linear-gradient(135deg,rgba(34,181,115,.35),rgba(14,165,233,.42))}
.menu a.m-migra .m-integ-ico{background:linear-gradient(135deg,#22B573,#0EA5E9)}
.menu a.m-migra.activo{background:linear-gradient(135deg,#1A9A5E,#0EA5E9);box-shadow:0 6px 18px -6px rgba(14,165,233,.7)}
@media (prefers-reduced-motion:reduce){.menu .m-items,.menu .chev{transition:none}}
/* ☰ en computadora: oculta o muestra el menú */
@media (min-width:901px){
  .burger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;font-size:20px;margin-left:-6px}
  .burger:hover{background:var(--pri-suave);color:var(--pri)}
  .lateral{transition:margin-left .2s ease}
  body.menu-plegado .lateral{margin-left:-248px;visibility:hidden}
}
@media (prefers-reduced-motion:reduce){.lateral{transition:none}}
/* Tono claro del menú (Mi perfil) */
body[data-tema-menu="claro"]{--side:#FFFFFF;--side-2:var(--pri-suave);--side-txt:#1F2937;--side-dim:#6B7280}
body[data-tema-menu="claro"] .lateral{border-right:1px solid var(--line);box-shadow:2px 0 14px rgba(15,23,42,.04)}
body[data-tema-menu="claro"] .lateral .cab,body[data-tema-menu="claro"] .lateral .pie{border-color:var(--line)}
body[data-tema-menu="claro"] .menu a{color:#1F2937}
body[data-tema-menu="claro"] .menu a:hover{background:#F2F5F9}
body[data-tema-menu="claro"] .menu a.activo{background:color-mix(in srgb,var(--gc) 14%,#fff);color:#0F172A}
body[data-tema-menu="claro"] .menu .m-grupo > .grupo:hover{background:#F2F5F9;color:#111827}
body[data-tema-menu="claro"] .menu .m-cuenta{background:#EEF1F5;color:#6B7280}
body[data-tema-menu="claro"] .menu::-webkit-scrollbar-thumb{background:#D7DDE5}
body[data-tema-menu="claro"] .menu a.m-integ{color:#4C1D95;background:linear-gradient(135deg,#E0F2FE,#EDE9FE);border-color:#C4B5FD}
body[data-tema-menu="claro"] .menu a.m-migra{color:#065F46;background:linear-gradient(135deg,#DCFCE7,#E0F2FE);border-color:#86EFAC}
body[data-tema-menu="claro"] .menu a.m-integ.activo,body[data-tema-menu="claro"] .menu a.m-migra.activo{color:#fff}
body[data-tema-menu="claro"] .menu a.m-integ.activo{background:linear-gradient(135deg,#0EA5E9,#7C3AED)}
body[data-tema-menu="claro"] .menu a.m-migra.activo{background:linear-gradient(135deg,#1A9A5E,#0EA5E9)}
.seg-tema{margin:6px 0 4px}

/* ── v24: guía contextual (§118) ── */
.guia-q{display:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--pri);font-weight:800;cursor:pointer;font-size:13px;flex:0 0 auto}
.guia-q.si{display:inline-grid;place-items:center}
.guia-q:hover{background:var(--pri-suave)}
.guia-abrir{border:1px solid var(--line);background:#fff;color:var(--pri);border-radius:8px;padding:5px 10px;font-weight:700;font-size:12px;cursor:pointer;margin-right:8px}
.guia-abrir:hover{background:var(--pri-suave)}
.guia-fondo{position:fixed;inset:0;background:rgba(10,15,30,.35);z-index:60}
.guia-panel{position:fixed;top:0;right:0;bottom:0;width:min(780px,96vw);background:#fff;z-index:61;display:flex;flex-direction:column;box-shadow:-20px 0 50px rgba(0,0,0,.25)}
.guia-cab{display:flex;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.guia-cab b{font-size:15px;flex:1}
.guia-cab input{max-width:260px}
.guia-cuerpo{flex:1;display:grid;grid-template-columns:210px 1fr;min-height:0}
.guia-indice{border-right:1px solid var(--line);overflow:auto;padding:8px}
.guia-indice a{display:block;padding:8px 10px;border-radius:8px;color:var(--txt);text-decoration:none;font-weight:600;font-size:12.5px;cursor:pointer}
.guia-indice a:hover{background:#F2F5FA}.guia-indice a.on{background:var(--pri-suave);color:var(--pri)}
.guia-texto{overflow:auto;padding:16px 20px;line-height:1.6}
.guia-texto h3{font-size:17px;margin:0 0 6px;color:var(--pri)}
.guia-texto h4{font-size:13px;margin:16px 0 6px;text-transform:uppercase;letter-spacing:.5px;color:var(--dim)}
.guia-texto ul{margin:0;padding-left:20px}.guia-texto li{margin:4px 0}
.card.guia-texto{overflow:visible}
.guia-hit{padding:10px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px;cursor:pointer}
.guia-hit:hover{border-color:var(--pri)}.guia-hit small{display:block;color:var(--dim);font-weight:700}
@media (max-width:700px){.guia-cuerpo{grid-template-columns:1fr}.guia-indice{display:none}.guia-cab input{max-width:none;order:3;width:100%}.guia-abrir{padding:5px 8px}}
#impresion{display:none}
@media print{body.imprimiendo>*:not(#impresion){display:none!important}body.imprimiendo #impresion{display:block!important;padding:20px}body.imprimiendo .guia-texto{overflow:visible;break-inside:avoid-page}}
/* v30: Reservas (chips por fase) y Resumen financiero */
.chips-fila{display:flex;flex-wrap:wrap;gap:8px}
.chip-fase{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;color:inherit;text-decoration:none;min-width:130px}
.chip-fase b{font-size:18px}.chip-fase small{color:var(--dim)}.chip-fase.activo,.chip-fase:hover{border-color:var(--pri);background:var(--info-bg)}
.rf-tabla{width:100%;border-collapse:collapse}.rf-tabla td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.rf-tabla td.num{text-align:right;white-space:nowrap;font-size:15px}.rf-tabla td.verde b{color:var(--ok)}.rf-tabla td.rojo b{color:var(--err)}
@media (max-width:700px){.rf-tabla td:nth-child(3){display:none}.chip-fase{min-width:110px}}
/* v30: montos completos a dos decimales en los KPI: no se parten a mitad del número */
.kpi b.largo{font-size:clamp(15px,1.5vw,22px);white-space:nowrap;word-break:normal;overflow-wrap:normal}
@media (max-width:600px){.kpi b.largo{font-size:15px;white-space:normal;overflow-wrap:anywhere}}
/* v31: comprobante obligatorio o fecha de compromiso */
.caja-comp{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:1px dashed var(--borde,#d0d5dd);border-radius:12px;padding:10px 12px;margin:10px 0}
@media (max-width:640px){.caja-comp{grid-template-columns:1fr}}
/* v31: el monto del KPI no se sale del cuadro (js/ajuste_kpi.js reduce la letra si hace falta) */
.kpi{min-width:0;overflow:hidden}
.kpi b{max-width:100%;overflow:hidden;text-overflow:clip}
/* v33: fila total de ingresos del Resumen financiero */
.rf-tabla tr.rf-total td{border-bottom:2px solid var(--line);font-weight:700}.rf-tabla tr.rf-total td.num{font-size:17px}

/* ── v37: Centro de Configuración (engranaje arriba a la derecha, como la Configuración del CRM) ── */
.engranaje{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;color:#5F6B66;border:1px solid transparent;transition:background .15s,color .15s}
.engranaje svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.engranaje:hover{background:#EEF2F0;color:var(--txt)}
.engranaje.activo{background:var(--pri-suave);color:var(--pri);border-color:var(--pri)}
.volver-config{font-size:12.5px;font-weight:700;color:var(--dim);text-decoration:none;padding:4px 8px;border-radius:7px;background:#F1F4F2;white-space:nowrap}
.volver-config:hover{color:var(--pri);background:var(--pri-suave)}
.volver-config[hidden]{display:none}
.aj-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.aj-cab h2{font-size:22px;font-weight:700}
.aj-cab .sub{margin:4px 0 0}
.aj-buscar{min-width:260px;max-width:340px;flex:1}
.aj-buscar input{border-radius:9px;padding:10px 12px 10px 34px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2366736B' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 10px center/16px}
.aj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;align-items:start}
.aj-tarjeta{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 16px 10px;box-shadow:var(--sombra)}
.aj-tarjeta h3{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;margin:0 0 8px}
.aj-ico{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:color-mix(in srgb,var(--gc) 14%,#fff);color:var(--gc)}
.aj-ico svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.aj-op{display:block;padding:8px 10px;margin:0 -6px;border-radius:9px;text-decoration:none;color:var(--txt)}
.aj-op b{display:block;font-size:14px;font-weight:400;color:#24324A}
.aj-op small{display:block;font-size:12px;color:var(--dim);margin-top:2px;line-height:1.35}
.aj-op:hover{background:#F3F6FA}
.aj-op:hover b{color:var(--pri)}
@media (max-width:640px){.aj-buscar{min-width:0;max-width:none;width:100%}.aj-grid{grid-template-columns:1fr}}

/* ── v37: ícono ⓘ de cada KPI y cuadro de resumen + su ventana ── */
button.hint{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:6px;padding:0;border-radius:50%;
  border:1.5px solid #9AA6A0;background:#fff;color:#6B7772;font:italic 700 10px/1 Georgia,'Times New Roman',serif;cursor:pointer;vertical-align:1px;
  letter-spacing:0;text-transform:none;flex:none}
button.hint:hover,button.hint:focus-visible{border-color:var(--pri);color:var(--pri);background:var(--pri-suave);outline:none}
.kpi.con-hint{position:relative}
.kpi.con-hint > small > button.hint{position:absolute;top:9px;right:9px;margin:0}
.kpi.con-hint > small{padding:0 14px}
.kpi.kpi-mini.con-hint > small{padding:0 18px 0 0}
th > button.hint{width:14px;height:14px;font-size:9px;margin-left:4px}
.hint-pop{position:fixed;z-index:60;width:min(380px,calc(100vw - 24px));max-height:min(70vh,520px);overflow:auto;background:#fff;border:1px solid var(--line);
  border-radius:12px;box-shadow:0 18px 40px rgba(20,35,27,.18);padding:14px 16px 12px;font-size:13px;line-height:1.5;color:var(--txt);text-align:left}
.hint-pop .hint-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:4px}
.hint-pop .hint-cab b{font-size:14px;font-weight:700}
.hint-pop .hint-x{border:0;background:#F1F4F2;border-radius:7px;width:26px;height:26px;font-size:17px;line-height:1;cursor:pointer;color:var(--dim);flex:none}
.hint-pop h5{margin:10px 0 2px;font-size:11px;letter-spacing:.8px;text-transform:uppercase;color:var(--pri);font-weight:700}
.hint-pop p{margin:0}
.hint-pop.hint-hoja{left:12px!important;right:12px;bottom:12px;top:auto!important;width:auto;max-height:75vh}
@media print{button.hint,.hint-pop,.engranaje{display:none!important}}
.guia-abrir{white-space:nowrap}
.bloque.con-hint{position:relative}.bloque.con-hint > small > button.hint{position:absolute;top:8px;right:8px;margin:0}.card h2 > button.hint,.card-cab h2 > button.hint,h3.titulo-bloque > button.hint{vertical-align:2px}

/* v38: buscador maestro (barra superior) y página de resultados */
.bm{flex:1;max-width:460px;display:flex;align-items:center;gap:8px;background:#F4F7F5;border:1px solid var(--line);border-radius:10px;padding:0 12px;height:38px;margin:0 8px}
.bm:focus-within{border-color:var(--pri);background:#fff;box-shadow:0 0 0 3px rgba(26,135,84,.12)}
.bm svg{width:17px;height:17px;fill:none;stroke:#7A8680;stroke-width:2;stroke-linecap:round;flex:none}
.bm input{border:0;background:transparent;outline:0;width:100%;font:inherit;font-size:13.5px;color:var(--txt);padding:0;height:36px;min-width:0}
.bs-cab{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-bottom:12px}
.bs-cab h2{font-size:18px;margin:0}
.bs-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 16px}
.bs-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:12.5px;color:var(--txt);text-decoration:none;cursor:pointer}
.bs-chip b{background:#EAF5EF;color:var(--pri);border-radius:999px;padding:1px 8px;font-size:11.5px}
.bs-chip:hover{border-color:var(--pri)}
.bs-mod{margin-bottom:14px}
.bs-mod h3{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:15px;margin:0 0 8px}
.bs-mod h3 small{font-weight:400;color:var(--dim);font-size:12px}
.bs-fila{display:grid;grid-template-columns:1fr auto auto;gap:6px 14px;align-items:center;padding:10px 4px;border-top:1px solid var(--line)}
.bs-fila:first-of-type{border-top:0}
.bs-fila a.bs-t{font-weight:700;color:var(--txt);text-decoration:none}
.bs-fila a.bs-t:hover{color:var(--pri);text-decoration:underline}
.bs-fila small{display:block;color:var(--dim);font-size:12px;margin-top:2px}
.bs-fila .bs-m{font-variant-numeric:tabular-nums;font-size:13px;text-align:right;white-space:nowrap}
.bs-fila .bs-crm{font-size:12px;white-space:nowrap}
mark.bs{background:#FFF3B0;color:inherit;padding:0 1px;border-radius:2px}
@media (max-width:900px){.bm{order:3;flex-basis:100%;max-width:none;margin:8px 0 0}.barra{flex-wrap:wrap}}
@media (max-width:600px){.bs-fila{grid-template-columns:1fr auto}.bs-fila .bs-m{display:none}}

/* v40: compartir la presentación con un externo */
.pres-compartir{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.pres-compartir h4{margin:0 0 4px;font-size:15px}
.pres-compartir .fila-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.pres-compartir .fila-form label{margin-top:6px;flex:0 0 120px}
.pres-compartir .fila-form label.crece{flex:1 1 200px}
.pres-compartir .fila-form .btn{margin-top:6px}
.enlace-copiar{display:flex;gap:8px;margin:8px 0 6px;flex-wrap:wrap}
.enlace-copiar input{flex:1 1 220px;min-width:0;font-family:monospace;font-size:12px;background:#fff}
.pres-lista{margin-top:10px}
.pres-lista td .sub{font-size:11px;margin:0}
.pres-lista .acciones-fila{white-space:nowrap;text-align:right}
.pres-lista .acciones-fila .btn{margin-left:4px}
/* v42: tipo de enlace (en vivo / foto) */
.pres-compartir .fila-form label:first-child{flex:0 0 230px}
