/* EliteOne Analytics — sistema v2 (18-oct-2026). Se carga la ÚLTIMA en todas las vistas, después de base.css.
   Menú lateral, contenido a todo el ancho, letra que crece con la pantalla (15 px a 1280 → 17 px a 1920),
   títulos en Fraunces (serif de la marca), resto en Inter. Marca azul y blanco de la app (el oro sigue descartado).
   Solo presentación: no toca ids, data-* ni manejadores que usa el JS de cada página. */

@font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 300 700; font-display: swap; src: url(/fonts/fraunces-var.woff2) format('woff2'); }

:root {
  --a-bg: #f6f7f9; --a-card: #fff; --a-line: #e6e9ee; --a-line-2: #f0f2f5;
  --a-t1: #0f172a; --a-t2: #334155; --a-t3: #5b6779;
  --a-acc: #2563eb; --a-acc-2: #1d4ed8; --a-acc-bg: #eff4ff;
  --a-ok: #15803d; --a-ok-bg: #ecfdf3; --a-warn: #b45309; --a-warn-bg: #fff7ed; --a-bad: #b91c1c; --a-cold: #4338ca;
  --a-r: 10px; --a-r-lg: 14px;
  --a-sh: 0 1px 2px rgba(15,23,42,.04), 0 1px 1px rgba(15,23,42,.03);
  --a-serif: 'Fraunces', Georgia, serif; --a-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --a-lado: 240px; --a-pad: 32px;
}

html { font-size: clamp(16px, .5vw + 9.6px, 18px); }  /* 16 px a 1280 · 16,8 a 1440 · 18 desde 1680 */
body, .ds-body { font-family: var(--a-sans); font-size: 1rem; line-height: 1.45; color: var(--a-t1); background: var(--a-bg) !important;
  -webkit-font-smoothing: antialiased; font-variant-numeric: tabular-nums; }

/* ================= Menú lateral ================= */
.lado { position: fixed; inset: 0 auto 0 0; width: var(--a-lado); z-index: 60; background: #fff; border-right: 1px solid var(--a-line);
  padding: 20px 12px 12px; display: flex; flex-direction: column; gap: 18px; overflow-y: auto; font-family: var(--a-sans); }
.lado-marca { display: flex; align-items: center; gap: 10px; padding: 0 8px; color: var(--a-t1); font-weight: 650; font-size: 1rem; letter-spacing: -.01em; text-decoration: none; }
.lado-marca i { width: 28px; height: 28px; border-radius: 8px; background: var(--a-acc); color: #fff; display: grid; place-items: center; font-style: normal; font-size: .75rem; font-weight: 700; flex: none; }
.lado-nav { display: flex; flex-direction: column; gap: 18px; }
.lado-grupo { display: flex; flex-direction: column; gap: 2px; }
.lado-grupo small { font-size: .75rem; font-weight: 600; color: var(--a-t3); padding: 0 10px 4px; }
.lado-grupo a { display: flex; align-items: center; min-height: 36px; padding: 0 10px; border-radius: 8px; color: var(--a-t2); font-weight: 500; font-size: 1rem; text-decoration: none; white-space: nowrap; }
.lado-grupo a:hover { background: var(--a-bg); color: var(--a-t1); }
.lado-grupo a[aria-current="page"] { background: var(--a-acc-bg); color: var(--a-acc-2); font-weight: 600; }
.lado-yo { margin-top: auto; display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; align-items: center; padding: 12px 8px 4px; border-top: 1px solid var(--a-line); }
.ava { width: 32px; height: 32px; border-radius: 50%; background: var(--a-acc-bg); color: var(--a-acc-2); display: inline-grid; place-items: center; font-size: .75rem; font-weight: 650; flex: none; font-style: normal; }
.lado-yo-txt { line-height: 1.25; min-width: 0; }
.lado-yo-txt b { display: block; font-size: .9375rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lado-yo-txt small { font-size: .75rem; color: var(--a-t3); }
.lado-yo-acc { grid-column: 1 / -1; display: flex; gap: 6px; }
.lado-yo-acc a, .lado-yo-acc button { flex: 1; min-height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--a-line); border-radius: 8px;
  background: #fff; color: var(--a-t2); font: inherit; font-size: .875rem; font-weight: 500; text-decoration: none; cursor: pointer; white-space: nowrap; }
.lado-yo-acc a:hover, .lado-yo-acc button:hover { background: var(--a-bg); }
body:has(> .lado) { padding-left: var(--a-lado); }

/* ================= Lienzo a todo el ancho ================= */
.container, .canvas, .ds-canvas, .vsl-lienzo { max-width: none !important; margin: 0 !important; padding: 28px var(--a-pad) 64px !important; }
.ds-report-header-inner, .vsl-cab-in, .vsl-secc-in { max-width: none !important; padding-left: var(--a-pad) !important; padding-right: var(--a-pad) !important; }
.mp { max-width: 960px; }

/* ================= Cabecera de página ================= */
.pg-cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; padding-bottom: 20px; border-bottom: 1px solid var(--a-line); margin-bottom: 24px; }
.pg-eyebrow { font-size: .875rem; font-weight: 600; color: var(--a-acc-2); margin-bottom: 4px; }
.pg-cab h1 { font-family: var(--a-serif); font-weight: 600; font-size: 2.125rem; line-height: 1.1; letter-spacing: -.015em; color: var(--a-t1); margin: 0; }
.pg-sub { color: var(--a-t3); margin-top: 6px; font-size: 1rem; }
.pg-ctrl { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.vsl-h1, .ds-report-title { font-family: var(--a-serif) !important; font-weight: 600 !important; letter-spacing: -.015em; }

/* control segmentado (edición, lanzamiento, filtros cortos) */
.seg, .ed-tabs, .mp-filtros-seg { display: inline-flex !important; flex-wrap: nowrap; background: #fff; border: 1px solid var(--a-line); border-radius: 10px; padding: 3px; gap: 2px; margin: 0 !important; }
.seg a, .ed-tabs a { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 6px; min-height: 34px; padding: 0 14px !important; border: 0 !important;
  border-radius: 7px !important; background: none !important; color: var(--a-t3) !important; font-weight: 500 !important; font-size: .9375rem !important; white-space: nowrap; min-width: 0 !important; text-decoration: none; }
.seg a small, .ed-tabs a small { display: none; }
.seg a[aria-current="page"], .seg a.on, .ed-tabs a[aria-current="page"] { background: var(--a-t1) !important; color: #fff !important; }

/* ================= Cifras ================= */
.ev-kpis, .stats-bar, .kpi-row, .mp-kpis, .ds-kpi-row { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important; gap: 16px !important; margin: 0 0 24px !important; }
.ev-kpi, .stat-card, .kpi, .mp-kpi, .ds-kpi { background: #fff !important; border: 1px solid var(--a-line) !important; border-radius: var(--a-r-lg) !important; padding: 18px 20px !important;
  box-shadow: var(--a-sh) !important; text-align: left !important; display: flex !important; flex-direction: column; gap: 2px; }
.ev-kpi-l, .stat-label, .kpi-label, .mp-kpi small, .ds-kpi-label { order: -1; font-size: .9375rem !important; font-weight: 500 !important; color: var(--a-t3) !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 !important; }
.ev-kpi b, .stat-number, .kpi-value, .mp-kpi b, .ds-kpi-value { font-size: 2rem !important; font-weight: 650 !important; letter-spacing: -.02em !important; line-height: 1.1 !important; margin: 4px 0 2px; }
.ev-kpi-n, .ds-kpi-sub { font-size: .875rem !important; color: var(--a-t3) !important; }
.ev-kpi-alerta { border-color: #fcd9b6 !important; background: #fffaf5 !important; }
.ev-kpi-alerta b { color: var(--a-warn) !important; }
.kpi-body { display: contents !important; }
.ds-kpi-body, .ds-kpi-content { display: flex; flex-direction: column; }

/* ================= Cajas y pestañas ================= */
.caja, .card, .ds-card, .rpt-card { background: #fff; border: 1px solid var(--a-line) !important; border-radius: var(--a-r-lg) !important; box-shadow: var(--a-sh) !important; }
.caja { overflow: hidden; }
.tabs, .sub-tabs { display: flex !important; gap: 4px !important; padding: 8px 8px 0 !important; margin: 0 !important; border-bottom: 1px solid var(--a-line); overflow-x: auto; scrollbar-width: none; background: #fff; }
.tabs a, .sub-tab { display: inline-flex !important; align-items: center; padding: 10px 14px !important; border: 0 !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important;
  margin-bottom: -1px; background: none !important; color: var(--a-t3) !important; font-weight: 500 !important; font-size: 1rem !important; white-space: nowrap; text-decoration: none; }
.tabs a[aria-current="page"], .sub-tab.active { color: var(--a-t1) !important; border-bottom-color: var(--a-acc) !important; font-weight: 600 !important; }
.sub-tab .tab-count, .tabs b { font-weight: 600 !important; font-size: .75rem !important; color: var(--a-t3) !important; background: #eceff3 !important; border-radius: 999px !important; padding: 1px 8px !important; margin-left: 8px !important; }
.sub-tab.active .tab-count { background: var(--a-acc-bg) !important; color: var(--a-acc-2) !important; }
.herr { display: flex; gap: 8px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--a-line); flex-wrap: wrap; }
.herr .search-input, .herr input[type=text], .herr input[type=search] { flex: 1; min-width: 240px; width: auto !important; height: 40px; border: 1px solid var(--a-line); border-radius: 9px;
  padding: 0 12px 0 36px; font: inherit; font-size: 1rem; background: var(--a-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235b6779' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 12px center; }
.herr select { height: 40px; border: 1px solid var(--a-line); border-radius: 9px; padding: 0 12px; font: inherit; font-size: .9375rem; color: var(--a-t2); background-color: #fff; }
.herr-cuenta { margin-left: auto; color: var(--a-t3); font-size: .9375rem; white-space: nowrap; }

/* ================= Tablas ================= */
.table-responsive, .ds-table-wrap, .table-wrap { overflow-x: auto; }
.table, .ds-table, .rpt-table, .tabla { width: 100%; border-collapse: collapse !important; font-size: 1rem !important; }
.table th, .ds-table thead th, .rpt-table th, .tabla th, .canvas thead th {
  background: #fbfcfd !important; text-align: left; font-size: .875rem !important; font-weight: 500 !important; color: var(--a-t3) !important;
  text-transform: none !important; letter-spacing: 0 !important; padding: 10px 12px !important; border-bottom: 1px solid var(--a-line) !important; white-space: nowrap; }
.table td, .ds-table td, .rpt-table td, .tabla td, .canvas tbody td { padding: 14px 12px !important; border-bottom: 1px solid var(--a-line-2) !important; vertical-align: middle; font-size: 1rem !important; color: var(--a-t2); }
.table tbody tr:last-child td, .tabla tbody tr:last-child td { border-bottom: 0 !important; }
.table tbody tr:hover, .tabla tbody tr:hover { background: #fafbfc; }
.caja .table-responsive { border: 0; }
th.n, td.n, td.num { text-align: right !important; white-space: nowrap; }

/* celda de persona: iniciales + nombre + correo */
.per { display: flex; align-items: center; gap: 12px; min-width: 200px; }
.per .ava { width: 36px; height: 36px; background: #f1f3f6; color: var(--a-t2); }
.per b { display: block; font-weight: 600; color: var(--a-t1); }
.per small { display: block; color: var(--a-t3); font-size: .9375rem; max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tel a { color: var(--a-acc-2); font-weight: 500; white-space: nowrap; text-decoration: none; }
.tel a:hover { text-decoration: underline; }
.closer { display: inline-flex; align-items: center; gap: 8px; color: var(--a-t2); white-space: nowrap; }
.closer .ava { width: 24px; height: 24px; font-size: .6875rem; }
span.tier { display: inline-flex; align-items: center; gap: 7px; font-weight: 600; white-space: nowrap; font-size: 1rem; text-transform: capitalize; }
span.tier::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
span.tier.caliente { color: var(--a-ok); } span.tier.tibio { color: var(--a-warn); } span.tier.frio { color: var(--a-cold); } span.tier.sin { color: #6b7789; font-weight: 500; text-transform: none; }
span.perfil { display: block; color: var(--a-t3); font-size: .875rem; margin-top: 2px; padding-left: 15px; max-width: 200px; }
.est { display: inline-flex; align-items: center; gap: 8px; flex-wrap: nowrap; color: var(--a-t2); font-size: 1rem; white-space: nowrap; }
.est small { color: var(--a-t3); font-size: .875rem; }
.est .badge-llamadas { display: inline-grid !important; place-items: center; width: 22px; height: 22px; padding: 0 !important; border-radius: 50% !important; font-size: .75rem !important; border: 0 !important; }
tr.row-llamado { background: none !important; }
tr.row-llamado > td:first-child { box-shadow: inset 3px 0 0 #86efac; }
.acc { display: flex; gap: 6px; justify-content: flex-end; white-space: nowrap; }

/* ================= Botones y campos ================= */
.btn, .btn-sm, .btn-xs { min-height: 36px; padding: 0 14px !important; border-radius: 8px !important; font-family: inherit; font-size: .9375rem !important; font-weight: 500 !important; }
.btn-outline { background: #fff !important; border: 1px solid var(--a-line) !important; color: var(--a-t2) !important; }
.btn-outline:hover { background: var(--a-bg) !important; }
.btn-primary { background: var(--a-acc) !important; border: 1px solid var(--a-acc) !important; color: #fff !important; }
.btn-primary:hover { background: var(--a-acc-2) !important; }
.btn-ico { width: 36px; padding: 0 !important; justify-content: center; }
input, select, textarea { font-family: inherit; }

/* ================= Badges ================= */
.badge { text-transform: none !important; font-size: .75rem !important; font-weight: 600 !important; border-radius: 999px !important; padding: 2px 8px !important; letter-spacing: 0 !important; }

/* ================= Paneles laterales de Evento ================= */
.cuerpo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; }
.lateral { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.panel h2 { font-size: 1rem; font-weight: 650; padding: 16px 18px 2px; margin: 0; }
.panel > p { color: var(--a-t3); font-size: .9375rem; padding: 0 18px 12px; margin: 0; }
.cola a { display: flex; align-items: center; gap: 12px; padding: 12px 18px; border-top: 1px solid var(--a-line-2); text-decoration: none; color: inherit; }
.cola a:hover { background: #fafbfc; }
.cola b { display: block; font-weight: 600; font-size: 1rem; }
.cola small { display: block; color: var(--a-t3); font-size: .875rem; }
.cola .tier { margin-left: auto; font-size: .875rem; }
.cola-vacia { padding: 12px 18px 18px; color: var(--a-t3); font-size: .9375rem; border-top: 1px solid var(--a-line-2); }
.dist { padding: 4px 18px 18px; display: grid; gap: 10px; }
.dist div { display: grid; grid-template-columns: minmax(70px, 110px) 1fr 44px; align-items: center; gap: 10px; font-size: .9375rem; color: var(--a-t2); }
.dist i { height: 8px; border-radius: 4px; background: var(--a-line-2); overflow: hidden; display: block; }
.dist i u { display: block; height: 100%; background: var(--a-acc); }
.dist span:last-child { text-align: right; color: var(--a-t3); }
@container lienzo (min-width: 1700px) {
  .cuerpo.con-lateral { grid-template-columns: minmax(0, 1fr) 340px; }
  .cuerpo.con-lateral .lateral { display: flex; flex-direction: column; }
}
@media (max-width: 1599px) { .ocultar-estrecho { display: none !important; } }

/* ================= Responsive ================= */
@media (max-width: 1280px) { :root { --a-pad: 28px; } }
@media (max-width: 900px) {
  :root { --a-pad: 16px; }
  body:has(> .lado) { padding-left: 0; }
  .lado { position: sticky; inset: auto; top: 0; width: auto; flex-direction: row; align-items: center; gap: 8px; padding: 8px 12px; border-right: 0; border-bottom: 1px solid var(--a-line); overflow: visible; }
  .lado-marca span, .lado-grupo small, .lado-yo-txt, .lado-yo .ava { display: none; }
  .lado-nav { flex-direction: row; gap: 2px; flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none;
    -webkit-mask-image: linear-gradient(to right, #000 85%, transparent); mask-image: linear-gradient(to right, #000 85%, transparent); }
  .lado-nav::-webkit-scrollbar { display: none; }
  .lado-grupo { flex-direction: row; }
  .lado-yo { margin: 0; padding: 0; border: 0; display: flex; }
  .lado-yo-acc a, .lado-yo-acc button { padding: 0 10px; }
  .pg-cab h1 { font-size: 1.75rem; }
  .ev-kpis, .stats-bar, .kpi-row, .mp-kpis, .ds-kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .lateral { grid-template-columns: 1fr; }
  .herr .search-input, .herr input[type=text] { min-width: 0; flex-basis: 100%; }
  .herr select { flex: 1; min-width: 0; }
  .herr-cuenta { display: none; }
  /* tablas marcadas como .tabla-tarjetas: cada fila pasa a tarjeta */
  .tabla-tarjetas thead { display: none; }
  .tabla-tarjetas, .tabla-tarjetas tbody, .tabla-tarjetas tr, .tabla-tarjetas td { display: block !important; width: auto !important; }
  .tabla-tarjetas tbody tr:not(.nota-row) { padding: 14px 16px; border-bottom: 1px solid var(--a-line); display: grid !important; grid-template-columns: 1fr auto; gap: 8px 12px; }
  .tabla-tarjetas td { padding: 0 !important; border: 0 !important; position: static !important; box-shadow: none !important; }
  .tabla-tarjetas td.c-per, .tabla-tarjetas td.c-acc { grid-column: 1 / -1; }
  .tabla-tarjetas td.c-der { grid-column: 2; grid-row: 2 / span 2; align-self: center; text-align: right; }
  .tabla-tarjetas td.c-movil-no { display: none !important; }
  .tabla-tarjetas td:empty { display: none !important; }
  .tabla-tarjetas .acc { justify-content: stretch; }
  .tabla-tarjetas .acc .btn-primary { flex: 1; justify-content: center; }
  .tabla-tarjetas tr.row-llamado { box-shadow: inset 3px 0 0 #86efac; }
  .tabla-tarjetas tr.nota-row td { padding: 0 16px 14px !important; }
}
@media (max-width: 480px) { .pg-ctrl { width: 100%; } .seg, .ed-tabs { max-width: 100%; overflow-x: auto; } }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.table td:first-child, .table th:first-child { padding-left: 16px !important; }
.table td:last-child, .table th:last-child { padding-right: 16px !important; }
.btn-ico { display: inline-flex !important; align-items: center; justify-content: center; width: 36px; min-width: 36px; padding: 0 !important; }
.est .llamada-count { display: inline-flex; }

/* portátiles: el teléfono baja a la celda de la persona para que quepan las acciones */
.per-tel { display: none !important; }
@media (max-width: 1600px) and (min-width: 901px) { .col-tel { display: none !important; } .per-tel { display: block !important; } }
@media (max-width: 900px) {
  .tabla-tarjetas tr.nota-row[style*="none"] { display: none !important; }
  .herr select { flex: 1 1 100%; }
}

/* estado como punto + texto (en vez de pastilla en mayúsculas) */
.estado { display: inline-flex; align-items: center; gap: 7px; font-weight: 500; white-space: nowrap; color: var(--a-t2); }
.estado::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #94a3b8; }
.estado-activo::before, .estado-firmado::before { background: #16a34a; }
.estado-pausado::before, .estado-pendiente::before { background: #f59e0b; }
.estado-finalizado::before, .estado-expirado::before, .estado-cancelado::before { background: #94a3b8; }
.estado-inactivo::before { background: #dc2626; }
.fecha { white-space: nowrap; color: var(--a-t2); }
.tenue { color: var(--a-t3); }
.c-prog { min-width: 140px; }
tr.row-pausado { background: none !important; }
/* filas ocultas por los filtros: en móvil la tarjeta no debe volver a aparecer */
.tabla-tarjetas tbody tr[style*="none"] { display: none !important; }
.mas-caja { padding: 16px 0 0 !important; }
@media (max-width: 900px) { .lbl-largo { display: none; } }
.caja .vacio { border: 0 !important; border-radius: 0 !important; color: var(--a-t3) !important; }

/* Pagos: el formulario con ancho de formulario; el historial a todo el ancho */
/* el formulario usa todo el ancho: 3 o 4 campos por fila en pantallas anchas */
@media (min-width: 1400px) { .pagos-lienzo .form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (min-width: 1800px) { .pagos-lienzo .form-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
.pagos-lienzo > .card { margin: 0 0 24px !important; }
.card-header h3 { font-size: 1rem !important; font-weight: 650 !important; color: var(--a-t1) !important; }
/* Guía: texto largo, ancho de lectura */
.container.guia { max-width: 1040px !important; }
/* Acuerdos: la caja ya lleva sus filtros */
.caja > .toolbar.herr { margin: 0 !important; }
.caja > .toolbar.herr select, .caja > .toolbar.herr input { height: 40px; }

/* etiquetas de formulario: sin mayúsculas forzadas */
.form-label, .form-group label, .detail-item label { text-transform: none !important; letter-spacing: 0 !important; font-size: .875rem !important; font-weight: 600 !important; color: var(--a-t2) !important; }
.form-group input, .form-group select, .form-group textarea, .form-input, .form-select { font-size: 1rem !important; min-height: 40px; border-radius: 9px !important; }

/* Fichas (comprador, contacto del evento, plan) */
.detail-header { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding-bottom: 20px; border-bottom: 1px solid var(--a-line); margin-bottom: 24px !important; }
.detail-header h2, .mp-titulo { font-family: var(--a-serif); font-weight: 600; font-size: 2rem; letter-spacing: -.015em; line-height: 1.15; margin: 0; color: var(--a-t1); }
.mp-titulo { margin: 20px 0 6px; }
.detail-card { background: #fff; border: 1px solid var(--a-line) !important; border-radius: var(--a-r-lg) !important; box-shadow: var(--a-sh) !important; padding: 20px !important; }
.detail-card h3 { font-size: 1rem !important; font-weight: 650 !important; color: var(--a-t1) !important; text-transform: none !important; letter-spacing: 0 !important; }
.detail-row { font-size: 1rem; padding: 6px 0; }
.container.mp { max-width: 1040px !important; }

/* móvil: filtros en fila completa y tarjetas sin las líneas de celda de las tablas de página */
.herr { flex-direction: row !important; align-items: center !important; }
@media (max-width: 900px) {
  .herr > input, .herr > select { flex: 1 1 100% !important; width: auto !important; min-width: 0 !important; }
  .canvas .tabla-tarjetas td, .container .tabla-tarjetas td { border: 0 !important; padding: 0 !important; }
}
.badge-estado { text-transform: capitalize !important; }

/* Selector de lanzamiento: lista desplegable en todas las vistas (18-oct-2026), igual que en VSL */
.sel-mes { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.sel-mes label { font-size: .9375rem; font-weight: 500; color: var(--a-t3); white-space: nowrap; }
.sel-mes select { height: 40px; min-width: 200px; max-width: 100%; border: 1px solid var(--a-line); border-radius: 9px; padding: 0 36px 0 12px; font: inherit; font-size: 1rem;
  font-weight: 500; color: var(--a-t1); background-color: #fff; cursor: pointer; }
.sel-mes-osc label { color: #dbeafe; }
.sel-mes-osc select { background-color: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.3); }
.sel-mes-osc select option { color: #0f172a; }
@media (max-width: 900px) { .sel-mes { width: 100%; } .sel-mes select { flex: 1; min-width: 0; } }

/* ==== Letra un paso más grande (18-oct-2026): base 16→18 px, tablas 16 px, nada de lectura por debajo de 14 px ==== */
.lado-grupo small, .lado-yo-txt small { font-size: .8125rem; }
.lado-grupo a { font-size: 1rem; min-height: 40px; }
.badge { font-size: .8125rem !important; }
.ds-kpi-label, .ds-bar-label, .ds-feed-time, .ds-feed-note, .ds-feed-author, .ds-feed-contact, .ds-report-subtitle, .rpt-stat-lbl,
.stat-label, .kpi-label, .ev-kpi-n, .ds-kpi-sub { font-size: .875rem !important; }
.ds-card-header h3, .rpt-card h3, .card-header h3, .panel h2 { font-size: 1.0625rem !important; }
.rep-titular, .rep-nota, .ds-empty, .empty, .empty-state { font-size: 1rem !important; }
.ds-card-badge, .card-badge { font-size: .8125rem !important; }
.table td, .ds-table td, .rpt-table td, .tabla td, .canvas tbody td { font-size: 1rem !important; }
.btn, .btn-sm, .btn-xs { font-size: .9375rem !important; min-height: 40px; }
.btn-ico { width: 40px; min-width: 40px; }

/* ================= Reporte v2 (18-oct-2026): filtro por closer, cifras clicables, gráficas con titular ================= */
.rp-tabs { margin-bottom: 4px !important; border-radius: var(--a-r-lg) var(--a-r-lg) 0 0; }
.rp-filtro { position: sticky; top: 0; z-index: 20; background: var(--a-bg); padding: 12px 0 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rp-l { font-size: .875rem; color: var(--a-t3); font-weight: 500; margin-right: 4px; }
.rp-chip { height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--a-line); background: #fff; font: inherit; font-size: .9375rem; color: var(--a-t2); cursor: pointer; white-space: nowrap; }
.rp-chip:hover { border-color: #bfd3fe; }
.rp-chip.on { background: var(--a-t1); color: #fff; border-color: var(--a-t1); }
.rp-viendo { margin-left: auto; font-size: .9375rem; color: var(--a-t3); }
.rp-viendo b { color: var(--a-t1); }
.rp-link { border: 0; background: none; padding: 0; font: inherit; color: var(--a-acc-2); text-decoration: underline; cursor: pointer; }
.rp-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 16px; margin-bottom: 20px; }
.rp-kpi { background: #fff; border: 1px solid var(--a-line); border-radius: var(--a-r-lg); padding: 18px 20px; box-shadow: var(--a-sh); text-align: left; font: inherit; color: inherit; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.rp-kpi:hover { border-color: #bfd3fe; }
.rp-kpi.on { border-color: var(--a-acc); box-shadow: 0 0 0 3px var(--a-acc-bg); }
.rp-kpi span { display: block; font-size: .9375rem; color: var(--a-t3); font-weight: 500; }
.rp-kpi b { display: block; font-size: 2.125rem; font-weight: 650; letter-spacing: -.02em; margin: 4px 0 2px; line-height: 1.1; }
.rp-kpi small { font-size: .875rem; color: var(--a-t3); }
.rp-kpi.alerta b { color: #b45309; }
.rp-kpi.conv b { color: #7e22ce; }
.rp-barra { display: block; height: 6px; border-radius: 3px; background: var(--a-line-2); margin-top: 10px; overflow: hidden; }
.rp-barra u { display: block; height: 100%; background: var(--a-acc); text-decoration: none; }
.rp-rej { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 20px; margin-bottom: 20px; }
.rp-rej-1 { grid-template-columns: minmax(0, 1fr); }
.rp-card { background: #fff; border: 1px solid var(--a-line); border-radius: var(--a-r-lg); box-shadow: var(--a-sh); padding: 20px 22px; min-width: 0; }
.rp-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.rp-card h2 { font-size: 1.125rem; font-weight: 650; margin: 0; color: var(--a-t1); }
.rp-titular { font-size: 1rem; color: var(--a-t2); margin: 2px 0 14px; }
.rp-titular b { color: var(--a-t1); }
.rp-alt { display: inline-flex; border: 1px solid var(--a-line); border-radius: 9px; padding: 2px; gap: 2px; flex: none; }
.rp-alt button { height: 32px; padding: 0 12px; border: 0; border-radius: 7px; background: none; font: inherit; font-size: .875rem; color: var(--a-t3); cursor: pointer; }
.rp-alt button.on { background: var(--a-t1); color: #fff; }
.rp-ley { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.rp-ley button { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border: 1px solid var(--a-line); border-radius: 999px; background: #fff; font: inherit; font-size: .875rem; color: var(--a-t2); cursor: pointer; }
.rp-ley button i { width: 10px; height: 10px; border-radius: 3px; }
.rp-ley button.off { opacity: .5; text-decoration: line-through; }
.rp-lienzo { position: relative; }
.rp-sep { height: 1px; background: var(--a-line-2); margin: 22px 0 18px; }
.rp-tip { font-size: .875rem; color: var(--a-t3); margin-top: 8px; }
.rp-tip-cab { margin: 0; white-space: nowrap; }
.rp-tabla { width: 100%; border-collapse: collapse; }
.rp-tabla th { text-align: left; font-size: .875rem; font-weight: 500; color: var(--a-t3); padding: 8px 10px; border-bottom: 1px solid var(--a-line); white-space: nowrap; background: #fbfcfd; }
.rp-tabla th button { border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.rp-tabla th button:hover { color: var(--a-t1); }
.rp-tabla th[aria-sort] button { color: var(--a-acc-2); font-weight: 600; }
.rp-tabla .n { text-align: right; }
.rp-tabla th.n button { text-align: right; }
.rp-tabla td { padding: 12px 10px; border-bottom: 1px solid var(--a-line-2); font-size: 1rem; color: var(--a-t2); white-space: nowrap; }
.rp-tabla td b { color: var(--a-t1); font-weight: 600; }
.rp-tabla tbody tr { cursor: pointer; }
.rp-tabla tbody tr:hover { background: #fafbfc; }
.rp-tabla tbody tr.on { background: var(--a-acc-bg); }
.rp-tabla tfoot td { border-top: 2px solid var(--a-line); border-bottom: 0; font-weight: 600; color: var(--a-t1); }
.rp-pend { color: #b45309; font-weight: 600; }
.rp-tenue { color: var(--a-t3); font-size: .875rem; }
.rp-mini { display: flex; height: 8px; border-radius: 4px; overflow: hidden; background: var(--a-line-2); min-width: 120px; }
.rp-mini i { display: block; height: 100%; }
.rp-feed { list-style: none; padding: 0; margin: 0; }
.rp-feed li { display: flex; gap: 12px; padding: 10px 0; border-top: 1px solid var(--a-line-2); font-size: .9375rem; }
.rp-feed a { color: var(--a-t1); text-decoration: none; } .rp-feed a:hover { text-decoration: underline; }
.rp-p { width: 8px; height: 8px; border-radius: 50%; margin-top: 8px; flex: none; }
.rp-f-txt { min-width: 0; } .rp-f-res { color: var(--a-t3); font-size: .875rem; }
.rp-feed small { color: var(--a-t3); margin-left: auto; white-space: nowrap; font-size: .875rem; }
.rp-vacio { color: var(--a-t3); }
.rp-vacio-grande { padding: 40px; text-align: center; color: var(--a-t3); margin-top: 20px; }
@media (max-width: 1400px) { .rp-rej { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 900px) {
  .rp-filtro { top: 57px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .rp-chip { flex: none; } .rp-viendo { display: none; }
  .rp-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .rp-kpi b { font-size: 1.75rem; }
  .rp-card { padding: 16px; }
  .rp-cab { flex-wrap: wrap; }
}

.rp-rej { align-items: start; }
@media (max-width: 1800px) { .rp-rej:has(.rp-card-tabla) { grid-template-columns: minmax(0, 1fr); } }

/* ==== Más ancho útil (18-oct-2026): menú contraíble a iconos, paneles de Evento según el espacio real ==== */
.container { container: lienzo / inline-size; }
.lado-grupo a { gap: 10px; }
.lado-ico { flex: none; color: var(--a-t3); }
.lado-grupo a[aria-current="page"] .lado-ico, .lado-grupo a:hover .lado-ico { color: currentColor; }
.lado-plegar { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; min-height: 36px; margin-top: 4px; padding: 0 8px; border: 0; border-radius: 8px;
  background: none; color: var(--a-t3); font: inherit; font-size: .875rem; cursor: pointer; }
.lado-plegar:hover { background: var(--a-bg); color: var(--a-t1); }
.lado-plegar svg { transition: transform .2s; }
.lado, body:has(> .lado) { transition: width .2s, padding-left .2s; }
@media (min-width: 901px) {
  html.lado-mini { --a-lado: 64px; }
  html.lado-mini .lado { padding: 20px 8px 12px; align-items: center; }
  html.lado-mini .lado-marca { padding: 0; }
  html.lado-mini .lado-marca span, html.lado-mini .lado-grupo a span, html.lado-mini .lado-yo-txt, html.lado-mini .lado-plegar span, html.lado-mini .lado-yo-acc button { display: none; }
  html.lado-mini .lado-grupo small { font-size: 0; height: 1px; background: var(--a-line); margin: 0 8px 8px; padding: 0; }
  html.lado-mini .lado-grupo a { justify-content: center; padding: 0; width: 44px; }
  html.lado-mini .lado-nav { align-items: center; }
  html.lado-mini .lado-yo { grid-template-columns: 1fr; justify-items: center; padding: 12px 0 4px; }
  html.lado-mini .lado-yo-acc a { padding: 0 6px; font-size: .75rem; }
  html.lado-mini .lado-plegar { justify-content: center; padding: 0; width: 44px; }
  html.lado-mini .lado-plegar svg { transform: rotate(180deg); }
}
@media (max-width: 900px) { .lado-plegar { display: none; } .lado-ico { display: none; } }
@media (prefers-reduced-motion: reduce) { .lado, body:has(> .lado), .lado-plegar svg { transition: none; } }
.auto-marca { display: block; font-size: .8125rem; color: var(--a-t3); margin-top: 4px; }
.auto-marca::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #16a34a; margin-right: 6px; vertical-align: middle; }
.vsl-traza { color: inherit; text-decoration: none; border-bottom: 1px dotted currentColor; } .vsl-traza:hover { color: #1d4ed8; }
