:root{
  --bg:#eef0fb; --panel:#ffffff; --ink:#1c1f37; --ink-muted:#7d84a0; --ink-faint:#a7acc4; --line:#e7e9f7; --line-strong:#d9dcf1;
  --accent:#5b53d6; --accent-2:#7b6ff0; --accent-ink:#3730a3; --accent-soft:#efeaff; --accent-dark:#2a2570;
  --teal:#12a893; --teal-soft:#e1f7f3; --pink:#e4548a; --pink-soft:#fdecf3; --amber:#e8a33d; --amber-soft:#fdf1de;
  --ok:#1f9d72; --ok-soft:#e3f7ee; --danger:#d1495b; --danger-soft:#fbe9ec;
  --radius:16px; --radius-sm:11px; --radius-lg:20px;
  --shadow-xs:0 1px 2px rgba(28,31,55,.05);
  --shadow-sm:0 4px 14px rgba(28,31,55,.07);
  --shadow-md:0 10px 26px -6px rgba(28,31,55,.16);
  --shadow-lg:0 20px 48px -10px rgba(28,31,55,.22);
  --sidebar-w:250px;
  color-scheme: light;
}
*{box-sizing:border-box;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:'IBM Plex Sans',system-ui,sans-serif;line-height:1.55;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
.oculto{display:none !important;}
.pantalla{max-width:900px;margin:0 auto;padding:8px 4px 90px;}
.pantalla-ancha{max-width:1320px;margin:0 auto;padding:8px 4px 90px;}
h1{font-size:1.5rem;margin:0 0 6px;letter-spacing:-.015em;font-weight:700;}
h2{font-size:1.15rem;margin:0 0 16px;letter-spacing:-.01em;font-weight:700;}
h3{letter-spacing:-.005em;}
p.sub{color:var(--ink-muted);margin:0 0 24px;font-size:.94rem;}

label{display:block;font-size:.8rem;font-weight:600;color:var(--ink-muted);margin:14px 0 5px;letter-spacing:.01em;}
input, select, textarea{
  width:100%;padding:11px 13px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);
  font-size:.94rem;background:#fff;color:var(--ink);font-family:inherit;
  transition:border-color .15s ease, box-shadow .15s ease;
}
input::placeholder, textarea::placeholder{color:var(--ink-faint);}
input:focus, select:focus, textarea:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);
}
input:disabled, select:disabled{background:#f1f2f5;color:var(--ink-muted);cursor:not-allowed;}
input[type="file"]{padding:8px;font-size:.86rem;background:#fafbfc;}
input[type="checkbox"]{width:auto;}

/* Campos con texto libre: se ven en mayúscula mientras el usuario escribe (el nombre/valor final
   ya se guarda en mayúscula de todas formas — esto es solo para que se vea igual desde ya). */
input.mayusculas{text-transform:uppercase;}
input.mayusculas::placeholder{text-transform:none;}

/* Campo obligatorio vacío o con un valor inválido (ej. fecha fin antes que fecha inicio, texto con
   caracteres no permitidos): borde rojo, para que sea evidente qué falta o qué está mal antes de
   continuar. */
.campo-invalido{border-color:var(--danger) !important;box-shadow:0 0 0 1px var(--danger) !important;}

/* Caja de "nombre final"/"link final" cuando hay un error de validación (sep 2026, 4ª ronda): se
   pone en rojo (en vez del color normal) para que la advertencia sea imposible de pasar por alto,
   además del borde rojo en el campo puntual que la está causando. */
.preview-box-error{background:var(--danger-soft);color:var(--danger);border-color:var(--danger);font-weight:600;}

button{
  font-family:inherit;font-size:.92rem;font-weight:600;border-radius:var(--radius-sm);border:none;
  padding:11px 20px;cursor:pointer;transition:transform .06s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, opacity .18s ease, color .15s ease;
  letter-spacing:.005em;
}
button:active{transform:translateY(1px);}
.btn-primario{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 4px 14px rgba(91,83,214,.32);}
.btn-primario:hover:not(:disabled){box-shadow:0 6px 20px rgba(91,83,214,.4);transform:translateY(-1px);}
.btn-primario:disabled{background:#cdd0e6;box-shadow:none;cursor:not-allowed;opacity:.8;}
.btn-secundario{background:#fff;color:var(--accent-ink);border:1px solid var(--line-strong);box-shadow:var(--shadow-xs);}
.btn-secundario:hover{border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-sm);}
.btn-cta-envio{background:linear-gradient(135deg,#14b8a6,#0e7490);color:#fff;box-shadow:0 4px 14px rgba(14,116,144,.35);font-weight:700;}
.btn-cta-envio:hover{box-shadow:0 6px 18px rgba(14,116,144,.45);transform:translateY(-1px);}
.btn-mini{padding:5px 11px;font-size:.76rem;background:var(--accent-soft);color:var(--accent-ink);display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.btn-mini:hover{background:var(--accent);color:#fff;}
.btn-mini-icono{font-size:.9em;line-height:1;}
.fila-botones{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap;align-items:center;}
.error{color:var(--danger);font-size:.85rem;margin-top:10px;font-weight:500;}
.mono{font-family:'IBM Plex Mono',monospace;}

.tarjeta{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;
  box-shadow:var(--shadow-xs);
}
.tarjeta-login{box-shadow:var(--shadow-lg);text-align:left;}

.preview-box{
  font-family:'IBM Plex Mono',monospace;background:var(--accent-soft);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:14px 16px;margin:18px 0;word-break:break-word;min-height:1.2em;font-size:.92rem;
  color:var(--accent-ink);white-space:pre-line;
}
.resultado-ok{background:var(--ok-soft);color:var(--ok);border-radius:var(--radius-sm);padding:12px 16px;margin-top:14px;font-size:.9rem;font-weight:600;box-shadow:var(--shadow-xs);}

/* Árbol Grupos → Anuncios → UTM de Crear campaña (sep 2026, 3ª ronda) */
.arbol-grupo{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-xs);margin-top:14px;}
.arbol-grupo-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;}
.arbol-anuncio{background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;margin-top:12px;margin-left:18px;}
.arbol-anuncio-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;}
.arbol-utm{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px;margin-top:8px;margin-left:18px;font-size:.85rem;}
.arbol-utm .mono{word-break:break-all;}
/* sep 2026 (5ª ronda): a Camila le pareció poco visible que faltara un Anuncio o una UTM — ahora
   se marca en rojo (igual que un campo obligatorio), no solo en gris, para que salte a la vista
   antes de intentar terminar la Campaña. */
.arbol-vacio{color:var(--danger);font-weight:600;font-size:.88rem;margin:10px 0 0 18px;}
.arbol-grupo-cab>.mono,.arbol-anuncio-cab>.mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1 1 auto;}

.centrado{display:flex;align-items:center;justify-content:center;min-height:100vh;text-align:center;padding:20px;background:radial-gradient(1200px 500px at 50% -10%, var(--accent-soft), var(--bg) 60%);}
.logo-kia{height:26px;width:auto;display:block;}
.logo-kia-login{height:30px;margin-bottom:20px;}

/* =====================================================
   APP SHELL: sidebar + área principal (todas las vistas
   autenticadas viven dentro de esto; login/cargando/sin-
   acceso quedan fuera, a pantalla completa).
===================================================== */
.app-shell{display:flex;min-height:100vh;align-items:stretch;}
.sidebar{
  width:var(--sidebar-w);flex:none;background:#fff;border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:22px 16px;gap:22px;position:sticky;top:0;
  align-self:flex-start;height:100vh;overflow-y:auto;
}
.sidebar-brand{display:flex;align-items:center;gap:10px;padding:0 8px;}
.sidebar-brand b{font-size:.92rem;letter-spacing:-.01em;white-space:nowrap;}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;flex:1;}
.sidebar-nav .nav-item{
  display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:12px;
  background:none;color:var(--ink-muted);text-align:left;font-size:.87rem;font-weight:500;
  box-shadow:none;
}
.sidebar-nav .nav-item .nav-dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.4;flex:none;}
.sidebar-nav .nav-item:hover{background:var(--accent-soft);color:var(--accent-ink);}
.sidebar-nav .nav-item.activo{background:var(--accent);color:#fff;font-weight:600;box-shadow:0 6px 16px rgba(91,83,214,.32);}
.sidebar-nav .nav-item.activo .nav-dot{background:#fff;opacity:1;}
.nav-grupo{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:700;margin:10px 0 2px 12px;}
.nav-grupo:first-child{margin-top:0;}
.sidebar-footer{border-top:1px solid var(--line);padding-top:14px;}

.main-area{flex:1;min-width:0;display:flex;flex-direction:column;}
.topline{
  display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 28px;
  border-bottom:1px solid var(--line);background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(10px);
  position:sticky;top:0;z-index:10;
}
.topline-label{font-weight:700;font-size:.95rem;color:var(--ink);}
.who{display:flex;align-items:center;gap:12px;}
.who-nombre{font-weight:600;font-size:.88rem;}
.who-rol{font-size:.76rem;color:var(--ink-muted);}
.avatar{
  width:36px;height:36px;border-radius:50%;flex:none;
  background:linear-gradient(135deg,var(--accent),var(--pink));color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;
}
.main-scroll{flex:1;padding:28px 28px 100px;}

/* ---- HOME: saludo + tarjetas de categoría ---- */
.home-greeting h1{font-size:1.5rem;}
.home-greeting{margin-bottom:22px;}
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:8px;align-items:stretch;}
.cat{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;
  border-radius:var(--radius-lg);padding:20px;color:#fff;min-height:132px;
  box-shadow:var(--shadow-md);transition:transform .15s ease, box-shadow .15s ease;text-align:left;
  position:relative;overflow:hidden;
}
.cat:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);}
.cat .cat-icon{
  width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.24);
  display:flex;align-items:center;justify-content:center;font-size:1.05rem;margin-bottom:0;position:relative;z-index:1;flex:none;
}
.cat b{display:block;font-size:.98rem;margin-top:14px;position:relative;z-index:1;}
.cat small{opacity:.88;font-size:.78rem;font-weight:400;margin-top:2px;line-height:1.35;position:relative;z-index:1;}

/* Home (sep 2026): 2 franjas de accesos rápidos — "Taxonomía de campañas" en azul noche y
   "Gestión del concesionario" en azul acero (misma familia, un salto de oscuridad entre grupos),
   con un sutil brillo diagonal (::after) para el efecto degradado "pro". */
.grupo-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:22px 0 10px;display:flex;align-items:center;gap:8px;}
.grupo-label:first-of-type{margin-top:0;}
.grupo-label .dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
.grupo-label.taxo{color:#1c2340;}
.grupo-label.taxo .dot{background:#1c2340;}
.grupo-label.red{color:#2e5f8a;}
.grupo-label.red .dot{background:#3f7cad;}

.cats-top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1fr;gap:14px;margin-bottom:6px;}
.cats-bottom{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.cat-proximamente{
  background:repeating-linear-gradient(135deg,#eef0f8,#eef0f8 10px,#e4e7f2 10px,#e4e7f2 20px);
  border:1.5px dashed var(--line-strong);color:var(--ink-muted);cursor:not-allowed;box-shadow:none;
}
.cat-proximamente:hover{transform:none;box-shadow:none;}
.cat-proximamente .cat-icon{background:#dfe2f0;color:var(--ink-muted);}
.cat-proximamente b{color:var(--ink-muted);}
.cat-proximamente small{opacity:1;}

.cat::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 140% at 15% 0%, rgba(255,255,255,.14), transparent 55%);pointer-events:none;}
.cat-plano{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-xs);color:var(--ink);}
.cat-plano::after{display:none;}
.cat-plano b{color:var(--ink);}
.cat-plano small{color:var(--ink-muted);opacity:1;}
.cat-plano .cat-icon{background:#eef0f8;color:#2c3568;}
.cat-grande{flex-direction:row;align-items:center;gap:16px;min-height:96px;}
.cat-grande .cat-icon{margin-bottom:0;flex:none;}
.cat-grande .cat-texto{display:flex;flex-direction:column;min-width:0;flex:1;}
.cat-grande b{margin-top:0;font-size:1.05rem;}
.cat-grande small{margin-top:4px;}
.cat-noche{background:linear-gradient(160deg,#232a4d,#0c0f1f);}
.cat-acero-1{background:linear-gradient(160deg,#3f7cad,#2a5580);}
.cat-acero-2{background:linear-gradient(160deg,#0f7a76,#0a4d4a);}
.cat-acero-3{background:linear-gradient(160deg,#4b4f8a,#2b2e5c);}
.cat-acero-4{background:linear-gradient(160deg,#7c3aed,#3b1f7a);}
.cat-acero-5{background:linear-gradient(160deg,#1f9d7c,#0e5c46);}
.cat-acero-6{background:linear-gradient(160deg,#8a8f98,#4a4e56);opacity:.75;cursor:not-allowed;}
/* Compatibilidad: por si algo viejo sigue referenciando estas clases. */
.cat-1{background:linear-gradient(160deg,var(--accent),var(--accent-2));}
.cat-2{background:linear-gradient(160deg,#16bfa8,var(--teal));}
.cat-3{background:linear-gradient(160deg,var(--pink),#c93f74);}
.cat-4{background:linear-gradient(160deg,#33375a,var(--accent-dark));}

.menu-home{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-top:6px;}
.menu-home button{
  text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;font-size:1rem;transition:border-color .15s ease, box-shadow .2s ease, transform .15s ease;
  box-shadow:var(--shadow-xs);
}
.menu-home button:not(:disabled):hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-3px);}
.menu-home button.destacado{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:none;box-shadow:0 4px 14px rgba(91,83,214,.28);}
.menu-home button.destacado:hover{box-shadow:0 10px 24px rgba(91,83,214,.38);}
.menu-home .icono{font-size:1.5rem;display:block;margin-bottom:8px;}
.menu-home small{display:block;font-weight:400;color:var(--ink-muted);margin-top:2px;font-size:.76rem;}
.menu-home button.destacado small{color:rgba(255,255,255,.85);}

.tabla-envoltura{width:100%;border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);}
table{width:100%;border-collapse:collapse;font-size:.88rem;background:#fff;border-radius:var(--radius-sm);table-layout:fixed;}
th,td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--line);word-break:break-word;}
th{background:#f7f7fc;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);font-weight:700;}
tbody tr{transition:background .12s ease;}
tbody tr:hover{background:#fafaff;}
tbody tr:last-child td{border-bottom:none;}
td.truncable, th.truncable{white-space:normal;overflow-wrap:anywhere;word-break:break-word;}
td.truncable .mono{max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-all;display:block;font-size:.74rem;line-height:1.3;}
td.col-acciones{white-space:normal;vertical-align:top;}
.fila-acciones-hist{display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:2px 0;}
.fila-acciones-copiar{display:flex;flex-wrap:wrap;gap:6px;}
.fila-acciones-borrar{display:flex;align-items:center;}
.fila-acciones-borrar .btn-mini.btn-quitar-fila{
  background:var(--danger-soft);color:var(--danger);
}
.fila-acciones-borrar .btn-mini.btn-quitar-fila:hover{
  background:var(--danger);color:#fff;
}
.fila-acciones-candado{
  font-size:.72rem;color:var(--ink-muted);display:inline-flex;align-items:center;gap:5px;
  background:#f4f4f8;padding:4px 9px;border-radius:var(--radius-sm);
}

.planes-resumen-combinado{
  display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 4px;
}
.planes-resumen-item{
  display:flex;flex-direction:column;gap:2px;background:var(--accent-soft);border-radius:var(--radius-sm);
  padding:8px 14px;min-width:150px;
}
.planes-resumen-item .etq{font-size:.72rem;color:var(--accent-ink);font-weight:600;letter-spacing:.01em;}
.planes-resumen-item .val{font-size:1rem;color:var(--ink);font-weight:700;}
.planes-resumen-split{font-size:.7rem;color:var(--ink-muted);}

.chip-estado-mmr{
  display:inline-block;padding:4px 11px;border-radius:999px;font-size:.76rem;font-weight:700;
}
.chip-estado-mmr.chip-pendiente{background:var(--amber-soft);color:#8a5a10;}
.chip-estado-mmr.chip-aprobado{background:var(--ok-soft);color:var(--ok);}
.chip-estado-mmr.chip-rechazado{background:var(--danger-soft);color:var(--danger);}

.planes-aprobacion{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 4px;}

/* Historial: todo debe verse sin necesidad de deslizar hacia la derecha — columnas más angostas,
   nombres generados truncados (con "…" y el nombre completo en el título/tooltip) y los botones de
   acciones en varias líneas si hace falta, en vez de forzar el ancho de la tabla. */
#historial-tabla th:nth-child(1), #historial-tabla td:nth-child(1){width:10%;}
#historial-tabla th:nth-child(2), #historial-tabla td:nth-child(2){width:8%;}
#historial-tabla th:nth-child(3), #historial-tabla td:nth-child(3){width:10%;}
#historial-tabla th:nth-child(4), #historial-tabla td:nth-child(4){width:31%;}
#historial-tabla th:nth-child(5), #historial-tabla td:nth-child(5){width:11%;}
#historial-tabla th:nth-child(6), #historial-tabla td:nth-child(6){width:30%;}

#dash-recientes-tabla th:nth-child(1), #dash-recientes-tabla td:nth-child(1){width:18%;}
#dash-recientes-tabla th:nth-child(2), #dash-recientes-tabla td:nth-child(2){width:14%;}
#dash-recientes-tabla th:nth-child(3), #dash-recientes-tabla td:nth-child(3){width:18%;}
#dash-recientes-tabla th:nth-child(4), #dash-recientes-tabla td:nth-child(4){width:auto;}

.campo-label{display:flex;align-items:center;gap:6px;margin:14px 0 4px;}
.campo-label label{margin:0;}
.info-btn{
  width:18px;height:18px;border-radius:50%;border:1px solid var(--line-strong);
  background:var(--accent-soft);color:var(--accent-ink);font-size:.7rem;font-weight:700;
  line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  flex:none;
}
.info-btn:hover, .info-btn:focus{background:var(--accent);color:#fff;outline:none;}
.tooltip-popover{
  position:absolute;max-width:280px;background:var(--ink);color:#fff;font-size:.8rem;line-height:1.45;
  padding:10px 12px;border-radius:8px;box-shadow:var(--shadow-lg);z-index:50;
  font-weight:400;text-transform:none;letter-spacing:normal;white-space:pre-line;
}
.tooltip-popover::before{
  content:"";position:absolute;top:-5px;left:14px;border:6px solid transparent;border-bottom-color:var(--ink);
}

/* ---- STEPPER (Crear campaña: wizard de 4 pasos) ---- */
.stepper{display:flex;gap:8px;margin:18px 0 24px;flex-wrap:wrap;}
.stepper .paso{
  flex:1;min-width:150px;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:13px 15px;cursor:pointer;transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
  box-shadow:var(--shadow-xs);
}
.stepper .paso:disabled, .stepper .paso.bloqueado{cursor:not-allowed;opacity:.5;box-shadow:none;}
.stepper .paso .num{
  width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);
  display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;flex:none;
}
.stepper .paso.activo{border-color:var(--accent);box-shadow:0 3px 12px rgba(91,83,214,.2);}
.stepper .paso.activo .num{background:var(--accent);color:#fff;}
.stepper .paso.completo .num{background:var(--ok);color:#fff;}
.stepper .paso .txt{text-align:left;display:flex;flex-direction:column;gap:2px;min-width:0;}
.stepper .paso .titulo{font-weight:600;font-size:.88rem;}
.stepper .paso .estado{display:block;font-size:.72rem;color:var(--ink-muted);}

.chip-fila{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.chip{
  background:var(--accent-soft);color:var(--accent-ink);font-size:.78rem;font-weight:600;
  padding:6px 13px;border-radius:999px;
}

.wizard-panel{display:none;}
.wizard-panel.activo{display:block;}

.menu-seccion{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin:30px 0 10px;font-weight:700;}
.menu-seccion:first-of-type{margin-top:8px;}

/* ---- MMR ---- */
.mmr-canal{margin-bottom:26px;}
.mmr-canal h3{font-size:1rem;margin:0 0 10px;padding-left:10px;border-left:3px solid var(--accent);}
.mmr-fila{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px 19px;margin-bottom:10px;box-shadow:var(--shadow-xs);transition:box-shadow .15s ease;}
.mmr-fila:hover{box-shadow:var(--shadow-sm);}
.mmr-fila .encabezado{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.mmr-fila .nombre-campana{font-family:'IBM Plex Mono',monospace;font-size:.85rem;font-weight:600;word-break:break-word;}
.mmr-fila .meta{font-size:.78rem;color:var(--ink-muted);margin-top:2px;}
.etiqueta-utm{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap;}
.etiqueta-utm.ok{background:var(--ok-soft);color:var(--ok);}
.etiqueta-utm.falta{background:var(--danger-soft);color:var(--danger);}
.mmr-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;align-items:end;}
.mmr-campos label{margin:0 0 4px;}
/* oct 2026: detalle de Grupos/Anuncios dentro de cada fila Digital del MMP — ver renderMmr(). */
.mmr-detalle-arbol{background:var(--bg-soft,#f7f7f8);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:12px;}
.mmr-detalle-grupo{margin-top:6px;}
.mmr-detalle-grupo:first-child{margin-top:0;}
.mmr-detalle-grupo .meta{margin-top:1px;}
/* sep 2026 (comentarios nuevos de Camila): un label largo ("Inversión Concesionario ($)") se
   partía en 2 líneas mientras sus vecinos ("Apoyo Adicional ($)") quedaban en 1 sola — como cada
   casilla del grid es independiente, el input de abajo terminaba más abajo que el de sus vecinos.
   Reservamos alto fijo (2 líneas) SOLO en los labels "normales" (no los que envuelven un checkbox,
   esos ya tienen su propio layout en línea) para que el input siempre arranque en la misma altura,
   sin importar si el texto del label alcanzó a partirse o no. */
.mmr-campos label:not(:has(input)){min-height:2.5em;display:flex;align-items:flex-end;}
.mmr-campos textarea{width:100%;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;resize:vertical;min-height:44px;}
/* oct 2026: presupuesto/objetivo por Grupo de anuncios o Anuncio (campañas que reparten varios
   modelos) — ver calcularLeavesPresupuesto()/leafBloqueHtml() en app.js. */
.mmr-desglose-presupuesto{margin-top:4px;}
.mmr-leaf-bloque{background:var(--bg-soft,#f7f7f8);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:10px;}
.mmr-leaf-bloque:first-of-type{margin-top:0;}
.mmr-leaf-bloque .mmr-campos{margin-top:8px;}
.mmr-filas-manual{margin-bottom:10px;}
.btn-agregar-fila{margin-bottom:20px;}

/* Reglas de inversión (sep 2026, 6ª ronda): grilla en vez de lista vertical larga, para aprovechar
   todo el ancho de pantalla — aplica tanto al panel de edición de Kia Admin como a lo que ve el
   concesionario. */
.reglas-inversion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.reglas-modelo-card{background:#fff;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:12px 14px;}
.reglas-modelo-nombre{font-weight:700;margin-bottom:8px;}
.reglas-modelo-canales{display:flex;flex-direction:column;gap:4px;}
.reglas-canal-label{display:flex;align-items:center;gap:6px;font-weight:400;font-size:.85rem;}
.reglas-canal-label input{width:auto;}
.reglas-esfuerzo-input{width:70px;}

/* Monthly Marketing Result (sep 2026, 2ª ronda) */
.resultado-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;}
.resultado-kpi label{display:block;font-size:.78rem;color:var(--ink-muted);margin-bottom:4px;}
.resultado-kpi-fila{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.resultado-kpi-plan{font-size:.8rem;color:var(--ink-muted);white-space:nowrap;}
.resultado-input{width:110px;}
.resultado-kpi-cumplimiento{font-size:.78rem;font-weight:600;color:var(--accent-ink);white-space:nowrap;}
.btn-quitar-fila{background:var(--danger-soft);color:var(--danger);}
.btn-quitar-fila:hover{background:var(--danger);color:#fff;}

/* ---- DASHBOARD / KPIs ---- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:8px;}
.kpi-card{min-width:max-content;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;box-shadow:var(--shadow-xs);border-top:3px solid var(--accent);overflow:hidden;}
.kpi-card .valor{font-size:1.7rem;font-weight:700;color:var(--accent-ink);line-height:1.15;letter-spacing:-.02em;white-space:nowrap;}
.kpi-card .etiqueta{font-size:.78rem;color:var(--ink-muted);margin-top:4px;overflow-wrap:break-word;}

/* Tabla de Planes de mercadeo: todo debe verse sin barra de desplazamiento horizontal (a Camila no
   le gusta esa solución). En vez de eso: layout fijo con anchos por columna (colgroup en el html),
   letra un poco más chica, y en las columnas angostas de catálogo (Origen/Plataforma/Ciudad/Estado)
   se corta con "…" si no cabe, en vez de partir la palabra a la mitad. Acción y Aprobación sí pueden
   pasar a una segunda línea normalmente. */
.tabla-canal-wrap{margin-top:8px;width:100%;}
.tabla-canal{table-layout:fixed;width:100%;font-size:.78rem;border-collapse:collapse;}
.tabla-canal th,.tabla-canal td{padding:6px 8px;overflow-wrap:break-word;word-break:break-word;}
.tabla-canal th{font-size:.72rem;text-align:left;color:var(--ink-muted);border-bottom:1px solid var(--line);}
.tabla-canal td{border-bottom:1px solid var(--line);vertical-align:top;}
.tabla-canal td{white-space:normal;}
.tabla-canal .obs-linea{font-size:.72rem;color:var(--ink-muted);margin-top:4px;white-space:pre-wrap;}
.tabla-canal .det-linea{font-size:.72rem;color:var(--ink-muted);margin-top:2px;}

/* Cola de archivos de evidencia acumulados en JS (ver COLA_ARCHIVOS_EVIDENCIA en app.js). */
.rc-archivos-lista{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;}
.rc-archivos-lista li{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#f4f5f8;border-radius:6px;padding:5px 9px;font-size:.82rem;}
.btn-quitar-archivo{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.85rem;line-height:1;padding:2px 4px;}
.btn-quitar-archivo:hover{opacity:.7;}
.fila-barra{display:flex;align-items:center;gap:12px;padding:9px 0;}
.fila-barra .nombre{width:150px;flex:none;font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fila-barra .pista{flex:1;background:#eef0f4;border-radius:6px;height:10px;overflow:hidden;}

/* ---- BUDGET: consola tipo Power BI ---- */
.budget-consola{
  background:linear-gradient(160deg,#171c33,#0c0f1f);border-radius:var(--radius);
  padding:26px;color:#fff;margin-bottom:18px;box-shadow:var(--shadow-md);
}
.budget-consola .kpi-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-top:3px solid var(--accent-2);box-shadow:none;}
.budget-consola .kpi-card .valor{color:#fff;font-size:1.35rem;}
.budget-consola .kpi-card .etiqueta{color:rgba(255,255,255,.62);}
.budget-consola-titulo{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.5);font-weight:700;margin:0 0 14px;}
.budget-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px;}
.budget-chart-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:16px 18px;}
.budget-chart-card h4{margin:0 0 12px;font-size:.76rem;color:rgba(255,255,255,.7);text-transform:uppercase;letter-spacing:.06em;font-weight:700;}
.budget-chart-card .lienzo-wrap{position:relative;height:220px;}
.budget-chart-card canvas{max-height:220px;}
.budget-chart-card p.nota{color:rgba(255,255,255,.55);font-size:.78rem;margin:10px 0 0;}
@media (max-width: 860px){.budget-chart-grid{grid-template-columns:1fr;}}
.fila-barra .relleno{background:linear-gradient(90deg,var(--accent),var(--accent-2));height:100%;border-radius:6px;}
.fila-barra .num{width:34px;flex:none;text-align:right;font-size:.82rem;color:var(--ink-muted);}

/* ---- Responsive (mobile): la barra lateral se convierte en una tira horizontal arriba ---- */
@media (max-width:900px){
  .app-shell{flex-direction:column;}
  .sidebar{
    width:100%;height:auto;position:sticky;top:0;flex-direction:row;align-items:center;
    padding:10px 12px;overflow-x:auto;gap:14px;z-index:30;
  }
  .sidebar-brand{flex:none;}
  .sidebar-nav{flex-direction:row;flex:none;gap:4px;}
  .sidebar-nav .nav-item{white-space:nowrap;padding:8px 12px;}
  .nav-grupo{display:none;}
  .sidebar-footer{border-top:none;padding-top:0;flex:none;}
  .sidebar-footer button{white-space:nowrap;padding:8px 14px;}
  .main-scroll{padding:20px 16px 100px;}
  .topline{padding:12px 16px;}
  .cats{grid-template-columns:1fr 1fr;}
  .cats-top{grid-template-columns:1fr 1fr;}
  .cats-bottom{grid-template-columns:1fr 1fr;}
  .cat-grande{grid-column:1 / -1;}
  .stepper .paso{min-width:100%;}
  table{font-size:.8rem;}
  th,td{padding:9px 9px;}
  .cat{padding:16px;min-height:120px;}
  .cat small{font-size:.74rem;line-height:1.4;}
}
@media (max-width:560px){
  .cats{grid-template-columns:1fr;}
  .cats-top{grid-template-columns:1fr;}
  .cats-bottom{grid-template-columns:1fr;}
  .cat{padding:16px;min-height:auto;}
  .cat b{font-size:.92rem;margin-top:10px;}
  .cat small{font-size:.76rem;line-height:1.42;margin-top:4px;white-space:normal;overflow-wrap:break-word;}
  .cat-grande{flex-direction:column;align-items:flex-start;gap:0;min-height:auto;}
  .cat-grande .cat-icon{margin-bottom:8px;}
  .cat-grande b{margin-top:0;}
}

/* Segmento/Modelo como checkbox múltiple (sep 2026, 2ª ronda) — mismo estilo en Crear campaña y
   Crear UTM. */
.chk-grupo{display:flex;flex-wrap:wrap;gap:4px 12px;border:1px solid var(--borde,#d9dee3);border-radius:8px;padding:10px 12px;background:#fff;}
.chk-grupo-item{display:inline-flex;align-items:center;gap:5px;font-weight:400;font-size:.82rem;margin:0;white-space:nowrap;}
.chk-grupo-vacio{font-size:.82rem;color:#8a94a3;}

/* v115: observaciones largas recortadas + popup con el texto completo */
.tabla-canal .obs-corta{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;cursor:help;}
.obs-popup{position:fixed;z-index:9999;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.22);padding:12px 14px;font-size:.82rem;line-height:1.45;white-space:pre-wrap;max-height:60vh;overflow:auto;}

/* v116: gráficas resumen en Planes de mercadeo */
.planes-graficas{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:6px;}
.planes-grafica-card{margin:0;}
.planes-lienzo{position:relative;width:100%;height:200px;}

/* v116: Mis solicitudes de formularios */
.ms-card{margin-bottom:14px;}
.ms-card-top{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;}
.ms-nombre{font-size:.85rem;margin-top:4px;overflow-wrap:anywhere;}
.ms-resumen{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:.82rem;color:var(--ink-muted);}
.ms-resumen b{color:var(--ink);}
.ms-detalles{margin-top:10px;}
.ms-detalles summary{cursor:pointer;color:var(--accent-ink);font-weight:600;font-size:.85rem;}
.ms-detalles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:10px;}
.ms-detalles-grid h4{margin:0 0 8px;font-size:.85rem;}
.ms-timeline{list-style:none;margin:0;padding:0 0 0 4px;border-left:2px solid var(--line);}
.ms-timeline li{display:flex;gap:8px;padding:0 0 12px 10px;font-size:.82rem;}
.ms-tl-icono{flex:0 0 auto;}
.ms-detalle{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:.82rem;}
.ms-detalle dt{color:var(--ink-muted);font-weight:600;}
.ms-detalle dd{margin:0;overflow-wrap:anywhere;}

/* v118 */
.budget-kpi-nota{font-size:.7rem;color:rgba(255,255,255,.6);margin-top:4px;line-height:1.3;}

/* v123: resumen de reglas de inversión en tarjetas */
.reglas-res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;}
.reglas-res-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px;}
.reglas-res-top{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.8rem;}
.reglas-res-pct{background:var(--accent-soft);color:var(--accent-ink);font-weight:700;font-size:.72rem;border-radius:999px;padding:1px 8px;}
.reglas-res-canales{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}
.reglas-res-chip{font-size:.68rem;font-weight:600;border-radius:999px;padding:2px 8px;background:#eef0f6;color:#3a3f55;}
.reglas-chip-digital{background:#e8e6fb;color:#3730a3;}
.reglas-chip-btl{background:#dff5ef;color:#0b6b58;}
.reglas-chip-atl{background:#fdecd8;color:#8a4b08;}
.reglas-chip-influencer{background:#fbe3ee;color:#8f1d4f;}

/* v124: reglas por ciudad + aviso de mes de prueba */
.reglas-ciudad-titulo{font-weight:700;font-size:.8rem;margin:10px 0 6px;color:var(--accent-ink);}
.reglas-ciudad-bloque{background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin-bottom:12px;}
.reglas-ciudad-bloque summary{cursor:pointer;font-weight:700;padding:4px 0 8px;}
.aviso-prueba-reglas{background:#eef6ff;border:1px solid #c9defa;color:#1d4f91;border-radius:10px;padding:10px 12px;margin:0 0 12px;font-size:.85rem;}

/* v129: las tarjetas KPI ya no se montan unas sobre otras — se reparten en filas (flex-wrap) y cada
   tarjeta mide como mínimo lo que ocupa su número (que nunca se corta); los textos largos se parten
   en varias líneas en vez de estirar la tarjeta por encima de la de al lado. */
.kpi-grid{display:flex;flex-wrap:wrap;gap:14px;}
.kpi-grid > .kpi-card{flex:1 1 170px;min-width:min-content;}
.kpi-grid > :not(.kpi-card){flex:1 1 100%;}
.budget-kpi-nota{white-space:normal;overflow-wrap:break-word;}

/* v133: nombre de modelo largo (SPORTAGEHEV) sin partirse y % siempre en una línea */
.reglas-res-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));}
.reglas-res-top b{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.reglas-res-pct{white-space:nowrap;flex:0 0 auto;}

/* v134: canal CRM y nota de tipo de acción esperada en las reglas */
.reglas-chip-crm{background:#e3f1fb;color:#0d5a8a;}
.reglas-res-nota{font-size:.68rem;color:var(--ink-muted);margin-top:6px;line-height:1.35;}
.reglas-nota-input{font-size:.8rem;padding:6px 8px;margin-top:4px;}

/* v136: rango de meses en Planes + gráficas sin espacio en blanco sobrante */
.planes-rango-meses{display:flex;gap:12px;flex-wrap:wrap;}
.planes-rango-meses > div{flex:1 1 160px;}
.planes-graficas{align-items:start;}

/* v137: selector de meses desplegable con casillas */
.multi-mes{position:relative;max-width:360px;}
.multi-mes-boton{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid var(--line-strong);border-radius:12px;padding:12px 14px;font:inherit;color:var(--ink);cursor:pointer;text-align:left;}
.multi-mes-boton:hover{border-color:var(--accent);}
.multi-mes-panel{position:absolute;z-index:50;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 10px 30px rgba(20,20,60,.15);padding:10px;}
.multi-mes-acciones{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap;}
.multi-mes-lista{max-height:280px;overflow:auto;}
.multi-mes-opcion{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;font-weight:500;cursor:pointer;margin:0;color:var(--ink);}
.multi-mes-opcion:hover{background:var(--accent-soft);}
.multi-mes-opcion input{width:auto;margin:0;}

/* v138: Recobros — facturas del mes, evidencia en un clic y detalle flotante */
.rc-boton-facturas{cursor:pointer;border:2px dashed var(--accent);background:#fff;text-align:left;font:inherit;}
.rc-boton-facturas:hover{background:var(--accent-soft);}
.rc-boton-facturas .val{color:var(--accent-ink);}
.rc-panel-facturas{border:1px solid var(--accent);margin:10px 0 14px;}
.rc-fn{border:1px solid var(--line-strong);border-radius:12px;padding:12px 14px;margin-bottom:10px;background:#fbfbff;}
.rc-fn-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.rc-fn-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;}
.rc-fn-lineas{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px;margin-top:4px;max-height:260px;overflow:auto;}
.rc-fn-linea{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;font-weight:400;margin:0;cursor:pointer;}
.rc-fn-linea input{width:auto;margin-top:3px;}
.rc-fn-linea:has(input:checked){border-color:var(--accent);background:var(--accent-soft);}
.rc-fn-validacion{margin:8px 0 0;font-size:.82rem;}
.rc-ok{color:#0b7a4b;font-weight:600;}
.rc-mal{color:#c0392b;font-weight:600;}
.rc-facturas-det{margin:0 0 12px;}
.rc-facturas-det summary{cursor:pointer;font-weight:600;color:var(--accent-ink);font-size:.88rem;}
.rc-facturas-registradas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-top:8px;}
.rc-factura-chip{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;font-size:.85rem;}
.rc-btn-evidencia{border:none;cursor:pointer;font:inherit;font-size:.75rem;}
.rc-chip-vacia{background:var(--accent-soft);color:var(--accent-ink);font-weight:600;}
.rc-btn-evidencia:hover{filter:brightness(.95);text-decoration:underline;}
.accion-con-pop{cursor:help;border-bottom:1px dotted var(--ink-muted);}
.pop-accion{white-space:normal;}
.pop-acc-titulo{font-weight:700;margin-bottom:6px;}
.pop-acc-dl{display:grid;grid-template-columns:max-content 1fr;gap:3px 12px;margin:0;font-size:.8rem;}
.pop-acc-dl dt{color:var(--ink-muted);font-weight:600;}
.pop-acc-dl dd{margin:0;}
.pop-acc-obs{margin-top:8px;font-size:.78rem;color:var(--ink);white-space:pre-wrap;border-top:1px solid var(--line);padding-top:6px;}

/* v139: vista Tabla | Calendario en Planes de mercadeo */
.vista-toggle{display:inline-flex;background:#fff;border:1px solid var(--line-strong);border-radius:999px;padding:4px;gap:4px;margin:0 0 14px;}
.vista-toggle button{border:none;background:transparent;font:inherit;font-weight:600;padding:8px 16px;border-radius:999px;cursor:pointer;color:var(--ink-muted);}
.vista-toggle button.activo{background:var(--accent);color:#fff;}
.cal-wrap{padding:18px 18px 22px;}
.cal-cabecera{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px;}
.cal-resumen{margin-left:auto;}
.cal-leyenda{display:flex;gap:14px;flex-wrap:wrap;margin:4px 0 12px;font-size:.8rem;color:var(--ink-muted);}
.cal-ley{display:inline-flex;align-items:center;gap:6px;}
.cal-ley i{width:12px;height:12px;border-radius:3px;display:inline-block;}
.cal-ley-pend{background:repeating-linear-gradient(45deg,#c7c9d6 0 3px,#fff 3px 6px);border:1px dashed #9aa0b5;}
.cal-encabezado{display:grid;grid-template-columns:repeat(7,1fr);font-size:.75rem;font-weight:700;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);padding-bottom:6px;}
.cal-encabezado div{padding:0 6px;}
.cal-semana{position:relative;border-bottom:1px solid var(--line);padding-bottom:6px;min-height:92px;}
.cal-dias{display:grid;grid-template-columns:repeat(7,1fr);}
.cal-dia{padding:4px 6px;font-size:.78rem;color:var(--ink);border-right:1px solid #f0f1f6;min-height:26px;}
.cal-dia:last-child{border-right:none;}
.cal-fuera{color:#b6b9c7;background:#fafafd;}
.cal-hoy span{background:var(--accent);color:#fff;border-radius:999px;padding:1px 7px;font-weight:700;}
.cal-carril{display:grid;grid-template-columns:repeat(7,1fr);gap:0 4px;margin-top:3px;padding:0 2px;}
.cal-barra{background:var(--c);color:#fff;font-size:.72rem;font-weight:600;border-radius:6px;padding:3px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}
.cal-barra:hover,.cal-barra:focus{filter:brightness(1.08);outline:2px solid var(--c);outline-offset:1px;}
.cal-pendiente{background:color-mix(in srgb, var(--c) 22%, #fff);color:var(--ink);border:1px dashed var(--c);}
.cal-sigue-antes{border-top-left-radius:0;border-bottom-left-radius:0;}
.cal-sigue-despues{border-top-right-radius:0;border-bottom-right-radius:0;}
.cal-mas{font-size:.72rem;color:var(--ink-muted);margin:4px 6px 0;}
.cal-sin-fecha{display:flex;flex-wrap:wrap;gap:6px;}
.cal-chip{background:var(--c);color:#fff;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:600;cursor:pointer;}
.cal-chip.cal-pendiente{background:color-mix(in srgb, var(--c) 22%, #fff);color:var(--ink);}

/* v140 */
.rc-legalizado{background:#e3f6ee;}
.rc-legalizado .etq{color:#0b6b4a;}
.rc-fn-linea .accion-con-pop{border-bottom-style:dotted;}

/* v141: prioridad y SLA de solicitudes */
.chip-prioridad{display:inline-block;font-size:.68rem;font-weight:700;border-radius:999px;padding:2px 8px;letter-spacing:.03em;}
.prio-alta{background:#fde2e1;color:#a5251c;}
.prio-media{background:#fff1d6;color:#8a5a00;}
.prio-baja{background:#e3f1fb;color:#0d5a8a;}
.sla-txt{font-size:.75rem;color:var(--ink-muted);}
.sla-vencido{color:#c0392b;font-weight:700;}
.sla-por-vencer{color:#b26a00;font-weight:700;}
.sla-resuelto-a-tiempo{color:#0b7a4b;}
.sla-resuelto-tarde{color:#c0392b;}
#sf-tabla .obs-corta{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;cursor:help;}

/* v141: reglas en Planes de mercadeo */
.cuadro-reglas-plan{background:#fbfaff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:10px 0 6px;}
.cuadro-reglas-plan summary{cursor:pointer;font-weight:700;color:var(--accent-ink);}
.estrella-regla{color:#e0a100;font-size:1rem;cursor:help;}
.fila-con-regla td{background:#fffbea;}

/* v141: revisión de recobros del admin en tabla */
.rc-admin-resumen-top{margin:0 0 12px;font-size:.92rem;}
.rc-admin-conc{margin-bottom:14px;}
.rc-admin-conc > summary{cursor:pointer;font-size:1.05rem;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.rc-revision{display:flex;flex-direction:column;gap:6px;}
.rc-obs-tabla{font-size:.78rem;padding:6px 8px;}
.rc-revision-btns{display:flex;gap:6px;flex-wrap:wrap;}
.rc-btn-aprobar{background:#dff5ea;color:#0b6b4a;font-weight:700;}
.rc-btn-rechazar{background:#fde2e1;color:#a5251c;font-weight:700;}
.rc-archivos-admin{margin-top:4px;font-size:.72rem;overflow-wrap:anywhere;}
.rc-tabla-admin td{vertical-align:top;}

/* v142: evidencia "Por cargar" / "Cargada" + gestor de archivos */
.rc-chip-cargada{background:#dff5ea;color:#0b6b4a;font-weight:700;}
.rc-btn-gestionar-evidencia{border:none;cursor:pointer;font:inherit;font-size:.75rem;}
.rc-btn-gestionar-evidencia:hover{text-decoration:underline;}
.rc-fila-gestor td{background:#fafaff;}
.rc-gestor-evid{padding:4px 2px;}
.rc-gestor-lista{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px;}
.rc-gestor-lista li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.85rem;}
/* v150: Resultados en Planes de mercadeo */
.res-pct{font-weight:700;padding:2px 8px;border-radius:999px;font-size:.85rem;}
.res-pct.res-ok{background:#dff5ec;color:#0b7a55;}
.res-pct.res-medio{background:#fff1d6;color:#9a6100;}
.res-pct.res-bajo{background:#fde3e3;color:#b42318;}
.resultado-input:disabled{background:#f3f4f8;color:var(--ink);}
/* v158: recobros — regla 1 a 1 total, comentarios de factura, órdenes de compra */
.rc-regla-total{margin:0 0 14px;padding:10px 14px;border-radius:12px;font-size:.92rem;}
.rc-regla-total.rc-ok{background:#dff5ec;color:#0b5a40;}
.rc-regla-total.rc-mal{background:#fde3e3;color:#8f1d16;}
.rc-factura-comentario{margin-top:4px;font-size:.85rem;background:#fff7e6;border-radius:8px;padding:4px 8px;color:var(--ink);}
.rc-fn-comentario{width:100%;margin-top:4px;}
.rc-oc-dealer{margin:0 0 14px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;}
.rc-oc-dealer summary{cursor:pointer;}
.rc-oc-deshabilitado{opacity:.6;}
.rc-oc-deshabilitado summary{cursor:not-allowed;}
.rc-oc-lista{margin:6px 0 0 18px;padding:0;}
.rc-oc-lista li{margin:4px 0;}
/* v160: opciones explicadas en el "?" */
.tooltip-popover{max-height:70vh;overflow:auto;}
.pop-opciones{margin-top:10px;border-top:1px solid rgba(255,255,255,.25);padding-top:8px;}
.pop-opciones dl{margin:6px 0 0;}
.pop-opciones dt{font-weight:700;margin-top:6px;}
.pop-opciones dd{margin:0 0 0 0;opacity:.92;}
.tooltip-popover{max-width:340px;}
.pop-opciones{white-space:normal;}
