:root {
  /* Sistema Swiss: lienzo neutro, tinta legible, un solo acento de marca y
     reglas finas. Se mantienen los nombres de token para respetar los
     componentes y estados semánticos que ya existen. */
  --bg: #f2f7f9;
  --panel: #ffffff;
  --panel-2: #ffffff;
  --ink: #171b24;
  --muted: #526777;
  --brand: #008aab;
  --brand-ink: #075466;
  --gold: #73581b;
  --accent: #b42318;
  --accent-soft: #fff0ee;
  --warn: #805400;
  --warn-soft: #fff7df;
  --ok: #237044;
  --ok-soft: #e9f5ed;
  --border: #d3e1e8;
  --brand-soft: #e4f3f6;
  --sidebar: #0f1f2e;
  --shadow: 0 4px 16px rgba(15, 31, 46, .08);
  --radius: 10px;
  --primary: var(--brand);
  --serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: "Segoe UI", -apple-system, Roboto, Helvetica, Arial, sans-serif;
  background: var(--bg); color: var(--ink);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  /* Números tabulares en toda la app: € y % cuadran en columna (sello del
     tema, clave en una herramienta de auditoría). */
  font-feature-settings: "tnum" 1;
  font-variant-numeric: tabular-nums;
  line-height: 1.5;
}
.layout { display: flex; min-height: 100vh; }
.sidebar {
  width: 240px; color: #cbd5e1; padding: 24px 14px; flex-shrink: 0;
  background: linear-gradient(180deg, #0d1526 0%, #0b1220 55%, #0a0f1a 100%);
  border-right: 1px solid rgba(255,255,255,.06);
  position: sticky; top: 0; align-self: flex-start; height: 100vh;
}
.sidebar h1 { font-family: var(--serif); font-size: 20px; color: #fff; margin: 0 0 3px; letter-spacing: -.01em; font-weight: 700; display:flex; align-items:center; gap:9px; }
.sidebar h1::before { content: ""; width: 22px; height: 22px; border-radius: 6px;
  background: linear-gradient(135deg, var(--brand), #12a3c2); box-shadow: 0 0 0 3px rgba(14,116,144,.18); flex-shrink:0; }
.sidebar .sub { font-size: 11px; color: #7c8ba1; margin-bottom: 24px; letter-spacing: .04em; text-transform: uppercase; padding-left: 31px; }
.sidebar a { display: block; color: #cbd5e1; text-decoration: none; padding: 9px 11px; border-radius: 8px; font-size: 14px; margin-bottom: 2px; transition: background .12s, color .12s; }
.sidebar a:hover { background: rgba(255,255,255,.05); color: #fff; }
.sidebar a.active { background: rgba(14,116,144,.18); color: #fff; box-shadow: inset 3px 0 0 var(--brand); }
.sidebar .grupo { margin-top: 20px; font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: #5b6b82; padding: 0 11px 4px; }
.main { flex: 1; padding: 0 34px 44px; min-width: 0; }
/* Barra superior elevada y pegajosa (rediseño 31/07): rompe el padding del
   .main con margen negativo para ocupar todo el ancho; da identidad de
   producto en todas las páginas, no un admin plano. */
/* 08/08 (QA): el margen negativo hacía que la barra midiera 18 px MÁS que
   la ventana, así que TODAS las páginas se desbordaban en horizontal a
   cualquier tamaño. `box-sizing` + ancho calculado lo deja al ras. */
.topbar { display:flex; justify-content: flex-end; align-items:center; gap: 14px;
  box-sizing: border-box; width: calc(100% + 68px); max-width: calc(100% + 68px);
  padding: 13px 34px; margin: 0 -34px 24px; background: var(--panel);
  border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 20;
  box-shadow: 0 1px 3px rgba(16,24,40,.04); }
.topbar .user { font-size: 13px; color: var(--muted); }
.topbar .user a { color: var(--brand); text-decoration: none; font-weight: 600; }
.link-button { border: 0; padding: 0; background: transparent; color: var(--brand); font: inherit; font-weight: 600; cursor: pointer; }
.link-button:hover { text-decoration: underline; }
a { color: var(--brand-ink); text-underline-offset: .15em; text-decoration-thickness: 1px; }
h2 { margin: 4px 0 0; font-family: var(--serif); font-size: 30px; letter-spacing: -.01em; font-weight: 700; line-height: 1.12; text-wrap: balance; }
h2::after { content: ""; display: block; width: 46px; height: 3px; border-radius: 3px;
  background: var(--brand); margin-top: 10px; }
h2 + .muted, h2 + p { margin-top: 12px; }
.card { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 20px; margin-bottom: 16px; box-shadow: var(--shadow); }
.card h3 { margin: 0 0 12px; font-size: 15px; letter-spacing: -.01em; }
.secondary-disclosure { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); margin: 18px 0; box-shadow: var(--shadow); }
.secondary-disclosure > summary { cursor: pointer; padding: 14px 18px; color: var(--brand-ink); font-weight: 650; }
.secondary-disclosure[open] > summary { border-bottom: 1px solid var(--border); }
.secondary-disclosure > :not(summary) { margin-left: 18px; margin-right: 18px; }
.secondary-disclosure > :last-child { margin-bottom: 18px; }
.secondary-disclosure:focus-within > summary { outline: 3px solid var(--brand); outline-offset: 2px; }
.chart-data { margin: 10px 0 0; border-top: 1px solid var(--border); }
.chart-data > summary { width: fit-content; padding: 9px 2px 4px; color: var(--brand-ink); cursor: pointer; font-size: 12px; font-weight: 650; }
.chart-data .table-scroll { margin: 6px 0 10px; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th, td { text-align: left; padding: 8px 11px; border-bottom: 1px solid var(--border); vertical-align: top; }
th { background: var(--bg); font-weight: 600; color: var(--brand-ink); position: sticky; top:0; font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em; }
.l21-quantity { white-space: nowrap; font-variant-numeric: tabular-nums; }
.l21-quantity--positiva { color: var(--ok); font-weight: 700; }
.l21-quantity--negativa { color: var(--accent); font-weight: 700; }
.l21-quantity--neutra { color: var(--muted); }
tbody tr:nth-child(even) td, table tr:nth-child(even) td { background: var(--panel); }
tr:hover td { background: #eef6f8; }
th.sortable-th { cursor: pointer; user-select: none; }
th.sortable-th:hover { background: var(--brand-soft); color: var(--brand-ink); }
th.sortable-th .sort-ind { color: var(--brand); font-size: 11px; }
h3.seccion-panel { margin: 22px 0 4px; padding-bottom: 6px; border-bottom: 2px solid var(--border); font-size: 17px; }
h3.seccion-panel .badge { font-size: 13px; vertical-align: middle; }
/* Bloque que agrupa los pedidos de un mismo caso (productos movidos entre
   ellos): se ven juntos, cada uno con su ficha. */
.caso-bloque { border: 2px solid #7c3aed; border-radius: 8px; margin: 14px 0; overflow: hidden; }
.caso-bloque > details { margin: 0; border-radius: 0; border-left: none; border-right: none; }
.caso-bloque > details:last-child { border-bottom: none; }
.caso-cab { background: #7c3aed; color: #fff; padding: 7px 12px; font-size: 13px; font-weight: 600; }
.caso-cab .caso-nota { display: block; font-weight: 400; font-size: 11px; color: #e9d5ff; margin-top: 2px; }
/* Caso benigno (división de cuenta, todo cobrado) vs caso con pérdida. */
.caso-bloque.ok { border-color: #64748b; }
.caso-bloque.ok .caso-cab { background: #64748b; }
.caso-bloque.ok .caso-cab .caso-nota { color: #e2e8f0; }
.caso-bloque.alerta { border-color: #b91c1c; }
.caso-bloque.alerta .caso-cab { background: #b91c1c; }
.caso-bloque.alerta .caso-cab .caso-nota { color: #fecaca; }
.caso-bloque.mixto { border-color: #b45309; }
.caso-bloque.mixto .caso-cab { background: #b45309; }
.caso-bloque.mixto .caso-cab .caso-nota { color: #fed7aa; }
/* Resumen de indicios (chips) en la cabecera del pedido, visible sin desplegar. */
.cab-indicios { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.chip-indicio { display: inline-block; font-size: 11px; padding: 1px 7px; border: 1px solid var(--border); border-left-width: 3px; border-radius: 4px; background: var(--brand-soft); color: var(--brand-ink); }
/* Tipos que solo acompañan al caso (producto movido y cobrado): en gris,
   para que no se lean como un indicio más. */
.chip-indicio.contexto { color: var(--muted); background: var(--panel); font-style: italic; }
/* Movimiento de producto mostrado campo a campo (línea a línea). */
.mov-item { margin: 6px 0 12px; padding: 8px 12px; background: var(--brand-soft); border-left: 3px solid var(--brand); border-radius: 0 7px 7px 0; }
.mov-titulo { font-size: 14px; margin-bottom: 4px; }
.mov-campos { list-style: none; margin: 0; padding: 0; font-size: 13px; }
.mov-campos li { margin: 2px 0; }
.mov-campos .k { display: inline-block; min-width: 130px; color: #64748b; font-weight: 600; }
/* Marca "(responsable)" junto a un manager: se vigila igual, pero se lee su
   volumen en contexto — no se le excluye ni se le acusa por el recuento. */
.resp-tag { font-size: 11px; color: #92400e; background: #fef3c7; border: 1px solid #fde68a; border-radius: 4px; padding: 0 5px; white-space: nowrap; }
/* Rol derivado del dato: admin (descuenta/elimina) en ámbar, cobro en azul,
   sala en gris. No excluye a nadie: da contexto al volumen de cada uno. */
.resp-tag.rol-admin { color: #92400e; background: #fef3c7; border-color: #fde68a; }
.resp-tag.rol-cobro { color: var(--brand-ink); background: var(--brand-soft); border-color: var(--border); }
.resp-tag.rol-sala  { color: var(--muted); background: var(--panel); border-color: var(--border); }
.badge { display:inline-block; padding: 2px 9px; border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: .01em; }
.badge.alta { background: var(--accent-soft); color: var(--accent); box-shadow: inset 0 0 0 1px #fecdca; }
.badge.media { background: #fef7e6; color: #b54708; box-shadow: inset 0 0 0 1px #fdecca; }
.badge.baja { background: #e6f6f8; color: var(--brand-ink); box-shadow: inset 0 0 0 1px #c5e9ee; }
/* Dinero en juego (07/08): es el dato que ordena el Panel, así que se lee
   como una cifra y no como una etiqueta más. */
.badge-eur { display:inline-block; padding: 2px 9px; border-radius: 999px; font-size: 12px;
             font-weight: 700; background: #ecfdf3; color: #05603a; box-shadow: inset 0 0 0 1px #a6f4c5; }
.badge-repite { display:inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px;
                font-weight: 600; background: #fef7e6; color: #b54708; box-shadow: inset 0 0 0 1px #fdecca; }
.btn { display: inline-block; background: var(--brand); color: #fff; border: none; padding: 9px 17px;
  border-radius: 8px; cursor: pointer; text-decoration: none; font-size: 14px; font-weight: 600;
  box-shadow: var(--shadow); transition: background .12s; }
.btn:hover { background: var(--brand-ink); }
.btn.secondary { background: #344054; }
.btn.ghost { background: transparent; color: var(--brand); border: 1px solid var(--brand); box-shadow: none; }
.batch-rename { display: inline-block; }
.batch-rename > summary { list-style: none; }
.batch-rename > summary::-webkit-details-marker { display: none; }
.batch-rename-form { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-width: min(260px, 60vw); margin-top: 8px; }
.batch-rename-form input { flex: 1 1 150px; width: auto; min-width: 0; max-width: 280px; box-sizing: border-box; }
.batch-rename-form .btn { padding: 7px 12px; }
.batch-row-actions { display:flex; align-items:center; flex-wrap:nowrap; gap:8px; white-space:nowrap; }
.batch-row-actions > form { display:inline-flex; margin:0; }
.batch-row-actions .btn { padding:7px 10px; }
@media (max-width: 720px) {
  .batch-row-actions { flex-wrap:wrap; white-space:normal; min-width:240px; }
}
form .field { margin-bottom: 12px; }
label { display:block; font-size: 13px; margin-bottom: 4px; color: var(--muted); }
input, select, textarea { width: 100%; padding: 8px 10px; border: 1px solid var(--border); border-radius: 6px; font-size: 14px; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 14px; }
.stat { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; }
.stat .num { font-size: 26px; font-weight: 700; }
.stat .label { font-size: 12px; color: var(--muted); }
.tabs { display: flex; gap: 2px; margin-bottom: 18px; flex-wrap: wrap; border-bottom: 1px solid var(--border); }
.tabs a { padding: 9px 13px; text-decoration:none; color: var(--muted); font-size: 13px; border-bottom: 2px solid transparent; border-radius: 6px 6px 0 0; transition: color .12s, background .12s; }
.tabs a:hover { color: var(--ink); background: var(--brand-soft); }
.tabs a.active { color: var(--brand-ink); border-color: var(--brand); font-weight: 600; }
.umbral-form { display:flex; align-items:center; gap: 8px 12px; margin-bottom: 14px; font-size: 13px; flex-wrap: wrap; }
/* Selectores del panel EN LÍNEA y compactos (01/08): por defecto los <select>
   ocupan el 100% del ancho y cada etiqueta es un bloque, así que se apilaban y
   ocupaban muchísimo alto. Aquí las etiquetas van en línea y los desplegables
   toman solo el ancho que necesitan. */
.umbral-form label { display: inline-flex; align-items: center; width: auto; margin: 0; color: var(--muted); }
.umbral-form select { width: auto; min-width: 84px; padding: 6px 9px; }
.umbral-form .btn { padding: 7px 14px; }
.alert { padding: 10px 14px; border-radius: 8px; margin-bottom: 14px; font-size: 14px; }
.alert.error { background: #fee2e2; color: #991b1b; }
.alert.ok { background: #dcfce7; color: #166534; }
.muted { color: var(--muted); font-size: 12px; }
.tag { display:inline-block; background:var(--brand-soft); color:var(--brand-ink); border:1px solid var(--border); border-radius:6px; padding:1px 6px; font-size:11px; margin-right:4px;}

/* Prueba de integración Revo: una única pieza de configuración, separada de
   la ficha operativa de cada centro. La jerarquía de datos sigue el sistema
   visual de la app: rótulo pequeño, titular claro y una regla de estado que
   no compite con las alertas de auditoría. */
.api-test { border-top: 3px solid var(--brand); }
.api-test-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:4px; }
.api-test-kicker { margin:0 0 3px; color:var(--brand-ink); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.api-test h3 { margin:0; font-family:var(--serif); font-size:20px; }
.api-test-fields { margin-top:14px; }
.api-test-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; }
.api-test-actions .muted { max-width:620px; }
.api-test-result { margin:12px 0 0; padding:10px 12px; border-left:3px solid; font-size:13px; }
.api-test-result.ok { color:#166534; background:var(--ok-soft); border-color:var(--ok); }
.api-test-result.error { color:#991b1b; background:var(--accent-soft); border-color:var(--accent); }

/* --- Dashboards / mini rankings ------------------------------------- */
/* Ninguna tabla puede estirar la página (08/08, QA: la de Propinas medía
   5.393 px en escritorio). Se desplaza DENTRO de su propia caja. */
.tabla, table.sortable { display: block; overflow-x: auto; max-width: 100%; }
.dash-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap: 14px; margin-bottom: 18px; }
.dash-card { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 14px 16px; }
.dash-card h4 { margin: 0 0 10px; font-size: 13px; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; }
.dash-card ol { margin: 0; padding-left: 18px; font-size: 13px; }
.dash-card ol li { margin-bottom: 6px; display: flex; justify-content: space-between; gap: 8px; }
.dash-card .v { font-weight: 700; color: var(--accent); }
.dash-card.empty { color: var(--muted); font-size: 13px; }
.eliminations-dashboard { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; margin:0 0 20px; }
.elimination-chart { min-width:0; padding:14px 16px; border:1px solid var(--border); border-radius:12px; background:var(--panel); }
.elimination-chart h3 { margin:0 0 4px; font-size:15px; }
.elimination-chart > .muted { margin:0 0 12px; font-size:12px; }
.elimination-chart-list { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.elimination-chart-list li { display:grid; grid-template-columns:minmax(90px,1fr) minmax(55px,1.5fr) auto; align-items:center; gap:9px; min-width:0; font-size:13px; }
.elimination-chart-label { overflow-wrap:anywhere; }
.elimination-chart-track { display:block; height:9px; overflow:hidden; border-radius:99px; background:var(--border); }
.elimination-chart-track > span { display:block; height:100%; border-radius:inherit; background:var(--accent); }
.elimination-chart-list strong { min-width:2.5em; text-align:right; font-variant-numeric:tabular-nums; }
@media (max-width:480px) {
  .elimination-chart-list li { grid-template-columns:minmax(85px,1fr) minmax(35px,1fr) auto; gap:6px; font-size:12px; }
}

/* auto-FILL, no auto-FIT (06/08, ronda 19, punto 24: "arregla el descuadre,
   el último cuadro está más grande"). Con auto-fit las pistas vacías de la
   última fila colapsan y la última tarjeta se estira para ocupar el hueco
   sobrante; con auto-fill esas pistas se conservan y todas las tarjetas
   miden igual. */
.stat-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); gap: 14px; margin-bottom: 20px; }
.stat-card { display:block; background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px 18px;
  text-decoration:none; color:inherit; transition: box-shadow .15s, transform .15s, border-color .15s; position:relative; overflow:hidden; box-shadow: var(--shadow); }
.stat-card:hover { box-shadow: 0 6px 18px rgba(16,24,40,.10); transform: translateY(-2px); }
/* Acento arriba (no a la izquierda) + número gigante: aspecto claramente
   distinto al anterior. */
.stat-card { border-top: 3px solid #94a3b8; padding-top: 18px; }
.stat-card .icon { font-size: 17px; margin-bottom: 10px; display:block; opacity: .55; }
.stat-card .num { font-size: 34px; font-weight: 800; line-height:1; letter-spacing: -.03em; }
.stat-card .label { font-size: 11.5px; color: var(--muted); margin-top: 6px; text-transform: uppercase; letter-spacing: .04em; }
.stat-card.c-rojo { border-top-color: #dc2626; }
.stat-card.c-naranja { border-top-color: #ea580c; }
.stat-card.c-azul { border-top-color: var(--brand); }
.stat-card.c-verde { border-top-color: #16a34a; }
.stat-card.c-morado { border-top-color: #7c3aed; }
.stat-card.c-gris { border-top-color: #64748b; }
.stat-card.c-amarillo { border-top-color: #eab308; }

.chart-box { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 16px; margin-bottom: 18px; }
.chart-box h4 { margin: 0 0 10px; font-size: 13px; color: var(--muted); text-transform: uppercase; }
.chart-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px,1fr)); gap: 14px; }

/* --- Grupos por orden (acordeón) ------------------------------------- */
.grupo-orden { background: var(--panel); border: 1px solid var(--border); border-radius: 10px; margin-bottom: 10px; overflow: hidden; }
.grupo-orden > summary { cursor: pointer; padding: 12px 16px; display: flex; align-items: center; gap: 12px; list-style: none; font-size: 14px; }
.grupo-orden > summary::-webkit-details-marker { display: none; }
.grupo-orden > summary:before { content: "▸"; color: var(--muted); transition: transform .15s; }
.grupo-orden[open] > summary:before { transform: rotate(90deg); }
.grupo-orden .cab-orden { font-weight: 700; }
.grupo-orden .cab-meta { color: var(--muted); font-size: 12.5px; }
.grupo-orden .cuerpo { padding: 4px 16px 16px; border-top: 1px solid var(--border); }
.grupo-orden .nivel-badge { margin-left: auto; }
.grupo-orden.n-alta { border-left: 4px solid #dc2626; }
.grupo-orden.n-media { border-left: 4px solid #ea580c; }
.grupo-orden.n-baja { border-left: 4px solid #eab308; }

.orden-caliente { display:flex; align-items:center; gap:10px; padding: 8px 10px; border-radius: 8px; margin-bottom:6px; }
.orden-caliente .barra { width: 6px; align-self: stretch; border-radius: 4px; }
.orden-caliente.n-alta .barra { background: #dc2626; }
.orden-caliente.n-media .barra { background: #ea580c; }
.orden-caliente.n-baja .barra { background: #eab308; }
.orden-caliente .info { flex:1; font-size: 13px; }
.orden-caliente .num { font-weight: 800; font-size: 16px; }

.subseccion { margin: 14px 0 6px; font-size: 13.5px; font-weight: 700; color: var(--ink); }
.total-cuenta { font-size: 13px; margin-bottom: 6px; color: var(--ink); }
.pago-linea { display:inline-block; font-size:12px; background:var(--bg); border-radius:6px; padding:2px 8px; margin:2px 4px 2px 0; }
.impresion-paso { border-left: 3px solid var(--border); padding: 6px 0 6px 12px; margin-bottom: 6px; }
.impresion-paso.cambio { border-left-color: var(--accent); }
.filtro-centro { margin-bottom: 16px; }
.chart-wrap { position: relative; height: 260px; width: 100%; }
.chart-wrap.chart-wrap-sm { height: 170px; }

.legend-tipos { list-style: none; margin: 12px 0 0; padding: 0; font-size: 12.5px; }
.legend-tipos li { display: flex; align-items: center; gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--border); }
.legend-tipos li:last-child { border-bottom: none; }
.legend-tipos .dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.legend-tipos .lbl { flex: 1; color: var(--ink); }
.legend-tipos .v { font-weight: 700; color: var(--ink); }
.filtro-centro select { max-width: 320px; display:inline-block; width:auto; }

.btn-mini { background: #fff; border: 1px solid var(--border); border-radius: 6px; padding: 5px 12px;
  font-size: 12.5px; cursor: pointer; color: var(--ink); }
.btn-mini:hover { background: var(--brand-soft); border-color: var(--brand); }

/* Checkboxes de "Tipos incluidos en el cruce" (Panel de alertas): antes
   iban en línea suelta con el resto del formulario y se veían amontonados
   contra el selector de umbral. Ahora cada tipo es un chip independiente
   con su propio borde, para que se puedan distinguir de un vistazo. */
.tipos-filtro { display: flex; flex-wrap: wrap; gap: 8px; }
.tipos-filtro label { display: flex; align-items: center; gap: 6px; margin: 0; font-weight: normal;
  font-size: 12.5px; background: var(--panel); border: 1px solid var(--border); border-radius: 999px;
  padding: 5px 12px 5px 8px; cursor: pointer; transition: background .1s, border-color .1s; }
.tipos-filtro label:hover { border-color: var(--brand); }
.tipos-filtro input[type="checkbox"] { width: auto; accent-color: var(--accent); }
.tipos-filtro label:has(input:checked) { background: var(--brand-soft); border-color: var(--brand); color: var(--brand-ink); font-weight: 600; }

/* ====================================================================
   Rediseño 01/08 — piezas nuevas
   ==================================================================== */

/* La barra lateral ahora lleva los 10 paneles + navegación: puede pasar de
   alto en pantallas bajas, así que se hace desplazable. */
.sidebar { overflow-y: auto; }
/* Contexto del lote en la cabecera de la barra lateral (centro + nombre). */
.ctx-lote { margin: 6px 0 14px; padding: 10px 12px; border: 1px solid rgba(255,255,255,.10);
  border-radius: 10px; background: rgba(255,255,255,.03); }
.ctx-lote .ctx-centro { font-size: 14px; font-weight: 700; color: #fff; letter-spacing: -.01em; }
.ctx-lote .ctx-lote-nombre { font-size: 11.5px; color: #93a0b4; margin-top: 2px; }

/* Titulares de sección del panel en serif (mismo carácter que h2). */
h3.seccion-panel { font-family: var(--serif); font-weight: 700; letter-spacing: -.01em; }
.subseccion { font-family: var(--serif); font-weight: 700; }

/* Cifras de dinero: se marcan con la clase .euro para que salgan en dorado
   y en monoespaciada tabular (sello "libro de cuentas"). */
.euro { color: var(--gold); font-weight: 700; font-variant-numeric: tabular-nums; }

/* --- Acciones de cada panel: Exportar a PDF + Enviar por email --------- */
.panel-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  margin: 2px 0 18px; }
.btn-pdf, .btn-mail, .btn-excel { display: inline-flex; align-items: center; gap: 7px; font-size: 13px;
  font-weight: 700; border-radius: 10px; padding: 9px 15px; cursor: pointer; text-decoration: none;
  box-shadow: var(--shadow); border: 0; line-height: 1; }
.btn-pdf { background: var(--brand); color: #fff; }
.btn-pdf:hover { background: var(--brand-ink); }
/* Excel: mismo tamaño y forma que el de PDF (06/08) — antes solo tenía
   definido el color y heredaba el tamaño de `.btn`, así que salía de
   otra medida al lado del de PDF. */
.btn-excel { background: #15803d; color: #fff; }
.btn-excel:hover { background: #166534; }
.mailto-form { display: flex; align-items: center; gap: 8px; margin: 0; }
.mailto-form input[type="email"] { width: 230px; padding: 8px 12px; border: 1px solid var(--border);
  border-radius: 10px; background: var(--panel-2); font-size: 13px; }
.btn-mail { background: var(--panel-2); color: var(--brand-ink); border: 1px solid var(--brand); }
.btn-mail:hover { background: #f0fafb; }
.mailto-off { font-size: 12px; color: var(--muted); background: var(--panel);
  border: 1px dashed var(--border); border-radius: 10px; padding: 8px 12px; }

/* --- Tipo de descuento en el Panel (detalle del 100%) ------------------ */
.dtipo { font-weight: 700; color: var(--brand-ink); background: rgba(13,125,140,.10);
  border-radius: 6px; padding: 1px 7px; }
.cien-badge { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .03em;
  color: var(--accent); background: var(--accent-soft); border-radius: 999px; padding: 1px 8px;
  margin-left: 4px; }

/* --- Ficha de pedido con "lomo" de gravedad más marcado ---------------- */
/* Refuerza la lectura de un vistazo (rojo=alta, ámbar=media, amarillo=baja)
   sin cambiar la estructura: el borde-izquierdo pasa a lomo de 5px. */
.grupo-orden.n-alta { border-left-width: 5px; }
.grupo-orden.n-media { border-left-width: 5px; }
.grupo-orden.n-baja { border-left-width: 5px; }
.grupo-orden > summary:hover { background: #f6f3ec; }

/* --- "¿Qué pasó aquí?" en Reimpresiones (06/08, ronda 19) ------------- */
.que-paso {
  background: var(--panel);
  border: 1px solid var(--border);
  border-left: 4px solid var(--brand);
  border-radius: var(--radius);
  padding: 10px 14px;
  margin-bottom: 12px;
}
.que-paso-titulo {
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--ink);
  margin-bottom: 6px;
}
.que-paso ul { margin: 0; padding-left: 18px; }
.que-paso li { font-size: 14px; line-height: 1.5; margin-bottom: 4px; }
.que-paso li.alerta { color: #b91c1c; font-weight: 600; }
.que-paso li.descuento { color: #b45309; }
.que-paso li.cambios { color: var(--ink); }

/* --- Filtro por columna estilo Excel (06/08, ronda 19) ---------------- */
.fila-filtros th { padding: 3px 4px !important; background: var(--bg); }
input.filtro-col {
  width: 100%;
  box-sizing: border-box;
  font-size: 12px;
  padding: 3px 6px;
  border: 1px solid var(--border);
  border-radius: 4px;
  font-weight: 400;
}
input.filtro-col:focus { outline: 2px solid var(--brand); outline-offset: -1px; }
.filtro-barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin: 4px 0;
  min-height: 26px;
}
.filtro-contador { font-size: 12px; color: var(--muted); }
.filtro-ayuda { color:var(--muted); font-size:11px; }
.filtro-limpiar { font-size: 12px; padding: 2px 8px; }

/* --- Contador por tipo de indicio (06/08, ronda 19, punto 12) --------- */
.conteo-indicios {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.conteo-indicios a {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 150px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-left: 4px solid var(--brand);
  border-radius: var(--radius);
  background: var(--panel);
  text-decoration: none;
  color: inherit;
  transition: background .12s ease, transform .12s ease;
}
.conteo-indicios a:hover { background: var(--brand-soft); transform: translateY(-1px); }
.conteo-indicios .ci-num { font-size: 26px; font-weight: 700; line-height: 1; }
.conteo-indicios .ci-lab { font-size: 12px; color: var(--muted); }

/* --- Resumen de descuentos en dos columnas (06/08, ronda 19) ---------- */
.desc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 18px;
}
.desc-col h4 { margin: 0 0 8px; }
.desc-col table { width: 100%; }


/* --- Reimpresiones: tipografía unificada y color por tipo de cambio ------
   (06/08) Antes cada bloque llevaba su `font-size` en línea y todos los
   cambios se veían igual (negrita negra), así que no se distinguía de un
   vistazo lo que SALIÓ de la cuenta de lo que entró. Ahora:
     rojo   = producto QUITADO   (es lo que hace bajar el importe)
     verde  = producto AÑADIDO
     ámbar  = CANTIDAD cambiada
     morado = viene/va MOVIDO de otro pedido
   Un solo tamaño de letra para todo el detalle. */
.cambio-bloque { margin: 6px 0; }
.cambio-titulo { font-size: 12.5px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .03em; margin-bottom: 2px; }
.cambio-quitado .cambio-titulo { color: var(--accent); }
.cambio-anadido .cambio-titulo { color: var(--ok); }
.cambio-cantidad .cambio-titulo { color: var(--warn); }
.linea-cambio { font-size: 13px; line-height: 1.45; margin: 2px 0 2px 14px; padding: 2px 0;
  border-bottom: 1px dotted var(--border); }
.linea-cambio:last-child { border-bottom: 0; }
.linea-cambio .prod { font-weight: 600; }
.cambio-quitado .linea-cambio .prod { color: var(--accent); }
.cambio-anadido .linea-cambio .prod { color: var(--ok); }
.cambio-cantidad .linea-cambio .prod { color: var(--warn); }
.linea-cambio .meta { color: var(--muted); }
.linea-cambio .movido { color: #7c3aed; font-weight: 600; }
.impresion-total { background: var(--panel-2); border: 1px solid var(--border);
  border-radius: 8px; padding: 10px 12px; margin-bottom: 10px; }
.impresion-total > strong { font-size: 13px; }
.impresion-cab { font-size: 13px; }

/* --- Lenguaje de color común (06/08) ------------------------------------
   El mismo color significa lo mismo en TODA la app, para no tener que
   reaprenderlo en cada pestaña:
     rojo  = pérdida / algo salió y no se cobró
     ámbar = a vigilar (descuento, merma, proceso incompleto)
     verde = correcto / cobrado
     morado= movimiento entre pedidos
   Sustituyen a los colores sueltos que llevaba cada plantilla en línea. */
.aviso { border-left: 4px solid var(--border); border-radius: 8px;
  padding: 9px 13px; margin-bottom: 8px; font-size: 13.5px; }
.aviso .aviso-tit { font-weight: 700; }
.aviso .aviso-det { color: var(--muted); font-size: 13px; margin-top: 3px; }
.aviso.grave   { border-left-color: var(--accent); background: var(--accent-soft); }
.aviso.vigilar { border-left-color: var(--warn);   background: var(--warn-soft); }
.aviso.ok      { border-left-color: var(--ok);     background: var(--ok-soft); }
.aviso.movido  { border-left-color: #7c3aed;       background: #f5f3ff; }
/* Filas de tabla con significado (mismo código de color). */
tr.fila-perdida td { background: var(--accent-soft) !important; }
tr.fila-actividad--positiva td { background: var(--ok-soft) !important; }
tr.fila-actividad--negativa td { background: var(--accent-soft) !important; }
.activity-original-text { display:block; margin:3px 0; color:var(--ink); font-weight:600; }
.hourly-chart-card { margin:16px 0 20px; padding:16px 18px; border:1px solid var(--border); border-radius:14px; background:linear-gradient(180deg,#fff 0%,#fbfdff 100%); box-shadow:var(--shadow); }
.hourly-chart-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:12px; }
.hourly-chart-heading h3 { margin:0; color:var(--ink); font-size:16px; }
.hourly-chart-heading p,.hourly-chart-note { margin:3px 0 0; color:var(--muted); font-size:12px; }
.hourly-chart-heading > strong { color:var(--brand-ink); white-space:nowrap; font-variant-numeric:tabular-nums; }
.hourly-chart-scroll { overflow-x:auto; padding:4px 0; }
.hourly-chart-bars { display:grid; grid-template-columns:repeat(24,minmax(22px,1fr)); align-items:end; gap:5px; min-width:700px; }
.hourly-chart-bar { display:grid; grid-template-rows:92px 18px 15px; justify-items:center; align-items:end; min-width:0; color:var(--muted); }
.hourly-chart-track { display:flex; align-items:flex-end; width:100%; height:84px; border-bottom:1px solid var(--border); background:linear-gradient(to top,transparent 32%,#edf3f6 32%,#edf3f6 33%,transparent 33%,transparent 65%,#edf3f6 65%,#edf3f6 66%,transparent 66%); }
.hourly-chart-track > span { display:block; width:min(18px,70%); min-height:0; margin:0 auto; border-radius:5px 5px 0 0; background:linear-gradient(180deg,#18a9cb 0%,#087f9f 100%); }
.hourly-chart-label { font-size:10px; font-variant-numeric:tabular-nums; }
.hourly-chart-bar small { min-height:14px; color:var(--brand-ink); font-size:9px; line-height:1; }
.hourly-chart-note { margin-top:10px; }
.drawer-action-counts { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:5px; }
.drawer-action-counts > span { padding:2px 6px; border-radius:999px; background:#eef5f8; color:var(--ink); white-space:nowrap; font-size:11px; }
.drawer-action-counts > span strong { color:var(--brand-ink); font-variant-numeric:tabular-nums; }
.drawer-action-counts > span:has(strong:first-child) { border:1px solid var(--border); }
tr.fila-vigilar td { background: var(--warn-soft) !important; }
/* Etiqueta compacta de gravedad dentro de un aviso. */
.marca-segura { background: var(--accent); color: #fff; padding: 1px 7px;
  border-radius: 10px; font-size: 11px; margin-left: 6px; font-weight: 700; }

/* Diferencia horaria entre reimpresiones (06/08): dato clave, va como
   etiqueta y no entre paréntesis. En rojo si pasan MENOS de 5 minutos —
   la cuenta se rehízo con el cliente delante. */
.salto-tiempo { display: inline-block; font-size: 12px; font-weight: 700;
  padding: 1px 8px; border-radius: 10px; background: var(--panel-2);
  border: 1px solid var(--border); color: var(--muted); white-space: nowrap; }
.salto-tiempo.urgente { background: var(--accent-soft); border-color: var(--accent);
  color: var(--accent); }

/* --- Formación y mejoras (06/08) -----------------------------------------
   Panel en clave de AYUDA, no de acusación: se distingue de un vistazo lo
   que es formación de equipo (petróleo) de lo que es un caso individual
   (ámbar). Deliberadamente SIN rojo: aquí no se señala a nadie. */
.marca-equipo { background: var(--brand); color: #fff; padding: 1px 8px;
  border-radius: 10px; font-size: 11px; font-weight: 700; margin-right: 6px; }
.marca-individual { background: var(--warn); color: #fff; padding: 1px 8px;
  border-radius: 10px; font-size: 11px; font-weight: 700; margin-right: 6px; }
.bloque-formacion { background: var(--panel-2); border: 1px solid var(--border);
  border-radius: 8px; padding: 10px 14px; margin: 8px 0; }
.bloque-formacion p { margin: 2px 0 10px; font-size: 13.5px; }
.bloque-formacion p:last-child { margin-bottom: 2px; }
.bf-tit { font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; color: var(--muted); }
.bf-tit.bf-verde { color: var(--ok); }

/* --- Patrones a revisar -------------------------------------------------
   La primera versión se leía como otro informe largo. Esta cabecera marca
   una única ruta de trabajo (prioridad → timeline → decisión) y deja lo
   formativo plegado para que no compita visualmente con la auditoría. */
.patron-foco { display:flex; justify-content:space-between; gap:24px; align-items:center;
  background:var(--panel); border:1px solid var(--border); border-top:4px solid var(--brand);
  border-radius:var(--radius); padding:20px 22px; margin-bottom:10px; box-shadow:var(--shadow); }
.patron-foco .eyebrow { margin-bottom:5px; }
.patron-foco h3 { margin:0 0 5px; font-family:var(--serif); font-size:22px; line-height:1.16; }
.patron-foco p { margin:0; color:var(--muted); font-size:13.5px; max-width:690px; }
.patron-resumen { display:flex; flex-shrink:0; border-left:1px solid var(--border); }
.patron-resumen div { min-width:84px; padding:0 13px; text-align:center; }
.patron-resumen div + div { border-left:1px solid var(--border); }
.patron-resumen strong { display:block; font-size:24px; line-height:1.05; color:var(--brand-ink); }
.patron-resumen span { display:block; margin-top:4px; color:var(--muted); font-size:11px; }
.patron-pasos { display:flex; gap:18px; margin:0 0 16px; padding:0; list-style:none; color:var(--muted); font-size:12.5px; }
.patron-pasos li { display:flex; align-items:center; gap:5px; }
.patron-pasos li::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--brand); }
.patron-pasos strong { color:var(--ink); }
.patron-ajuste { margin:0 0 14px; padding:9px 12px; border:1px solid var(--border); border-radius:8px; background:rgba(255,255,255,.42); }
.patron-prioridad { border-left:4px solid var(--accent); }
.patron-seccion-cab { display:flex; align-items:flex-start; gap:10px; margin-bottom:14px; }
.patron-seccion-cab h3 { margin:0 0 2px; font-size:17px; }
.patron-seccion-cab p { margin:0; color:var(--muted); font-size:13px; }
.patron-tipo { padding:14px 0; border-top:1px solid var(--border); }
.patron-tipo h4 { margin:0 0 5px; font-size:14px; }
.patron-tipo > p { margin:0 0 9px; color:var(--muted); font-size:13px; }
.patron-relacion { margin-top:3px; max-width:240px; color:var(--muted); font-size:11px; line-height:1.35; }
.patron-relacion a { font-weight:700; }
.patron-relacion span { margin-left:3px; }
.patron-comprobar { padding:8px 10px; border-left:3px solid var(--brand); background:var(--brand-soft); border-radius:0 7px 7px 0; }
.patron-observaciones { border-left:4px solid var(--warn); }
.patron-observaciones summary { cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:16px; font-weight:700; }
.patron-observaciones > p { color:var(--muted); font-size:13px; margin:12px 0 0; }

/* ------------------------------------------------------------------
   MÓVIL Y TABLET (08/08, QA previa al lanzamiento)
   La barra lateral era fija (~240 px), así que en un móvil de 390 px al
   contenido le quedaban 150 px y TODAS las pestañas se desbordaban en
   horizontal (comprobado con navegador a 390×844: tarjetas, dashboards y
   tablas saliéndose de la pantalla). Se revisa el informe cada 7-14 días y
   parte de eso se hace desde el teléfono, así que tiene que leerse.
   ------------------------------------------------------------------ */
@media (max-width: 900px) {
  .layout { flex-direction: column; }
  .sidebar { width: auto; min-height: 0; position: static; height: auto; padding: 14px 16px; }
  /* La navegación pasa a fluir en horizontal para no comerse la pantalla */
  .sidebar a { display: inline-block; margin: 2px 4px 2px 0; }
  .sidebar .grupo { margin-top: 12px; }
  .main { padding: 0 16px 32px; }
  .topbar { width: calc(100% + 32px); max-width: calc(100% + 32px); margin: 0 -16px 18px; padding: 10px 16px; }
  /* Rejillas a una sola columna: minmax(200px) no cabía en 150 px útiles */
  .stat-cards { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
  .dash-grid { grid-template-columns: 1fr; }
  /* Las tablas anchas se desplazan DENTRO de su caja, nunca la página */
  .tabla, table.sortable { display: block; overflow-x: auto; white-space: nowrap; max-width: 100%; }
  /* Cabeceras de pedido: que envuelvan en vez de estirar la fila */
  .cab-meta, .cab-indicios { display: block; margin-top: 4px; }
  .umbral-form { flex-wrap: wrap; }
  .patron-foco { display:block; padding:17px; }
  .patron-resumen { margin-top:16px; border:0; }
  .patron-resumen div { padding:0 10px; flex:1; min-width:0; }
  .patron-pasos { display:block; margin-left:2px; }
  .patron-pasos li { margin:5px 0; }
}

/* Cambio de persona en el timeline de una orden (09/08). Marca el momento,
   no a la persona: es donde suele estar el patrón (uno abre la mesa, otro la
   cierra o la vacía), pero por sí solo no significa nada. */
tr.cambio-persona td { background: #fffbeb; border-top: 2px solid #f59e0b;
  font-size: 12.5px; color: #92400e; padding: 5px 10px; }

/* ====================================================================
   Mesa de auditoría · 09/08
   La pantalla se organiza alrededor de una decisión: qué revisar, qué
   patrón seguir y qué es mero contexto operativo. Se reducen los adornos
   para que las cifras y los casos manden sobre los colores.
   ==================================================================== */
.sidebar { padding-top: 20px; }
.sidebar a { font-size: 13px; padding: 8px 10px; }
.sidebar .grupo:first-of-type { margin-top: 8px; }
.workspace-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin: 4px 0 22px; padding-bottom:20px; border-bottom:1px solid var(--border); }
.workspace-head h2 { margin: 2px 0 0; font-size: clamp(25px, 3vw, 36px); }
.workspace-head h2::after { display:none; }
.workspace-head h2 span { color:#b7afa2; font-weight:400; }
.workspace-head .muted { margin:7px 0 0; font-size:13px; }
.eyebrow { color:var(--brand-ink); text-transform:uppercase; letter-spacing:.11em; font-size:10px; font-weight:800; }
.compare-link { display:inline-flex; align-items:center; gap:8px; color:var(--ink); background:transparent; border:1px solid var(--border); border-radius:999px; padding:8px 13px; text-decoration:none; font-size:12px; font-weight:700; white-space:nowrap; }
.compare-link:hover { border-color:var(--brand); color:var(--brand-ink); background:#f1fbfc; }
.compare-link span, .overview-action span { color:var(--brand); font-size:16px; }

.audit-overview { display:flex; justify-content:space-between; gap:24px; align-items:end; background:linear-gradient(125deg, #0c2630, #123942); color:#f4faf9; border-radius:16px; padding:25px 28px; margin: 2px 0 14px; box-shadow:0 16px 34px rgba(12,38,48,.14); }
.audit-overview h3 { font-family:var(--serif); font-size:25px; letter-spacing:-.02em; margin:4px 0 6px; }
.audit-overview p { margin:0; max-width:650px; color:#c6d8d9; font-size:13px; }
.audit-overview .eyebrow { color:#8cd5dc; }
.overview-action { align-self:center; color:#09323a; background:#ddf4f2; border-radius:999px; padding:10px 15px; text-decoration:none; font-size:12px; font-weight:800; white-space:nowrap; }
.overview-action:hover { background:#fff; }
.focus-grid { display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:12px; margin-bottom:12px; }
.focus-card { min-height:166px; display:flex; flex-direction:column; align-items:flex-start; text-decoration:none; color:var(--ink); background:var(--panel); border:1px solid var(--border); border-radius:13px; padding:18px; transition:transform .15s, box-shadow .15s, border-color .15s; }
.focus-card:hover { transform:translateY(-2px); border-color:#9ccbd0; box-shadow:var(--shadow); }
.focus-card strong { font-size:38px; line-height:1; letter-spacing:-.05em; margin:10px 0 7px; }
.focus-card span:not(.focus-kicker) { font-size:13px; line-height:1.35; color:var(--muted); max-width:210px; }
.focus-card em { margin-top:auto; color:var(--brand-ink); font-style:normal; font-size:12px; font-weight:700; padding-top:14px; }
.focus-kicker { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:10px; font-weight:800; }
.focus-primary { color:#fff; background:#123943; border-color:#123943; }
.focus-primary .focus-kicker, .focus-primary span:not(.focus-kicker) { color:#c4d9da; }
.focus-primary em { color:#8cd5dc; }
.signal-strip { display:grid; grid-template-columns:repeat(4,1fr); background:var(--panel); border:1px solid var(--border); border-radius:12px; margin-bottom:20px; overflow:hidden; }
.signal-strip a { min-width:0; padding:13px 15px; border-right:1px solid var(--border); text-decoration:none; color:var(--ink); display:flex; align-items:baseline; gap:7px; }
.signal-strip a:last-child { border-right:0; }
.signal-strip a:hover { background:#f5fbfb; }
.signal-strip b { color:var(--brand-ink); font-size:20px; letter-spacing:-.03em; }
.signal-strip span { color:var(--muted); font-size:11.5px; line-height:1.25; }

.investigation-head { display:flex; justify-content:space-between; gap:28px; align-items:center; background:var(--panel-2); border:1px solid var(--border); border-left:4px solid var(--brand); border-radius:12px; padding:19px 20px; margin:0 0 16px; }
.investigation-head h3 { font-family:var(--serif); margin:3px 0 5px; font-size:23px; letter-spacing:-.02em; }
.investigation-head p { max-width:650px; color:var(--muted); font-size:13px; margin:0; }
.investigation-metrics { display:flex; flex-shrink:0; border-left:1px solid var(--border); }
.investigation-metrics div { width:104px; padding:0 14px; border-right:1px solid var(--border); }
.investigation-metrics div:last-child { border-right:0; }
.investigation-metrics strong { display:block; font-size:25px; letter-spacing:-.04em; color:var(--ink); }
.investigation-metrics span { display:block; color:var(--muted); font-size:10.5px; line-height:1.2; margin-top:3px; }
.investigation-head + .muted { max-width:820px; margin:0 0 16px; font-size:13px; }
.umbral-form { background:var(--panel); border:1px solid var(--border); border-radius:10px; padding:11px 13px; margin-bottom:12px; }
.chart-box { border-radius:13px; box-shadow:none; }
.chart-box h4 { letter-spacing:.07em; font-size:10.5px; }
.grupo-orden { border-radius:12px; }

@media (max-width: 1050px) {
  .focus-grid { grid-template-columns:1fr 1fr; }
  .focus-card:first-child { grid-column:span 2; min-height:145px; }
  .investigation-head { align-items:flex-start; flex-direction:column; }
  .investigation-metrics { border-left:0; border-top:1px solid var(--border); padding-top:14px; width:100%; }
}
@media (max-width: 700px) {
  .workspace-head { align-items:flex-start; flex-direction:column; gap:12px; padding-bottom:15px; margin-bottom:16px; }
  .audit-overview { align-items:flex-start; flex-direction:column; padding:21px; }
  .audit-overview h3 { font-size:22px; }
  .overview-action { align-self:auto; }
  .focus-grid { grid-template-columns:1fr; }
  .focus-card:first-child { grid-column:auto; }
  .focus-card { min-height:138px; }
  .signal-strip { grid-template-columns:1fr 1fr; }
  .signal-strip a:nth-child(2) { border-right:0; }
  .signal-strip a:nth-child(-n+2) { border-bottom:1px solid var(--border); }
  .investigation-metrics { display:grid; grid-template-columns:repeat(3,1fr); }
  .investigation-metrics div { width:auto; padding:0 10px; }
  .investigation-metrics div:first-child { padding-left:0; }
}

/* Tokens globales aplicados al final del sistema de componentes. */
:root {
  --bg: #f2f7f9;
  --panel: #ffffff;
  --panel-2: #ffffff;
  --ink: #171b24;
  --muted: #526777;
  --brand: #008aab;
  --brand-ink: #075466;
  --gold: #73581b;
  --accent: #b42318;
  --accent-soft: #fff0ee;
  --warn: #805400;
  --warn-soft: #fff7df;
  --ok: #237044;
  --ok-soft: #e9f5ed;
  --border: #d3e1e8;
  --brand-soft: #e4f3f6;
  --sidebar: #0f1f2e;
  --shadow: 0 4px 16px rgba(15, 31, 46, .08);
  --radius: 10px;
  --serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
body {
  font-family: "Segoe UI", -apple-system, Roboto, Helvetica, Arial, sans-serif;
  background: var(--bg);
  color: var(--ink);
  line-height: 1.45;
}
.sidebar {
  width: 264px;
  color: #d6d1c7;
  background: var(--sidebar);
  border-right: 1px solid rgba(255,255,255,.08);
  padding: 22px 14px 28px;
}
.sidebar h1 { color: #fbfaf6; font-family: var(--serif); font-size: 21px; letter-spacing: -.02em; }
.sidebar h1::before { width: 18px; height: 18px; border-radius: 5px; background: var(--brand); box-shadow: 0 0 0 3px rgba(13,125,140,.2); }
.sidebar .sub { color: #aaa294; padding-left: 28px; margin-bottom: 25px; font-size: 10px; letter-spacing: .08em; }
.sidebar .grupo { color: #a99f90; font-size: 10px; letter-spacing: .1em; padding: 0 10px 5px; }
.sidebar a { color: #d6d1c7; border-radius: 7px; font-size: 13px; margin: 1px 0; padding: 8px 10px; border-left: 2px solid transparent; }
.sidebar a:hover { color: #fff; background: rgba(255,255,255,.07); }
.sidebar a.active { color: #fff; background: rgba(13,125,140,.22); box-shadow: none; border-left-color: var(--brand); font-weight: 700; }
.ctx-lote { border-radius: 8px; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); padding: 11px 12px; }
.ctx-lote .ctx-centro { color: #fbfaf6; font-size: 13px; }
.ctx-lote .ctx-lote-nombre { color: #d6d1c7; }
.ctx-lote .ctx-kicker { display:block; margin-bottom:5px; color:#8cd5dc; font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }

/* Índice de informes del lote. La numeración es una coordenada de lectura,
   no un icono: permite ubicar rápidamente el informe activo en una barra
   con mucho contenido sin añadir decoración ni datos inventados. */
.report-nav { display:block; }
.report-nav-section { margin:0 0 18px; border-top:1px solid rgba(255,255,255,.12); }
.report-nav-section:first-child { border-top:2px solid rgba(255,255,255,.28); }
.report-nav-heading { display:grid; grid-template-columns:30px 1fr; align-items:baseline; gap:8px; padding:9px 10px 6px; color:#b8b0a3; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.report-nav-heading::before, .report-nav-heading::after { content:none !important; display:none !important; }
.report-nav-heading > span { color:var(--brand); font-weight:800; font-variant-numeric:tabular-nums; }
.report-nav-heading strong { color:#b8b0a3; font-size:10px; font-weight:800; }
.sidebar .report-nav-link { display:grid; grid-template-columns:30px minmax(0,1fr); align-items:baseline; gap:8px; margin:0; padding:8px 10px; border:0; border-bottom:1px solid transparent; border-radius:6px; color:#ded9cf; font-size:13px; line-height:1.25; }
.sidebar .report-nav-link .nav-index { color:#a69d8e; font-size:10px; font-weight:700; letter-spacing:.04em; }
.sidebar .report-nav-link:hover { color:#fff; background:rgba(255,255,255,.07); }
.sidebar .report-nav-link.active { color:#fff; background:var(--brand-ink); border-left:0; font-weight:700; }
.sidebar .report-nav-link.active .nav-index { color:#fff; }
.report-nav-footer { display:grid; grid-template-columns:1fr; gap:0; margin-top:5px; border-top:2px solid rgba(255,255,255,.28); }
.sidebar .report-nav-footer a { margin:0; padding:9px 10px; border-left:0; border-bottom:1px solid rgba(255,255,255,.12); color:#ded9cf; font-size:12px; font-weight:700; }
.sidebar .report-nav-footer a:hover { background:rgba(255,255,255,.07); color:#fff; }
.report-nav-filter-note { margin:7px 10px 0; color:#a69d8e; font-size:10.5px; line-height:1.4; }
@media (max-width: 900px) {
  .report-nav { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
  .report-nav-section { margin:0; border:1px solid rgba(255,255,255,.12); }
  .report-nav-section:first-child { border-top:1px solid rgba(255,255,255,.12); }
  .report-nav-footer { grid-template-columns:1fr 1fr; margin-top:12px; }
  .sidebar .report-nav-footer a { display:block; margin:0; }
}
@media (max-width: 560px) {
  .report-nav { grid-template-columns:1fr; }
  .report-nav-footer { grid-template-columns:1fr; }
}
.main { padding-bottom: 54px; }
.topbar { background: var(--panel); border-bottom-color: var(--border); box-shadow: 0 1px 3px rgba(23,19,13,.04); }
.topbar .user { color: var(--muted); }
.topbar .user a, .link-button { color: var(--brand-ink); }
h2, h3.seccion-panel, .subseccion, .audit-overview h3, .investigation-head h3,
.patron-foco h3, .workspace-head h2 { font-family: var(--serif); }
h2 { font-size: clamp(27px, 3vw, 39px); font-weight: 650; letter-spacing: -.025em; }
h2::after { display: block; }
.workspace-head { align-items:flex-end; border-bottom: 1px solid var(--border); padding-bottom: 15px; margin: 6px 0 20px; }
.workspace-head h2 span { color: var(--brand); }
.workspace-actions { display:flex; align-items:center; gap:14px; }
.audit-folio { min-width: 178px; border-left: 1px solid var(--border); padding-left: 13px; }
.audit-folio span { display:block; color:var(--muted); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.audit-folio strong { display:block; margin-top:3px; font-size:12px; font-weight:700; white-space:nowrap; }
.eyebrow { color:var(--brand); letter-spacing:.12em; }
.compare-link, .overview-action, .btn, .btn-pdf, .btn-mail, .btn-excel, .btn-mini {
  border-radius: 7px;
}
.compare-link { color:var(--brand); border-color:var(--brand); padding:8px 10px; }
.compare-link:hover { color:#fff; background:var(--brand); border-color:var(--brand); }
.compare-link span, .overview-action span { display:none; }
.card, .stat, .stat-card, .dash-card, .chart-box, .grupo-orden, .patron-foco,
.investigation-head, .focus-card, .signal-strip, .propinas-filtros, .audit-overview {
  border-radius: var(--radius); box-shadow:var(--shadow);
}
.card { border-color:var(--border); padding:18px; }
.card h3 { font-size:16px; letter-spacing:-.02em; }
.stat-card { border:1px solid var(--border); border-top:3px solid var(--brand); padding:16px; }
.stat-card:hover, .focus-card:hover { transform:translateY(-1px); box-shadow:var(--shadow); border-color:var(--brand); }
.stat-card .icon { display:none; }
.stat-card .num, .focus-card strong { font-size:38px; color:var(--ink); }
.stat-card .label, .focus-kicker { color:var(--muted); letter-spacing:.08em; }
.audit-overview { color:var(--ink); background:var(--panel); border:1px solid var(--border); padding:21px; }
.audit-overview .eyebrow { color:var(--brand); }
.audit-overview h3 { font-size:25px; }
.audit-overview p { color:var(--muted); }
.overview-action { align-self:center; color:#fff; background:var(--brand); padding:10px 13px; }
.overview-action:hover { color:#fff; background:var(--brand-ink); }
.focus-grid { gap:1px; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; background:var(--border); }
.focus-card { border:0; border-right:1px solid var(--border); min-height:168px; background:var(--panel); }
.focus-card:last-child { border-right:0; }
.focus-primary { background:var(--brand); color:#fff; }
.focus-primary .focus-kicker, .focus-primary span:not(.focus-kicker), .focus-primary em { color:#fff; }
.focus-primary strong { color:#fff; }
.focus-card em { color:var(--brand); }
.signal-strip { border-radius:var(--radius); }
.signal-strip a:hover { background:var(--brand-soft); }
.signal-strip b { color:var(--brand); }
.investigation-head { border:1px solid var(--border); border-left:4px solid var(--brand); background:var(--panel); }
.investigation-metrics strong, .patron-resumen strong { color:var(--brand); }
.umbral-form, .patron-ajuste { border-radius:var(--radius); background:var(--panel); }
input, select, textarea, .mailto-form input[type="email"] { border-radius:6px; border-color:#b7ad9e; background:var(--panel-2); }
input:focus, select:focus, textarea:focus { outline:2px solid var(--brand); outline-offset:1px; }
.btn, .btn-pdf { background:var(--brand); }
.btn:hover, .btn-pdf:hover { background:var(--brand-ink); }
.btn.secondary { background:var(--ink); }
.btn.ghost, .btn-mail { color:var(--brand-ink); border-color:var(--brand); background:var(--panel); }
.btn.ghost:hover, .btn-mail:hover { color:#fff; background:var(--brand); }
.btn-excel { background:var(--ink); }
.btn-excel:hover { background:var(--brand); }
.badge, .badge-eur, .badge-repite, .tag, .chip-indicio, .pago-linea,
.marca-equipo, .marca-individual, .marca-segura { border-radius:999px; }
.badge.alta, .marca-segura { color:#fff; background:var(--accent); }
.badge.media, .badge.baja, .badge-eur, .badge-repite { color:var(--ink); background:var(--brand-soft); border:1px solid var(--border); }
.marca-equipo, .marca-individual { background:var(--brand); }
table { border:1px solid var(--border); border-radius:8px; }
th, td { border-bottom-color:var(--border); padding:9px 10px; }
th { background:var(--bg); color:var(--brand-ink); font-size:10.5px; letter-spacing:.07em; }
tbody tr:nth-child(even) td, table tr:nth-child(even) td { background:var(--panel); }
tr:hover td { background:var(--brand-soft); }
.grupo-orden { border-left-width:4px; }
.grupo-orden.n-alta { border-left-color:var(--accent); }
.grupo-orden.n-media, .grupo-orden.n-baja { border-left-color:var(--brand); }
.grupo-orden > summary:hover { background:var(--brand-soft); }
.aviso, .bloque-formacion, .que-paso, .patron-comprobar, .propinas-filtros,
.detalle-propina-head { border-radius:8px; background:var(--panel); }
.aviso.grave { border-left-color:var(--accent); background:var(--accent-soft); }
.aviso.vigilar, .aviso.ok, .aviso.movido { border-left-color:var(--brand); background:var(--brand-soft); }
.euro { color:var(--gold); }
.patron-foco { border-top-color:var(--brand); }
.patron-pasos li::before { border-radius:50%; background:var(--brand); }
.patron-observaciones { border-left-color:var(--brand); }
.paginacion, .detalle-trigger { border-radius:8px; }
@media (max-width: 1050px) {
  .focus-grid { gap:1px; background:var(--border); }
  .focus-card { border:0; }
}
@media (max-width: 700px) {
  .workspace-actions { width:100%; align-items:flex-start; flex-direction:column; gap:10px; }
  .audit-folio { border-left:0; padding-left:0; }
  .focus-grid { border:0; gap:10px; background:transparent; }
  .focus-card { border:1px solid var(--border); }
  .focus-card:first-child { grid-column:auto; }
  .sidebar { width:auto; }
}

/* Composición de trabajo: las tres pantallas principales dejan de ser una
   sucesión de tarjetas y pasan a tener una jerarquía propia. */
.summary-masthead, .training-masthead {
  display:grid;
  grid-template-columns: 168px minmax(0, 1fr) auto;
  align-items:stretch;
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  overflow:hidden;
  margin:2px 0 18px;
}
.summary-count {
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:170px;
  padding:17px;
  color:#fff;
  background:var(--brand);
}
.summary-count span, .summary-route-label, .training-index span {
  font-size:10px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.summary-count strong { font-size:70px; line-height:.82; letter-spacing:-.08em; }
.summary-copy, .training-copy { padding:20px 24px; }
.summary-copy h3, .training-copy h3 { margin:5px 0 7px; font-size:28px; letter-spacing:-.04em; }
.summary-copy p, .training-copy p { max-width:650px; margin:0; color:var(--muted); font-size:13px; }
.summary-action { align-self:end; margin:0 18px 18px 0; padding:10px 12px; color:#fff; background:var(--brand); text-decoration:none; font-size:12px; font-weight:700; white-space:nowrap; }
.summary-action:hover { background:var(--brand-ink); }
.summary-routes { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); margin-bottom:16px; border:1px solid var(--border); background:var(--border); gap:1px; }
.summary-route { display:flex; flex-direction:column; min-height:184px; padding:18px; color:var(--ink); background:var(--panel); text-decoration:none; }
.summary-route:hover { color:var(--ink); background:var(--brand-soft); }
.summary-route strong { margin:16px 0 7px; font-size:43px; line-height:.9; letter-spacing:-.07em; }
.summary-route > span:not(.summary-route-label) { max-width:190px; color:var(--muted); font-size:13px; line-height:1.35; }
.summary-route em { margin-top:auto; padding-top:15px; color:var(--brand); font-size:12px; font-style:normal; font-weight:700; }
.summary-route-primary { color:#fff; background:var(--brand); }
.summary-route-primary:hover { color:#fff; background:var(--brand-ink); }
.summary-route-primary > span:not(.summary-route-label), .summary-route-primary em { color:#fff; }
.summary-index { display:grid; grid-template-columns:repeat(4, 1fr); margin-bottom:22px; border-top:2px solid var(--ink); border-bottom:1px solid var(--border); }
.summary-index a { display:flex; flex-direction:column; gap:8px; min-height:76px; padding:12px 14px; color:var(--ink); text-decoration:none; border-right:1px solid var(--border); }
.summary-index a:last-child { border-right:0; }
.summary-index a:hover { background:var(--brand-soft); }
.summary-index span { color:var(--muted); font-size:11px; line-height:1.25; }
.summary-index b { color:var(--brand); font-size:25px; line-height:1; }
.impact-overview { margin:0 0 18px; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); overflow:hidden; }
.impact-heading { padding:17px 18px 14px; border-bottom:1px solid var(--border); }
.impact-heading h3 { margin:4px 0 5px; font-size:21px; letter-spacing:-.035em; }
.impact-heading p { max-width:760px; margin:0; color:var(--muted); font-size:13px; }
.impact-cards { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); }
.impact-card { display:flex; flex-direction:column; min-height:178px; gap:8px; padding:16px; color:var(--ink); text-decoration:none; border-right:1px solid var(--border); }
.impact-card:last-child { border-right:0; }
.impact-card:hover { color:var(--ink); background:var(--brand-soft); }
.impact-label { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.impact-card strong { color:var(--brand); font-size:34px; line-height:.95; letter-spacing:-.065em; font-variant-numeric:tabular-nums; }
.impact-card > span:not(.impact-label) { font-size:12px; line-height:1.35; }
.impact-card small { margin-top:auto; color:var(--muted); font-size:11px; line-height:1.35; }
.impact-breakdown { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:8px; }
.impact-breakdown a { display:flex; align-items:baseline; gap:7px; padding:7px 9px; border:1px solid var(--border); border-radius:7px; color:var(--ink); text-decoration:none; }
.impact-breakdown a:hover { background:var(--brand-soft); }
.impact-breakdown strong { color:var(--brand); font-size:21px; }
.impact-breakdown span { font-size:11px; line-height:1.25; }
.impact-note { margin:0; padding:10px 16px; color:var(--muted); border-top:1px solid var(--border); background:var(--bg); font-size:12px; }
.summary-kpis { margin:0 0 22px; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); }
.summary-kpis[open] { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; padding:12px; }
.summary-kpis > summary { padding:13px 16px; color:var(--brand-ink); cursor:pointer; font-weight:700; }
.summary-kpis > summary span { color:var(--muted); font-size:12px; font-weight:400; }
.summary-kpis[open] > summary { grid-column:1 / -1; border-bottom:1px solid var(--border); }
.summary-kpi-group { border:1px solid var(--border); border-radius:8px; background:var(--panel); overflow:hidden; }
.summary-kpi-group h4 { margin:0; padding:12px 14px 2px; font-size:14px; letter-spacing:-.01em; }
.summary-kpi-group > p { min-height:36px; margin:0; padding:0 14px 11px; color:var(--muted); font-size:11px; line-height:1.35; }
.summary-kpi-group > div { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); border-top:1px solid var(--border); }
.summary-kpi-group a { display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:5px 8px; min-height:76px; padding:10px 12px; color:var(--ink); text-decoration:none; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
.summary-kpi-group a:nth-child(2n) { border-right:0; }
.summary-kpi-group a:nth-last-child(-n+2) { border-bottom:0; }
.summary-kpi-group a:hover { color:var(--ink); background:var(--brand-soft); }
.summary-kpi-group a span { color:var(--muted); font-size:11px; line-height:1.2; }
.summary-kpi-group a strong { color:var(--brand); font-size:19px; line-height:1; letter-spacing:-.04em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.summary-kpi-group a small { grid-column:1 / -1; color:var(--muted); font-size:10px; line-height:1.2; }

.filter-dock { margin:16px 0 10px; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); overflow:hidden; }
.filter-dock-title { display:flex; justify-content:space-between; gap:12px; padding:11px 14px; border-bottom:1px solid var(--border); }
.filter-dock-title strong { font-size:13px; }
.filter-dock-title span { color:var(--muted); font-size:12px; }
.filter-dock-fields { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); border-bottom:1px solid var(--border); }
.filter-dock-fields label { display:flex; flex-direction:column; gap:6px; min-height:76px; margin:0; padding:11px 13px; border-right:1px solid var(--border); color:var(--muted); font-size:11px; font-weight:700; }
.filter-dock-fields label:last-child { border-right:0; }
.filter-dock-fields select { width:100%; padding:6px 0; border-width:0 0 1px; font-size:13px; color:var(--ink); }
.filtros-tipos { padding:12px 14px; border-bottom:1px solid var(--border); }
.filtros-tipos summary { cursor:pointer; color:var(--ink); font-size:13px; font-weight:700; }
.filter-types-body { margin-top:12px; }
.filter-type-actions { display:flex; gap:8px; margin-bottom:9px; }
.tipos-filtro { gap:6px; }
.tipos-filtro label { border-radius:7px; background:var(--panel); padding:5px 8px; }
.tipos-filtro label:has(input:checked) { color:var(--brand-ink); border-color:var(--brand); background:var(--brand-soft); }
.filter-dock-actions { display:flex; align-items:center; gap:8px; padding:12px 14px; }
.filter-dock-actions .btn-mini { color:var(--ink); text-decoration:none; }
.filter-readout { margin:0 0 17px; padding:9px 12px; color:var(--ink); background:var(--brand-soft); border-left:4px solid var(--brand); border-radius:0 7px 7px 0; font-size:13px; }
.case-feed { margin-top:25px; border-top:1px solid var(--border); }
.case-feed-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; padding:14px 0; border-bottom:1px solid var(--border); }
.case-feed-head h3 { margin:4px 0 0; font-size:21px; letter-spacing:-.03em; }
.case-feed-head > span { color:var(--brand); font-size:27px; font-weight:700; letter-spacing:-.05em; }
.case-type-strip { display:grid; grid-template-columns:repeat(auto-fit,minmax(165px,1fr)); margin:12px 0 18px; border:1px solid #d7dce2; background:#fff; font-family:"Helvetica Neue",Arial,sans-serif; }
.case-type-strip-intro, .case-type-kpi { min-width:0; display:flex; flex-direction:column; justify-content:center; gap:5px; padding:11px 14px; border-right:1px solid #d7dce2; border-bottom:1px solid #d7dce2; }
.case-type-strip-intro strong { font-size:13px; color:#16181b; }
.case-type-strip-intro span, .case-type-kpi span { color:#535a62; font-size:11px; line-height:1.3; }
.case-type-kpi { flex-direction:row; align-items:center; justify-content:space-between; gap:9px; }
.case-type-kpi strong { flex:0 0 auto; color:#E4002B; font-size:24px; line-height:1; font-variant-numeric:tabular-nums; }
@media (max-width:700px) {
  .case-type-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .case-type-strip-intro { grid-column:1 / -1; border-right:0; }
  .case-type-kpi:nth-child(odd) { border-right:0; }
}

.training-masthead { grid-template-columns:minmax(0, 1fr) 286px; border-color:var(--ink); }
.training-copy { min-height:150px; }
.training-index { display:grid; grid-template-columns:repeat(3, 1fr); background:var(--brand); color:#fff; }
.training-index div { display:flex; flex-direction:column; justify-content:flex-end; gap:7px; padding:15px 12px; border-left:1px solid rgba(255,255,255,.35); }
.training-index strong { font-size:35px; line-height:.9; letter-spacing:-.06em; }
.training-ranking, .training-plan { margin:18px 0; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); padding:18px; box-shadow:var(--shadow); }
.section-lead { display:flex; justify-content:space-between; align-items:flex-end; gap:18px; margin-bottom:12px; border-bottom:1px solid var(--border); padding-bottom:11px; }
.section-lead h3 { margin:4px 0 0; font-size:20px; letter-spacing:-.03em; }
.training-plan { border:1px solid var(--brand); }
.training-plan ol { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:0; margin:0 !important; padding:0 !important; list-style:none; counter-reset:practicas; }
.training-plan li { min-height:160px; margin:0 !important; padding:14px 16px 14px 42px !important; border-right:1px solid var(--border); position:relative; }
.training-plan li:last-child { border-right:0; }
.training-plan li::before { content:counter(practicas, decimal-leading-zero); counter-increment:practicas; position:absolute; top:14px; left:14px; color:var(--brand); font-size:11px; font-weight:700; }
.training-plan .marca-equipo { display:inline-block; margin:7px 0 0 !important; }

/* Capacidad operativa por PDA: dato temporal, no inventario. */
.pda-capacity { margin:18px 0; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); overflow:hidden; }
.pda-capacity-head { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; padding:18px; border-bottom:1px solid var(--border); }
.pda-capacity h2 { margin:0; font-size:20px; letter-spacing:-.035em; }
.pda-capacity-head p, .pda-method { margin:5px 0 0; color:var(--muted); font-size:13px; }
.pda-window-form { flex:0 0 auto; }
.pda-window-form label { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:11px; font-weight:700; }
.pda-window-form select { min-width:100px; padding:7px 24px 7px 8px; border:1px solid var(--border); border-radius:6px; color:var(--ink); font-weight:700; background:var(--panel-2); }
.pda-summary { display:grid; grid-template-columns:136px minmax(180px, .8fr) minmax(260px, 1.7fr); border-bottom:1px solid var(--border); }
.pda-summary > div { min-height:104px; padding:16px 18px; border-right:1px solid var(--border); }
.pda-summary > div:last-child { border-right:0; }
.pda-peak-number { display:flex; flex-direction:column; justify-content:center; background:var(--brand); color:#fff; }
.pda-peak-number strong { font-size:44px; line-height:.9; letter-spacing:-.07em; }
.pda-peak-number span { margin-top:7px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; }
.pda-peak-detail { display:flex; flex-direction:column; justify-content:center; gap:7px; }
.pda-peak-detail strong { font-size:16px; }
.pda-peak-detail span { color:var(--muted); font-size:12px; }
.pda-peak-devices { display:flex; align-content:center; align-items:center; flex-wrap:wrap; gap:12px; }
.pda-device-group { display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
.pda-device-group b { color:var(--muted); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.pda-peak-devices .tag, .pda-table .tag { margin:0; }
.tag-caja { color:var(--brand-ink) !important; border-color:var(--brand) !important; background:var(--brand-soft) !important; }
.pda-method { padding:12px 18px; border-bottom:1px solid var(--border); }
.pda-capacity .table-scroll { overflow-x:auto; }
.pda-table { min-width:1120px; margin:0; }
.pda-table th, .pda-table td { vertical-align:middle; }
.pda-comandas-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.pda-comandas-head h3 { margin-bottom:5px; }
.pda-comandas-head p { margin-top:0; }
.pda-hour-summary { margin:14px 0 10px; padding:10px 12px; border-left:4px solid var(--brand); border-radius:0 7px 7px 0; background:var(--brand-soft); font-size:13px; }
.pda-hour-table { min-width:620px; }
.pda-hour-table .tag { margin:0 3px 3px 0; }

.daily-sales { margin:20px 0; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); overflow:hidden; }
.daily-sales-head { display:flex; justify-content:space-between; align-items:stretch; gap:18px; border-bottom:1px solid var(--border); }
.daily-sales-head > div:first-child { padding:18px; }
.daily-sales h2 { margin:0 0 5px; font-size:21px; letter-spacing:-.035em; }
.daily-sales-head p, .daily-sales-note { margin:0; color:var(--muted); font-size:13px; }
.daily-sales-kpis { display:grid; grid-template-columns:repeat(3, minmax(120px, 1fr)); border-left:1px solid var(--border); }
.daily-sales-kpis div { display:flex; flex-direction:column; justify-content:center; gap:4px; padding:14px 17px; border-left:1px solid var(--border); }
.daily-sales-kpis div:first-child { border-left:0; }
.daily-sales-kpis span, .daily-sales-kpis b { color:var(--muted); font-size:11px; font-weight:600; }
.daily-sales-kpis strong { font-size:21px; line-height:1; letter-spacing:-.045em; }
.daily-sales-panels { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px; padding:14px; }
.daily-sales-series { min-width:0; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--panel); }
.daily-sales-series-head { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 14px; border-bottom:1px solid var(--border); }
.daily-sales-series-head h3 { margin:0; font-size:14px; }
.daily-sales-series-head > span { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:11px; }
.daily-sales-series-head i { display:inline-block; width:10px; height:10px; margin-left:7px; }
.daily-sales-unit { color:var(--brand-ink) !important; font-weight:800; }
.legend-food, .bar-food { background:#ea580c; }
.legend-drink, .bar-drink { background:var(--gold); }
.legend-revenue, .daily-revenue { background:var(--brand); }
.daily-sales-axis-chart { display:grid; grid-template-columns:48px minmax(0, 1fr); gap:8px; padding:14px 12px 8px; }
.daily-sales-axis { display:flex; flex-direction:column; justify-content:space-between; align-items:flex-end; height:218px; padding-bottom:0; color:var(--muted); font-size:10px; font-variant-numeric:tabular-nums; }
.daily-sales-scroll { min-width:0; overflow-x:auto; }
.daily-sales-chart { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(74px, 1fr); align-items:end; min-width:620px; padding:0 6px 8px; }
.daily-sales-day { display:grid; grid-template-rows:218px 34px auto; gap:7px; min-width:0; padding:0 8px; border-left:1px solid var(--border); }
.daily-sales-day:first-child { border-left:0; }
.daily-sales-bars { display:flex; align-items:flex-end; justify-content:center; height:218px; border-bottom:1px solid var(--ink); background:repeating-linear-gradient(to top, transparent 0, transparent calc(25% - 1px), var(--border) calc(25% - 1px), var(--border) 25%); }
.daily-bar { width:22px; min-height:2px; }
.daily-comandas { display:flex; flex-direction:column; justify-content:flex-end; align-self:flex-end; min-height:2px; }
.daily-comandas .bar-food, .daily-comandas .bar-drink { display:block; flex:0 0 auto; min-height:0; }
.daily-revenue { align-self:flex-end; }
.daily-sales-day.is-best .daily-revenue { background:var(--brand-ink); }
.daily-sales-values { display:flex; flex-direction:column; gap:2px; font-size:10px; text-align:center; font-variant-numeric:tabular-nums; }
.daily-sales-values span { color:var(--muted); }
.daily-sales-values strong { font-size:11px; }
.daily-sales-day time { color:var(--ink); font-size:11px; font-weight:700; text-align:center; }
.daily-sales-data { margin:0 14px; border-top:1px solid var(--border); }
.daily-sales-data summary { min-height:44px; display:flex; align-items:center; color:var(--brand-ink); cursor:pointer; font-size:13px; font-weight:700; }
.daily-sales-data .table-scroll { margin-bottom:12px; }
.daily-sales-note { padding:11px 18px; border-top:1px solid var(--border); }

@media (max-width: 900px) {
  .daily-sales-panels { grid-template-columns:1fr; }
}

/* Resúmenes de alcance: cifras que sitúan una investigación antes de entrar
   en rankings o filas. Se usan solo donde ayudan a distinguir corrección,
   seguimiento operativo y caso pendiente; no son una puntuación de fraude. */
.audit-kpis { margin:18px 0; }
.audit-kpis .stat-card { min-height:112px; }
.audit-kpis .stat-card small { display:block; margin-top:3px; color:var(--muted); font-size:10px; font-weight:600; letter-spacing:0; text-transform:none; }
.operational-pulse { margin:18px 0; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); overflow:hidden; }
.operational-pulse-head { display:flex; justify-content:space-between; gap:18px; align-items:baseline; padding:11px 14px; border-bottom:1px solid var(--border); }
.operational-pulse-head strong { font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.operational-pulse-head span { color:var(--muted); font-size:12px; text-align:right; }
.operational-pulse-row { display:grid; grid-template-columns:minmax(155px, .8fr) minmax(100px, 2fr) minmax(92px, auto); align-items:center; gap:12px; padding:10px 14px; border-bottom:1px solid var(--border); font-size:12px; }
.operational-pulse-row:last-child { border-bottom:0; }
.operational-pulse-row > span { color:var(--ink); font-weight:650; }
.operational-pulse-row b { font-variant-numeric:tabular-nums; text-align:right; white-space:nowrap; }
.operational-track { height:9px; overflow:hidden; border-radius:999px; background:var(--border); }
.operational-track i { display:block; height:100%; min-width:0; }
.pulse-alert { background:var(--accent); }
.pulse-neutral { background:var(--muted); }
.pulse-brand { background:var(--brand); }
.ms-distribution { margin-top:14px; }

/* La definición y cobertura siguen disponibles como ayuda contextual, no
   como una segunda portada repetida en cada informe. */
.report-scope-help { margin:0 0 14px; border-bottom:1px solid var(--border); }
.report-scope-help > summary {
  display:flex; min-height:40px; align-items:center; color:var(--brand-ink);
  cursor:pointer; font-size:12px; font-weight:700;
}
.report-scope-help > summary:focus-visible { outline:3px solid var(--brand); outline-offset:2px; }
.report-scope-content {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 22px;
  padding:10px 0 14px; border-top:1px solid var(--border);
}
.report-scope-content > div { min-width:0; }
.report-scope-content span { display:block; margin-bottom:3px; color:var(--muted); font-size:11px; font-weight:650; }
.report-scope-content p, .report-scope-content strong { margin:0; font-size:12px; line-height:1.45; }
.report-scope-content p { color:var(--muted); }
.report-scope-sources ul { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 7px; padding:0; list-style:none; }
.report-scope-sources li { display:grid; gap:1px; padding:5px 8px; background:var(--brand-soft); border:1px solid var(--border); border-radius:7px; }
.report-scope-sources li strong { font-size:10.5px; line-height:1.2; }
.report-scope-sources li small { color:var(--muted); font-size:9.5px; line-height:1.2; }
.report-scope-sources > a { font-size:11px; font-weight:650; }

@media (max-width: 1100px) {
  .report-scope-content { gap:10px 16px; }
}

@media (max-width: 900px) {
  .summary-masthead { grid-template-columns:132px minmax(0, 1fr); }
  .summary-action { grid-column:2; justify-self:start; margin:0 0 18px 24px; }
  .summary-routes { grid-template-columns:1fr 1fr; }
  .summary-route-primary { grid-column:span 2; }
  .impact-cards { grid-template-columns:1fr; }
  .impact-card { min-height:0; border-right:0; border-bottom:1px solid var(--border); }
  .impact-card:last-child { border-bottom:0; }
  .summary-kpis[open] { grid-template-columns:1fr; }
  .filter-dock-fields { grid-template-columns:1fr 1fr; }
  .filter-dock-fields label:nth-child(2) { border-right:0; }
  .filter-dock-fields label:nth-child(3) { border-top:1px solid var(--border); }
  .training-masthead { grid-template-columns:1fr; }
  .training-index { min-height:100px; }
}
@media (max-width: 640px) {
  .report-scope-content { grid-template-columns:1fr; gap:9px; }
  .summary-masthead { display:block; }
  .summary-count { min-height:120px; }
  .summary-count strong { font-size:54px; }
  .summary-copy, .training-copy { padding:17px; }
  .summary-action { display:inline-block; margin:0 17px 17px; }
  .summary-routes, .summary-index { grid-template-columns:1fr; }
  .summary-route-primary { grid-column:auto; }
  .summary-route, .summary-index a { border-right:0; border-bottom:1px solid var(--border); }
  .summary-kpi-group > div { grid-template-columns:1fr; }
  .impact-breakdown { grid-template-columns:1fr; }
  .summary-kpi-group a, .summary-kpi-group a:nth-child(2n) { border-right:0; border-bottom:1px solid var(--border); }
  .summary-kpi-group a:last-child { border-bottom:0; }
  .filter-dock-title, .case-feed-head { align-items:flex-start; flex-direction:column; }
  .filter-dock-fields { grid-template-columns:1fr; }
  .filter-dock-fields label, .filter-dock-fields label:nth-child(3) { min-height:auto; border-right:0; border-top:1px solid var(--border); }
  .filter-dock-fields label:first-child { border-top:0; }
  .training-plan ol { grid-template-columns:1fr; }
  .training-plan li { min-height:auto; border-right:0; border-bottom:1px solid var(--border); }
  .training-plan li:last-child { border-bottom:0; }
  .pda-summary { grid-template-columns:112px 1fr; }
  .pda-peak-devices { grid-column:1 / -1; border-top:1px solid var(--border); border-right:0 !important; min-height:auto !important; }
  .pda-comandas-head { flex-direction:column; }
  .daily-sales-head { flex-direction:column; gap:0; }
  .daily-sales-kpis { border-top:1px solid var(--border); border-left:0; }
  .daily-sales-kpis { grid-template-columns:repeat(3, minmax(0, 1fr)); }
  .daily-sales-kpis div { padding:12px 10px; }
  .daily-sales-panels { grid-template-columns:1fr; }
  .daily-sales-chart { min-width:620px; }
  .operational-pulse-head { align-items:flex-start; flex-direction:column; gap:4px; }
  .operational-pulse-head span { text-align:left; }
  .operational-pulse-row { grid-template-columns:minmax(100px, 1fr) minmax(80px, 1.5fr) auto; gap:8px; padding:10px; }
}

/* Propinas: la investigación de descuentos puede tener cientos de órdenes.
   Los filtros y la paginación mantienen la tabla útil sin ocultar datos ni
   confundir el detalle de una orden con otra. */
.propinas-filtros { display:flex; align-items:center; flex-wrap:wrap; gap:9px 12px; padding:10px 12px; margin:14px 0 8px; background:#f7fbfb; border:1px solid #d9ecee; border-radius:10px; }
.propinas-filtros label { display:flex; align-items:center; gap:7px; margin:0; font-size:12px; font-weight:700; color:var(--muted); }
.propinas-filtros select { width:auto; min-width:190px; padding:6px 9px; background:#fff; }
.propinas-filtros .checkbox-line { font-weight:600; color:var(--ink); }
.propinas-filtros input[type="checkbox"] { width:auto; accent-color:var(--brand); }
.tabla-meta { color:var(--muted); font-size:12px; margin:8px 0; }
.detalle-trigger { display:inline-grid; place-items:center; width:24px; height:24px; border:1px solid var(--border); border-radius:50%; color:var(--brand-ink); text-decoration:none; font-size:12px; font-weight:800; }
.detalle-trigger:hover { background:#e5f5f6; border-color:var(--brand); }
tr.detalle-propina td { padding:0; border-bottom:1px solid var(--border); }
.detalle-propina-head { display:flex; justify-content:space-between; align-items:center; padding:10px 13px; background:#edf7f7; border-bottom:1px solid #d4e9ea; font-size:13px; }
.detalle-propina-head a { font-size:12px; color:var(--brand-ink); font-weight:700; }
.detalle-propina .tabla { margin:8px 0; }
.paginacion { display:flex; align-items:center; justify-content:center; gap:12px; margin:16px 0 2px; font-size:12px; color:var(--muted); }
@media (max-width: 700px) {
  .propinas-filtros { align-items:stretch; }
  .propinas-filtros label:first-child { display:grid; grid-template-columns:auto 1fr; }
  .propinas-filtros select { min-width:0; width:100%; }
}

/* Navegación compacta en pantallas estrechas: menú plegado por defecto y
   destinos intactos, con el control nativo accesible por teclado. */
.sidebar-menu { display:contents; }
.sidebar-nav-toggle, .sidebar-nav-button { display:none; }
.sidebar-nav-content { display:block; }
@media (max-width: 900px) {
  .sidebar {
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    column-gap:16px;
    align-items:center;
  }
  .sidebar h1 { grid-column:1; grid-row:1; }
  .sidebar .sub { grid-column:1; grid-row:2; padding-left:0; margin:2px 0 0; }
  .sidebar-menu { display:contents; }
  .sidebar-nav-toggle {
    display:block;
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    border:0;
  }
  .sidebar-nav-button {
    display:inline-flex;
    grid-column:2;
    grid-row:1 / span 2;
    align-self:center;
    align-items:center;
    min-height:40px;
    padding:8px 13px;
    border:1px solid #9e9689;
    border-radius:7px;
    color:var(--ink);
    background:var(--panel);
    font-size:13px;
    font-weight:700;
    cursor:pointer;
  }
  .sidebar-nav-toggle:focus-visible + .sidebar-nav-button {
    outline:2px solid var(--brand);
    outline-offset:3px;
  }
  .sidebar-nav-toggle:checked + .sidebar-nav-button {
    color:#fff;
    background:var(--brand);
  }
  .sidebar-nav-content {
    display:none;
    grid-column:1 / -1;
    grid-row:3;
    max-height:min(60vh, 520px);
    margin-top:12px;
    padding-top:10px;
    overflow:auto;
    border-top:1px solid rgba(255,255,255,.14);
  }
.sidebar-nav-toggle:checked ~ .sidebar-nav-content { display:block; }
}

/* Componentes comunes de las vistas de trabajo y accesibilidad transversal. */
.skip-link { position:fixed; z-index:1000; top:8px; left:8px; padding:10px 14px; color:#fff; background:var(--brand-ink); transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.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; }
:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
/* El foco exterior se recortaba en estas tarjetas/acordeones con overflow:hidden.
   Mantener el mismo anillo dentro del componente conserva su visibilidad. */
.caso-bloque > details > summary:focus-visible,
.grupo-orden > summary:focus-visible,
.focus-grid .focus-card:focus-visible,
.signal-strip a:focus-visible,
.impact-card:focus-visible,
.summary-kpi-group a:focus-visible,
.summary-kpis > summary:focus-visible { outline-offset:-3px; }
.main { min-width:0; }
.table-scroll { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); }
.table-scroll table { margin:0; }
.work-table { width:100%; border-collapse:collapse; background:var(--panel); font-size:13px; }
.work-table th, .work-table td { min-width:92px; padding:11px 12px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; }
.work-table th { color:var(--brand-ink); background:var(--bg); font-size:11px; letter-spacing:.04em; text-transform:uppercase; }
.work-table td small, .run-list small, .work-table th small { display:block; margin-top:4px; color:var(--muted); font-size:11px; font-weight:400; }
.work-table tbody tr:last-child td { border-bottom:0; }
.work-table a { color:var(--brand-ink); font-weight:700; text-decoration-thickness:1px; text-underline-offset:3px; }
.sort-button { width:100%; min-height:28px; padding:0; border:0; color:inherit; background:transparent; font:inherit; text-align:left; text-transform:inherit; letter-spacing:inherit; cursor:pointer; }
.sort-button:hover { color:var(--brand-ink); }
.table-scroll:focus-visible { outline-offset:2px; }
.data-quality-scroll-hint { display:none; }
@media (max-width:700px) {
  .data-quality-scroll-hint { display:block; margin:0 0 8px; color:var(--muted); font-size:12px; }
}
.workspace-head { gap:18px; }
.workspace-head h2, .workspace-head .muted { min-width:0; overflow-wrap:anywhere; }
.work-scope { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; margin:0 0 18px; padding:12px 14px; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); }
.work-scope form, .case-filter-form { display:flex; flex-wrap:wrap; align-items:end; gap:12px; }
.work-scope .period-reset-link { color:var(--brand-ink); font-size:12px; font-weight:700; }
.work-scope .period-custom-label { display:flex; align-items:center; min-width:190px; min-height:38px; padding:7px 9px; border:1px solid #b7ad9e; border-radius:6px; color:var(--ink); background:var(--panel-2); font-size:13px; font-weight:400; white-space:nowrap; }
.work-scope label, .case-filter-form label, .review-form label { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:11px; font-weight:700; }
.work-scope select, .case-filter-form select, .case-filter-form input, .review-form select, .review-form textarea { min-height:38px; padding:7px 9px; border:1px solid #b7ad9e; border-radius:6px; color:var(--ink); background:var(--panel-2); font:inherit; }
.work-scope .muted { max-width:540px; font-size:12px; }
.work-metrics, .metric-grid, .case-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:0 0 20px; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; background:var(--border); }
.metric-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; overflow:visible; border:0; background:transparent; }
.metric-grid .metric-card { border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); }
.case-facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
.case-facts > div { display:flex; min-width:0; }
.case-facts .metric-card { flex:1; }
.metric-card { min-width:0; padding:15px; background:var(--panel); }
.metric-label, .metric-status { display:block; color:var(--muted); font-size:11px; }
.metric-card strong { display:block; margin:9px 0 5px; overflow-wrap:anywhere; font-size:clamp(21px,2vw,30px); line-height:1.15; font-variant-numeric:tabular-nums; }
.metric-card strong small { font-size:12px; }
.metric-card p { margin:8px 0 0; color:var(--muted); font-size:12px; }
.work-section { margin:20px 0 26px; padding-top:14px; border-top:1px solid var(--border); }
.work-section-head { display:flex; align-items:end; justify-content:space-between; gap:16px; margin:0 0 12px; }
.work-section-head h3 { margin:3px 0 0; font-size:21px; letter-spacing:-.03em; }
.work-section-head a { color:var(--brand-ink); font-size:13px; font-weight:700; }
.employee-kpi-ribbon { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:4px 0 20px; }
.employee-kpi { min-width:0; padding:13px 14px; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); }
.employee-kpi h3 { margin:0; color:var(--muted); font-size:12px; font-weight:700; }
.employee-kpi-value { display:flex; flex-wrap:wrap; align-items:baseline; gap:5px; margin:7px 0; }
.employee-kpi-value strong { overflow-wrap:anywhere; font-size:clamp(22px,2vw,29px); line-height:1.1; font-variant-numeric:tabular-nums; }
.employee-kpi-value span, .employee-kpi-meta, .employee-kpi-explanation { color:var(--muted); font-size:11px; }
.employee-kpi-meta, .employee-kpi-explanation { margin:5px 0 0; line-height:1.45; }
.employee-review-reasons { margin:8px 0 14px; padding:0; list-style:none; border-top:1px solid var(--border); }
.employee-review-reasons li { display:flex; justify-content:space-between; gap:14px; padding:9px 2px; border-bottom:1px solid var(--border); }
.employee-review-reasons a { flex:none; color:var(--brand-ink); font-size:12px; font-weight:700; }
.employee-ops-group { margin:18px 0 24px; }
.employee-ops-group h4 { margin:0 0 8px; font-size:16px; }
.employee-metric-table { width:100%; border-collapse:collapse; background:var(--panel); }
.employee-metric-table th, .employee-metric-table td { padding:10px 12px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; }
.employee-metric-table thead th { color:var(--muted); font-size:11px; }
.employee-metric-table tbody th { width:28%; font-size:13px; font-weight:700; }
.employee-metric-table td:nth-child(2) { width:17%; font-variant-numeric:tabular-nums; white-space:nowrap; }
.employee-metric-table td strong, .employee-metric-table td small { display:block; }
.employee-metric-table td small { margin-top:3px; color:var(--muted); font-size:11px; line-height:1.4; white-space:normal; }
.employee-metric-status { font-size:12px; font-weight:700; }
.employee-ops-note { margin:7px 0 0; font-size:12px; }
.employee-recurrence { max-width:360px; }
#casos .btn { box-sizing:border-box; display:inline-flex; align-items:center; min-height:44px; }
.ui-state { margin:14px 0; padding:14px 16px; border:1px solid var(--border); border-left:4px solid var(--brand); border-radius:8px; background:var(--panel); }
.ui-state h3, .ui-state h5 { margin:0 0 6px; font-size:16px; }
.ui-state p { margin:0 0 9px; color:var(--muted); }
.ui-state-warning { border-left-color:var(--warn); background:var(--warn-soft); }
.reason-chip, .coverage-state, .priority-label, .filter-chip { display:inline-block; margin:2px 3px 2px 0; padding:4px 7px; border:1px solid var(--border); border-radius:6px; color:var(--ink); background:var(--panel); font-size:11px; line-height:1.3; }
.priority-high { border-left:3px solid #a42320; font-weight:700; }
.priority-review { border-left:3px solid var(--brand); font-weight:700; }
.priority-context, .priority-information { border-left:3px solid #777; }
.run-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--border); }
.run-list li { display:grid; grid-template-columns:minmax(150px,1fr) minmax(140px,1fr) auto auto; align-items:center; gap:14px; padding:12px 8px; border-bottom:1px solid var(--border); }
.run-list li div > * { display:block; }
.run-list li > a { color:var(--brand-ink); font-size:12px; font-weight:700; }
.section-tabs { display:flex; flex-wrap:wrap; gap:0; margin:0 0 18px; border-bottom:1px solid var(--border); }
.section-tabs a { display:inline-flex; align-items:center; min-height:44px; padding:10px 13px; border-bottom:3px solid transparent; color:var(--muted); text-decoration:none; }
.section-tabs a[aria-current="location"] { border-bottom-color:var(--brand); color:var(--brand-ink); font-weight:700; }
.comparison-context-list { margin:8px 0 0; padding-left:22px; }
.comparison-context-list > li { margin:12px 0; padding:0 0 10px; border-bottom:1px solid var(--border); }
.comparison-context-list > li:last-child { border-bottom:0; }
.comparison-context-list p { margin:4px 0; }
.section-anchor { display:block; height:0; scroll-margin-top:92px; }
.finding-card { margin:12px 0; padding:14px; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); }
.finding-card h4 { margin:0 0 10px; }
.finding-card h4 small { color:var(--muted); font-size:11px; font-weight:400; }
.case-detail code { overflow-wrap:anywhere; word-break:break-word; }
.reason-list { padding-left:20px; }
.reason-list li { margin:6px 0; }
.reason-list code { margin-left:6px; color:#666; font-size:10px; }
.review-timeline { border-left:1px solid var(--border); padding-left:23px; }
.review-timeline li { margin:0 0 16px; }
.review-timeline span { display:block; color:var(--muted); font-size:11px; }
.review-form { display:grid; gap:12px; max-width:760px; margin-top:18px; padding:16px; border:1px solid var(--border); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); }
.review-form textarea { min-height:100px; resize:vertical; }
.review-form .btn { justify-self:start; }
.batch-link { display:inline-block; margin:3px 12px 3px 0; }
.pagination { display:flex; align-items:center; justify-content:center; gap:18px; margin:18px 0; }
.pagination a { padding:8px 11px; border:1px solid var(--border); border-radius:6px; color:var(--brand-ink); text-decoration:none; }
.report-pagination { flex-wrap:wrap; gap:10px 18px; text-align:center; }
.report-pagination > span { min-width:0; overflow-wrap:anywhere; }
.report-pagination small { display:inline-block; }
.report-pagination a { min-height:44px; display:inline-flex; align-items:center; }
.active-filter-chips { display:flex; flex-wrap:wrap; gap:5px; padding:0 12px 11px; }
.filter-chip { color:var(--brand-ink); text-decoration:none; }
.filter-chip:hover { background:var(--brand-soft); }
.case-filter-form { display:grid; width:100%; grid-template-columns:repeat(4,minmax(120px,1fr)) auto auto; }
.case-filter-form input, .case-filter-form select { width:100%; }
.limitation-list { color:var(--muted); font-size:12px; }

/* Inspector progresivo: acoplado en escritorio, diálogo superpuesto en anchos menores. */
.case-queue-layout { display:block; min-width:0; }
.case-queue-main { min-width:0; }
.case-queue-layout--open { display:block; }
.case-inspector { box-sizing:border-box; width:min(520px,calc(100vw - 32px)); max-width:none; height:min(90dvh,860px); max-height:min(90dvh,860px); margin:auto; padding:0; overflow:hidden; border:1px solid var(--border); border-radius:var(--radius); color:var(--ink); background:var(--panel); box-shadow:var(--shadow); }
.case-inspector::backdrop { background:rgb(20 24 32 / 42%); }
.case-inspector--docked[open] { position:static; inset:auto; width:100%; height:min(78vh,860px); max-height:none; margin:0; }
.case-inspector-head { position:sticky; z-index:1; top:0; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:16px; border-bottom:1px solid var(--border); background:var(--panel); }
.case-inspector-head h2 { margin:4px 0 0; font-size:19px; line-height:1.3; }
.case-inspector-content { max-height:calc(min(90dvh,860px) - 74px); padding:14px 16px 20px; overflow:auto; overscroll-behavior:contain; }
.case-inspector--docked .case-inspector-content { max-height:calc(min(78vh,860px) - 74px); }
.case-inspector-content .case-facts { grid-template-columns:1fr; margin-bottom:14px; }
.case-inspector-content .metric-card { padding:11px 12px; }
.case-inspector-content .metric-card strong { margin:5px 0 3px; font-size:20px; }
.case-inspector-summary { margin:12px 0; padding:12px 14px; border-left:3px solid var(--brand); border-radius:0 7px 7px 0; background:var(--brand-soft); }
.case-inspector-summary h3, .case-inspector-summary h4 { margin:0 0 8px; font-size:15px; }
.case-inspector-summary ul { margin:6px 0; padding-left:20px; }
.case-inspector-summary li { margin:5px 0; }
.case-inspector-full-link { display:inline-flex; margin-top:10px; }

/* Confirmaciones de administración: describen el cambio antes del envío y
   conservan el sistema editorial cálido de la aplicación. */
.admin-confirm { width:min(440px,calc(100vw - 32px)); max-width:none; margin:auto; padding:0; overflow:hidden;
  border:1px solid var(--border); border-radius:18px; color:var(--ink); background:#e8dcc7;
  box-shadow:0 18px 48px rgb(23 19 13 / 20%); }
.admin-confirm::backdrop { background:rgb(20 24 32 / 46%); }
.admin-confirm-body { padding:22px; }
.admin-confirm h2 { margin:0 0 12px; font-size:22px; }
.admin-confirm p { margin:0; color:var(--ink); }
.admin-confirm-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; margin-top:22px; }
.admin-confirm-actions button { min-height:44px; }
.admin-confirm-accept { border-color:#a9542d; color:#fff; background:#a9542d; }
.admin-confirm-accept:hover { border-color:#874224; background:#874224; }
.admin-confirm :focus-visible { outline:3px solid var(--brand); outline-offset:3px; }
.identity-aliases { max-width:760px; margin:14px 0 0; padding:10px 12px; border:1px solid var(--border);
  border-radius:var(--radius); background:var(--panel); }
.identity-aliases > summary { color:var(--brand-ink); font-weight:650; cursor:pointer; }
.identity-aliases > p { margin:8px 0; }
.identity-aliases ul { margin:8px 0 0; padding-left:20px; }
.identity-aliases li { margin:7px 0; overflow-wrap:anywhere; }
.identity-aliases li small { display:block; color:var(--muted); }

/* Luna 20 · Cola de casos: ficha única, rejilla estable y etiquetas
   cuadradas. Todo queda limitado a esta vista para no alterar los informes. */
.case-queue {
  --queue-space-1: 4px;
  --queue-space-2: 8px;
  --queue-space-3: 12px;
  --queue-space-4: 16px;
  --queue-space-6: 24px;
  --queue-radius: 8px;
  --queue-chip-radius: 6px;
  --queue-chip-font: 13px;
  --queue-body-font: 14px;
  --queue-meta-font: 13px;
  --queue-title-font: 16px;
  --queue-kpi-font: 28px;
  --queue-hit-size: 44px;
  min-width: 0;
  color: var(--ink);
}
.case-queue .cq-heading {
  align-items: flex-start;
  margin-bottom: var(--queue-space-3);
  padding: var(--queue-space-4);
  border-left-width: 3px;
  border-radius: var(--queue-radius);
  box-shadow: none;
}
.case-queue .cq-heading h3 { margin: 0 0 var(--queue-space-1); font-size: 22px; }
.case-queue .cq-heading p { max-width: 820px; font-size: var(--queue-body-font); line-height: 1.45; }
.case-queue .cq-explainer { max-width: 900px; margin: 0 0 var(--queue-space-3); font-size: var(--queue-body-font); line-height: 1.5; }
.case-queue .filter-dock { margin: 0 0 var(--queue-space-2); border-radius: var(--queue-radius); box-shadow: none; }
.case-queue .filter-dock-title { align-items: baseline; padding: var(--queue-space-3) var(--queue-space-4); }
.case-queue .filter-dock-title strong { font-size: 14px; }
.case-queue .filter-dock-title span { font-size: 13px; }
.case-queue .filter-dock-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.case-queue .filter-dock-fields label { min-width: 0; min-height: 72px; padding: var(--queue-space-3) var(--queue-space-4); font-size: 12px; }
.case-queue .filter-dock-fields select { min-height: 36px; font-size: var(--queue-body-font); }
.case-queue .filtros-tipos { padding: var(--queue-space-3) var(--queue-space-4); }
.case-queue .filtros-tipos > summary { min-height: var(--queue-hit-size); display: flex; align-items: center; }
.case-queue .filter-dock-actions { flex-wrap: wrap; padding: var(--queue-space-3) var(--queue-space-4); }
.case-queue .filter-dock-actions > * { min-height: var(--queue-hit-size); display: inline-flex; align-items: center; justify-content: center; }
.case-queue .filter-readout { margin: 0 0 var(--queue-space-4); border-radius: 0 var(--queue-radius) var(--queue-radius) 0; font-size: var(--queue-body-font); line-height: 1.45; }
.case-queue .cq-kpis { display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: var(--queue-space-3); margin: 0 0 var(--queue-space-4); }
.case-queue .cq-kpi-card { display: flex; min-width: 0; min-height: 104px; flex-direction: column; justify-content: center; padding: var(--queue-space-4); border: 1px solid var(--border); border-radius: var(--queue-radius); background: var(--panel); }
.case-queue .cq-kpi-label { color: var(--muted); font-size: var(--queue-meta-font); font-weight: 650; line-height: 1.35; }
.case-queue .cq-kpi-card strong { margin: 5px 0 2px; color: var(--brand-ink); font-size: var(--queue-kpi-font); font-variant-numeric: tabular-nums; line-height: 1.1; }
.case-queue .cq-kpi-note { color: var(--muted); font-size: 12px; line-height: 1.4; }
.case-queue .secondary-disclosure { margin: 0 0 var(--queue-space-6); border-radius: var(--queue-radius); box-shadow: none; }
.case-queue .secondary-disclosure > summary { min-height: var(--queue-hit-size); display: flex; align-items: center; padding: var(--queue-space-3) var(--queue-space-4); font-size: 16px; }
.case-queue .chart-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--queue-space-3); }
.case-queue .chart-box { min-width: 0; padding: var(--queue-space-4); border: 1px solid var(--border); border-radius: var(--queue-radius); background: var(--panel); }
.case-queue .chart-box h4 { margin: 0 0 var(--queue-space-2); color: var(--ink); font-size: 15px; letter-spacing: 0; line-height: 1.35; }
.case-queue .chart-wrap.chart-wrap-sm { height: 240px; }
.case-queue .legend-tipos { margin-top: var(--queue-space-3); font-size: var(--queue-meta-font); }
.case-queue .legend-tipos li { min-height: 36px; gap: var(--queue-space-2); }
.case-queue .legend-tipos .dot { width: 8px; height: 8px; border-radius: 2px; }
.case-queue .legend-tipos .lbl { min-width: 0; color: var(--brand-ink); font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 2px; overflow-wrap: anywhere; }
.case-queue .legend-tipos .lbl:hover { color: var(--brand); }
.case-queue .cq-chart-limit { margin: 8px 0 0; color: var(--muted); font-size: 12px; }
.case-queue .cq-actor-types { margin-top: 5px; }
.case-queue .cq-actor-types > summary { min-height: 32px; display: flex; align-items: center; color: var(--brand-ink); font-size: 12px; font-weight: 650; cursor: pointer; }
.case-queue .cq-actor-types ul { margin: 4px 0 6px; padding-left: 18px; }
.case-queue .cq-actor-types li { padding: 2px 0; }
.case-queue .case-feed { margin-top: 0; }
.case-queue .case-feed-head { align-items: center; }
.case-queue .case-feed-head h3 { font-size: 20px; }
.case-queue .case-feed-head > span { max-width: 100%; color: var(--muted); font-size: 14px; font-weight: 650; letter-spacing: 0; text-align: right; }
.case-queue .cq-details-tools { display: flex; flex-wrap: wrap; gap: var(--queue-space-2); margin: var(--queue-space-3) 0; }
.case-queue .cq-details-tools button { min-height: var(--queue-hit-size); padding-inline: var(--queue-space-3); }
.case-queue .caso-bloque { margin: var(--queue-space-4) 0; overflow: hidden; border: 1px solid var(--border); border-radius: var(--queue-radius); background: var(--panel); box-shadow: none; }
.case-queue .caso-bloque.ok,
.case-queue .caso-bloque.alerta,
.case-queue .caso-bloque.mixto { border-color: var(--border); }
.case-queue .cq-related-head { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--queue-space-2) var(--queue-space-4); padding: var(--queue-space-3) var(--queue-space-4); border-bottom: 1px solid var(--border); background: var(--brand-soft); }
.case-queue .cq-related-title { display: flex; min-width: 0; flex-wrap: wrap; align-items: baseline; gap: var(--queue-space-2); font-size: var(--queue-body-font); }
.case-queue .cq-related-title strong { font-size: var(--queue-title-font); }
.case-queue .cq-related-title span { overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.case-queue .cq-related-kind { align-self: center; color: var(--muted); font-size: 13px; }
.case-queue .cq-related-count { align-self: center; color: var(--brand-ink); font-size: 13px; font-weight: 650; white-space: nowrap; }
.case-queue .cq-related-head .caso-nota { grid-column: 1 / -1; margin: 0; color: var(--ink); font-size: var(--queue-meta-font); line-height: 1.45; }
.case-queue .caso-bloque.ok .caso-cab,
.case-queue .caso-bloque.alerta .caso-cab,
.case-queue .caso-bloque.mixto .caso-cab { color: var(--ink); background: var(--brand-soft); }
.case-queue .cq-case-movements { padding: var(--queue-space-3) var(--queue-space-4); border-bottom: 1px solid var(--border); font-size: var(--queue-body-font); line-height: 1.5; }
.case-queue .cq-case-movements > strong { display: block; margin-bottom: var(--queue-space-2); color: var(--muted); font-size: 12px; letter-spacing: .03em; text-transform: uppercase; }
.case-queue .cq-case-movement { padding: 6px 0; border-top: 1px dotted var(--border); overflow-wrap: anywhere; }
.case-queue .cq-case-movement > span:first-of-type { color: var(--ink); font-weight: 650; }
.case-queue .cq-order-entry { display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: var(--queue-space-2); align-items: stretch; margin: 0; }
.case-queue .cq-order-card { min-width: 0; margin: 0 0 var(--queue-space-2); border: 1px solid var(--border); border-left: 3px solid var(--brand); border-radius: var(--queue-radius); background: var(--panel); overflow: hidden; }
.case-queue .cq-order-card.n-alta { border-left-color: var(--accent); }
.case-queue .cq-order-card.n-media, .case-queue .cq-order-card.n-baja { border-left-color: var(--brand); }
.case-queue .cq-order-card > summary { display: grid; grid-template-columns: 160px minmax(260px, 1fr) 130px 150px; gap: var(--queue-space-4); align-items: center; min-height: 112px; padding: var(--queue-space-4); cursor: pointer; list-style: none; font-size: var(--queue-body-font); }
.case-queue .cq-order-card > summary::-webkit-details-marker { display: none; }
.case-queue .cq-order-card > summary::before { display: none; }
.case-queue .cq-order-card > summary:hover { background: var(--panel); }
.case-queue .cq-order-card[open] > summary { border-bottom: 1px solid var(--border); background: var(--brand-soft); }
.case-queue .cq-cell { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: 3px; line-height: 1.4; overflow-wrap: anywhere; }
.case-queue .cq-kicker { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .035em; line-height: 1.35; text-transform: uppercase; }
.case-queue .cq-order-id strong { max-width: 100%; color: var(--brand-ink); font-size: 17px; font-variant-numeric: tabular-nums; line-height: 1.25; white-space: nowrap; overflow-wrap: normal; }
.case-queue .cq-order-meta, .case-queue .cq-cell-note { color: var(--muted); font-size: var(--queue-meta-font); line-height: 1.4; }
.case-queue .cq-expand { margin-top: 3px; color: var(--brand-ink); font-size: 12px; font-weight: 650; }
.case-queue .cq-expand-open { display: none; }
.case-queue .cq-order-card[open] .cq-expand-closed { display: none; }
.case-queue .cq-order-card[open] .cq-expand-open { display: inline; }
.case-queue .cq-review-lead { color: var(--ink); font-size: var(--queue-body-font); font-weight: 600; line-height: 1.4; }
.case-queue .cq-removal-actor { color: var(--muted); font-size: var(--queue-meta-font); font-weight: 650; line-height: 1.4; }
.case-queue .cab-indicios { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 3px; }
.case-queue .chip-indicio { display: inline-flex; align-items: center; min-height: 28px; max-width: 100%; padding: 3px 8px; border: 1px solid var(--border); border-radius: var(--queue-chip-radius); border-left-width: 1px; color: var(--brand-ink); background: var(--panel); font-size: var(--queue-chip-font); font-weight: 600; font-style: normal; line-height: 1.35; overflow-wrap: anywhere; }
.case-queue .chip-indicio.contexto { color: var(--muted); background: var(--bg); }
.case-queue .cq-extra-types { align-self: center; color: var(--brand-ink); font-size: var(--queue-chip-font); font-weight: 650; line-height: 1.35; }
.case-queue .cq-review-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 3px; color: var(--muted); font-size: 12px; }
.case-queue .cq-priority { display: inline-flex; min-height: 26px; align-items: center; padding: 2px 7px; border: 1px solid var(--border); border-radius: var(--queue-chip-radius); color: var(--brand-ink); background: var(--brand-soft); font-size: 12px; font-weight: 650; }
.case-queue .cq-priority-alta { border-color: #c77a70; color: #8b2e25; background: var(--accent-soft); }
.case-queue .cq-number { color: var(--ink); font-size: 16px; font-variant-numeric: tabular-nums; font-weight: 700; line-height: 1.25; white-space: nowrap; }
.case-queue .cq-cell-note { font-size: 12px; }
.case-queue .cq-unavailable { color: var(--muted); font-size: var(--queue-meta-font); line-height: 1.4; }
.case-queue .cq-order-link { display: flex; min-width: 0; min-height: var(--queue-hit-size); align-items: center; justify-content: center; align-self: start; margin: 0 0 var(--queue-space-2); padding: 8px; border: 1px solid var(--border); border-radius: var(--queue-radius); color: var(--brand-ink); background: var(--panel); font-size: 13px; font-weight: 700; text-align: center; text-decoration: none; }
.case-queue .cq-order-link:hover { border-color: var(--brand); background: var(--brand-soft); }
.case-queue .cq-order-card .cuerpo { padding: var(--queue-space-4); border-top: 0; font-size: var(--queue-body-font); }
.case-queue .cq-repetition-note, .case-queue .cq-alert-note { margin: 0 0 var(--queue-space-3); padding: var(--queue-space-3); border: 1px solid var(--border); border-left: 3px solid var(--brand); border-radius: 0 var(--queue-radius) var(--queue-radius) 0; background: var(--panel); font-size: var(--queue-body-font); line-height: 1.5; }
.case-queue .cq-repetition-note p { margin: 4px 0 0; color: var(--muted); }
.case-queue .cq-alert-note { border-left-color: var(--accent); background: var(--accent-soft); }
.case-queue .badge, .case-queue .badge-eur, .case-queue .badge-repite, .case-queue .tag, .case-queue .chip-indicio, .case-queue .pago-linea { border-radius: var(--queue-chip-radius); }
.case-queue .case-queue-empty { margin: var(--queue-space-4) 0; padding: var(--queue-space-4); border: 1px solid var(--border); border-radius: var(--queue-radius); background: var(--panel); }
.case-queue :focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

@media (max-width: 1099px) {
  .case-queue .filter-dock-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-queue .filter-dock-fields label:nth-child(2n) { border-right: 0; }
  .case-queue .filter-dock-fields label:nth-child(n+3) { border-top: 1px solid var(--border); }
  .case-queue .cq-order-card > summary { grid-template-columns: minmax(150px, .85fr) minmax(0, 1.5fr); grid-template-areas: "identity fact" "value tip"; gap: var(--queue-space-3) var(--queue-space-4); }
  .case-queue .cq-order-id { grid-area: identity; }
  .case-queue .cq-review { grid-area: fact; }
  .case-queue .cq-value { grid-area: value; }
  .case-queue .cq-tip { grid-area: tip; }
}
@media (max-width: 900px) {
  .case-queue .chart-row { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 699px) {
  .case-queue .cq-heading { padding: var(--queue-space-3); }
  .case-queue .cq-heading h3 { font-size: 20px; }
  .case-queue .cq-kpis { grid-template-columns: minmax(0, 1fr); gap: var(--queue-space-2); }
  .case-queue .cq-kpi-card { min-height: 88px; padding: var(--queue-space-3); }
  .case-queue .cq-kpi-card strong { font-size: 25px; }
  .case-queue .filter-dock-title, .case-queue .case-feed-head { align-items: flex-start; flex-direction: column; }
  .case-queue .filter-dock-fields { grid-template-columns: minmax(0, 1fr); }
  .case-queue .filter-dock-fields label, .case-queue .filter-dock-fields label:nth-child(n) { min-height: auto; border-right: 0; border-top: 1px solid var(--border); }
  .case-queue .filter-dock-fields label:first-child { border-top: 0; }
  .case-queue .cq-order-entry { grid-template-columns: minmax(0, 1fr); gap: 0; margin-bottom: var(--queue-space-2); }
  .case-queue .cq-order-card { margin-bottom: 0; }
  .case-queue .cq-order-card > summary { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "identity identity" "fact fact" "value tip"; gap: var(--queue-space-3); padding: var(--queue-space-3); }
  .case-queue .cq-order-link { justify-content: flex-start; align-self: stretch; margin: var(--queue-space-2) 0 0 3px; padding-inline: var(--queue-space-3); }
  .case-queue .cq-related-head { grid-template-columns: minmax(0, 1fr); gap: var(--queue-space-2); }
  .case-queue .cq-related-title { grid-row: 1; }
  .case-queue .cq-related-kind { grid-row: 2; }
  .case-queue .cq-related-count { grid-row: 3; }
  .case-queue .cq-related-head .caso-nota { grid-column: 1; }
  .case-queue .case-feed-head > span { text-align: left; }
  .case-queue .cq-details-tools > button { flex: 1 1 180px; }
  .case-queue .cq-order-card .cuerpo { padding: var(--queue-space-3); }
  .case-queue .cab-indicios { display: flex; }
}
@media (prefers-reduced-motion: reduce) {
  .case-queue *, .case-queue *::before, .case-queue *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: 0.01ms !important; }
}

@media (min-width: 1440px) {
  .case-queue-layout--open { display:grid; grid-template-columns:minmax(600px,1fr) minmax(420px,480px); align-items:start; gap:20px; }
}
@media (max-width: 900px) {
  .case-queue-layout--open { display:block; }
  .case-inspector--modal[open] { position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; border:0; }
  .case-inspector--modal[open] .case-inspector-content { max-height:calc(100dvh - 74px); }
}

@media (min-width:901px) and (max-width:1100px) {
  .layout { flex-direction:column; }
  .sidebar { position:static; width:auto; height:auto; min-height:0; overflow:visible; padding:14px 20px; }
  .sidebar-menu { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; }
  .sidebar-nav-toggle { display:block; position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .sidebar-nav-button { display:inline-flex; grid-column:2; grid-row:1 / span 2; align-items:center; min-height:40px; padding:8px 13px; border:1px solid #9e9689; border-radius:7px; color:var(--ink); background:var(--panel); font-size:13px; font-weight:700; cursor:pointer; }
  .sidebar-nav-content { display:none; grid-column:1 / -1; max-height:min(60vh,520px); margin-top:12px; padding-top:10px; overflow:auto; border-top:1px solid var(--border); }
  .sidebar-nav-toggle:checked ~ .sidebar-nav-content { display:block; }
  .sidebar-nav-toggle:focus-visible + .sidebar-nav-button { outline:2px solid var(--brand); outline-offset:3px; }
  .main { padding:0 24px 36px; }
  .topbar { width:auto; max-width:none; margin:0 -24px 18px; padding:13px 24px; }
  .metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .employee-kpi-ribbon { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .case-filter-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .work-metrics, .case-facts, .metric-grid { grid-template-columns:1fr; }
  .employee-kpi-ribbon { grid-template-columns:1fr; }
  .employee-metric-table { min-width:680px; }
  .run-list li { grid-template-columns:1fr 1fr; }
  .case-filter-form { grid-template-columns:1fr; }
  .work-scope, .work-scope form { align-items:stretch; flex-direction:column; }
  .work-scope label, .work-scope select { width:100%; }
  .work-section-head { align-items:flex-start; flex-direction:column; }
}

.upload-progress { margin-top:16px; }
.upload-progress__track { height:8px; overflow:hidden; border-radius:999px; background:var(--border); }
.upload-progress__track span { display:block; width:0; height:100%; border-radius:inherit; background:var(--brand); transition:width .18s ease; }
.upload-progress__track.is-error span { background:#b42318; }
.upload-progress .error { color:#b42318; }

.case-evidence { margin:12px 0; padding:12px 14px; border-left:3px solid var(--brand); border-radius:0 7px 7px 0; background:var(--brand-soft); }
.case-evidence h5, .case-evidence h6 { margin:0 0 8px; }
.case-evidence ul, .review-history ol { margin:6px 0; padding-left:22px; }
.case-evidence code { overflow-wrap:anywhere; }
.review-history { margin:12px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:8px 0; }
.review-history summary { cursor:pointer; font-weight:700; }
.review-history li { margin:8px 0; }
.review-history li p { margin:3px 0; color:var(--muted); }

.period-filter {
  margin:12px 0 18px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--panel);
  box-shadow:var(--shadow);
}
.period-filter-form {
  display:grid;
  grid-template-columns:minmax(170px,1.25fr) minmax(145px,1fr) minmax(145px,1fr) minmax(145px,1fr) auto;
  align-items:end;
  gap:10px;
}
.period-filter-form label { display:grid; gap:4px; margin:0; color:var(--muted); font-size:12px; }
.period-filter-form input, .period-filter-form select { width:100%; min-height:38px; margin:0; }
.period-filter-form button { min-height:38px; white-space:nowrap; }
.period-filter-note { margin:8px 0 0; color:var(--muted); font-size:12px; }
@media (max-width: 900px) {
  .period-filter-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .period-filter-form button { grid-column:1 / -1; }
}
@media (max-width: 520px) {
  .period-filter { padding:10px; }
  .period-filter-form { grid-template-columns:minmax(0,1fr); }
  .period-filter-form button { grid-column:auto; }
}

/* Respeta la preferencia del sistema: el movimiento decorativo no es necesario
   para entender estados, navegación ni progreso. */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
  }
}

/* Da más área de toque en dispositivos táctiles sin cambiar la versión de escritorio. */
@media (pointer: coarse) {
  button,
  .btn,
  .btn-mini,
  .btn-pdf,
  .btn-mail,
  .btn-excel,
  .compare-link,
  .overview-action,
  .sidebar-nav-button,
  .sort-button {
    min-height: 44px;
  }

  .btn-mini,
  .compare-link,
  .overview-action {
    display: inline-flex;
    align-items: center;
  }

  .sort-button {
    min-width: 44px;
  }

  input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    min-height: 44px;
  }

  label:has(> input[type="checkbox"]),
  label:has(> input[type="radio"]) {
    min-height: 44px;
    padding-block: 8px;
  }
}

/* Movimientos: Swiss editorial. La ruta del producto es la estructura visual. */
.audit-kpis .stat-card { color:inherit; text-decoration:none; }
.audit-kpis .stat-card:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
.movement-records { display:grid; gap:12px; }
.movement-record { min-width:0; border:1px solid var(--border); border-left:3px solid var(--brand); border-radius:var(--radius-md); background:var(--panel); }
.movement-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:13px 17px; border-bottom:1px solid var(--border); }
.movement-card-heading h4 { margin:0; color:var(--ink); font-size:17px; line-height:1.35; overflow-wrap:anywhere; }
.movement-card-heading h4 span { margin-left:8px; color:var(--muted); font-size:12px; font-weight:500; }
.movement-card-heading h4 .movement-merma-tag { display:inline-flex; margin-left:9px; padding:3px 8px; border:1px solid color-mix(in srgb,#b45309 24%,var(--border)); border-radius:999px; background:color-mix(in srgb,#f59e0b 13%,var(--panel)); color:#92400e; font-size:11px; font-weight:850; letter-spacing:.045em; vertical-align:middle; }
.luna22-movement-glance { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:7px 12px; min-width:0; }
.luna22-movement-glance > div { display:grid; gap:2px; min-width:0; }
.luna22-movement-glance span { color:var(--muted); font-size:9px; font-weight:750; letter-spacing:.045em; text-transform:uppercase; }
.luna22-movement-glance strong { color:var(--ink); font-size:12px; line-height:1.3; overflow-wrap:anywhere; }
.luna22-movement-outcome { max-width:420px; }
.luna22-movement-tip { padding-left:10px; border-left:1px solid var(--border); }
.luna22-movement-tip-arrow { color:var(--brand) !important; font-size:15px !important; }
.movement-state { flex:0 1 auto; max-width:52%; color:var(--brand); font-size:12px; font-weight:750; line-height:1.4; text-align:right; }
.movement-route { display:grid; grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr); align-items:center; gap:12px; padding:13px 17px; border-bottom:1px solid var(--border); }
.movement-route > div { display:grid; min-width:0; gap:3px; }
.movement-route > div > span { color:var(--muted); font-size:10px; font-weight:750; letter-spacing:.06em; text-transform:uppercase; }
.movement-route a { width:fit-content; color:var(--brand); font-size:15px; font-weight:750; font-variant-numeric:tabular-nums; text-decoration-thickness:1px; text-underline-offset:3px; }
.movement-route a:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
.movement-route small { color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.movement-arrow { color:var(--ink); font-size:20px; text-align:center; }
.movement-result { padding:11px 17px 9px; }
.movement-result p { margin:0 0 6px; color:var(--ink); font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.movement-result p strong { color:var(--ink); }
.movement-result .movement-discount-note { color:var(--muted); }
.movement-record-meta { display:flex; flex-wrap:wrap; gap:5px 18px; padding:9px 17px 11px; border-top:1px solid var(--border); color:var(--muted); font-size:11px; font-variant-numeric:tabular-nums; }
.movement-record-meta strong { color:var(--ink); }
.movement-evidence { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); gap:6px 16px; border-top:0; padding-top:0; }
.movement-evidence > span { min-width:0; overflow-wrap:anywhere; }
@media (max-width:767px) {
  .movement-card-heading { align-items:flex-start; flex-direction:column; gap:5px; }
  .luna22-movement-glance { width:100%; justify-content:flex-start; }
  .movement-state { max-width:none; text-align:left; }
  .movement-route { grid-template-columns:minmax(0,1fr); gap:6px; }
  .movement-arrow { transform:rotate(90deg); width:20px; }
  .movement-record-meta { gap:6px 12px; }
}

/* Luna 14: el hecho principal se lee antes que la evidencia complementaria. */
.luna14-filter { display:flex; flex-wrap:wrap; align-items:end; gap:10px 16px; }
.luna14-filter label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:650; }
.luna14-filter select, .luna14-filter input { min-height:42px; max-width:100%; }
.luna14-movement-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
.luna14-movement-kpis .stat-card { min-width:0; text-align:left; }
.luna14-movement-kpis .stat-card small { display:block; margin-top:7px; color:var(--muted); line-height:1.4; }
.luna14-movement-charts, .luna14-discount-charts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:0 0 18px; }
.luna14-movement-charts .card, .luna14-discount-charts .card { min-width:0; margin:0; }
.luna14-movement-card { overflow:hidden; }
.luna14-movement-card .movement-state { padding:6px 10px; border-radius:999px; background:color-mix(in srgb,var(--brand) 9%,var(--panel)); }
.luna14-product-fate { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:12px 15px; background:color-mix(in srgb,var(--brand) 4%,var(--panel)); border-bottom:1px solid var(--border); }
.luna14-product-fate > div { display:grid; align-content:start; gap:5px; min-width:0; padding:11px 13px; border:1px solid var(--border); border-radius:10px; background:var(--panel); }
.luna14-product-fate span { color:var(--muted); font-size:10px; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }
.luna14-product-fate strong { color:var(--ink); font-size:15px; line-height:1.35; overflow-wrap:anywhere; }
.luna14-product-fate small { color:var(--muted); font-size:11px; line-height:1.4; overflow-wrap:anywhere; }
.luna14-movement-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
.luna14-movement-facts > div { display:grid; align-content:start; gap:5px; min-width:0; padding:12px 15px; border-right:1px solid var(--border); }
.luna14-movement-facts > div:last-child { border-right:0; }
.luna14-movement-facts span { color:var(--muted); font-size:10px; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }
.luna14-movement-facts strong { color:var(--ink); font-size:14px; line-height:1.35; overflow-wrap:anywhere; }
.luna14-movement-facts small { color:var(--muted); font-size:11px; line-height:1.4; overflow-wrap:anywhere; }

/* Luna 30.3 · compacte el traslado y distinga claramente las dos órdenes. */
.luna30-compact-movement-list .movement-card-heading { padding:8px 12px; gap:8px 12px; }
.luna30-compact-movement-list .movement-card-heading h4 { font-size:15px; line-height:1.3; }
.luna30-compact-movement-list .movement-card-heading h4 span { margin-left:6px; font-size:11px; }
.luna30-compact-movement-list .luna22-movement-glance { gap:4px 9px; }
.luna30-compact-movement-list .luna22-movement-glance span { font-size:8px; }
.luna30-compact-movement-list .luna22-movement-glance strong { font-size:11px; line-height:1.25; }
.luna30-compact-movement-list .movement-route.luna30-order-pair { grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr); gap:7px; padding:7px 12px; }
.luna30-compact-movement-list .luna30-order { display:grid; align-content:center; min-width:0; gap:1px; padding:6px 9px; border:1px solid color-mix(in srgb,#002FA7 16%,#FFFFFF); border-left:3px solid #002FA7; border-radius:6px; background:color-mix(in srgb,#002FA7 4%,#FFFFFF); }
.luna30-compact-movement-list .luna30-order-destination { border-color:color-mix(in srgb,#002FA7 25%,#FFFFFF); border-left-color:color-mix(in srgb,#002FA7 68%,#FFFFFF); background:color-mix(in srgb,#002FA7 8%,#FFFFFF); }
.luna30-compact-movement-list .luna30-order > span { color:#002FA7; font-size:8px; letter-spacing:.045em; }
.luna30-compact-movement-list .luna30-order a { font-size:13px; line-height:1.2; }
.luna30-compact-movement-list .luna30-order small { font-size:10px; line-height:1.25; }
.luna30-compact-movement-list .movement-arrow { color:#002FA7; font-size:16px; }
.luna30-compact-movement-list .luna14-product-fate { gap:6px; padding:7px 12px; }
.luna30-compact-movement-list .luna14-product-fate > div { gap:3px; padding:7px 9px; border-radius:7px; }
.luna30-compact-movement-list .luna14-product-fate span { font-size:9px; }
.luna30-compact-movement-list .luna14-product-fate strong { font-size:13px; line-height:1.25; }
.luna30-compact-movement-list .luna14-product-fate small { font-size:10px; line-height:1.3; }
.luna30-compact-movement-list .luna14-movement-facts > div { gap:3px; padding:8px 11px; }
.luna30-compact-movement-list .luna14-movement-facts span { font-size:9px; }
.luna30-compact-movement-list .luna14-movement-facts strong { font-size:12px; line-height:1.25; }
.luna30-compact-movement-list .luna14-movement-facts small { font-size:10px; line-height:1.3; }
.luna30-compact-movement-list .luna14-route-chain { margin:6px 12px; font-size:11px; }
.luna30-compact-movement-list .luna14-evidence { padding:7px 12px; font-size:11px; }
@media (max-width:767px) {
  .luna30-compact-movement-list .movement-route.luna30-order-pair { grid-template-columns:minmax(0,1fr); gap:5px; }
  .luna30-compact-movement-list .movement-arrow { justify-self:center; }
}
.luna14-route-note, .luna14-note { margin:10px 15px; padding:9px 11px; border-left:3px solid var(--brand); background:color-mix(in srgb,var(--brand) 5%,var(--panel)); color:var(--muted); font-size:12px; line-height:1.5; }
.luna14-route-note a { color:var(--brand); font-weight:700; }
.luna14-route-chain { margin:8px 15px; color:var(--muted); font-size:12px; line-height:1.5; }
.luna14-route-chain a { color:var(--brand); font-weight:750; }
.luna14-intermediate-stay { margin:10px 0; padding:10px 12px; border-left:3px solid var(--brand); border-radius:0 8px 8px 0; background:color-mix(in srgb,var(--brand) 5%,var(--panel)); }
.luna14-intermediate-stay p, .luna14-intermediate-stay ul { margin:6px 0 0; }
.luna14-evidence { border-top:1px solid var(--border); padding:9px 15px; color:var(--muted); font-size:12px; }
.luna14-evidence summary, .luna14-secondary-details > summary { color:var(--brand); cursor:pointer; font-weight:700; }
.luna14-evidence p { margin:8px 0 0; line-height:1.5; }
.luna14-family-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; border-bottom:1px solid var(--border); }
.luna14-family-tabs a { display:inline-flex; min-height:42px; align-items:center; padding:8px 13px; border-bottom:3px solid transparent; color:var(--muted); font-weight:650; text-decoration:none; }
.luna14-family-tabs a:hover, .luna14-family-tabs a:focus-visible { color:var(--brand); }
.luna14-family-tabs a.is-active { border-color:var(--brand); color:var(--brand); }
.luna14-source-coverage { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 14px; padding:0; list-style:none; }
.luna14-source-coverage li { display:grid; gap:2px; min-width:150px; padding:7px 10px; border:1px solid var(--border); border-radius:8px; background:var(--panel); font-size:11px; }
.luna14-source-coverage strong { color:var(--ink); }
.luna14-source-coverage span { color:var(--muted); }
.luna14-active-filter { margin:0 0 12px; color:var(--brand); font-size:13px; font-weight:650; }
.luna14-discount-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
.luna14-discount-kpis .stat-card { min-width:0; text-align:left; }
.luna14-kpi-link { display:block; color:inherit; text-decoration:none; }
.luna14-kpi-link:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
.luna14-kpi-link:hover { border-color:var(--brand); }
.luna14-discount-kpis .num { font-variant-numeric:tabular-nums; }
.luna14-discount-kpis small { display:block; margin-top:7px; color:var(--muted); font-size:11px; line-height:1.4; }
.luna14-report-heading { display:flex; justify-content:space-between; gap:16px; margin:12px 0 16px; }
.luna14-report-heading h2 { margin:2px 0 6px; color:var(--ink); font-family:var(--font-display,Georgia,serif); font-size:clamp(23px,3vw,34px); }
.luna14-report-heading p { margin:0; max-width:760px; }
.luna14-report-heading .eyebrow, .luna14-list-heading .eyebrow { color:var(--brand); font-size:10px; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }
.luna14-list-heading { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:12px; }
.luna14-list-heading h3 { margin:2px 0 0; }
.luna14-order-list { padding:18px; }
.luna14-adjustment-order { margin:8px 0; }
.luna14-adjustment-order > summary { display:grid; grid-template-columns:minmax(130px,.55fr) minmax(0,3fr) auto; align-items:center; gap:10px; }
.luna14-adjustment-order .cab-meta { line-height:1.55; }
.luna14-order-body { padding:12px 16px 16px; }
.luna14-order-context { display:flex; flex-wrap:wrap; gap:8px 18px; margin:0 0 12px; color:var(--ink); font-size:12px; }
.luna14-order-context small { color:var(--muted); }
.luna14-adjustment-table { width:100%; }
.luna14-adjustment-table small { display:block; color:var(--muted); }
.luna14-family-pill { display:inline-block; max-width:260px; padding:3px 7px; border-radius:6px; background:color-mix(in srgb,var(--brand) 8%,var(--panel)); overflow-wrap:anywhere; }
.luna14-family-pill.family-mermas { background:#f7eadc; color:#8a4b18; }
.luna14-family-pill.family-invitaciones { background:#e6eff4; color:#15566a; }
.luna14-secondary-details { margin-top:16px; }
.luna14-secondary-details > summary { padding:2px; }
.luna14-secondary-details > :not(summary) { margin-top:12px; }
.luna14-order-body .luna14-note { margin:12px 0 0; }
@media (max-width:1099px) {
  .luna14-movement-kpis, .luna14-discount-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .luna14-movement-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .luna14-product-fate { grid-template-columns:minmax(0,1fr); }
  .luna14-movement-facts > div:nth-child(2) { border-right:0; }
  .luna14-movement-facts > div:nth-child(-n+2) { border-bottom:1px solid var(--border); }
}
@media (max-width:699px) {
  .luna14-movement-charts, .luna14-discount-charts { grid-template-columns:minmax(0,1fr); }
  .luna14-movement-kpis, .luna14-discount-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .luna14-movement-kpis .stat-card, .luna14-discount-kpis .stat-card { padding:12px; }
  .luna14-movement-facts { grid-template-columns:minmax(0,1fr); }
  .luna14-movement-facts > div { border-right:0; border-bottom:1px solid var(--border); }
  .luna14-movement-facts > div:last-child { border-bottom:0; }
  .luna14-adjustment-order > summary { grid-template-columns:minmax(0,1fr) auto; }
  .luna14-adjustment-order .cab-meta { grid-column:1 / -1; grid-row:2; }
  .luna14-list-heading { align-items:flex-start; flex-direction:column; }
  .luna14-report-heading { margin-top:8px; }
}

/* Descuentos: informe editorial compacto. Los colores distinguen alcances,
   nunca gravedad ni culpabilidad. */
.discount-report {
  --d-ink:#171b22;
  --d-muted:#5b6471;
  --d-line:#dce1e8;
  --d-surface:#fff;
  --d-soft:#f7f7f8;
  --d-blue:#002fa7;
  --d-blue-light:#83a4ed;
  --d-grey:#99a5b2;
  color:var(--d-ink);
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  min-width:0;
}
.discount-report a { color:var(--d-blue); }
.discount-report h2, .discount-report h3, .discount-report h4 {
  color:var(--d-ink); font-family:inherit; letter-spacing:-.025em;
}
.discount-report h2::after { background:var(--d-blue); height:2px; border-radius:0; }
.discount-overline, .discount-kicker {
  display:block; color:var(--d-muted); font-size:11px; font-weight:700;
  letter-spacing:.075em; text-transform:uppercase;
}
.discount-report-head {
  display:flex; justify-content:space-between; align-items:end; gap:20px;
  padding:8px 0 22px; border-bottom:1px solid var(--d-line);
}
.discount-report-head h2 { margin:7px 0 0; font-size:clamp(27px,3vw,38px); }
.discount-report-head p:last-child { margin:12px 0 0; color:var(--d-muted); font-size:14px; }
.discount-jump { white-space:nowrap; font-size:13px; font-weight:700; text-decoration:none; }
.discount-jump:hover { text-decoration:underline; }
.discount-tabs {
  display:flex; gap:24px; overflow-x:auto; margin:0 0 18px;
  border-bottom:1px solid var(--d-line); scrollbar-width:thin;
}
.discount-tabs a {
  flex:0 0 auto; padding:14px 0 12px; border-bottom:3px solid transparent;
  color:var(--d-muted); font-size:14px; font-weight:700; text-decoration:none;
}
.discount-tabs a.is-active { color:var(--d-blue); border-bottom-color:var(--d-blue); }
.discount-tabs a:hover { color:var(--d-blue); }
.discount-filters {
  display:flex; flex-wrap:wrap; align-items:end; gap:10px 14px;
  margin:0 0 12px; padding:14px 16px; background:var(--d-surface);
  border:1px solid var(--d-line);
}
.discount-filters label {
  display:grid; gap:5px; min-width:165px; color:var(--d-muted);
  font-size:11px; font-weight:700;
}
.discount-filters select, .discount-filters input {
  width:100%; min-height:40px; padding:7px 9px; border:1px solid var(--d-line);
  border-radius:0; background:var(--d-surface); color:var(--d-ink); font:inherit;
}
.discount-filters .btn-mini {
  min-height:40px; padding:8px 15px; border:1px solid var(--d-blue);
  border-radius:0; background:var(--d-blue); color:#fff; font-weight:700;
}
.discount-clear { align-self:center; font-size:12px; font-weight:700; }
.discount-active-filter {
  margin:0 0 13px; padding:8px 12px; background:var(--d-soft);
  border-left:2px solid var(--d-blue); color:var(--d-muted); font-size:12px;
}
.discount-active-filter strong { color:var(--d-ink); }
.discount-overview {
  margin:0 0 26px;
}
.discount-kpi-strip {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  border:1px solid var(--d-line); background:var(--d-surface);
}
.discount-kpi {
  display:grid; align-content:space-between; gap:12px; min-width:0; min-height:132px;
  padding:20px 19px; border-right:1px solid var(--d-line);
  text-decoration:none; color:var(--d-ink);
}
.discount-kpi:last-child { border-right:0; }
.discount-kpi.is-total { border-top:4px solid var(--d-blue); padding-top:16px; }
.discount-kpi.is-product { border-top:4px solid var(--d-blue-light); padding-top:16px; }
.discount-kpi.is-order { border-top:4px solid #c0cef0; padding-top:16px; }
.discount-kpi.is-waste { border-top:4px solid var(--d-grey); padding-top:16px; }
.discount-report a.discount-kpi { color:var(--d-ink); }
.discount-report a.discount-kpi:hover { background:var(--d-soft); }
.discount-kpi > strong {
  display:block; overflow-wrap:anywhere; font-size:clamp(21px,2.1vw,30px);
  line-height:1.05; letter-spacing:-.04em; font-variant-numeric:tabular-nums;
}
.discount-kpi.is-total > strong { font-size:clamp(25px,2.5vw,37px); }
.discount-kpi > small { color:var(--d-muted); font-size:11px; line-height:1.3; }
.discount-coverage {
  display:flex; flex-wrap:wrap; gap:6px 22px; padding:12px 17px;
  border:1px solid var(--d-line); border-top:0; background:var(--d-soft);
  color:var(--d-muted); font-size:11px;
}
.discount-coverage strong { color:var(--d-ink); font-variant-numeric:tabular-nums; }
.discount-coverage-note { margin:7px 0 0; color:var(--d-muted); font-size:11px; line-height:1.4; }
.discount-composition {
  min-width:0; margin-top:13px; padding:18px 21px;
  border:1px solid var(--d-line); background:var(--d-surface);
}
.discount-composition-head { display:flex; align-items:end; justify-content:space-between; gap:10px; }
.discount-composition-head h3 { margin:5px 0 0; font-size:19px; }
.discount-composition-head > span { color:var(--d-muted); font-size:11px; }
.discount-mix {
  display:flex; height:18px; overflow:hidden; margin:25px 0 17px;
  background:#edf0f4;
}
.discount-mix span { display:block; height:100%; }
.discount-mix .is-product, .discount-swatch.is-product { background:var(--d-blue); }
.discount-mix .is-order, .discount-swatch.is-order { background:var(--d-blue-light); }
.discount-mix .is-waste, .discount-swatch.is-waste { background:var(--d-grey); }
.discount-mix-legend { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.discount-mix-legend a {
  display:grid; grid-template-columns:10px minmax(0,1fr); gap:4px 8px;
  align-content:start; padding:7px 4px; text-decoration:none;
  color:var(--d-muted); border-bottom:2px solid transparent; font-size:12px;
}
.discount-mix-legend a:hover, .discount-mix-legend a.is-active { border-bottom-color:var(--d-blue); }
.discount-swatch { display:block; width:10px; height:10px; margin-top:3px; }
.discount-mix-legend strong { grid-column:2; color:var(--d-ink); font-size:17px; white-space:nowrap; }
.discount-invitation-note {
  margin:12px 0 0; padding-top:10px; border-top:1px solid var(--d-line);
  color:var(--d-muted); font-size:12px;
}
.discount-invitation-note strong { color:var(--d-ink); }
.discount-section-head {
  display:flex; align-items:end; justify-content:space-between; gap:12px;
  margin:0 0 12px;
}
.discount-section-head h3 { margin:3px 0 0; font-size:21px; }
.discount-section-head p { max-width:440px; margin:0; color:var(--d-muted); font-size:12px; }
.discount-chart-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.discount-chart, .discount-days-panel, .discount-orders {
  min-width:0; background:var(--d-surface); border:1px solid var(--d-line);
}
.discount-insights { margin:0 0 20px; }
.discount-chart { padding:18px 19px; }
.discount-chart-head {
  display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  margin-bottom:13px; padding-bottom:10px; border-bottom:1px solid var(--d-line);
}
.discount-chart-head h4 { margin:0; font-size:15px; }
.discount-chart-head span { color:var(--d-muted); font-size:11px; }
.discount-ranking { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.discount-ranking li {
  display:grid; grid-template-columns:minmax(110px,1.3fr) minmax(55px,1fr) minmax(80px,auto);
  align-items:center; gap:10px; min-width:0; padding:8px 0;
  border-bottom:1px solid var(--d-line);
}
.discount-ranking li:last-child { border-bottom:0; }
.discount-ranking-name {
  display:block; min-width:0; overflow-wrap:anywhere; color:var(--d-ink);
  font-size:12px; font-weight:700; line-height:1.25; text-decoration:none;
}
a.discount-ranking-name:hover { text-decoration:underline; }
.discount-ranking-name small {
  display:block; margin-top:2px; color:var(--d-muted); font-size:10px;
  font-weight:400; line-height:1.3;
}
.discount-ranking-track { display:block; height:8px; background:#edf0f4; }
.discount-ranking-track > span { display:block; height:100%; background:var(--d-blue); }
.discount-product-ranking .discount-ranking-track > span { background:var(--d-blue-light); }
.discount-actor-ranking .discount-ranking-track > span { background:#496fb9; }
.discount-chart-caveat { margin:11px 0 0; color:var(--d-muted); font-size:11px; line-height:1.4; }
.discount-ranking li > strong { text-align:right; white-space:nowrap; font-size:12px; }
.discount-chart-more { margin-top:11px; padding-top:9px; border-top:1px solid var(--d-line); }
.discount-chart-more > summary { width:fit-content; color:var(--d-blue); font-size:12px; font-weight:700; cursor:pointer; }
.discount-chart-more .discount-ranking { margin-top:10px; }
.discount-empty { margin:12px 0; color:var(--d-muted); font-size:13px; }
.discount-days-panel { padding:18px 19px; margin-bottom:25px; }
.discount-days-scroll { max-width:100%; overflow-x:auto; padding-bottom:4px; }
.discount-days {
  display:grid; grid-auto-flow:column; grid-auto-columns:minmax(84px,1fr);
  gap:7px; min-width:100%;
}
.discount-days a {
  display:grid; grid-template-rows:24px 100px auto auto; gap:3px;
  min-width:0; padding:5px 6px 7px; color:var(--d-ink); text-align:center;
  text-decoration:none; border-bottom:2px solid transparent;
}
.discount-days a:hover, .discount-days a.is-active { border-bottom-color:var(--d-blue); background:var(--d-soft); }
.discount-days strong { white-space:nowrap; font-size:11px; }
.discount-day-plot { display:flex; align-items:end; height:100px; border-bottom:1px solid var(--d-line); }
.discount-day-plot > span { display:block; width:100%; background:var(--d-blue); min-height:0; }
.discount-day-label { font-size:12px; font-weight:700; }
.discount-days small { color:var(--d-muted); font-size:10px; }
.discount-orders { padding:20px 19px 22px; margin-bottom:16px; scroll-margin-top:90px; }
.discount-orders-columns, .discount-report .discount-order > summary {
  display:grid; grid-template-columns:minmax(90px,.7fr) minmax(180px,2fr) minmax(115px,1.1fr) minmax(130px,1.2fr) minmax(100px,.9fr) minmax(85px,.7fr) 16px;
  align-items:center; gap:12px;
}
.discount-orders-columns {
  padding:10px 13px; border-top:1px solid var(--d-line); border-bottom:1px solid var(--d-line);
  color:var(--d-muted); font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
}
.discount-order { margin:0; border-bottom:1px solid var(--d-line); background:var(--d-surface); }
.discount-report .discount-order > summary {
  min-width:0; padding:13px; list-style:none; cursor:pointer;
}
.discount-order > summary::-webkit-details-marker { display:none; }
.discount-order > summary:hover, .discount-order[open] > summary { background:var(--d-soft); }
.discount-order-number, .discount-order-description, .discount-order-client,
.discount-order-actor, .discount-order-amount { display:grid; gap:2px; min-width:0; }
.discount-order-number > a { color:var(--d-blue); font-size:18px; font-weight:750; }
.discount-order-number small, .discount-order-description small,
.discount-order-client small, .discount-order-actor small, .discount-order-amount small {
  color:var(--d-muted); font-size:11px; font-weight:400; line-height:1.35;
}
.discount-order-client small, .discount-order-actor small { display:none; }
.discount-order-client strong, .discount-order-actor strong {
  overflow-wrap:anywhere; font-size:12px; font-weight:500; line-height:1.35;
}
.discount-order-client strong { color:var(--d-ink); }
.discount-order-actor strong { color:var(--d-blue); }
.discount-order-description strong { overflow-wrap:anywhere; font-size:13px; line-height:1.3; }
.discount-order-amount strong { font-size:16px; white-space:nowrap; }
.discount-order-tip { font-size:12px; color:var(--d-muted); }
.discount-order-tip small { display:none; }
.discount-order-tip strong { font-weight:500; }
.discount-order-chevron {
  justify-self:end; width:8px; height:8px; border-right:2px solid var(--d-blue);
  border-bottom:2px solid var(--d-blue); transform:rotate(45deg);
  transition:transform .2s ease;
}
.discount-order[open] .discount-order-chevron { transform:rotate(225deg); }
.discount-order-body { padding:18px 17px 20px; border-top:1px solid var(--d-line); background:var(--d-soft); }
.discount-order-context {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px;
  margin-bottom:10px; color:var(--d-muted); font-size:12px;
}
.discount-order-context strong { display:block; color:var(--d-ink); font-size:13px; overflow-wrap:anywhere; }
.discount-order-link { display:inline-block; margin:0 0 14px; font-size:12px; font-weight:700; }
.discount-order-table { min-width:650px; }
.discount-order-table th { background:#edf0f4; color:var(--d-ink); }
.discount-order-table td { background:var(--d-surface); }
.discount-order-table td:first-child strong, .discount-order-table td small { display:block; }
.discount-order-table td small { margin-top:3px; color:var(--d-muted); font-size:11px; }
.discount-family-tag {
  display:block; width:fit-content; margin-bottom:4px; padding:2px 5px;
  color:var(--d-blue); background:#edf2ff; font-size:10px; font-weight:700;
}
.discount-family-tag.family-mermas { color:#4d5967; background:#e8ebee; }
.discount-family-tag.family-invitaciones { color:#244686; background:#e8efff; }
.discount-reference {
  margin:11px 0; padding:8px 10px; border-left:2px solid var(--d-blue-light);
  color:var(--d-muted); background:var(--d-surface); font-size:12px;
}
.discount-evidence { margin-top:12px; border-top:1px solid var(--d-line); }
.discount-evidence > summary { width:fit-content; padding:10px 0 2px; color:var(--d-blue); font-size:12px; font-weight:700; cursor:pointer; }
.discount-evidence p, .discount-evidence li { color:var(--d-muted); font-size:12px; line-height:1.45; }
.discount-evidence ul { margin:9px 0; padding-left:18px; }
.discount-secondary {
  margin:12px 0; padding:0 18px; background:var(--d-surface); border:1px solid var(--d-line);
}
.discount-secondary > summary { padding:16px 0; color:var(--d-blue); font-size:13px; font-weight:700; cursor:pointer; }
.discount-secondary[open] > summary { border-bottom:1px solid var(--d-line); }
.discount-secondary > :not(summary) { margin:13px 0; }
.discount-secondary p { color:var(--d-muted); font-size:12px; }
.discount-control-kpis { display:flex; flex-wrap:wrap; gap:14px; }
.discount-control-kpis span { flex:1 1 160px; padding:10px 12px; background:var(--d-soft); color:var(--d-muted); font-size:11px; }
.discount-control-kpis strong { display:block; color:var(--d-ink); font-size:21px; }
.discount-source-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:8px; padding:0; list-style:none; }
.discount-source-list li { display:grid; gap:2px; padding:8px; border:1px solid var(--d-line); font-size:11px; }
.discount-source-list span { color:var(--d-muted); }
.discount-report :is(a,button,input,select,summary):focus-visible { outline:2px solid var(--d-blue); outline-offset:2px; }
@media (max-width:1250px) {
  .discount-kpi-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .discount-kpi:nth-child(2) { border-right:0; }
  .discount-kpi:nth-child(-n+2) { border-bottom:1px solid var(--d-line); }
  .discount-chart-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .discount-chart:last-child { grid-column:1 / -1; }
  .discount-orders-columns { display:none; }
  .discount-orders-columns, .discount-report .discount-order > summary {
    grid-template-columns:minmax(90px,.7fr) minmax(180px,2fr) minmax(125px,1fr) 16px;
  }
  .discount-order-number { grid-column:1; grid-row:1; }
  .discount-order-description { grid-column:2; grid-row:1; }
  .discount-order-amount { grid-column:3; grid-row:1; }
  .discount-order-chevron { grid-column:4; grid-row:1; }
  .discount-order-client { grid-column:2; grid-row:2; }
  .discount-order-actor { grid-column:3; grid-row:2; }
  .discount-order-client small, .discount-order-actor small { display:block; }
  .discount-order-tip { display:block; grid-column:2 / span 2; grid-row:3; }
  .discount-order-tip small { display:inline; margin-right:6px; }
}
@media (max-width:760px) {
  .discount-report-head { align-items:start; }
  .discount-chart-grid { grid-template-columns:minmax(0,1fr); }
  .discount-chart:last-child { grid-column:auto; }
  .discount-section-head { align-items:start; flex-direction:column; }
  .discount-report .discount-order > summary {
    grid-template-columns:minmax(75px,.65fr) minmax(0,1.7fr) 12px;
    gap:8px; padding:13px 5px;
  }
  .discount-order-number { grid-column:1; grid-row:1; }
  .discount-order-description { grid-column:2; grid-row:1; }
  .discount-order-chevron { grid-column:3; grid-row:1; }
  .discount-order-amount { grid-column:1; grid-row:2; }
  .discount-order-client { grid-column:2; grid-row:2; }
  .discount-order-tip { grid-column:1; grid-row:3; }
  .discount-order-actor { grid-column:2; grid-row:3; }
  .discount-order-amount strong { font-size:14px; }
  .discount-order-context { grid-template-columns:1fr; }
}
@media (max-width:540px) {
  .discount-report-head { display:block; }
  .discount-jump { display:inline-block; margin-top:12px; }
  .discount-tabs { gap:17px; }
  .discount-filters label { min-width:min(100%,180px); flex:1 1 140px; }
  .discount-kpi { min-height:110px; padding:13px 11px; }
  .discount-kpi.is-total, .discount-kpi.is-product,
  .discount-kpi.is-order, .discount-kpi.is-waste { padding-top:9px; }
  .discount-kpi > strong { font-size:20px; }
  .discount-kpi.is-total > strong { font-size:23px; }
  .discount-composition { padding:18px; }
  .discount-mix-legend { gap:2px; }
  .discount-mix-legend a { grid-template-columns:8px minmax(0,1fr); gap:3px 5px; font-size:10px; }
  .discount-mix-legend strong { font-size:12px; }
  .discount-swatch { width:8px; height:8px; }
  .discount-report .discount-order > summary { grid-template-columns:70px minmax(0,1fr) 12px; }
  .discount-order-body { padding:14px 5px; }
  .discount-chart, .discount-days-panel, .discount-orders { padding:15px 13px; }
  .discount-ranking li { grid-template-columns:minmax(0,1fr) 75px; gap:3px 8px; }
  .discount-ranking-name { grid-column:1; }
  .discount-ranking-track { grid-column:1; grid-row:2; }
  .discount-ranking li > strong { grid-column:2; grid-row:1 / span 2; }
}
@media (prefers-reduced-motion:reduce) {
  .discount-order-chevron { transition:none; }
}

/* Luna 16 · informe de caja tipo Power BI. Aislado para no alterar el resto
   de informes ni sus componentes históricos. */
.discount-report-l16 {
  --l16-ink:#111; --l16-muted:#5f6368; --l16-line:#d9dce2;
  --l16-blue:#002fa7; --l16-blue-soft:#f1f4fb;
  --l16-paper:#fff; --l16-canvas:#f7f7f8;
  color:var(--l16-ink); font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
}
.discount-report-l16 a { color:var(--l16-blue); }
.discount-report-l16 h2::after { display:none; }
.discount16-head { display:flex; align-items:end; justify-content:space-between; gap:24px; padding:10px 2px 22px; border-bottom:1px solid var(--l16-line); }
.discount16-head h2 { margin:5px 0 7px; color:var(--l16-ink); font-size:clamp(28px,3vw,38px); letter-spacing:-.035em; }
.discount-report-l16 .discount16-eyebrow { display:block; margin:0; color:var(--l16-muted); font-size:11px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.discount16-head p:not(.discount16-eyebrow) { margin:0; color:var(--l16-muted); font-size:14px; }
.discount16-source-link { white-space:nowrap; font-size:13px; font-weight:700; }
.discount16-families,.discount16-view-tabs { display:flex; gap:8px; overflow-x:auto; padding:14px 0; }
.discount16-families a,.discount16-view-tabs a { display:inline-flex; align-items:center; gap:8px; padding:8px 13px; border:1px solid var(--l16-line); border-radius:2px; background:var(--l16-paper); color:var(--l16-muted); font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap; }
.discount16-families a.is-current,.discount16-view-tabs a.is-current { border-color:var(--l16-blue); background:var(--l16-blue); color:#fff; }
.discount16-view-tabs { padding:4px 0 15px; border-bottom:1px solid var(--l16-line); }
.discount16-view-tabs a span { padding:1px 6px; border:1px solid currentColor; }
.discount16-filters { display:flex; flex-wrap:wrap; align-items:end; gap:10px 12px; padding:14px; border:1px solid var(--l16-line); border-radius:2px; background:var(--l16-canvas); }
.discount16-filters label,.discount16-page-size label { display:grid; gap:5px; min-width:140px; color:var(--l16-muted); font-size:11px; font-weight:700; }
.discount16-filters input,.discount16-filters select,.discount16-page-size select { box-sizing:border-box; min-height:38px; padding:7px 9px; border:1px solid #aeb4bf; border-radius:2px; background:#fff; color:var(--l16-ink); font:inherit; font-size:13px; }
.discount16-apply,.discount16-clear { display:inline-flex; min-height:38px; align-items:center; justify-content:center; padding:7px 13px; border:1px solid var(--l16-blue); border-radius:2px; background:var(--l16-blue); color:#fff; font-size:12px; font-weight:700; text-decoration:none; cursor:pointer; }
.discount16-clear { background:#fff; color:var(--l16-blue); }
.discount16-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:16px 0 10px; }
.discount16-kpi { display:flex; min-height:111px; flex-direction:column; justify-content:space-between; padding:15px 16px; border:1px solid var(--l16-line); border-top:3px solid var(--l16-blue); border-radius:2px; background:var(--l16-paper); }
.discount16-kpi-total,.discount16-kpi-waste { border-top-color:var(--l16-blue); }
.discount16-kpi span { color:var(--l16-muted); font-size:12px; font-weight:700; }
.discount16-kpi strong { margin:8px 0 4px; color:var(--l16-ink); font-size:clamp(21px,2.2vw,29px); letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.discount16-kpi small { color:var(--l16-muted); font-size:11px; line-height:1.4; }
.discount16-secondary-kpis { margin:0 0 12px; padding:8px 0; border-bottom:1px solid var(--l16-line); color:var(--l16-muted); font-size:12px; line-height:1.5; }
.discount16-detail-summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; margin:14px 0 8px; padding:10px 12px; border:1px solid var(--l16-line); background:var(--l16-canvas); color:var(--l16-muted); font-size:12px; }
.discount16-detail-summary strong { color:var(--l16-ink); font-size:14px; }
.discount16-integrity-note { margin:8px 0 14px; padding:10px 12px; border-left:3px solid var(--l16-blue); background:var(--l16-blue-soft); color:#384b65; font-size:12px; line-height:1.55; }
.discount16-integrity-note.is-compact { padding:6px 9px; font-size:11px; }
.discount16-coverage { margin:0 0 16px; border-bottom:1px solid var(--l16-line); color:var(--l16-muted); font-size:12px; }
.discount16-coverage summary { padding:10px 1px; color:var(--l16-blue); font-weight:700; cursor:pointer; }
.discount16-coverage ul { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:7px; margin:0; padding:0 0 10px; list-style:none; }
.discount16-coverage li { display:flex; flex-direction:column; gap:3px; padding:9px; border:1px solid var(--l16-line); border-radius:2px; background:#fff; }
.discount16-coverage li span { font-size:11px; }
.discount16-coverage p { margin:0 0 12px; }
.discount16-charts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:14px 0; }
.discount16-matrices { display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:14px; margin:14px 0; }
.discount16-panel { min-width:0; padding:16px; border:1px solid var(--l16-line); border-radius:2px; background:var(--l16-paper); }
.discount16-panel-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:13px; }
.discount16-panel-title h3 { margin:4px 0 0; color:var(--l16-ink); font-size:17px; letter-spacing:-.02em; }
.discount16-panel-title > span { color:var(--l16-muted); font-size:11px; white-space:nowrap; }
.discount16-bars { display:grid; gap:5px; max-height:220px; overflow:auto; padding:2px 2px 4px 0; }
.discount16-bar-row { display:grid; grid-template-columns:minmax(110px,1fr) minmax(70px,1fr) minmax(82px,auto); align-items:center; gap:10px; }
.discount16-bar-label { display:flex; align-items:baseline; justify-content:space-between; gap:6px; min-width:0; }
.discount16-bar-label span { overflow:hidden; color:var(--l16-ink); font-size:12px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
.discount16-bar-label small { flex:none; color:var(--l16-muted); font-size:10px; white-space:nowrap; }
.discount16-bar-track { display:grid; grid-template-columns:minmax(0,1fr) 2px minmax(0,1fr); align-items:stretch; height:13px; overflow:hidden; background:#fff; }
.discount16-bar-track span { display:block; grid-row:1; height:100%; }
.discount16-bar-track span.is-negative { grid-column:1; justify-self:end; box-sizing:border-box; border:1px dashed var(--l16-blue); background:#fff; }
.discount16-bar-track span.is-positive { grid-column:3; justify-self:start; background:var(--l16-blue); }
.discount16-bar-zero { grid-column:2; grid-row:1; z-index:1; background:var(--l16-ink); }
.discount16-bar-row > strong { color:var(--l16-ink); font-size:12px; text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.discount16-muted { color:var(--l16-muted); }
.discount16-empty { padding:17px 10px !important; color:var(--l16-muted); text-align:center; }
.discount16-matrices > article:first-child { grid-row:span 2; }
.discount16-matrices .discount16-panel-wide { grid-column:2; }
.discount16-table-wrap { width:100%; overflow:auto; }
.discount16-table { width:100%; border-collapse:collapse; font-size:13px; }
.discount16-table caption { padding:0 10px 8px; color:var(--l16-muted); font-size:11px; text-align:left; }
.discount16-table th { padding:9px 10px; border-bottom:1px solid var(--l16-line); background:#f7f7f8; color:#42464d; font-size:11px; font-weight:750; letter-spacing:.045em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.discount16-table td { padding:9px 10px; border-bottom:1px solid #e4e6ea; color:var(--l16-ink); vertical-align:top; }
.discount16-table td:nth-last-child(1),.discount16-table td:nth-last-child(2) { font-variant-numeric:tabular-nums; }
.discount16-table td:nth-last-child(1),.discount16-table td:nth-last-child(2) { text-align:right; }
.discount16-table small { display:block; margin-top:3px; color:var(--l16-muted); font-size:10px; }
.discount16-table .discount16-subtotal th,.discount16-table .discount16-subtotal td { background:var(--l16-canvas); font-weight:700; }
.discount16-table .discount16-total th,.discount16-table .discount16-total td { border-top:2px solid var(--l16-blue); border-bottom:0; font-weight:750; }
.discount16-sort-link { color:inherit; text-decoration:none; }
.discount16-sort-link:hover { color:var(--l16-blue); text-decoration:underline; }
.discount16-sort-link small { display:inline; margin-left:4px; color:var(--l16-blue); font-size:9px; text-transform:none; }
.discount16-document-details { margin-top:5px; color:var(--l16-muted); font-size:10px; }
.discount16-document-details summary { color:var(--l16-blue); cursor:pointer; }
.discount16-document-details ul { margin:5px 0 0; padding-left:15px; }
.discount16-document-details li { margin:3px 0; }
.discount16-next { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin:14px 0; padding:14px 16px; border:1px solid var(--l16-line); border-left:3px solid var(--l16-blue); background:#f7f7f8; color:var(--l16-ink); font-size:13px; }
.discount16-next a { font-weight:750; }
.discount16-order-panel { margin-top:15px; }
.discount16-order-panel .discount16-panel-title { margin-bottom:7px; }
.discount16-page-size { margin-left:auto; }
.discount16-page-size label { display:flex; align-items:center; gap:8px; }
.discount16-page-size select { min-height:32px; }
.discount16-table-meta { margin:0 0 11px; color:var(--l16-muted); font-size:11px; }
.discount16-orders-table { min-width:980px; }
.discount16-orders-table th:first-child,.discount16-orders-table td:first-child { position:sticky; left:0; z-index:1; background:#fff; }
.discount16-orders-table th:first-child { background:#f7f7f8; }
.discount16-order-link { font-weight:750; white-space:nowrap; }
.discount16-order-link span { font-size:10px; }
.discount16-warning { color:var(--l16-blue); font-weight:700; }
.discount16-adjustments summary { color:var(--l16-blue); font-weight:650; cursor:pointer; }
.discount16-adjustments ul,.discount16-evidence-row ul { display:grid; gap:6px; margin:9px 0 2px; padding-left:17px; }
.discount16-adjustments li { padding-left:2px; line-height:1.45; }
.discount16-adjustments li small { display:block; color:var(--l16-muted); font-size:10px; }
.discount16-adjustments li .discount16-actor { margin-top:3px; color:var(--l16-blue); font-weight:700; }
.discount16-evidence-row td { background:#f7f7f8; color:#42464d; font-size:11px; }
.discount16-pagination { display:flex; align-items:center; justify-content:center; gap:22px; padding:15px 0 0; color:var(--l16-muted); font-size:12px; }
.discount16-pagination a { font-weight:700; }
.discount-report-l16 :is(a,button,input,select,summary):focus-visible { outline:2px solid var(--l16-blue); outline-offset:2px; }
@media (max-width:1099px) {
  .discount16-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .discount16-charts,.discount16-matrices { grid-template-columns:minmax(0,1fr); }
  .discount16-matrices > article:first-child { grid-row:auto; }
  .discount16-matrices .discount16-panel-wide { grid-column:auto; }
}
@media (max-width:700px) {
  .discount16-head { align-items:start; flex-direction:column; }
  .discount16-kpis { gap:8px; }
  .discount16-kpi { min-height:100px; padding:12px; }
  .discount16-filters label { flex:1 1 145px; min-width:0; }
  .discount16-bar-row { grid-template-columns:minmax(100px,1fr) minmax(45px,.8fr) minmax(70px,auto); gap:7px; }
  .discount16-panel { padding:13px; }
  .discount16-next { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) { .discount-report-l16 * { scroll-behavior:auto !important; } }

/* Luna 17 · hoja-resumen compacta; el detalle Luna 16 conserva sus estilos. */
.discount-report-l17 {
  --discount-header:#006CBF;
  --discount-subtotal:#EAF3FB;
  --discount-row-alt:#F7F9FB;
  --discount-space:8px;
  --discount-section-gap:16px;
  --discount-row-min:36px;
  --discount-font:"Segoe UI",-apple-system,Roboto,Helvetica,Arial,sans-serif;
  --discount-ink:#17191c;
  --discount-line:#d8dde3;
  box-sizing:border-box;
  width:100%;
  min-width:0;
  margin:24px 0;
  color:var(--discount-ink);
  font-family:var(--discount-font);
}
.discount-report-l17 h2::after { display:none; }
.discount17-head { display:flex; align-items:end; justify-content:space-between; gap:20px; padding:0 0 12px; border-bottom:1px solid var(--discount-line); }
.discount17-head h2 { margin:3px 0 0; color:var(--discount-ink); font:600 26px/1.15 var(--discount-font); letter-spacing:-.025em; }
.discount17-eyebrow { margin:0; color:#4d5964; font-size:12px; line-height:1.4; }
.discount17-export-actions { display:flex; justify-content:flex-end; gap:8px; padding:10px 0; }
.discount17-export-actions a { padding:6px 9px; border:1px solid var(--discount-line); color:var(--discount-header); font-size:12px; font-weight:650; text-decoration:none; }
.discount17-export-actions a:hover { background:var(--discount-row-alt); text-decoration:underline; }
.discount17-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px var(--discount-space); align-items:end; padding:12px; border:1px solid var(--discount-line); background:#fff; }
.discount17-filters label { display:grid; min-width:0; gap:4px; color:#3c4750; font-size:11px; font-weight:650; }
.discount17-filters input,.discount17-filters select { box-sizing:border-box; width:100%; min-height:36px; padding:6px 8px; border:1px solid #aeb7c0; border-radius:0; background:#fff; color:var(--discount-ink); font:13px var(--discount-font); }
.discount17-apply,.discount17-clear { display:inline-flex; min-height:36px; align-items:center; justify-content:center; padding:6px 10px; border:1px solid var(--discount-header); border-radius:0; background:var(--discount-header); color:#fff !important; font:650 12px var(--discount-font); text-decoration:none; cursor:pointer; }
.discount17-clear { background:#fff; color:var(--discount-header) !important; }
.discount17-active-filters,.discount17-source-status { margin:7px 0 0; color:#45515b; font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.discount17-source-status { padding:7px 9px; border-left:2px solid var(--discount-header); background:var(--discount-row-alt); }
.discount17-view-tabs { display:flex; gap:14px; margin:10px 0 0; border-bottom:1px solid var(--discount-line); }
.discount17-view-tabs a { padding:7px 1px; border-bottom:2px solid transparent; color:#53606b; font-size:12px; text-decoration:none; }
.discount17-view-tabs a.is-current { border-color:var(--discount-header); color:var(--discount-header); font-weight:700; }
.discount17-view-tabs a span { margin-left:4px; font-variant-numeric:tabular-nums; }
.discount17-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--discount-space); margin:var(--discount-section-gap) 0 8px; }
.discount17-kpi { display:flex; min-width:0; min-height:82px; flex-direction:column; justify-content:space-between; padding:10px 12px; border:1px solid var(--discount-line); border-top:2px solid var(--discount-header); background:#fff; }
.discount17-kpi span { color:#4d5964; font-size:13px; font-weight:700; letter-spacing:.015em; }
.discount17-kpi strong { margin:4px 0; color:var(--discount-ink); font-size:28px; font-weight:650; line-height:1.1; font-variant-numeric:tabular-nums; }
.discount17-kpi small { color:#59636d; font-size:12px; line-height:1.4; }
.discount17-data-note { margin:0; padding:5px 0; color:#4d5964; font-size:11px; }
.discount17-charts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--discount-section-gap); margin:var(--discount-section-gap) 0; }
.discount17-panel { box-sizing:border-box; min-width:0; margin:0; padding:12px; border:1px solid var(--discount-line); background:#fff; }
.discount17-panel-title { margin:0 0 10px; }
.discount17-panel-title h3 { margin:0; color:var(--discount-ink); font:600 16px/1.3 var(--discount-font); }
.discount17-chart-list,.discount17-daily-chart { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.discount17-chart-row { display:grid; grid-template-columns:minmax(130px,1fr) minmax(70px,1.15fr) minmax(76px,auto); align-items:center; gap:8px; min-height:var(--discount-row-min); padding:3px 0; border-bottom:1px solid #edf0f3; }
.discount17-chart-label { display:grid; min-width:0; gap:2px; }
.discount17-chart-label a,.discount17-chart-label span { color:var(--discount-ink); font-size:12px; font-weight:600; overflow-wrap:anywhere; }
.discount17-chart-label a:hover { color:var(--discount-header); }
.discount17-chart-label small { color:#59636d; font-size:12px; line-height:1.4; }
.discount17-chart-row > strong,.discount17-series strong { color:var(--discount-ink); font-size:12px; font-variant-numeric:tabular-nums; text-align:right; white-space:nowrap; }
.discount17-chart-track { display:grid; grid-template-columns:minmax(0,1fr) 2px minmax(0,1fr); align-items:stretch; min-width:0; height:12px; background:var(--discount-row-alt); }
.discount17-chart-track span { grid-row:1; width:var(--bar,0%); height:100%; }
.discount17-chart-track span.is-positive { grid-column:3; justify-self:start; background:var(--discount-header); }
.discount17-chart-track span.is-negative { grid-column:1; justify-self:end; border:1px dashed var(--discount-header); background:#fff; }
.discount17-chart-track i { z-index:1; grid-column:2; grid-row:1; background:#65717b; }
.discount17-day { padding:5px 0 8px; border-bottom:1px solid var(--discount-line); }
.discount17-day h4 { margin:0 0 6px; color:#39444d; font-size:13px; font-weight:750; }
.discount17-series { display:grid; grid-template-columns:70px minmax(55px,1fr) minmax(72px,auto); align-items:center; gap:7px; min-height:28px; color:#4c5660; font-size:12px; }
.discount17-series.is-total { border-top:1px solid #edf0f3; color:var(--discount-ink); font-weight:700; }
.discount17-series.is-total .discount17-chart-track span.is-positive { background:#34495e; }
.discount17-series.is-total .discount17-chart-track span.is-negative { border-color:#34495e; }
.discount17-matrices { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--discount-section-gap); margin:var(--discount-section-gap) 0 0; }
.discount17-table-wrap { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.discount17-table { width:100%; min-width:620px; border-collapse:collapse; font:14px/1.35 var(--discount-font); }
.discount17-table th,.discount17-table td { box-sizing:border-box; min-height:var(--discount-row-min); padding:6px var(--discount-space); border-bottom:1px solid var(--discount-line); text-align:left; vertical-align:middle; overflow-wrap:anywhere; }
.discount17-table thead th { background:#fff; color:#3d4851; font-size:11px; font-weight:700; }
.discount17-table caption { padding:0 0 7px; color:#54606a; font-size:11px; text-align:left; }
.discount17-table .is-numeric { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.discount17-table .discount17-group th { min-height:var(--discount-row-min); border-color:var(--discount-header); background:var(--discount-header); color:#fff; font-weight:700; text-align:left; }
.discount17-table .discount17-subtotal th,.discount17-table .discount17-subtotal td { background:var(--discount-subtotal); color:#17344b; font-weight:700; }
.discount17-table .discount17-data-row:nth-of-type(even) td,.discount17-table .discount17-data-row:nth-of-type(even) th { background:var(--discount-row-alt); }
.discount17-table .discount17-data-row td:first-child { width:26%; }
.discount17-table .discount17-indent { padding-left:20px; font-weight:500; }
.discount17-table .discount17-indent a { color:var(--discount-ink); text-decoration:underline; text-decoration-color:#8a99a6; text-underline-offset:2px; }
.discount17-table .discount17-indent a:hover { color:var(--discount-header); }
.discount17-table small { display:block; margin-top:2px; color:#4f5d68; font-size:10px; font-weight:500; }
.discount17-missing { font-weight:500; font-style:italic; }
.discount17-empty { padding:12px 8px !important; color:#59636d; text-align:left; }
.discount17-next { margin:10px 0 0; font-size:12px; }
.discount17-next a { color:var(--discount-header); font-weight:650; }
.discount-report-l17 :is(a,button,input,select,summary,[tabindex="0"]):focus-visible { outline:2px solid #004b86; outline-offset:2px; }
@media (min-width:768px) and (max-width:1024px) {
  .discount-report-l17 { margin:12px 0; }
  .discount17-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .discount17-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .discount17-charts { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:767px) {
  .discount-report-l17 { margin:12px 0; }
  .discount17-head { align-items:flex-start; }
  .discount17-head h2 { font-size:23px; }
  .discount17-export-actions { justify-content:flex-start; }
  .discount17-filters { grid-template-columns:minmax(0,1fr); padding:10px; }
  .discount17-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .discount17-kpi { min-height:78px; padding:8px; }
  .discount17-kpi strong { font-size:22px; }
  .discount17-charts { grid-template-columns:minmax(0,1fr); }
  .discount17-panel { padding:10px; }
  .discount17-chart-row { grid-template-columns:minmax(90px,1fr) minmax(42px,.8fr) minmax(68px,auto); gap:6px; }
  .discount17-series { grid-template-columns:50px minmax(45px,1fr) minmax(68px,auto); gap:5px; }
  .discount17-table { min-width:590px; }
}
@media (max-width:380px) {
  .discount17-kpis { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) { .discount-report-l17 * { scroll-behavior:auto !important; animation:none !important; } }

/* Luna 18 · lecturas directas para eliminaciones, traslados y descuentos. */
.luna18-eliminations-order { margin:12px 0; overflow:hidden; }
.luna18-eliminations-order > summary { display:grid; grid-template-columns:auto max-content minmax(0,1fr) auto; grid-template-areas:"marker order facts count"; align-items:center; gap:8px 12px; }
.luna18-eliminations-order > summary:before { grid-area:marker; }
.luna18-eliminations-order .cab-orden { grid-area:order; min-width:0; }
.luna18-eliminations-order .nivel-badge { grid-area:count; margin-left:0; }
.luna18-elimination-summary { grid-area:facts; display:flex; min-width:0; flex-wrap:wrap; align-items:center; gap:6px 14px; color:var(--muted); font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.luna18-elimination-summary > span { min-width:0; overflow-wrap:anywhere; }
.luna18-elimination-summary > strong { color:var(--ink); }
.luna18-elimination-tip { color:var(--ink); font-size:13px; font-weight:750; }
.luna18-set-free { display:inline-flex; width:fit-content; margin:0; padding:2px 7px; border-radius:5px; background:color-mix(in srgb,var(--brand) 10%,var(--panel)); color:var(--brand); font-size:10px; font-weight:750; white-space:nowrap; }
.luna18-elimination-table-wrap { max-width:100%; overflow:auto; border:1px solid var(--border); border-radius:8px; }
.luna18-elimination-table { width:100%; min-width:1120px; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:13px; }
.luna18-elimination-table th,.luna18-elimination-table td { padding:9px 10px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; }
.luna18-elimination-table thead th { position:sticky; top:0; z-index:1; background:color-mix(in srgb,var(--brand) 7%,var(--panel)); color:var(--ink); font-size:12px; letter-spacing:.025em; text-transform:uppercase; }
.luna18-elimination-table thead th.is-numeric { text-align:right; white-space:normal; overflow-wrap:anywhere; }
.luna18-elimination-table tbody tr:last-child th,.luna18-elimination-table tbody tr:last-child td { border-bottom:0; }
.luna18-elimination-table tbody th { font-weight:650; }
.luna18-elimination-table small { display:block; }
.luna18-elimination-table .is-numeric { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.luna18-elimination-table-wrap:focus-visible { outline:3px solid var(--brand); outline-offset:2px; }
.table-scroll-hint { display:none; margin:5px 0 0; color:var(--muted); font-size:11px; }
.account-delta { display:inline-block; padding:2px 6px; border-radius:5px; color:var(--ink); background:color-mix(in srgb,var(--brand) 10%,var(--panel)); font-weight:800; white-space:nowrap; }
.luna18-elimination-evidence { margin-top:10px; color:var(--muted); font-size:12px; }
.luna18-elimination-evidence > summary { color:var(--brand); cursor:pointer; font-weight:700; }
.luna18-elimination-evidence h4 { margin:10px 0 4px; color:var(--ink); }
.luna18-movement-table-wrap { max-width:100%; overflow:auto; overscroll-behavior-inline:contain; border:1px solid var(--border); border-radius:9px; background:var(--panel); }
.luna18-movement-table { width:100%; min-width:1360px; border-collapse:separate; border-spacing:0; font-size:13px; line-height:1.45; }
.luna18-movement-table caption { padding:8px 11px; color:var(--muted); font-size:12px; text-align:left; }
.luna18-movement-scroll-hint { display:block; margin-top:3px; color:var(--brand); font-weight:650; }
.luna18-movement-table th,.luna18-movement-table td { box-sizing:border-box; min-width:95px; padding:9px 10px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; }
.luna18-movement-table thead th { position:sticky; top:0; z-index:2; background:color-mix(in srgb,var(--brand) 8%,var(--panel)); color:var(--ink); font-size:12px; letter-spacing:.025em; text-transform:uppercase; }
.luna18-movement-table thead th:first-child { z-index:4; }
.luna18-movement-table tbody tr:last-child th,.luna18-movement-table tbody tr:last-child td { border-bottom:0; }
.luna18-movement-table tbody tr:nth-child(even) { background:color-mix(in srgb,var(--brand) 2.5%,var(--panel)); }
.luna18-movement-table tbody th:first-child { position:sticky; left:0; z-index:1; min-width:205px; background:var(--panel); box-shadow:1px 0 0 var(--border); }
.luna18-movement-table tbody tr:nth-child(even) th:first-child { background:color-mix(in srgb,var(--brand) 2.5%,var(--panel)); }
.luna18-movement-table .is-numeric { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.luna18-movement-table thead th.luna18-movement-minutes { width:112px; min-width:100px; max-width:112px; white-space:normal; font-size:12px; line-height:1.3; }
.luna18-movement-table .luna18-movement-minutes { min-width:100px; }
.luna18-movement-table .luna18-movement-price { width:90px; min-width:90px; }
.luna18-account-payment-cell { min-width:125px !important; color:var(--ink); font-size:11px; overflow-wrap:anywhere; }
.luna18-account-payment-cell strong { font-weight:650; }
.luna18-account-payment-cell small { white-space:nowrap; }
.luna18-movement-table a { color:var(--brand); font-weight:700; text-underline-offset:2px; }
.luna18-movement-table a:focus-visible,.luna18-movement-table summary:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }
.luna18-movement-route { white-space:nowrap; }
.luna18-movement-route > span { margin:0 5px; color:var(--muted); }
.luna18-movement-route small,.luna18-movement-table td small { display:block; margin-top:4px; color:var(--muted); font-size:12px; font-weight:500; white-space:normal; }
.luna18-outcome-list { display:grid; gap:4px; min-width:190px; margin:0; padding-left:16px; }
.luna18-outcome-list li { overflow-wrap:anywhere; }
.luna18-movement-detail { min-width:140px; }
.luna18-movement-detail summary { color:var(--brand); cursor:pointer; font-weight:700; white-space:nowrap; }
.luna18-movement-detail > div { min-width:235px; max-width:340px; padding-top:6px; color:var(--muted); font-size:11px; white-space:normal; }
.luna18-movement-detail p { margin:5px 0; }
.luna18-movement-detail ul { margin:5px 0; padding-left:16px; }
.luna18-movement-detail li { margin:3px 0; }
.discount-report-l17 .luna18-daily-chart-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; padding:2px 0 5px; }
.discount-report-l17 .luna18-daily-chart { display:flex; align-items:flex-end; gap:8px; min-width:max-content; min-height:200px; margin:0; padding:8px 3px 0; list-style:none; }
.discount-report-l17 .luna18-day { width:54px; flex:0 0 54px; text-align:center; }
.discount-report-l17 .luna18-day-link { display:grid; grid-template-rows:150px auto auto; justify-items:center; gap:3px; min-height:185px; color:var(--discount-ink); text-decoration:none; }
.discount-report-l17 a.luna18-day-link:hover,.discount-report-l17 a.luna18-day-link:focus-visible { color:var(--discount-header); }
.discount-report-l17 .luna18-day-bars { display:flex; width:100%; height:150px; align-items:stretch; justify-content:center; gap:5px; border-bottom:1px solid #8b949c; }
.discount-report-l17 .luna18-day-series { display:flex; width:18px; height:100%; flex-direction:column-reverse; align-items:center; justify-content:flex-start; gap:2px; }
.discount-report-l17 .luna18-day-series small { color:#39444d; font-size:12px; font-variant-numeric:tabular-nums; }
.discount-report-l17 .luna18-day-series i { display:block; width:100%; max-height:130px; min-height:0; border-radius:2px 2px 0 0; background:#176b9a; }
.discount-report-l17 .luna18-day-series.is-product i { background:#d09136; }
.discount-report-l17 .luna18-day-total { color:var(--discount-ink); font-size:11px; font-variant-numeric:tabular-nums; }
.discount-report-l17 .luna18-day-link time { color:#59636d; font-size:10px; }
.discount-report-l17 .luna18-chart-legend { display:flex; flex-wrap:wrap; gap:8px 16px; margin:6px 0 0; padding:0; color:#4d5964; font-size:12px; list-style:none; }
.discount-report-l17 .luna18-chart-legend li { display:flex; align-items:center; gap:5px; }
.discount-report-l17 .luna18-chart-legend i { width:10px; height:10px; background:#176b9a; }
.discount-report-l17 .luna18-chart-legend i.is-product { background:#d09136; }
.discount-report-l17 .luna18-order-links { min-width:150px; font-variant-numeric:tabular-nums; }
.discount-report-l17 .luna18-order-links > a { display:inline-block; margin:1px 4px 1px 0; white-space:nowrap; }
.discount-report-l17 .luna18-order-links details { margin-top:3px; }
.discount-report-l17 .luna18-order-links summary { color:var(--discount-header); cursor:pointer; font-size:11px; }
.discount-report-l17 .luna18-order-links details span { display:grid; gap:3px; margin-top:4px; }
.discount-report-l17 .luna18-order-links details a { width:max-content; }
@media (max-width:699px) {
  .luna18-eliminations-order > summary { grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"marker order count" "marker facts facts"; align-items:start; gap:6px 9px; }
  .luna18-eliminations-order > summary:before { align-self:start; }
  .luna18-eliminations-order .nivel-badge { align-self:start; }
  .luna18-elimination-summary { align-self:start; }
  .luna18-movement-table { min-width:1360px; }
  .luna18-movement-table-wrap { max-height:72vh; }
}
@media (prefers-reduced-motion:reduce) { .luna18-movement-table *, .luna18-elimination-table * { scroll-behavior:auto !important; animation:none !important; } }
@media (max-width:700px) {
  .table-scroll-hint { display:block; }
  .luna18-elimination-table thead th { overflow-wrap:anywhere; }
}

/* Luna26 · Seguimiento individual — Swiss grid, scoped to this report. */
.employee-followup { --followup-blue:#002FA7; --followup-rule:#D9DDE5; --followup-ink:#17191D; --followup-muted:#596170; color:var(--followup-ink); background:#FFFFFF; font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; }
.followup-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:26px 28px 22px; border:1px solid var(--followup-rule); border-bottom:3px solid var(--followup-blue); background:#FFFFFF; }
.followup-heading h1 { margin:3px 0 8px; font-size:clamp(28px,3vw,42px); line-height:1; letter-spacing:-.04em; }
.followup-heading p { max-width:740px; margin:0; color:var(--followup-muted); }
.followup-heading .followup-kicker { color:var(--followup-blue); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.followup-person { min-width:210px; padding:10px 14px; border-left:2px solid var(--followup-blue); }
.followup-person span,.followup-person strong { display:block; }
.followup-person span { color:var(--followup-muted); font-size:12px; }
.followup-person strong { margin-top:4px; font-size:17px; }
.followup-filters { display:flex; align-items:flex-end; flex-wrap:wrap; gap:12px; padding:16px 18px; border:1px solid var(--followup-rule); border-top:0; background:#F7F7F8; }
.followup-filters label { display:grid; gap:5px; min-width:190px; margin:0; }
.followup-filters label span { color:var(--followup-muted); font-size:12px; font-weight:700; }
.followup-filters select { min-height:40px; padding:7px 10px; border:1px solid #9AA2B1; border-radius:2px; background:#FFFFFF; color:var(--followup-ink); font:inherit; }
.followup-filters button,.followup-filters .btn { min-height:40px; border-radius:2px; }
.followup-empty { margin-top:16px; padding:20px 22px; border:1px solid var(--followup-rule); border-left:4px solid var(--followup-blue); background:#F7F7F8; color:var(--followup-ink); }
.followup-overview { margin-top:18px; border:1px solid var(--followup-rule); background:#FFFFFF; }
.followup-overview-title { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding:18px 20px 14px; border-bottom:1px solid var(--followup-rule); }
.followup-overview-title span { color:var(--followup-blue); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.followup-overview-title h2 { margin:4px 0 0; font-size:24px; }
.followup-overview-title p { margin:0; color:var(--followup-muted); }
.followup-index { display:grid; grid-template-columns:1fr 1fr; }
.followup-index-row { display:grid; grid-template-columns:minmax(150px,1fr) minmax(80px,1.2fr) 38px; align-items:center; gap:12px; min-height:43px; padding:7px 16px; border-bottom:1px solid var(--followup-rule); color:var(--followup-ink); text-decoration:none; }
.followup-index-row:nth-child(odd) { border-right:1px solid var(--followup-rule); }
.followup-index-row:hover,.followup-index-row:focus-visible { background:#F7F7F8; color:var(--followup-blue); }
.followup-index-name { font-size:13px; }
.followup-index-row > strong { text-align:right; font-size:16px; font-variant-numeric:tabular-nums; }
.followup-index-bar { display:block; height:7px; background:#E7E9EE; }
.followup-index-bar span { display:block; height:100%; background:var(--followup-blue); }
.followup-sections { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.followup-card { min-width:0; border:1px solid var(--followup-rule); background:#FFFFFF; }
.followup-card > header { display:grid; grid-template-columns:38px minmax(0,1fr); gap:10px; padding:15px 16px 12px; border-bottom:1px solid var(--followup-rule); }
.followup-card-number { color:var(--followup-blue); font-size:19px; font-weight:800; font-variant-numeric:tabular-nums; }
.followup-card h2 { margin:0 0 5px; font-size:17px; }
.followup-card header p { margin:0; color:var(--followup-muted); font-size:12px; line-height:1.45; }
.followup-card-metric { display:flex; align-items:baseline; gap:9px; padding:13px 16px 9px; }
.followup-card-metric strong { color:var(--followup-blue); font-size:30px; line-height:1; font-variant-numeric:tabular-nums; }
.followup-card-metric span { color:var(--followup-muted); font-size:12px; }
.followup-examples { margin:0; padding:0 16px 10px 30px; color:var(--followup-ink); font-size:13px; }
.followup-examples li { padding:5px 0; border-bottom:1px solid #ECEEF2; }
.followup-no-results { min-height:36px; margin:0; padding:8px 16px 14px; color:var(--followup-muted); font-size:13px; }
.followup-detail-link { display:block; margin:0 16px; padding:10px 0 13px; border-top:1px solid var(--followup-rule); color:var(--followup-blue); font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.followup-footnote { margin:14px 0 0; padding:12px 14px; border-left:2px solid var(--followup-blue); background:#F7F7F8; color:var(--followup-muted); font-size:12px; }
@media (max-width:760px) {
  .followup-heading,.followup-overview-title { align-items:flex-start; flex-direction:column; }
  .followup-person { width:100%; }
  .followup-index,.followup-sections { grid-template-columns:1fr; }
  .followup-index-row:nth-child(odd) { border-right:0; }
  .followup-index-row { grid-template-columns:minmax(120px,1fr) minmax(65px,.8fr) 30px; padding-inline:12px; }
  .followup-heading { padding:20px 16px; }
  .followup-filters { align-items:stretch; }
  .followup-filters label,.followup-filters button,.followup-filters .btn { width:100%; }
}

/* Revo UX global · panel analítico editorial. Mantiene estructura y controles;
   actualiza identidad, jerarquía, contraste y visualización en todos los módulos. */
:root {
  --bg:#eef4f8;
  --panel:#ffffff;
  --panel-2:#f8fbfd;
  --ink:#17283b;
  --muted:#627488;
  --brand:#0084a6;
  --brand-ink:#07556f;
  --gold:#8a5b12;
  --accent:#ce3d52;
  --accent-soft:#fff0f2;
  --warn:#a85b08;
  --warn-soft:#fff4df;
  --ok:#148a68;
  --ok-soft:#e5f7f0;
  --border:#d9e4ed;
  --brand-soft:#e5f5f8;
  --sidebar:#0b1b2b;
  --shadow:0 2px 5px rgba(20,43,66,.045),0 12px 28px rgba(20,43,66,.065);
  --radius:14px;
  --serif:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
}
body { background:var(--bg); color:var(--ink); }
.sidebar { background:linear-gradient(180deg,#0b1b2b 0%,#102a40 100%); border-right-color:rgba(255,255,255,.08); }
.sidebar h1 { font-family:var(--serif); font-size:21px; letter-spacing:-.035em; }
.sidebar h1::before { background:linear-gradient(135deg,#00a4bd,#32d2ce); box-shadow:0 0 0 4px rgba(0,164,189,.18); }
.sidebar .sub { color:#9bb1c3; }
.sidebar .grupo { color:#75cad5; }
.sidebar a { border-radius:9px; }
.sidebar a.active,.sidebar .report-nav-link.active { background:linear-gradient(90deg,rgba(0,164,189,.3),rgba(0,164,189,.13)); box-shadow:inset 3px 0 0 #27c1cb; }
.ctx-lote { border-radius:11px; background:rgba(255,255,255,.075); }
.main { padding-bottom:54px; }
.topbar { background:rgba(255,255,255,.96); border-bottom-color:var(--border); box-shadow:0 4px 15px rgba(20,43,66,.045); backdrop-filter:blur(8px); }
h2 { font-family:var(--serif); color:#17324c; font-size:clamp(24px,2.2vw,31px); letter-spacing:-.035em; }
h2::after { width:50px; height:4px; background:linear-gradient(90deg,#0084a6,#43c7c1); }
.card,.secondary-disclosure,.chart-box,.dash-card,.stat-card,.grupo-orden,.patron-foco,
.panel-kpi,.kpi-card,.report-section,.focus-card { border-color:var(--border); border-radius:var(--radius); box-shadow:var(--shadow); }
.card { background:var(--panel); }
.chart-box { background:linear-gradient(180deg,#fff 0%,#fbfdff 100%); }
.chart-box h4,.dash-card h4 { color:#38536c; }
.stat-card { position:relative; overflow:hidden; background:linear-gradient(145deg,#fff 0%,#f8fbfe 100%); border-top-width:4px; }
.stat-card .icon { opacity:1; color:var(--brand); }
.stat-card .num { color:#17324c; letter-spacing:-.04em; }
.stat-card .label { color:#627488; }
.stat-card.c-rojo { border-top-color:#e25367; }
.stat-card.c-naranja { border-top-color:#f09a35; }
.stat-card.c-azul { border-top-color:#138dc4; }
.stat-card.c-verde { border-top-color:#16a77a; }
.stat-card.c-morado { border-top-color:#8a63d2; }
.stat-card.c-gris { border-top-color:#6e8297; }
.stat-card.c-amarillo { border-top-color:#e4b328; }
.btn,.btn-pdf,.btn-excel,.btn-mail,.btn-mini { border-radius:9px; transition:transform .14s ease,box-shadow .14s ease,background .14s ease; }
.btn:hover,.btn-pdf:hover,.btn-excel:hover,.btn-mail:hover { transform:translateY(-1px); box-shadow:0 5px 13px rgba(16,48,72,.16); }
.btn.secondary { background:#31516d; }
input,select,textarea { border-color:#c8d7e3; border-radius:9px; background:#fff; }
input:focus,select:focus,textarea:focus,.btn:focus-visible,a:focus-visible { outline:3px solid rgba(0,164,189,.27); outline-offset:2px; }
.panel-acciones { border-color:var(--border); border-radius:12px; background:#f8fbfd; }
.secondary-disclosure { overflow:hidden; }
.secondary-disclosure > summary { background:#f9fcfe; }
.chart-data > summary { color:var(--brand-ink); }
table { font-size:13px; }
th { background:#eaf2f7; color:#234761; border-bottom-color:#cfdae4; }
td { border-bottom-color:#e5edf3; }
tbody tr:nth-child(even) td,table tr:nth-child(even) td { background:#f8fbfd; }
tr:hover td { background:#edf8fa; }
.tabla-scroll,.table-scroll { max-width:100%; border-radius:10px; }
.aviso { border-radius:11px; }
.employee-followup { --followup-blue:#0084a6; --followup-rule:#d9e4ed; --followup-ink:#17283b; --followup-muted:#627488; background:transparent; color:var(--ink); font-family:var(--serif); }
.followup-heading { border:1px solid var(--border); border-bottom:0; border-radius:15px 15px 0 0; box-shadow:var(--shadow); }
.followup-heading h1 { color:#17324c; }
.followup-heading .followup-kicker,.followup-overview-title span { color:#0084a6; }
.followup-filters { border:1px solid var(--border); border-radius:0 0 14px 14px; background:#f7fbfd; }
.followup-filters select { border-radius:9px; }
.followup-empty { border-color:var(--border); border-left-color:#00a4bd; border-radius:12px; background:#fff; }
.followup-overview { border:1px solid var(--border); border-radius:14px; overflow:hidden; box-shadow:var(--shadow); }
.followup-index-bar { border-radius:99px; background:#e5eef4; overflow:hidden; }
.followup-index-bar span { border-radius:99px; background:linear-gradient(90deg,#0084a6,#45c7bd); }
.followup-index-row:hover,.followup-index-row:focus-visible { background:#f1fafb; color:var(--brand-ink); }
.followup-card { border-color:var(--border); border-radius:14px; overflow:hidden; box-shadow:var(--shadow); }
.followup-card:nth-child(5n+1) .followup-card-number,.followup-card:nth-child(5n+1) .followup-card-metric strong { color:#138dc4; }
.followup-card:nth-child(5n+2) .followup-card-number,.followup-card:nth-child(5n+2) .followup-card-metric strong { color:#16a77a; }
.followup-card:nth-child(5n+3) .followup-card-number,.followup-card:nth-child(5n+3) .followup-card-metric strong { color:#8a63d2; }
.followup-card:nth-child(5n+4) .followup-card-number,.followup-card:nth-child(5n+4) .followup-card-metric strong { color:#e08b24; }
.followup-card:nth-child(5n) .followup-card-number,.followup-card:nth-child(5n) .followup-card-metric strong { color:#d64d63; }
.followup-card > header { background:linear-gradient(110deg,#fff,#f5faff); }
.followup-record-count { margin:0 16px 10px; color:var(--muted); font-size:12px; font-weight:650; }
.followup-record-list { display:grid; gap:9px; padding:0 12px 13px; }
.followup-record { min-width:0; border:1px solid #dce7ef; border-radius:10px; background:#fff; overflow:hidden; }
.followup-record > header { display:grid; grid-template-columns:32px minmax(0,1fr); align-items:start; gap:9px; padding:9px 11px; background:#f2f8fb; border-bottom:1px solid #e0e9f0; }
.followup-record > header > span { display:grid; place-items:center; width:27px; height:27px; border-radius:50%; background:#dff3f6; color:#07556f; font-size:11px; font-weight:800; }
.followup-record h3 { margin:0; color:#193b55; font-size:13px; line-height:1.4; overflow-wrap:anywhere; }
.followup-order-link,.followup-order-number { display:inline-block; margin-top:3px; color:#087894; font-size:11px; font-weight:700; text-underline-offset:2px; }
.followup-record dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; }
.followup-record dl > div { min-width:0; padding:7px 10px; border-bottom:1px solid #edf1f4; }
.followup-record dl > div:nth-child(odd) { border-right:1px solid #edf1f4; }
.followup-record dt { margin:0 0 2px; color:#64798b; font-size:10px; font-weight:750; letter-spacing:.035em; text-transform:uppercase; }
.followup-record dd { margin:0; color:#1c3042; font-size:12px; overflow-wrap:anywhere; white-space:pre-wrap; }
.followup-no-results { border-top:1px solid var(--border); }
@media (max-width:760px) {
  .main { padding-right:16px; padding-left:16px; }
  .topbar { width:calc(100% + 32px); max-width:calc(100% + 32px); margin-right:-16px; margin-left:-16px; padding-right:16px; padding-left:16px; }
  .followup-record dl { grid-template-columns:1fr; }
  .followup-record dl > div:nth-child(odd) { border-right:0; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; } }

/* Revo · sistema visual integral 2026-10-17.
   Una identidad editorial de analítica: navegación tinta, lienzo luminoso,
   acentos vivos por categoría y tablas densas pero escaneables. Solo presenta
   de otra manera el contenido existente; no cambia filtros, datos ni acciones. */
:root {
  --bg:#f2f6fa;
  --panel:#fff;
  --panel-2:#f8fbfd;
  --ink:#17283b;
  --muted:#607489;
  --brand:#087d91;
  --brand-ink:#07566d;
  --brand-soft:#e5f6f7;
  --border:#d8e3ec;
  --sidebar:#0b1d2c;
  --ok:#168768;
  --ok-soft:#e4f7f0;
  --warn:#ae6a0c;
  --warn-soft:#fff4df;
  --accent:#d94a5c;
  --accent-soft:#fff0f2;
  --gold:#936518;
  --radius:15px;
  --shadow:0 2px 7px rgba(18,43,65,.045),0 14px 34px rgba(18,43,65,.065);
  --serif:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,sans-serif;
  --data-cyan:#0c91ad;
  --data-green:#16a777;
  --data-violet:#7956d8;
  --data-amber:#e99b24;
  --data-coral:#e45c70;
  --data-blue:#5579e8;
}
body { background:var(--bg); color:var(--ink); }
.layout { align-items:stretch; }
.sidebar {
  width:258px; min-width:258px; padding:23px 15px 20px;
  background:linear-gradient(168deg,#0a1b2a 0%,#102b40 58%,#0d2336 100%);
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:5px 0 28px rgba(8,24,38,.08);
}
.sidebar h1 { font-family:var(--serif); font-size:22px; letter-spacing:-.045em; }
.sidebar h1::before { width:23px; height:23px; border-radius:7px; background:linear-gradient(135deg,#12a7c3,#35d4c8); box-shadow:0 0 0 5px rgba(21,183,195,.13); }
.sidebar .sub { margin-bottom:21px; color:#a2b7c8; letter-spacing:.115em; }
.sidebar-nav-content > nav:first-of-type { padding-top:9px; border-top:1px solid rgba(255,255,255,.11); }
.sidebar .grupo,.report-nav-heading { color:#76cbd4; }
.sidebar .grupo { margin-top:19px; padding-left:11px; font-size:10px; letter-spacing:.13em; }
.sidebar a { min-height:37px; border-radius:9px; color:#d3dfe9; font-size:13px; transition:background .16s,color .16s,transform .16s; }
.sidebar a:hover { background:rgba(255,255,255,.09); transform:translateX(2px); }
.sidebar a.active,.sidebar .report-nav-link.active { color:#fff; background:linear-gradient(100deg,rgba(12,145,173,.38),rgba(22,167,119,.16)); box-shadow:inset 3px 0 #28d1cb; }
.report-nav-section { margin-bottom:12px; padding:5px 5px 8px; border:1px solid rgba(255,255,255,.085); border-radius:12px; background:rgba(255,255,255,.025); }
.report-nav-section:first-child { border-top:1px solid rgba(255,255,255,.085); }
.report-nav-heading { grid-template-columns:25px 1fr; padding:8px 8px 5px; font-size:9px; letter-spacing:.12em; }
.report-nav-heading > span { color:#39c6d2; }
.report-nav-heading strong { color:#8faec0; font-size:9px; }
.sidebar .report-nav-link { grid-template-columns:24px minmax(0,1fr); min-height:34px; padding:7px 8px; border-radius:8px; font-size:12px; }
.sidebar .report-nav-link .nav-index { color:#86a0b1; font-size:9px; }
.sidebar .report-nav-footer { border-top:1px solid rgba(255,255,255,.14); }
.sidebar .report-nav-footer a { min-height:34px; border-bottom:0; }
.report-nav-filter-note { color:#9cb0c0; }
.main { min-width:0; padding:0 clamp(20px,3vw,46px) 60px; }
.topbar {
  width:calc(100% + clamp(40px,6vw,92px)); max-width:calc(100% + clamp(40px,6vw,92px));
  margin-right:calc(clamp(20px,3vw,46px) * -1); margin-left:calc(clamp(20px,3vw,46px) * -1);
  padding:12px clamp(20px,3vw,46px); background:rgba(255,255,255,.9); border-bottom:1px solid #e0e8ef;
  box-shadow:0 6px 20px rgba(23,50,76,.035); backdrop-filter:blur(12px);
}
.topbar .user { color:#536b80; font-size:12px; }
.workspace-head {
  position:relative; align-items:center; min-height:110px; margin:7px 0 18px; padding:20px 24px;
  border:1px solid #d9e7ef; border-left:5px solid var(--brand); border-radius:17px;
  background:radial-gradient(ellipse at 93% 8%,rgba(29,190,185,.14),transparent 34%),linear-gradient(110deg,#fff 0%,#f8fcff 58%,#f0fbfb 100%);
  box-shadow:var(--shadow);
}
.workspace-head h2 { color:#17344d; font-size:clamp(25px,2.4vw,35px); letter-spacing:-.045em; }
.workspace-head h2::after { display:none; }
.workspace-head h2 span { color:#0d95a7; }
.workspace-head .eyebrow,.eyebrow { color:#087d91; letter-spacing:.14em; font-size:10px; }
.workspace-actions { flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.audit-folio { min-width:145px; padding:8px 12px; border:1px solid #dbe9ef; border-left:3px solid var(--data-green); border-radius:10px; background:#fff; }
.audit-folio:nth-child(2) { border-left-color:var(--data-violet); }
.audit-folio strong { white-space:normal; }
.compare-link { border:1px solid #b6dce3; border-radius:10px; color:#07566d; background:#fff; }
.compare-link:hover { background:#e6f8f8; color:#064f66; }
h2 { color:#17344d; letter-spacing:-.045em; }
h2::after { width:43px; height:4px; border-radius:4px; background:linear-gradient(90deg,#087d91,#16b99b,#7956d8); }
h3.seccion-panel { padding:0 0 9px; border-bottom:1px solid var(--border); color:#17344d; }
.card,.dash-card,.focus-card,.investigation-head,.signal-strip,.audit-overview,.patron-foco,.grupo-orden,.chart-box,.report-scope-help,
.discount17-panel,.discount16-panel,.api-test,.employee-followup .followup-card,.employee-followup .followup-overview {
  border-color:var(--border); border-radius:var(--radius); box-shadow:var(--shadow);
}
.card { padding:20px 22px; background:var(--panel); }
.card h3 { color:#193b54; }
.secondary-disclosure { overflow:hidden; border:1px solid #d6e4ed; border-radius:14px; background:#fff; box-shadow:var(--shadow); }
.secondary-disclosure > summary { padding:15px 18px; background:linear-gradient(90deg,#f2fbfc,#fff); color:#07566d; }
.secondary-disclosure[open] > summary { border-bottom:1px solid var(--border); }
.period-filter,.umbral-form,.filter-dock,.discount17-filters,.filtro-centro,.propinas-filtros,.luna14-filter {
  border:1px solid #d8e7ef; border-radius:14px; background:linear-gradient(110deg,#fff,#f6fbfd); box-shadow:0 5px 18px rgba(23,50,76,.05);
}
.period-filter { padding:13px 16px 10px; }
.period-filter-form,.umbral-form,.luna14-filter { display:flex; align-items:end; flex-wrap:wrap; gap:10px 14px; }
.period-filter-form label,.umbral-form label,.luna14-filter label { margin:0; color:#536c80; font-size:11px; font-weight:750; }
.period-filter-form label span { color:#536c80; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
input,select,textarea { min-height:38px; border:1px solid #c8d9e4; border-radius:9px; background:#fff; color:#18344a; }
input:focus,select:focus,textarea:focus,.btn:focus-visible,a:focus-visible,button:focus-visible { outline:3px solid rgba(7,157,178,.27); outline-offset:2px; }
.btn,.btn-pdf,.btn-mail,.btn-excel,.btn-mini,.compare-link { min-height:36px; border-radius:9px; font-weight:700; }
.btn,.btn-pdf { border:1px solid #087d91; background:linear-gradient(135deg,#0a8298,#08708d); box-shadow:0 4px 10px rgba(8,125,145,.16); }
.btn:hover,.btn-pdf:hover { background:#07566d; }
.btn.secondary { background:#435b73; }
.btn.ghost,.btn-mail { border:1px solid #bfdae2; background:#fff; color:#07566d; }
.btn.ghost:hover,.btn-mail:hover { background:#e8f8f8; color:#07566d; }
.btn-excel { background:#168768; }
.btn-excel:hover { background:#0f7055; }
.btn-mini { border:1px solid #c7dce5; color:#07566d; }
.btn-mini:hover { background:#e7f8f8; border-color:#5dbac5; }
.stat-cards,.audit-kpis,.summary-kpis,.cq-kpis,.discount17-kpis,.impact-cards { gap:12px; }
.stat-card,.summary-kpi-group,.cq-kpi-card,.discount17-kpi,.impact-card,.kpi-card,.panel-kpi {
  position:relative; min-width:0; overflow:hidden; border:1px solid #dce7ef; border-radius:15px;
  background:linear-gradient(145deg,#fff 0%,#f8fbff 100%); box-shadow:0 5px 17px rgba(27,59,85,.065);
}
.stat-card { min-height:112px; padding:17px 18px 15px; border-top:0; border-left:4px solid var(--data-cyan); }
.stat-card::after { content:""; position:absolute; right:-18px; bottom:-27px; width:88px; height:88px; border-radius:50%; background:rgba(12,145,173,.075); }
.stat-card:nth-child(4n+2) { border-left-color:var(--data-green); }
.stat-card:nth-child(4n+2)::after { background:rgba(22,167,119,.09); }
.stat-card:nth-child(4n+3) { border-left-color:var(--data-violet); }
.stat-card:nth-child(4n+3)::after { background:rgba(121,86,216,.085); }
.stat-card:nth-child(4n) { border-left-color:var(--data-amber); }
.stat-card:nth-child(4n)::after { background:rgba(233,155,36,.1); }
.stat-card.c-rojo { border-left-color:var(--data-coral); }
.stat-card.c-naranja { border-left-color:var(--data-amber); }
.stat-card.c-verde { border-left-color:var(--data-green); }
.stat-card.c-morado { border-left-color:var(--data-violet); }
.stat-card.c-gris { border-left-color:#7890a5; }
.stat-card.c-amarillo { border-left-color:#e0b52e; }
.stat-card .icon { position:relative; z-index:1; display:inline-grid; place-items:center; min-width:28px; min-height:28px; margin:0 0 8px; padding:3px; border-radius:9px; background:#e4f6f7; color:#087d91; font-size:15px; }
.stat-card .num { position:relative; z-index:1; font-size:clamp(27px,2.25vw,36px); color:#15344d; }
.stat-card .label { position:relative; z-index:1; margin-top:7px; color:#526b80; font-size:10px; font-weight:750; letter-spacing:.08em; line-height:1.35; }
.stat-card:hover,.focus-card:hover { transform:translateY(-2px); border-color:#9bcbd4; box-shadow:0 10px 24px rgba(27,59,85,.11); }
.summary-masthead { position:relative; overflow:hidden; border:1px solid #0d586d; border-radius:18px; background:radial-gradient(circle at 85% 20%,rgba(34,196,189,.28),transparent 30%),linear-gradient(115deg,#103650,#0d6e7d 65%,#148b8e); box-shadow:0 12px 26px rgba(14,55,80,.18); }
.summary-masthead .summary-count strong { color:#fff; }
.summary-masthead .summary-count span,.summary-masthead .summary-count small { color:#d5f0f0; }
.summary-masthead .summary-copy h3,.summary-masthead .summary-copy p { color:#fff; }
.summary-action { border:1px solid rgba(255,255,255,.38); border-radius:10px; background:rgba(255,255,255,.13); color:#fff; }
.chart-row { grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); gap:15px; }
.chart-box,.elimination-chart,.discount17-panel { padding:17px 18px; border:1px solid #dce7ef; border-radius:15px; background:linear-gradient(180deg,#fff,#f8fbff); box-shadow:0 6px 19px rgba(22,53,79,.06); }
.chart-box h4,.dash-card h4,.elimination-chart h3,.discount17-panel-title { color:#173b55; font-size:12px; font-weight:800; letter-spacing:.06em; }
.chart-wrap { height:290px; }
.chart-wrap.chart-wrap-sm { height:205px; }
.chart-wrap svg { overflow:visible; }
.chart-box svg text,.chart-wrap svg text { fill:#607489; font-family:inherit; }
.chart-box svg line,.chart-wrap svg line { stroke:#e4ecf2; }
.chart-data { margin-top:13px; border-top-color:#e4edf2; }
.chart-data > summary { padding:10px 3px 5px; color:#08758a; }
.chart-fallback,.elimination-chart-track,.discount17-chart-track { border-radius:99px; background:#e8eff4; }
.elimination-chart-list li:nth-child(5n+1) .elimination-chart-track>span { background:var(--data-cyan); }
.elimination-chart-list li:nth-child(5n+2) .elimination-chart-track>span { background:var(--data-violet); }
.elimination-chart-list li:nth-child(5n+3) .elimination-chart-track>span { background:var(--data-green); }
.elimination-chart-list li:nth-child(5n+4) .elimination-chart-track>span { background:var(--data-amber); }
.elimination-chart-list li:nth-child(5n) .elimination-chart-track>span { background:var(--data-coral); }
.discount17-chart-row:nth-child(5n+1) .discount17-chart-track span { background:var(--data-cyan); }
.discount17-chart-row:nth-child(5n+2) .discount17-chart-track span { background:var(--data-violet); }
.discount17-chart-row:nth-child(5n+3) .discount17-chart-track span { background:var(--data-green); }
.discount17-chart-row:nth-child(5n+4) .discount17-chart-track span { background:var(--data-amber); }
.discount17-chart-row:nth-child(5n) .discount17-chart-track span { background:var(--data-coral); }
.luna18-day-series.is-order i,.luna18-chart-legend i.is-order { background:var(--data-cyan); }
.luna18-day-series.is-product i,.luna18-chart-legend i.is-product { background:var(--data-violet); }
.luna18-day-bars { border-bottom-color:#b8c9d6; }
.luna18-day-link { color:#173b55; }
.luna18-day-link:hover { color:#087d91; }
.filter-dock { margin:16px 0 12px; overflow:hidden; }
.filter-dock-title { background:linear-gradient(90deg,#eaf8fa,#f8fcfd); }
.filter-dock-fields { grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); }
.filter-dock-fields label { min-height:69px; border-color:#e4edf2; }
.filter-dock-fields select { border-radius:6px 6px 0 0; }
.filter-dock-actions { flex-wrap:wrap; }
.filter-readout { border-left-color:var(--data-violet); border-radius:8px; background:#f2efff; }
.table-scroll,.tabla-scroll { max-width:100%; overflow:auto; border:1px solid #dce6ee; border-radius:12px; background:#fff; box-shadow:0 3px 12px rgba(25,54,79,.035); }
table { font-size:12.5px; }
th,td { padding:9px 11px; }
th { background:#eaf3f7; color:#244c66; border-bottom:1px solid #d1e1e9; font-size:10px; letter-spacing:.065em; }
tbody tr:nth-child(even) td,table tr:nth-child(even) td { background:#f7fafc; }
tr:hover td { background:#e9f8f8; }
td { color:#25394b; }
td a { color:#06758b; font-weight:700; }
.badge,.tag,.nivel-badge,.cq-priority { border-radius:999px; font-weight:750; }
.grupo-orden,.luna18-eliminations-order,.luna14-movement-card,.cq-order-card,.discount16-order-panel {
  overflow:hidden; border:1px solid #dce6ee; border-radius:14px; background:#fff; box-shadow:0 5px 15px rgba(22,53,79,.05);
}
.grupo-orden > summary,.luna18-eliminations-order > summary,.cq-card-summary { background:linear-gradient(100deg,#f4f9fc,#fff); }
.grupo-orden[open] > summary,.luna18-eliminations-order[open] > summary { border-bottom:1px solid #dce6ee; }
.grupo-orden.n-alta { border-left:5px solid var(--data-coral); }
.grupo-orden.n-media { border-left:5px solid var(--data-amber); }
.grupo-orden.n-baja { border-left:5px solid #e0b52e; }
.luna18-elimination-tip { color:#07566d; font-size:15px; font-weight:850; }
.luna18-set-free { border:1px solid #bfe9e7; background:#e3f8f4; color:#08705f; }
.luna14-product-fate,.luna22-movement-outcome { border-radius:9px; background:#eef8fb; }
.case-queue .cq-kpi-card:nth-child(4n+1) { border-top:4px solid var(--data-cyan); }
.case-queue .cq-kpi-card:nth-child(4n+2) { border-top:4px solid var(--data-coral); }
.case-queue .cq-kpi-card:nth-child(4n+3) { border-top:4px solid var(--data-violet); }
.case-queue .cq-kpi-card:nth-child(4n) { border-top:4px solid var(--data-green); }
.case-queue .cq-order-card { margin-bottom:11px; }
.case-queue .cq-order-card[open] { border-color:#9bcbd4; box-shadow:0 8px 24px rgba(22,95,116,.1); }
.discount-report-l17 .discount17-head { padding:21px 23px; border:1px solid #d6e7ee; border-left:5px solid var(--data-violet); border-radius:16px; background:radial-gradient(circle at 90% 15%,rgba(121,86,216,.12),transparent 29%),linear-gradient(110deg,#fff,#f5f8ff); box-shadow:var(--shadow); }
.discount-report-l17 .discount17-view-tabs { border-bottom:2px solid #dce7ef; }
.discount-report-l17 .discount17-view-tabs a[aria-current="page"],.discount-report-l17 .discount17-view-tabs .active { color:#4f35a4; border-color:#7956d8; }
.discount17-kpi { min-height:108px; padding:15px 17px; border-top:4px solid var(--data-cyan); }
.discount17-kpi:nth-child(4n+2) { border-top-color:var(--data-violet); }
.discount17-kpi:nth-child(4n+3) { border-top-color:var(--data-green); }
.discount17-kpi:nth-child(4n) { border-top-color:var(--data-amber); }
.discount17-kpi strong { color:#183b55; }
.discount17-table-wrap { border:1px solid #dce6ee; border-radius:12px; }
.discount17-table th,.discount16-table th { background:#edf1fb; color:#3e4f77; }
.discount17-group,.discount16-order-panel-title { background:#f4f7fc; }
.discount17-subtotal { background:#edf8f5; }
.report-scope-help { margin:0 0 16px; border:1px solid #d5e7ed; border-radius:13px; background:#fff; }
.report-scope-help > summary { padding:12px 16px; background:linear-gradient(90deg,#eef9fa,#fff); color:#07566d; font-weight:750; }
.report-scope-content { padding:13px 16px 16px; }
.report-scope-content > div { border-color:#e4edf2; }
.report-scope-sources li { border-color:#d9e6ed; background:#f6fafc; }
.summary-routes { gap:12px; }
.summary-route { border:1px solid #dce7ef; border-radius:14px; background:linear-gradient(145deg,#fff,#f4fafc); box-shadow:0 5px 16px rgba(22,53,79,.05); }
.summary-route:nth-child(3n+2) { background:linear-gradient(145deg,#fff,#f5f2ff); }
.summary-route:nth-child(3n) { background:linear-gradient(145deg,#fff,#effaf5); }
.aviso,.alert,.empty-state,.case-queue-empty { border-radius:12px; }
.aviso { border-left-width:5px; }
.api-test,.admin-confirm,.upload-progress,.upload-dropzone { border-radius:14px; }
.batch-row-actions { flex-wrap:wrap; align-items:center; gap:6px; }
.batch-row-actions .btn { min-height:31px; padding:6px 10px; font-size:11px; }
.filtro-centro { display:flex; align-items:center; flex-wrap:wrap; gap:9px; padding:12px 15px; }
.filtro-centro label { margin:0!important; color:#425e73; font-weight:750; }
.upload-progress__track { border-radius:999px; background:#dcebf0; }
.upload-progress__track>span { border-radius:inherit; background:linear-gradient(90deg,#0c91ad,#16a777); }
.employee-followup .followup-heading { background:radial-gradient(circle at 92% 4%,rgba(16,173,179,.15),transparent 30%),linear-gradient(110deg,#fff,#f2fbfd); }
.employee-followup .followup-report-group { margin:20px 0 28px; }
.employee-followup .followup-report-group > header { margin:0 0 10px; padding:12px 16px; border-left:5px solid var(--data-cyan); border-radius:12px; background:linear-gradient(100deg,#e9f7fb,#fff); }
.employee-followup .followup-report-group > header h2 { margin:0; color:#16334a; }
.employee-followup .followup-native-panel { margin:12px 0; overflow:hidden; border:1px solid #d7e4ed; border-radius:14px; background:#fff; box-shadow:0 8px 20px rgba(26,58,82,.07); }
.employee-followup .followup-native-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; background:linear-gradient(110deg,#fff,#f3f9fc); border-bottom:1px solid #e0e9f0; }
.employee-followup .followup-native-heading h3 { margin:0; color:#15364e; }
.employee-followup .followup-native-heading p,.employee-followup .followup-section-status { margin:3px 0 0; color:#64798b; font-size:12px; }
.employee-followup .followup-section-status { padding:9px 18px; }
.employee-followup .followup-native-content { padding:12px; overflow-x:auto; }
.employee-followup .followup-native-content[hidden] { display:none; }
.employee-followup .followup-native-content .report-native-content { padding:0; }
.employee-followup .followup-order-detail { position:relative; margin:14px 0 20px; padding:14px; border:2px solid #188ca5; border-radius:14px; background:#f6fbfc; }
.employee-followup .followup-order-detail > header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.employee-followup .followup-order-detail h2 { margin:0; }
.employee-followup .followup-index { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }
.employee-followup .followup-index a { padding:7px 11px; border:1px solid #d6e4ee; border-radius:9px; background:#fff; color:#125a78; font-weight:700; text-decoration:none; }
.employee-followup .followup-card:nth-child(5n+1) { border-top:4px solid var(--data-cyan); }
.employee-followup .followup-card:nth-child(5n+2) { border-top:4px solid var(--data-green); }
.employee-followup .followup-card:nth-child(5n+3) { border-top:4px solid var(--data-violet); }
.employee-followup .followup-card:nth-child(5n+4) { border-top:4px solid var(--data-amber); }
.employee-followup .followup-card:nth-child(5n) { border-top:4px solid var(--data-coral); }
.employee-followup .followup-index-row { min-height:49px; }
.employee-followup .followup-index-bar span { background:linear-gradient(90deg,var(--data-cyan),var(--data-green)); }
@media (max-width:640px) {
  .employee-followup .followup-native-heading { align-items:flex-start; flex-direction:column; }
  .employee-followup .followup-native-content { padding:8px; }
}
.app-public .layout { min-height:100vh; align-items:center; justify-content:center; padding:28px; background:radial-gradient(ellipse at 50% 0%,#def5f7 0%,transparent 44%),var(--bg); }
.app-public .main { flex:initial; width:min(100%,470px); padding:0; }
.app-public .card { padding:30px; }
.app-public h2 { margin-bottom:18px; }
.dashboard-head { align-items:center; }
.dashboard-head p { max-width:620px; margin:9px 0 0; color:#5c7387; }
.batch-year-group { margin:14px 0; border:1px solid #d4e2eb; border-radius:15px; background:#fff; box-shadow:var(--shadow); overflow:hidden; }
.batch-year-group > summary { display:flex; align-items:center; gap:12px; padding:14px 17px; color:#153a52; background:linear-gradient(100deg,#e7f5f7,#f5f4ff 72%,#f5fbf9); cursor:pointer; list-style:none; }
.batch-year-group > summary::-webkit-details-marker,.batch-month-group > summary::-webkit-details-marker { display:none; }
.batch-year-group > summary::before,.batch-month-group > summary::before { content:"▸"; color:#087d91; font-size:14px; transition:transform .15s ease; }
.batch-year-group[open] > summary::before,.batch-month-group[open] > summary::before { transform:rotate(90deg); }
.batch-year-group > summary strong { font-size:18px; }
.batch-year-group > summary span,.batch-month-group > summary span { margin-left:auto; color:#587187; font-size:11px; font-weight:750; }
.batch-month-groups { padding:3px 14px 13px; }
.batch-month-group { margin-top:10px; border:1px solid #dfe9ef; border-radius:11px; overflow:hidden; }
.batch-month-group > summary { display:flex; align-items:center; gap:10px; padding:10px 13px; color:#244a63; background:#f8fbfd; cursor:pointer; list-style:none; }
.batch-month-group > summary strong { font-size:13px; }
.batch-month-group .table-scroll { margin:0; border:0; border-radius:0; box-shadow:none; }
.batch-month-group table { min-width:780px; }
.batch-month-group th:last-child { min-width:250px; }
.batch-year-group > summary:focus-visible,.batch-month-group > summary:focus-visible { outline:3px solid rgba(7,157,178,.35); outline-offset:-3px; }
@media (max-width:1100px) {
  .main { padding-right:22px; padding-left:22px; }
  .topbar { width:calc(100% + 44px); max-width:calc(100% + 44px); margin-right:-22px; margin-left:-22px; padding-right:22px; padding-left:22px; }
  .workspace-head { align-items:flex-start; flex-direction:column; }
  .workspace-actions { justify-content:flex-start; }
}
@media (max-width:900px) {
  .sidebar { width:auto; min-width:0; box-shadow:none; }
  .report-nav-section { background:rgba(255,255,255,.035); }
  .main { padding-bottom:36px; }
  .summary-masthead { flex-wrap:wrap; }
}
@media (max-width:700px) {
  .main { padding-right:15px; padding-left:15px; }
  .topbar { width:calc(100% + 30px); max-width:calc(100% + 30px); margin-right:-15px; margin-left:-15px; padding-right:15px; padding-left:15px; }
  .workspace-head { min-height:0; padding:17px; }
  .workspace-actions { width:100%; align-items:stretch; }
  .audit-folio { flex:1; min-width:125px; }
  .chart-row { grid-template-columns:minmax(0,1fr); }
  .chart-wrap { height:245px; }
  .stat-cards,.audit-kpis,.summary-kpis,.discount17-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .filter-dock-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .period-filter-form label,.umbral-form label,.luna14-filter label { flex:1 1 145px; }
}
@media (max-width:420px) {
  .stat-cards,.audit-kpis,.summary-kpis,.discount17-kpis,.filter-dock-fields { grid-template-columns:minmax(0,1fr); }
  .stat-card { min-height:88px; }
  .workspace-head h2 { font-size:25px; }
  .card { padding:15px; }
  .batch-month-groups { padding-right:8px; padding-left:8px; }
}
@media (prefers-reduced-motion:reduce) {
  .sidebar a,.stat-card,.btn,.btn-pdf,.btn-excel,.btn-mail { transition:none!important; }
}

/* Revo · ajuste a la demo aprobada de Empleados (17/10/2026).
   Mantener la composición funcional de cada informe; aplicar solo su sistema
   visual: lienzo claro, tarjetas blancas compactas, tinta navy y acentos vivos. */
:root {
  --bg:#f4f7fb;
  --panel:#fff;
  --panel-2:#f6f9fc;
  --ink:#142b3b;
  --muted:#526777;
  --brand:#1769d2;
  --brand-ink:#102b43;
  --brand-soft:#eaf2ff;
  --border:#e3eaf1;
  --sidebar:#102b43;
  --ok:#176f53;
  --ok-soft:#eaf7f4;
  --warn:#8a5b12;
  --warn-soft:#fff5e2;
  --accent:#aa3745;
  --accent-soft:#fff0f2;
  --data-cyan:#11a9c4;
  --data-green:#1c9b72;
  --data-violet:#7957dc;
  --data-amber:#e49b18;
  --data-coral:#da5260;
  --data-blue:#1769d2;
  --radius:15px;
  --shadow:0 5px 16px rgba(25,55,88,.055);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
}
body { background:var(--bg); color:var(--ink); }
.sidebar { background:#102b43; box-shadow:none; }
.sidebar h1 { font-family:inherit; }
.sidebar a.active,.sidebar .report-nav-link.active {
  background:rgba(17,169,196,.22); box-shadow:inset 3px 0 #11a9c4;
}
.main { background:var(--bg); }
.topbar { background:#fff; box-shadow:none; backdrop-filter:none; }
.workspace-head {
  min-height:0; border:0; border-radius:0; border-left:0; padding:10px 2px 17px;
  background:transparent; box-shadow:none;
}
.workspace-head h2 { color:#102b43; font-size:clamp(24px,2.2vw,31px); }
.workspace-head .eyebrow,.eyebrow { color:#1769d2; }
h2 { color:#102b43; }
.card,.dash-card,.focus-card,.investigation-head,.signal-strip,.audit-overview,
.patron-foco,.grupo-orden,.chart-box,.report-scope-help,.secondary-disclosure,
.stat-card,.summary-kpi-group,.cq-kpi-card,.discount17-kpi,.impact-card,
.kpi-card,.panel-kpi,.report-section {
  border-color:var(--border); border-radius:15px; box-shadow:var(--shadow);
}
.card,.dash-card,.focus-card,.chart-box,.elimination-chart,.discount17-panel,
.secondary-disclosure,.report-section,.investigation-head,.audit-overview,
.patron-foco,.grupo-orden,.report-scope-help {
  background:#fff;
}
.chart-box,.elimination-chart,.discount17-panel { padding:16px 18px; }
.stat-cards,.audit-kpis,.summary-kpis,.cq-kpis,.discount17-kpis,.impact-cards { gap:13px; }
.stat-card {
  min-height:104px; padding:15px 17px; border:1px solid var(--border);
  border-left:4px solid var(--data-blue); background:#fff; box-shadow:var(--shadow);
}
.stat-card::after { display:none; }
.stat-card:nth-child(4n+2) { border-left-color:var(--data-cyan); }
.stat-card:nth-child(4n+3) { border-left-color:var(--data-violet); }
.stat-card:nth-child(4n) { border-left-color:var(--data-amber); }
.stat-card.c-rojo { border-left-color:var(--data-coral); }
.stat-card.c-naranja,.stat-card.c-amarillo { border-left-color:var(--data-amber); }
.stat-card.c-azul { border-left-color:var(--data-blue); }
.stat-card.c-verde { border-left-color:var(--data-green); }
.stat-card.c-morado { border-left-color:var(--data-violet); }
.stat-card .icon {
  min-width:27px; min-height:27px; margin:0 0 7px; border-radius:9px;
  background:#eaf2ff; color:var(--data-blue);
}
.stat-card:nth-child(4n+2) .icon { background:#e7f8fa; color:var(--data-cyan); }
.stat-card:nth-child(4n+3) .icon { background:#f1edff; color:var(--data-violet); }
.stat-card:nth-child(4n) .icon { background:#fff5e2; color:#b77408; }
.stat-card .num { font-size:clamp(24px,2vw,29px); color:var(--brand-ink); }
.stat-card .label { margin-top:5px; color:var(--muted); font-size:11px; letter-spacing:.035em; }
.stat-card:hover,.focus-card:hover { transform:translateY(-1px); border-color:#b8c9da; box-shadow:0 8px 20px rgba(25,55,88,.09); }
.chart-row { gap:13px; }
.chart-box h4,.dash-card h4,.elimination-chart h3,.discount17-panel-title { color:#102b43; letter-spacing:.015em; }
.chart-wrap { height:270px; }
.chart-box svg text,.chart-wrap svg text { fill:#6c7d8e; }
.chart-box svg line,.chart-wrap svg line { stroke:#e8edf3; }
th { background:#f2f5f8; color:#526678; border-bottom-color:var(--border); }
td { border-bottom-color:#edf1f5; }
tbody tr:nth-child(even) td,table tr:nth-child(even) td { background:#fafbfd; }
tr:hover td { background:#f1f7fc; }
.batch-year-group { border-color:var(--border); box-shadow:var(--shadow); }
.batch-year-group > summary { color:#102b43; background:#f1f6fb; }
.batch-year-group > summary::before,.batch-month-group > summary::before { color:#1769d2; }
.batch-month-group { border-color:var(--border); }
.batch-month-group > summary { color:#314b62; background:#f7f9fc; }
.app-public .layout { background:var(--bg); }
@media (max-width:700px) {
  .workspace-head { padding:8px 0 13px; }
  .stat-card { min-height:92px; padding:12px; }
  .chart-wrap { height:235px; }
}
/* Approved global redesign layered over preserved consolidation styles. */
/* -------------------------------------------------------------------------
   Revo UX global · sistema Swiss
   Una capa común para todos los módulos: navegación editorial, superficies
   blancas, acento azul único, cifras alineadas y reglas finas. Los estados
   de auditoría conservan sus colores semánticos y todos los componentes
   específicos mantienen su contenido, interacción y desbordamiento propio.
   ------------------------------------------------------------------------- */
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--ink);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.45;
}
.layout { background: var(--bg); }
.sidebar {
  width: 248px;
  padding: 22px 14px 24px;
  overflow-y: auto;
  color: #d8e5ec;
  background: #0f1f2e;
  border-right: 1px solid #263b4b;
  box-shadow: 6px 0 20px rgba(15,31,46,.08);
}
.sidebar h1 {
  color: #fff;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 19px;
  font-weight: 750;
  letter-spacing: -.035em;
}
.sidebar h1::before {
  width: 19px;
  height: 19px;
  border-radius: 5px;
  background: var(--brand);
  box-shadow: none;
}
.sidebar .sub {
  margin-bottom: 20px;
  color: #9fb4c1;
  font-size: 10px;
  letter-spacing: .055em;
}
.sidebar nav { display: grid; gap: 2px; }
.sidebar a {
  min-height: 36px;
  margin: 0;
  padding: 8px 10px;
  border-radius: 2px;
  color: #d8e5ec;
  font-size: 13px;
  line-height: 1.35;
  transition: color .12s ease, background-color .12s ease;
}
.sidebar a:hover { color: #fff; background: #1a3447; }
.sidebar a.active {
  color: #fff;
  background: #164557;
  box-shadow: inset 3px 0 0 #15b7d4;
  font-weight: 700;
}
.sidebar .grupo {
  margin: 18px 0 4px;
  padding: 0 10px 5px;
  color: #75bed0;
  border-bottom: 1px solid #294456;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .075em;
}
.sidebar-nav-button { color: #fff; background: var(--brand); border-color: var(--brand); border-radius: 6px; }
.sidebar-nav-toggle:checked + .sidebar-nav-button { background: var(--brand); border-color: var(--brand); }
.main { padding: 0 clamp(18px, 2.35vw, 34px) 44px; }
.topbar {
  width: auto;
  max-width: none;
  margin: 0 calc(0px - clamp(18px, 2.35vw, 34px)) 24px;
  padding: 11px clamp(18px, 2.35vw, 34px);
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--border);
  box-shadow: none;
  backdrop-filter: blur(8px);
}
.topbar .user { color: #505b6a; font-size: 12px; }
h2 {
  margin: 4px 0 0;
  color: #121722;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: clamp(24px, 2vw, 30px);
  font-weight: 730;
  letter-spacing: -.035em;
  line-height: 1.12;
}
h2::after { width: 34px; height: 2px; margin-top: 9px; border-radius: 0; }
h3, h4 { color: #1b2432; letter-spacing: -.015em; }
.card, .dash-card, .chart-box, .elimination-chart, .stat, .stat-card,
.work-section, .employee-metric-card, .secondary-disclosure {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.card { padding: 16px 18px; }
.card h3 { font-size: 15px; }
.stat-card {
  min-height: 104px;
  padding: 14px 16px;
  border-top: 3px solid var(--brand);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(15,31,46,.07);
  transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.stat-card:hover { transform: translateY(-2px); border-color: #8ec7d4; box-shadow: 0 8px 18px rgba(15,31,46,.11); background: #fff; }
.stat-card .icon { margin-bottom: 7px; color: var(--brand); opacity: 1; }
.stat-card .num { color: #102a3a; font-size: 32px; font-weight: 760; letter-spacing: -.045em; }
.stat-card .label { color: #596474; font-size: 10.5px; letter-spacing: .045em; }
.stat, .dash-card, .chart-box, .elimination-chart { background: #fff; border-radius: 9px; box-shadow: 0 3px 12px rgba(15,31,46,.06); }
.dash-card h4, .chart-box h4 { color: #4d5868; }
.chart-box, .elimination-chart { padding: 16px 18px; border-top: 3px solid #d6eef3; }
.tabs { gap: 0; border-bottom-color: #cbd2dd; }
.tabs a { border-radius: 0; padding: 9px 12px; }
.tabs a.active { box-shadow: inset 0 -2px 0 var(--brand); }
.secondary-disclosure { margin: 14px 0; background: #fff; border-left: 4px solid var(--brand); }
.secondary-disclosure > summary { padding: 11px 14px; }
.secondary-disclosure > :not(summary) { margin-left: 14px; margin-right: 14px; }
.secondary-disclosure > :last-child { margin-bottom: 14px; }
details > summary { text-underline-offset: 3px; }
details > summary:focus-visible, a:focus-visible, button:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
}
table { color: #222a36; font-size: 13px; }
th, td { padding: 7px 9px; border-bottom-color: #dce1e9; }
th {
  background: #e4f1f5;
  color: #124c60;
  font-size: 12px;
  font-weight: 720;
  letter-spacing: .045em;
}
tbody tr:nth-child(even) td, table tr:nth-child(even) td { background: #fafbfc; }
tr:hover td { background: #edf2ff; }
.table-scroll, .tabla { border-color: var(--border); border-radius: 8px; }
.btn, .btn-mini, button, input, select, textarea {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.btn {
  border: 1px solid var(--brand);
  border-radius: 6px;
  padding: 8px 13px;
  background: var(--brand);
  box-shadow: none;
  font-size: 13px;
  font-weight: 650;
}
.btn:hover { background: var(--brand-ink); }
.btn.secondary { background: #3f4a5a; border-color: #3f4a5a; }
.btn.ghost {
  color: var(--brand-ink);
  background: #fff;
  border-color: #9eacc2;
}
.btn.ghost:hover { background: #f2f5fa; border-color: var(--brand); }
.btn-mini { border-radius: 6px; }
input, select, textarea {
  min-height: 36px;
  border-color: #aeb8c7;
  border-radius: 6px;
  background: #fff;
  color: var(--ink);
}
input::placeholder, textarea::placeholder { color: #697586; opacity: 1; }
label { color: #4f5a69; font-size: 12px; font-weight: 600; }
.alert { border-radius: 3px; border-left: 3px solid currentColor; }
.badge, .badge-eur, .badge-repite, .tag, .resp-tag, .chip-indicio {
  border-radius: 6px;
  box-shadow: none;
}
.badge { padding: 2px 6px; font-size: 10px; }
.workspace-head { align-items: flex-end; gap: 18px; }
.workspace-head .eyebrow { color: #596474; }
.workspace-actions { gap: 8px 14px; }
.audit-folio { border-left: 1px solid var(--border); padding-left: 10px; }
.audit-folio span { color: #626d7c; }
.period-filter, .work-scope {
  border: 1px solid var(--border);
  border-radius: 3px;
  background: #fff;
  box-shadow: none;
}
.period-filter-form { gap: 9px 14px; }
.period-filter-note { color: #586373; }
.report-nav-link, .report-nav-footer a { border-radius: 2px; }
.report-nav-link.active { box-shadow: inset 3px 0 0 var(--brand); }
.report-nav-section-title { border-bottom-color: #d8dde6; }
.sidebar .ctx-lote { background: #172e40; border-color: #2b495c; }
.sidebar .ctx-lote .ctx-centro { color: #fff; }
.sidebar .ctx-lote .ctx-lote-nombre { color: #b7c8d2; }
.sidebar .ctx-lote .ctx-kicker { color: #75bed0; }
.sidebar .report-nav-section, .sidebar .report-nav-section:first-child,
.sidebar .report-nav-footer { border-color: #294456; }
.sidebar .report-nav-heading, .sidebar .report-nav-heading strong { color: #8ea6b4; }
.sidebar .report-nav-heading > span { color: #54bfd2; }
.sidebar .report-nav-link, .sidebar .report-nav-link .nav-index,
.sidebar .report-nav-footer a { color: #d8e5ec; }
.sidebar .report-nav-link:hover, .sidebar .report-nav-footer a:hover {
  color: #fff; background: #1a3447;
}
.sidebar .report-nav-link.active, .sidebar .report-nav-link.active .nav-index {
  color: #fff; background: #164557; box-shadow: inset 3px 0 0 #15b7d4;
}
.sidebar .report-nav-filter-note { color: #9fb4c1; }
.run-list li, .batch-row-actions, .batch-rename-form { border-radius: 2px; }
.batch-rename-form { background: #f6f7f9; }
.case-queue-layout, .case-queue-main { min-width: 0; }
.work-table th { background: #e4f1f5; }
.priority-label, .reason-chip { border-radius: 2px; }
.elimination-chart-track { border-radius: 1px; }
.elimination-chart-track > span { border-radius: 1px; }
.caso-bloque, .grupo-orden, .batch-year, .batch-month { border-radius: 8px; box-shadow: 0 2px 8px rgba(15,31,46,.05); }
.case-detail-header, .workspace-head { border-color: var(--border); }
.skip-link:focus { background: #fff; color: var(--brand-ink); }

/* Archivo de lotes: Centro → Año → Mes. Los detalles nativos conservan la
   navegación por teclado y el orden ya viene de creado_en descendente. */
.center-archive { margin-bottom: 18px; padding: 0; overflow: hidden; }
.center-archive-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
}
.center-archive-head h3 { margin: 0; font-size: 17px; }
.center-archive-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.batch-years { padding: 0 16px 12px; }
.batch-year { margin-top: 12px; border: 1px solid #cbd2dd; background: #fff; }
.batch-year > summary, .batch-month > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
}
.batch-year > summary::-webkit-details-marker, .batch-month > summary::-webkit-details-marker { display: none; }
.batch-year > summary::before, .batch-month > summary::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(-45deg);
  transition: transform .12s ease;
}
.batch-year[open] > summary::before, .batch-month[open] > summary::before { transform: rotate(45deg); }
.batch-year > summary { justify-content: flex-start; padding: 9px 12px; color: #18243a; font-weight: 730; }
.batch-year-count, .batch-month-count { margin-left: auto; color: #586373; font-size: 11px; font-weight: 600; }
.batch-year-content { padding: 0 12px 12px; }
.batch-month { margin-top: 8px; border-top: 1px solid #dce1e9; }
.batch-month > summary { padding: 8px 4px; color: var(--brand-ink); font-size: 12px; font-weight: 720; }
.batch-month > summary::before { width: 6px; height: 6px; flex-basis: 6px; }
.batch-month-content { padding: 0 0 6px 12px; }
.batch-month .table-scroll { margin: 0; }
.batch-month table { min-width: 720px; }
.batch-month .batch-row-actions { flex-wrap: nowrap; gap: 5px; white-space: nowrap; }
.batch-month .batch-row-actions .btn { padding: 6px 8px; font-size: 11.5px; }
.summary-kpi-group { border-radius: 8px; box-shadow: 0 3px 12px rgba(15,31,46,.06); }
.summary-kpi-group:last-of-type:nth-of-type(odd) { grid-column: 1 / -1; }

@media (max-width: 1100px) {
  .sidebar { width: 226px; }
  .main { padding-right: 22px; padding-left: 22px; }
  .topbar { width: calc(100% + 44px); max-width: calc(100% + 44px); margin-right: -22px; margin-left: -22px; }
}
@media (max-width: 900px) {
  .layout { display: block; }
  .sidebar { width: auto; height: auto; max-height: none; position: relative; }
  .main { padding: 0 18px 32px; }
  .topbar {
    width: calc(100% + 36px); max-width: calc(100% + 36px);
    margin-right: -18px; margin-left: -18px; padding: 10px 18px;
  }
  .workspace-head { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 600px) {
  body { font-size: 13px; }
  .sidebar { padding: 13px 14px; }
  .sidebar h1 { font-size: 17px; }
  .sidebar .sub { margin-bottom: 8px; }
  .main { padding-right: 12px; padding-left: 12px; }
  .topbar {
    width: calc(100% + 24px); max-width: calc(100% + 24px);
    margin-right: -12px; margin-left: -12px; padding-right: 12px; padding-left: 12px;
  }
  .center-archive-head { align-items: flex-start; flex-direction: column; padding: 12px; }
  .batch-years { padding-right: 10px; padding-left: 10px; }
  .batch-year-content { padding-right: 7px; padding-left: 7px; }
  .batch-month-content { padding-left: 0; }
  .stat-cards { grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); gap: 8px; }
  .stat-card { min-height: 90px; padding: 11px; }
  .stat-card .num { font-size: 25px; }
  .card { padding: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* -------------------------------------------------------------------------
   Revo · Aurora de datos
   Color expresivo en métricas y visualizaciones; navegación y tablas siguen
   sobrias para que el color ayude a comparar, no compita con la evidencia.
   Los valores y series siguen viniendo exclusivamente de los datos existentes.
   ------------------------------------------------------------------------- */
:root {
  --viz-blue: #3977f6;
  --viz-cyan: #08a9c7;
  --viz-violet: #8758e8;
  --viz-green: #16a879;
  --viz-coral: #ed5d67;
  --viz-amber: #e8a326;
  --viz-indigo: #5b65df;
  --viz-blue-soft: #edf3ff;
  --viz-cyan-soft: #e9f9fc;
  --viz-violet-soft: #f4efff;
  --viz-green-soft: #eaf8f1;
  --viz-coral-soft: #fff0f1;
  --viz-amber-soft: #fff7e8;
  --bg: #f1f4fa;
  --brand: #08768f;
  --brand-ink: #07546b;
  --brand-soft: #e6f6fa;
  --shadow: 0 8px 24px rgba(34, 49, 85, .075);
}

body { background: #f1f4fa; }
.sidebar { background: linear-gradient(180deg, #101a31 0%, #111b35 55%, #172342 100%); }
.sidebar a.active { background: linear-gradient(100deg, rgba(8,169,199,.27), rgba(135,88,232,.17)); box-shadow: inset 3px 0 0 #08c6d9; }
.sidebar h1::before { background: linear-gradient(135deg, #08c6d9, #3977f6 58%, #8758e8); box-shadow: 0 0 18px rgba(8,198,217,.32); }
.main { background-image: radial-gradient(ellipse at 85% 0%, rgba(57,119,246,.055), transparent 34rem); }
h2::after { width: 76px; height: 4px; background: linear-gradient(90deg, var(--viz-cyan), var(--viz-blue), var(--viz-violet)); }
.workspace-head { border-bottom-color: #d7dfef; }
.workspace-head h2 span, .summary-index b, .impact-card strong, .impact-breakdown strong { color: var(--viz-blue); }

/* Indicadores: cada familia mantiene una señal cromática propia y suave. */
.stat-cards { gap: 12px; }
.stat-card {
  border: 1px solid #e2e8f3;
  border-top: 0;
  border-radius: 15px;
  background: linear-gradient(145deg, #fff, #f7f9ff);
  box-shadow: 0 5px 18px rgba(36,52,91,.065);
  padding-top: 17px;
}
.stat-card::before { content:""; position:absolute; inset:0 auto auto 0; width:100%; height:4px; background:var(--viz-blue); }
.stat-card .icon { display:inline-flex; width:34px; height:34px; align-items:center; justify-content:center; margin:0 0 10px; border-radius:11px; background:var(--viz-blue-soft); color:var(--viz-blue); opacity:1; }
.stat-card .num { color:#17213c; font-size:clamp(27px, 2.5vw, 36px); }
.stat-card .label { color:#596782; }
.stat-card.c-rojo::before { background:linear-gradient(90deg,#ed5d67,#fb8a74); }
.stat-card.c-naranja::before { background:linear-gradient(90deg,#e8a326,#f47a4b); }
.stat-card.c-azul::before { background:linear-gradient(90deg,#08a9c7,#3977f6); }
.stat-card.c-verde::before { background:linear-gradient(90deg,#16a879,#39c79c); }
.stat-card.c-morado::before { background:linear-gradient(90deg,#8758e8,#bb69dd); }
.stat-card.c-amarillo::before { background:linear-gradient(90deg,#e8a326,#f3d04f); }
.stat-card.c-gris::before { background:linear-gradient(90deg,#687a99,#9ba9c2); }
.stat-card.c-rojo { background:linear-gradient(145deg,#fff,#fff5f5); }
.stat-card.c-naranja { background:linear-gradient(145deg,#fff,#fff8ee); }
.stat-card.c-azul { background:linear-gradient(145deg,#fff,#f1f6ff); }
.stat-card.c-verde { background:linear-gradient(145deg,#fff,#effaf5); }
.stat-card.c-morado { background:linear-gradient(145deg,#fff,#f7f2ff); }
.stat-card.c-amarillo { background:linear-gradient(145deg,#fff,#fffbed); }
.stat-card.c-rojo .num { color:#cf3d51; }
.stat-card.c-naranja .num { color:#bd6b16; }
.stat-card.c-azul .num { color:#3269db; }
.stat-card.c-verde .num { color:#15855f; }
.stat-card.c-morado .num { color:#7044c7; }
.stat-card.c-amarillo .num { color:#9b7010; }

/* Gráficos: contraste de lectura, leyendas vivas y serie diferenciada. */
.chart-row { gap:18px; }
.chart-box, .elimination-chart, .discount17-panel, .daily-sales-series {
  border-color:#e0e6f1;
  border-radius:15px;
  box-shadow:0 8px 22px rgba(36,52,91,.06);
}
.chart-box { position:relative; overflow:hidden; padding:19px; }
.chart-box::before { content:""; position:absolute; top:0; left:0; width:100%; height:4px; background:linear-gradient(90deg,var(--viz-blue),var(--viz-violet)); }
.chart-row > .chart-box:nth-child(3n+1)::before { background:linear-gradient(90deg,var(--viz-cyan),var(--viz-blue)); }
.chart-row > .chart-box:nth-child(3n+2)::before { background:linear-gradient(90deg,var(--viz-violet),var(--viz-coral)); }
.chart-row > .chart-box:nth-child(3n)::before { background:linear-gradient(90deg,var(--viz-amber),var(--viz-green)); }
.chart-box h4 { color:#293550; font-size:14px; letter-spacing:0; text-transform:none; }
.chart-wrap { height:300px; padding:8px 2px 0; }
.chart-wrap.chart-wrap-sm { height:220px; }
.chart-box canvas { filter:drop-shadow(0 2px 2px rgba(57,119,246,.06)); }
.legend-tipos li { border-bottom-color:#edf0f7; }
.legend-tipos .dot { width:11px; height:11px; box-shadow:0 0 0 3px rgba(57,119,246,.08); }
.eliminations-dashboard { gap:16px; }
.elimination-chart { padding:17px; background:linear-gradient(145deg,#fff,#f7f9ff); }
.elimination-chart:nth-child(3n+1) { border-top:4px solid var(--viz-cyan); }
.elimination-chart:nth-child(3n+2) { border-top:4px solid var(--viz-violet); }
.elimination-chart:nth-child(3n) { border-top:4px solid var(--viz-amber); }
.elimination-chart h3 { color:#26334f; font-size:16px; }
.elimination-chart-list { gap:11px; }
.elimination-chart-track { height:12px; background:#e8edf6; }
.elimination-chart-list li:nth-child(6n+1) .elimination-chart-track > span { background:linear-gradient(90deg,#08a9c7,#35c7d7); }
.elimination-chart-list li:nth-child(6n+2) .elimination-chart-track > span { background:linear-gradient(90deg,#3977f6,#6a9bff); }
.elimination-chart-list li:nth-child(6n+3) .elimination-chart-track > span { background:linear-gradient(90deg,#8758e8,#b17cf1); }
.elimination-chart-list li:nth-child(6n+4) .elimination-chart-track > span { background:linear-gradient(90deg,#ed5d67,#ff9389); }
.elimination-chart-list li:nth-child(6n+5) .elimination-chart-track > span { background:linear-gradient(90deg,#e8a326,#f6ca54); }
.elimination-chart-list li:nth-child(6n) .elimination-chart-track > span { background:linear-gradient(90deg,#16a879,#48cea0); }
.elimination-chart-list strong { color:#273653; }

/* Resumen de descuentos y series de actividad, sin alterar el dato mostrado. */
.discount17-kpi { border:1px solid #e2e8f3; border-top:0; border-radius:13px; background:linear-gradient(145deg,#fff,#f7f9ff); box-shadow:0 5px 18px rgba(36,52,91,.06); padding:13px 15px; }
.discount17-kpi::before { content:""; display:block; height:4px; margin:-13px -15px 10px; background:var(--viz-blue); }
.discount17-kpi:nth-child(1)::before { background:linear-gradient(90deg,var(--viz-blue),var(--viz-violet)); }
.discount17-kpi:nth-child(2)::before { background:linear-gradient(90deg,var(--viz-cyan),var(--viz-blue)); }
.discount17-kpi:nth-child(3)::before { background:linear-gradient(90deg,var(--viz-violet),var(--viz-coral)); }
.discount17-kpi:nth-child(4)::before { background:linear-gradient(90deg,var(--viz-green),var(--viz-cyan)); }
.discount17-kpi strong { color:#26334f; font-size:31px; }
.discount17-charts { gap:16px; }
.discount17-panel { padding:16px; }
.discount17-panel-title h3 { color:#26334f; font-size:16px; }
.discount17-chart-track { height:15px; border-radius:999px; background:#edf1f8; }
.discount17-chart-track span.is-positive { border-radius:999px; background:linear-gradient(90deg,var(--viz-blue),var(--viz-violet)); }
.discount17-chart-row:nth-child(4n+2) .discount17-chart-track span.is-positive { background:linear-gradient(90deg,var(--viz-cyan),var(--viz-blue)); }
.discount17-chart-row:nth-child(4n+3) .discount17-chart-track span.is-positive { background:linear-gradient(90deg,var(--viz-violet),var(--viz-coral)); }
.discount17-chart-row:nth-child(4n) .discount17-chart-track span.is-positive { background:linear-gradient(90deg,var(--viz-amber),#f4774f); }
.discount17-empty-chart {
  position:relative;
  display:grid;
  min-height:190px;
  place-items:center;
  overflow:hidden;
  border:1px solid #e6ebf5;
  border-radius:12px;
  background-color:#f8faff;
  background-image:
    linear-gradient(to bottom, transparent calc(100% - 1px), rgba(93,115,157,.14) calc(100% - 1px)),
    linear-gradient(to right, transparent calc(100% - 1px), rgba(93,115,157,.10) calc(100% - 1px));
  background-size:100% 25%, 20% 100%;
}
.discount17-empty-chart--importe { border-top:3px solid #8758e8; }
.discount17-empty-chart--dias { min-height:220px; border-top:3px solid #08a9c7; }
.discount17-empty-chart::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(135,88,232,.035),transparent 46%,rgba(8,169,199,.045));
}
.discount17-empty-chart .discount17-empty {
  position:relative;
  max-width:90%;
  margin:0;
  padding:10px 14px;
  border:1px solid #e1e7f2;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#596782;
  font-size:12px;
  text-align:center;
  box-shadow:0 3px 12px rgba(36,52,91,.06);
}
.luna18-day-series.is-order i { background:linear-gradient(180deg,#3977f6,#705cf0); }
.luna18-day-series.is-product i { background:linear-gradient(180deg,#08b6c8,#20bd8b); }
.luna18-day-link:hover .luna18-day-series i { filter:brightness(1.1); }
.luna18-chart-legend li i.is-order { background:#5368e8; }
.luna18-chart-legend li i.is-product { background:#16ad9a; }
.daily-sales-panels { gap:16px; }
.daily-sales-series:nth-child(odd) { border-top:4px solid var(--viz-cyan); }
.daily-sales-series:nth-child(even) { border-top:4px solid var(--viz-violet); }
.daily-sales-kpis div:nth-child(1) strong { color:var(--viz-blue); }
.daily-sales-kpis div:nth-child(2) strong { color:var(--viz-green); }
.daily-sales-kpis div:nth-child(3) strong { color:var(--viz-violet); }
.legend-food, .bar-food { background:var(--viz-coral); }
.legend-drink, .bar-drink { background:var(--viz-violet); }
.legend-revenue, .daily-revenue { background:var(--viz-cyan); }

.audit-overview { background:linear-gradient(120deg,#fff 0%,#f1f6ff 70%,#f3efff 100%); }
.summary-count, .training-index { background:linear-gradient(135deg,#3977f6,#695ae6 58%,#8758e8); }
.summary-route-primary { background:linear-gradient(135deg,#087e9b,#3977f6); }
.summary-route-primary:hover { background:linear-gradient(135deg,#07546b,#315fcb); }
.impact-overview { border-top:4px solid transparent; border-image:linear-gradient(90deg,var(--viz-cyan),var(--viz-blue),var(--viz-violet),var(--viz-coral)) 1; }

@media (max-width:700px) {
  .chart-wrap { height:250px; }
  .chart-wrap.chart-wrap-sm { height:200px; }
  .stat-card { border-radius:12px; }
  .discount17-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Luna26: gráficos comparativos para pagos, propinas y productividad. */
.luna26-chart { margin:18px 0 20px; padding:18px; border:1px solid #dce5ec; border-radius:12px; background:linear-gradient(135deg,#f7fbff,#fff 55%,#f5f4ff); }
.luna26-chart-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.luna26-chart-heading h4 { margin:0 0 4px; color:#14364b; font-size:16px; }
.luna26-chart-heading p,.luna26-chart-note { margin:0; color:#627482; font-size:12px; }
.luna26-chart-unit { color:#244d69; font-size:12px; font-weight:700; white-space:nowrap; }
.luna26-chart-legend { display:flex; flex-wrap:wrap; gap:8px 14px; color:#536776; font-size:11px; }
.luna26-chart-legend span { display:inline-flex; align-items:center; gap:6px; }
.luna26-chart-legend i { width:10px; height:10px; border-radius:3px; background:linear-gradient(135deg,#3977f6,#695ae6); }
.luna26-chart-legend .is-tips i { background:linear-gradient(135deg,#ff9f43,#f05a67); }
.luna26-chart-legend .is-drink i { background:linear-gradient(135deg,#08b6c8,#20bd8b); }
.luna26-bars,.luna26-paired-bars,.luna26-employee-bars { display:grid; gap:11px; }
.luna26-bar-row { display:grid; grid-template-columns:minmax(130px,220px) minmax(90px,1fr) minmax(100px,140px); align-items:center; gap:12px; }
.luna26-bar-label,.luna26-paired-label,.luna26-employee-label { display:grid; gap:3px; min-width:0; }
.luna26-bar-label strong,.luna26-paired-label strong,.luna26-employee-label strong { overflow-wrap:anywhere; color:#213b50; font-size:12px; }
.luna26-bar-label small,.luna26-paired-label small,.luna26-employee-label small { color:#6b7e8c; font-size:10px; }
.luna26-bar-track { display:block; height:12px; overflow:hidden; border-radius:99px; background:#e4ecf2; }
.luna26-bar-track > span { display:block; min-width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#08b6c8,#3977f6 55%,#695ae6); }
.luna26-bar-track > span.is-negative { background:linear-gradient(90deg,#ff9f43,#f05a67); }
.luna26-bar-track > span.is-tips { background:linear-gradient(90deg,#ffb547,#f05a67); }
.luna26-bar-track > span.is-drink { background:linear-gradient(90deg,#08b6c8,#20bd8b); }
.luna26-bar-value { color:#24445a; font-size:12px; text-align:right; white-space:nowrap; }
.luna26-bar-value small { padding-left:5px; color:#6b7e8c; font-size:10px; font-weight:500; }
.luna26-chart-note { margin-top:12px; }
.luna26-chart-empty { margin:14px 0; padding:12px 14px; border-left:3px solid #695ae6; border-radius:4px 10px 10px 4px; background:linear-gradient(90deg,#f2f0ff,#f4fbff); color:#586c7a; font-size:12px; }
.luna26-paired-row { display:grid; grid-template-columns:minmax(145px,230px) minmax(220px,1fr); gap:14px; align-items:center; padding:10px 0; border-top:1px solid #e3ebf0; }
.luna26-paired-metrics { display:grid; gap:7px; }
.luna26-paired-metrics > div { display:grid; grid-template-columns:95px minmax(80px,1fr) 44px; gap:8px; align-items:center; color:#5a6c7a; font-size:10px; }
.luna26-paired-metrics strong { color:#29465c; text-align:right; font-size:11px; }
.luna26-employee-row { display:grid; grid-template-columns:minmax(130px,220px) minmax(240px,1fr); gap:14px; align-items:center; padding:10px 0; border-top:1px solid #e3ebf0; }
.luna26-employee-series { display:grid; gap:6px; }
.luna26-employee-series > div { display:grid; grid-template-columns:54px minmax(70px,1fr) 44px; gap:8px; align-items:center; color:#5b6f7d; font-size:10px; }
.luna26-employee-series strong { color:#29465c; text-align:right; font-size:11px; }
@media (max-width:700px) {
  .luna26-chart { padding:13px; }
  .luna26-chart-heading { flex-direction:column; }
  .luna26-bar-row { grid-template-columns:minmax(0,1fr) auto; gap:5px 10px; }
  .luna26-bar-label { grid-column:1/-1; }
  .luna26-bar-track { grid-column:1; }
  .luna26-bar-value { grid-column:2; grid-row:2; }
  .luna26-paired-row,.luna26-employee-row { grid-template-columns:1fr; gap:9px; }
  .luna26-paired-metrics > div { grid-template-columns:82px minmax(60px,1fr) 40px; }
}

/* Luna 26 · Vista General: proyecciones ligeras de agregados propietarios. */
.vista-general-kpis { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin:0 0 18px; }
.vista-general-kpi { display:flex; min-width:0; flex-direction:column; gap:6px; min-height:112px; padding:13px 14px; border:1px solid #dce7ef; border-radius:13px; color:var(--ink); background:linear-gradient(145deg,#fff,#f7faff); box-shadow:0 4px 14px rgba(27,59,85,.055); text-decoration:none; }
.vista-general-kpi:hover { color:var(--ink); border-color:#9bcbd4; background:#f2fbfc; }
.vista-general-kpi > span { color:var(--muted); font-size:11px; font-weight:700; }
.vista-general-kpi > strong { color:var(--brand-ink); font-size:clamp(19px,1.7vw,26px); line-height:1.05; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.vista-general-kpi > small { margin-top:auto; color:var(--muted); font-size:10px; line-height:1.35; }
.vista-general-kpi-coverage > strong { font-size:15px; }
.vista-general-dashboard { margin:0 0 20px; }
.vista-general-heading { display:flex; justify-content:space-between; align-items:end; gap:18px; margin:0 0 12px; }
.vista-general-heading h3 { margin:3px 0 0; color:var(--brand-ink); font-size:21px; letter-spacing:-.035em; }
.vista-general-heading > p { max-width:540px; margin:0; color:var(--muted); font-size:12px; line-height:1.4; }
.vista-general-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.vista-general-panel { min-width:0; padding:15px 16px; border:1px solid #dce7ef; border-radius:14px; background:linear-gradient(180deg,#fff,#f9fbfe); box-shadow:0 5px 17px rgba(22,53,79,.055); }
.vista-general-panel-wide { grid-column:1/-1; }
.vista-general-panel-heading { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin:0 0 7px; }
.vista-general-panel-heading h4 { margin:0; color:var(--brand-ink); font-size:14px; }
.vista-general-panel-heading a { flex:none; color:var(--brand); font-size:11px; font-weight:750; text-decoration:underline; text-underline-offset:3px; }
.vista-general-panel > .muted { margin:0 0 10px; color:var(--muted); font-size:13px; line-height:1.45; }
.vista-general-panel > small { display:block; margin-top:9px; color:var(--muted); font-size:12px; line-height:1.45; }
.vista-general-bars { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.vista-general-bars li { display:grid; grid-template-columns:minmax(92px,1.15fr) minmax(58px,1.2fr) minmax(76px,auto); align-items:center; gap:8px; min-width:0; font-size:13px; }
.vista-general-bars li > span:first-child,.vista-general-bars li > a { min-width:0; overflow-wrap:anywhere; color:var(--ink); }
.vista-general-bars li > a { font-weight:650; text-decoration:underline; text-decoration-color:#b7cbd7; text-underline-offset:2px; }
.vista-general-bars li > strong { color:var(--brand-ink); font-size:13px; font-variant-numeric:tabular-nums; text-align:right; }
.vista-general-bars li > strong small { display:block; color:var(--muted); font-size:12px; font-weight:600; }
.vista-general-track { display:block; height:9px; min-width:0; overflow:hidden; border-radius:999px; background:#e7eef4; }
.vista-general-track > i { display:block; height:100%; min-width:0; border-radius:inherit; background:linear-gradient(90deg,var(--data-cyan),var(--data-blue,var(--brand)),var(--data-violet)); }
.vista-general-empty,.vista-general-note { margin:9px 0 0; padding:9px 10px; border-left:3px solid #8b76db; border-radius:4px 8px 8px 4px; color:var(--muted); background:#f5f4fc; font-size:13px; line-height:1.45; }
.vista-general-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.vista-general-pair > div { display:flex; min-width:0; flex-direction:column; gap:5px; padding:10px; border:1px solid #e0e8ef; border-radius:9px; background:#fff; }
.vista-general-pair > div > span { color:var(--muted); font-size:12px; font-weight:700; }
.vista-general-pair > div > strong { color:var(--brand-ink); font-size:19px; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.vista-general-pair > div > small { color:var(--muted); font-size:12px; line-height:1.4; }
.vista-general-table { width:100%; min-width:760px; border-collapse:collapse; background:#fff; font-size:13px; }
.vista-general-table-scroll { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.vista-general-dashboard .vista-general-table-scroll:focus-visible { outline:3px solid #0c91ad; outline-offset:2px; }
.vista-general-scroll-hint { margin:8px 0; padding:8px 10px; border-left:3px solid #0c91ad; border-radius:4px 8px 8px 4px; color:#526777; background:#f3f8fb; font-size:11px; line-height:1.4; }
.vista-general-table th,.vista-general-table td { padding:8px 9px; border-bottom:1px solid #e6edf2; text-align:left; vertical-align:top; }
.vista-general-table th { color:#526b80; background:#f4f7fa; font-size:12px; letter-spacing:.025em; text-transform:uppercase; }
.vista-general-table td { color:var(--ink); font-variant-numeric:tabular-nums; }
.vista-general-dashboard :focus-visible,.vista-general-kpis :focus-visible { outline:3px solid rgba(7,157,178,.35); outline-offset:2px; }
@media (max-width:1050px) {
  .vista-general-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:800px) {
  .vista-general-heading { align-items:flex-start; flex-direction:column; gap:5px; }
  .vista-general-grid { grid-template-columns:minmax(0,1fr); }
  .vista-general-panel-wide { grid-column:auto; }
}
@media (max-width:560px) {
  .vista-general-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .vista-general-kpi { min-height:104px; padding:11px; }
  .vista-general-kpi > strong { font-size:20px; }
  .vista-general-panel { padding:13px 12px; }
  .vista-general-panel-heading { align-items:flex-start; flex-direction:column; gap:4px; }
  .vista-general-bars li { grid-template-columns:minmax(75px,1fr) minmax(54px,1fr) auto; gap:6px; }
  .vista-general-pair { grid-template-columns:minmax(0,1fr); }
  .vista-general-reopens { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:360px) {
  .vista-general-kpis { grid-template-columns:minmax(0,1fr); }
  .vista-general-reopens { grid-template-columns:minmax(0,1fr); }
}

/* Luna 26 · Task 5: cash, discounts and tips. */
.luna18-chart-filter,.luna26-data-scope { margin:7px 0 0; color:#34495e; font-size:11px; line-height:1.45; }
.discount-report-l17 .luna18-day-series.is-orden i { border:1px solid #d9485f; border-radius:0; background:#d9485f; }
.discount-report-l17 .luna18-day-series.is-producto i { border:1px solid #087f8c; border-radius:2px 2px 0 0; background:repeating-linear-gradient(135deg,#e6fbfa 0 3px,#087f8c 3px 5px); }
.discount-report-l17 .luna18-chart-legend i.is-orden { border:1px solid #d9485f; border-radius:0; background:#d9485f; }
.discount-report-l17 .luna18-chart-legend i.is-producto { border:1px solid #087f8c; border-radius:50%; background:repeating-linear-gradient(135deg,#e6fbfa 0 3px,#087f8c 3px 5px); }
.discount-report-l17 .luna18-chart-legend li { display:inline-flex; align-items:center; gap:7px; }
.luna26-paired-row.is-card .luna26-paired-metrics > div:first-child .luna26-bar-track > span { background:linear-gradient(90deg,#3478f6,#5276ea); }
.luna26-paired-row.is-cash .luna26-paired-metrics > div:first-child .luna26-bar-track > span { background:linear-gradient(90deg,#08a879,#37c6a0); }
.luna26-paired-row.is-reservation .luna26-paired-metrics > div:first-child .luna26-bar-track > span { background:linear-gradient(90deg,#7658df,#ad6bd8); }
.luna26-paired-row.is-other .luna26-paired-metrics > div:first-child .luna26-bar-track > span { background:linear-gradient(90deg,#e69a21,#f2764f); }
.luna26-paired-row .luna26-paired-metrics > div:nth-child(2) .luna26-bar-track > span { background:linear-gradient(90deg,#ffb547,#f05a67); }
.luna26-payment-kpis .stat-card,.luna26-tips-kpis .stat-card { min-width:0; min-height:104px; padding:13px 15px; }
.luna26-payment-kpis .stat-card .num,.luna26-tips-kpis .stat-card .num { font-size:clamp(20px,2.2vw,28px); font-variant-numeric:tabular-nums; }
.luna26-payment-kpis .stat-card .label,.luna26-tips-kpis .stat-card .label { font-size:11px; line-height:1.35; }
.luna26-payment-alerts { display:flex; flex-wrap:wrap; gap:7px 12px; margin:8px 0 16px; color:#34495e; font-size:11px; }
.luna26-payment-alerts span { padding:5px 8px; border-left:2px solid #002fa7; background:#f7f8fa; }
.luna26-payment-panel .luna26-chart { width:100%; min-width:0; background:linear-gradient(135deg,#f7fbff,#fff 58%,#f7f4ff); border-color:#d5e0ec; border-radius:14px; }
.luna26-payment-panel .luna26-bars { width:100%; min-width:0; display:grid; grid-template-columns:minmax(0,1fr); gap:14px; }
.luna26-payment-panel .luna26-bar-row { width:100%; min-width:0; grid-template-columns:minmax(130px,220px) minmax(120px,1fr) minmax(105px,140px); gap:12px; }
.luna26-payment-panel .luna26-bar-track { width:100%; min-width:0; height:16px; border:0; border-radius:999px; background:repeating-linear-gradient(90deg,#edf2f8 0 9px,#fff 9px 11px); }
.luna26-payment-panel .luna26-bar-track > span { border-radius:999px; background:linear-gradient(90deg,#3478f6,#7658df); }
.luna26-payment-panel .luna26-bar-row.is-card .luna26-bar-track > span { background:linear-gradient(90deg,#3478f6,#5276ea); }
.luna26-payment-panel .luna26-bar-row.is-cash .luna26-bar-track > span { background:linear-gradient(90deg,#08a879,#37c6a0); }
.luna26-payment-panel .luna26-bar-row.is-reservation .luna26-bar-track > span { background:linear-gradient(90deg,#7658df,#ad6bd8); }
.luna26-payment-panel .luna26-bar-row.is-other .luna26-bar-track > span { background:linear-gradient(90deg,#e69a21,#f2764f); }
.luna26-payment-panel .luna26-bar-track > span.is-negative { border:1px dashed #bd3548; background:repeating-linear-gradient(135deg,#fff 0 3px,#df5360 3px 5px); }
.luna26-detail-table { width:100%; font-size:12px; }
.luna26-detail-table th,.luna26-detail-table td { padding:8px 7px; font-variant-numeric:tabular-nums; }
.luna26-detail-table th:nth-child(n+3),.luna26-detail-table td:nth-child(n+3) { text-align:right; white-space:nowrap; }
.luna26-detail-table caption { padding:8px 0; color:#34495e; text-align:left; }
.luna26-payment-panel .sort-button { color:#002fa7; font:inherit; }
.luna26-payment-panel .sort-button:focus-visible,.luna26-tips-kpis :focus-visible { outline:3px solid #e4002b; outline-offset:2px; }
.detalle-propina-head:focus { outline:3px solid #002fa7; outline-offset:3px; }
.luna26-tip-daily { border-top:3px solid #f29b38; background:linear-gradient(145deg,#fff,#fffaf3); }
.luna26-tip-daily h3 { margin-top:0; }
.luna26-tip-day-bars { display:grid; gap:8px; margin:14px 0; }
.luna26-tip-day-row { display:grid; grid-template-columns:minmax(90px,150px) minmax(90px,1fr) minmax(82px,110px); align-items:center; gap:10px; font-size:12px; }
.luna26-tip-day-row > strong:first-child { overflow-wrap:anywhere; }
.luna26-tip-day-row > strong:last-child { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.luna26-tip-day-track { height:15px; overflow:hidden; border:0; border-radius:999px; background:repeating-linear-gradient(90deg,#fff 0 9px,#f2e7d8 9px 11px); }
.luna26-tip-day-track > span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#ffb547,#f05a67); }
.luna26-tip-day-track > span.is-negative { border:1px dashed #bd3548; background:repeating-linear-gradient(135deg,#fff 0 3px,#df5360 3px 5px); }
.luna26-tip-day-table { width:100%; font-size:12px; }
.luna26-tip-day-table td:last-child,.luna26-tip-day-table th:last-child { text-align:right; font-variant-numeric:tabular-nums; }
.propina-acciones-operativas { margin:14px 0 10px; padding:12px; border:1px solid var(--border); border-inline-start:3px solid #0c91ad; border-radius:10px; background:var(--bg-alt,#f8fafc); }
.propina-acciones-operativas h4 { margin:0 0 5px; }
.propina-acciones-operativas > .muted { margin:4px 0 9px; }
.luna28-propina-actions { min-width:820px; font-size:12px; }
.luna28-propina-actions th { white-space:nowrap; }
@media (max-width:700px) {
  .luna26-payment-panel .luna26-bar-row { grid-template-columns:minmax(0,1fr) auto; gap:6px 10px; }
  .luna26-payment-panel .luna26-bar-label { grid-column:1/-1; }
  .luna26-payment-panel .luna26-bar-track { grid-column:1; }
  .luna26-payment-panel .luna26-bar-value { grid-column:2; grid-row:2; }
  .luna26-detail-table { min-width:700px; }
  .propina-acciones-operativas { padding:9px; }
  .luna26-tip-day-row { grid-template-columns:minmax(72px,1fr) minmax(65px,1fr) minmax(78px,auto); gap:7px; font-size:11px; }
}
.luna26-share{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:14px;margin:14px 0;border:1px solid var(--border);border-radius:12px;background:var(--bg-alt,#f8fafc)}
.luna26-share h4{margin:0 0 5px}
.luna26-share-body{display:grid;grid-template-columns:minmax(180px,220px) minmax(0,1fr);align-items:center;gap:22px}
.luna26-share-wheel{width:min(100%,220px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(15,23,42,.14);box-shadow:0 2px 8px rgba(15,23,42,.12)}
.luna26-share-wheel>span{display:grid;place-items:center;text-align:center;line-height:1.25;padding:8px}
.luna26-share-wheel strong{font-size:21px}
.luna26-share-wheel small{font-size:11px}
.luna26-share-legend{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.luna26-share-legend li{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}
.luna26-share-legend i{width:11px;height:11px;border-radius:2px}
.luna26-share-legend a,.luna26-share-legend span{overflow-wrap:anywhere}
.luna26-share-legend strong{font-size:12px;white-space:nowrap}
.training-evidence-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:9px}
.training-evidence-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,auto);align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--border)}
.training-evidence-list li>div:last-child{display:grid;justify-items:start;gap:5px;font-size:12px}
.training-evidence-list a{font-weight:600}
@media(max-width:640px){.luna26-share-body{grid-template-columns:minmax(0,1fr);justify-items:center}.luna26-share-legend{width:100%}}
@media(max-width:640px){.training-evidence-list li{grid-template-columns:minmax(0,1fr)}}

/* Luna 28 · KPI y gráficos con jerarquía visible en todos los informes. */
.stat-card {
  overflow:hidden;
  border-radius:17px;
  box-shadow:0 9px 24px rgba(27,47,82,.10);
  transition:transform .16s ease, box-shadow .16s ease;
}
.stat-card .num { font-size:clamp(30px,3vw,42px); letter-spacing:-.055em; }
.stat-card .label { color:#465873; font-size:13px; font-weight:700; letter-spacing:.025em; line-height:1.4; }
.stat-card.c-rojo::before { background:linear-gradient(90deg,#f05265,#ff9b78); }
.stat-card.c-naranja::before { background:linear-gradient(90deg,#f28b30,#ffc45b); }
.stat-card.c-azul::before { background:linear-gradient(90deg,#3678f6,#65b3ff); }
.stat-card.c-verde::before { background:linear-gradient(90deg,#11a77f,#69d5a6); }
.stat-card.c-morado::before { background:linear-gradient(90deg,#8155e8,#bd8fff); }
.stat-card.c-amarillo::before { background:linear-gradient(90deg,#e9aa26,#ffe077); }

.vista-general-kpis { gap:13px; }
.vista-general-kpi {
  position:relative;
  min-height:128px;
  padding:17px 17px 15px;
  overflow:hidden;
  border:1px solid #dfe7f2;
  border-inline-start:5px solid var(--kpi-accent,#3977f6);
  border-radius:16px;
  background:linear-gradient(145deg,#fff 42%,var(--kpi-soft,#f2f6ff));
  box-shadow:0 9px 22px rgba(31,54,89,.09);
}
.vista-general-kpi::after {
  content:"";
  position:absolute;
  top:-27px;
  right:-25px;
  width:92px;
  height:92px;
  border-radius:50%;
  background:var(--kpi-soft,#edf3ff);
  opacity:.92;
  pointer-events:none;
}
.vista-general-kpi > span,.vista-general-kpi > strong,.vista-general-kpi > small { position:relative; z-index:1; }
.vista-general-kpi > span { color:#4b5b77; font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.vista-general-kpi > strong { color:var(--kpi-accent,#315fc5); font-size:clamp(24px,2.2vw,34px); }
.vista-general-kpi > small { font-size:10.5px; }
.vista-general-kpi--ordenes_observadas { --kpi-accent:#3977f6; --kpi-soft:#edf3ff; }
.vista-general-kpi--casos_unicos { --kpi-accent:#ed5d67; --kpi-soft:#fff0f1; }
.vista-general-kpi--descuentos { --kpi-accent:#8758e8; --kpi-soft:#f4efff; }
.vista-general-kpi--pagos { --kpi-accent:#08a9c7; --kpi-soft:#e9f9fc; }
.vista-general-kpi--propinas { --kpi-accent:#e8a326; --kpi-soft:#fff7e8; }
.vista-general-kpi-coverage { --kpi-accent:#16a879; --kpi-soft:#eaf8f1; }
.vista-general-kpi-coverage > strong { font-size:16px; }
.vista-general-panel {
  position:relative;
  overflow:hidden;
  padding:17px 18px;
  border-radius:17px;
  background:linear-gradient(160deg,#fff 55%,var(--panel-tint,#f3f7ff));
  box-shadow:0 9px 22px rgba(31,54,89,.085);
}
.vista-general-panel::before {
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:linear-gradient(90deg,var(--panel-accent,#3977f6),transparent);
}
.vista-general-panel:nth-child(6n+1) { --panel-accent:#08a9c7; --panel-tint:#effbfc; }
.vista-general-panel:nth-child(6n+2) { --panel-accent:#8758e8; --panel-tint:#f7f3ff; }
.vista-general-panel:nth-child(6n+3) { --panel-accent:#ed5d67; --panel-tint:#fff5f3; }
.vista-general-panel:nth-child(6n+4) { --panel-accent:#e8a326; --panel-tint:#fff9ec; }
.vista-general-panel:nth-child(6n+5) { --panel-accent:#3977f6; --panel-tint:#f1f6ff; }
.vista-general-panel:nth-child(6n) { --panel-accent:#16a879; --panel-tint:#effaf5; }
.vista-general-panel-heading { margin-top:2px; }
.vista-general-panel-heading h4 { font-size:15px; }
.vista-general-bars { gap:9px; }
.vista-general-bars li {
  padding:5px 7px;
  border-radius:9px;
  background:rgba(255,255,255,.78);
}
.vista-general-bars li .vista-general-track > i { background:linear-gradient(90deg,#1769d2,#11a9c4); }
.vista-general-track { height:12px; background:#e8edf6; box-shadow:inset 0 1px 2px rgba(31,54,89,.08); }
.vista-general-track > i { box-shadow:0 1px 3px rgba(25,51,88,.16); }

.vista-general-column-scroll {
  max-width:100%;
  overflow-x:auto;
  padding:10px 8px 5px;
  border:1px solid #e0e8f2;
  border-radius:13px;
  background-color:#fbfcff;
  background-image:linear-gradient(to bottom,transparent calc(25% - 1px),#e8edf5 25%,transparent calc(25% + 1px),transparent calc(50% - 1px),#e8edf5 50%,transparent calc(50% + 1px),transparent calc(75% - 1px),#e8edf5 75%,transparent calc(75% + 1px));
  overscroll-behavior-inline:contain;
}
.vista-general-column-scroll:focus-visible { outline:3px solid rgba(8,169,199,.45); outline-offset:2px; }
.vista-general-column-chart {
  display:grid;
  grid-auto-columns:minmax(44px,1fr);
  grid-auto-flow:column;
  align-items:stretch;
  gap:7px;
  min-width:max-content;
  height:178px;
  margin:0;
  padding:0 2px;
  list-style:none;
}
.vista-general-column-chart li {
  display:grid;
  grid-template-rows:20px minmax(0,1fr) 24px;
  gap:4px;
  min-width:0;
  color:#263650;
  text-align:center;
}
.vista-general-column-chart li > strong { color:#263650; font-size:12px; font-variant-numeric:tabular-nums; }
.vista-general-column-track { display:flex; align-items:flex-end; justify-content:center; min-height:0; border-bottom:1px solid #8c9bb2; }
.vista-general-column-track > i {
  display:block;
  width:min(26px,72%);
  min-height:2px;
  border-radius:8px 8px 2px 2px;
  background:linear-gradient(180deg,#8b62ec,#3977f6 62%,#08a9c7);
  box-shadow:0 4px 10px rgba(57,119,246,.24);
}
.vista-general-column-chart li.is-unavailable > strong { color:#8894a7; }
.vista-general-column-chart li.is-unavailable .vista-general-column-track > i { display:none; }
.vista-general-column-chart li > small { color:#596a82; font-size:12px; font-weight:700; white-space:nowrap; }

.elimination-chart,.discount17-panel,.luna26-chart,.daily-sales-series,.chart-box {
  border-radius:17px;
  box-shadow:0 10px 26px rgba(29,48,82,.095);
}
.elimination-chart { padding:19px; background:linear-gradient(150deg,#fff 55%,#f4f7ff); }
.elimination-chart-track { height:15px; background:repeating-linear-gradient(90deg,#edf1f7 0 10px,#fff 10px 12px); }
.discount17-panel { padding:18px; background:linear-gradient(150deg,#fff 50%,#f5f7ff); }
.discount17-chart-row { gap:10px; min-height:44px; padding:6px 4px; border-radius:10px; }
.discount17-chart-row.is-order { background:linear-gradient(90deg,#fff2f3,rgba(255,255,255,.55)); }
.discount17-chart-row.is-product { background:linear-gradient(90deg,#ebfbfc,rgba(255,255,255,.55)); }
.discount17-chart-track { height:16px; border-radius:999px; background:repeating-linear-gradient(90deg,#edf1f7 0 9px,#fff 9px 11px); }
.discount17-chart-row.is-order .discount17-chart-track span.is-positive { border-radius:999px; background:linear-gradient(90deg,#ed5d67,#ff9b78); }
.discount17-chart-row.is-product .discount17-chart-track span.is-positive { border-radius:999px; background:linear-gradient(90deg,#08a9c7,#16a879); }
.discount17-chart-row.is-order .discount17-chart-track span.is-negative { border-radius:999px 0 0 999px; background:repeating-linear-gradient(135deg,#fff2f3 0 4px,#ed5d67 4px 6px); }
.discount17-chart-row.is-product .discount17-chart-track span.is-negative { border-radius:999px 0 0 999px; background:repeating-linear-gradient(135deg,#effbfc 0 4px,#08a9c7 4px 6px); }
.discount-report-l17 .luna18-daily-chart-scroll { padding:10px 9px 8px; border:1px solid #e0e8f2; border-radius:13px; background:repeating-linear-gradient(to bottom,#fbfcff 0 36px,#edf1f7 37px,#fbfcff 38px); }
.discount-report-l17 .luna18-day-bars { border-bottom:2px solid #74839c; }
.discount-report-l17 .luna18-day-series { width:21px; }
.discount-report-l17 .luna18-day-series.is-orden i { background:linear-gradient(180deg,#ff9b78,#ed5d67); }
.discount-report-l17 .luna18-day-series.is-producto i { background:linear-gradient(180deg,#08a9c7,#16a879); }
.luna26-chart { padding:20px; border-radius:17px; box-shadow:0 10px 25px rgba(38,62,99,.09); }
.luna26-bar-row { padding:7px 9px; border-radius:11px; background:rgba(255,255,255,.76); }
.luna26-bar-track { height:16px; background:repeating-linear-gradient(90deg,#e9eef6 0 10px,#fff 10px 12px); }
.luna26-paired-row,.luna26-employee-row { margin-top:5px; padding:12px 10px; border-radius:11px; background:rgba(255,255,255,.68); }
.daily-sales-series { background:linear-gradient(150deg,#fff 56%,#f2f8ff); }
.chart-box { background:linear-gradient(150deg,#fff 58%,#f4f6ff); }
.chart-box canvas { filter:drop-shadow(0 5px 7px rgba(57,119,246,.13)); }

@media (max-width:700px) {
  .vista-general-kpi { min-height:116px; padding:14px 12px; }
  .vista-general-column-chart { height:158px; grid-auto-columns:minmax(39px,1fr); gap:5px; }
  .discount17-panel { padding:13px 10px; }
  .discount17-chart-row { grid-template-columns:minmax(92px,1fr) minmax(48px,.9fr) minmax(62px,auto); gap:6px; }
}
@media (prefers-reduced-motion:reduce) {
  .stat-card { transition:none; }
}

/* Luna 28 · segunda pasada: cambio de jerarquía visible, no solo de tono. */
.stat-cards > .stat-card {
  --metric-accent:#3977f6;
  --metric-wash:#edf3ff;
  position:relative;
  display:flex;
  min-height:148px;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
  padding:22px 22px 20px;
  overflow:hidden;
  border:1px solid #d9e3ef;
  border-inline-start:0;
  border-radius:20px;
  background:linear-gradient(135deg,#fff 35%,var(--metric-wash));
  box-shadow:0 12px 30px rgba(31,54,89,.12);
}
.stat-cards > .stat-card::before {
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:7px;
  background:linear-gradient(90deg,var(--metric-accent),#fff0);
}
.stat-cards > .stat-card::after {
  right:-27px;
  bottom:-42px;
  width:132px;
  height:132px;
  background:var(--metric-wash);
  opacity:.95;
}
.stat-cards > .stat-card .num {
  color:var(--metric-accent);
  font-size:clamp(28px,2.5vw,38px);
  font-weight:900;
  line-height:1.05;
  letter-spacing:-.06em;
  overflow-wrap:anywhere;
}
.stat-cards > .stat-card .label {
  max-width:34ch;
  color:#344964;
  font-size:11px;
  font-weight:800;
  letter-spacing:.07em;
  line-height:1.35;
}
.stat-cards > .stat-card .icon {
  width:38px;
  height:38px;
  min-width:38px;
  min-height:38px;
  display:inline-grid;
  place-items:center;
  margin:0 0 8px;
  border:1px solid rgba(57,119,246,.20);
  border-radius:13px;
  background:var(--metric-wash);
  color:var(--metric-accent);
  font-size:18px;
  opacity:1;
}
.stat-cards > .stat-card.c-rojo { --metric-accent:#e44c64; --metric-wash:#fff0f2; }
.stat-cards > .stat-card.c-naranja { --metric-accent:#e88718; --metric-wash:#fff5e6; }
.stat-cards > .stat-card.c-azul { --metric-accent:#3478ed; --metric-wash:#edf4ff; }
.stat-cards > .stat-card.c-verde { --metric-accent:#0b9c73; --metric-wash:#e9faf3; }
.stat-cards > .stat-card.c-morado { --metric-accent:#8053dc; --metric-wash:#f4efff; }
.stat-cards > .stat-card.c-gris { --metric-accent:#61778e; --metric-wash:#f0f4f8; }
.stat-cards > .stat-card.c-amarillo { --metric-accent:#c28b12; --metric-wash:#fff8df; }

.case-queue .cq-kpi-card {
  position:relative;
  min-height:130px;
  overflow:hidden;
  border:1px solid #dce6f2;
  border-radius:18px;
  background:linear-gradient(140deg,#fff 35%,#eff6ff);
  box-shadow:0 10px 25px rgba(31,54,89,.10);
}
.case-queue .cq-kpi-card::after {
  content:"";
  position:absolute;
  inset:auto -24px -48px auto;
  width:126px;
  height:126px;
  border-radius:50%;
  background:#e7f2ff;
}
.case-queue .cq-kpi-card strong,.case-queue .cq-kpi-card span { position:relative; z-index:1; }
.case-queue .cq-kpi-card strong { color:#2670d8; font-size:clamp(30px,3vw,42px); font-weight:900; letter-spacing:-.06em; }
.case-queue .cq-kpi-card:nth-child(3n+2) { background:linear-gradient(140deg,#fff 35%,#fff0f2); }
.case-queue .cq-kpi-card:nth-child(3n+2)::after { background:#ffe6ea; }
.case-queue .cq-kpi-card:nth-child(3n+2) strong { color:#dc4f67; }
.case-queue .cq-kpi-card:nth-child(3n) { background:linear-gradient(140deg,#fff 35%,#eefaf4); }
.case-queue .cq-kpi-card:nth-child(3n)::after { background:#def5e9; }
.case-queue .cq-kpi-card:nth-child(3n) strong { color:#118b68; }

.discount17-kpis > .discount17-kpi {
  --metric-accent:#3977f6;
  --metric-wash:#edf3ff;
  position:relative;
  min-height:126px;
  justify-content:center;
  gap:8px;
  overflow:hidden;
  border:1px solid #dce5f0;
  border-top:0;
  border-radius:18px;
  padding:19px 20px;
  background:linear-gradient(140deg,#fff 35%,var(--metric-wash));
  box-shadow:0 10px 25px rgba(31,54,89,.10);
}
.discount17-kpis > .discount17-kpi::before { content:""; position:absolute; inset:0 0 auto; height:7px; background:linear-gradient(90deg,var(--metric-accent),#fff0); }
.discount17-kpis > .discount17-kpi > span,.discount17-kpis > .discount17-kpi > strong,.discount17-kpis > .discount17-kpi > small { position:relative; z-index:1; }
.discount17-kpis > .discount17-kpi > span { color:#344964; font-size:11px; font-weight:850; letter-spacing:.08em; }
.discount17-kpis > .discount17-kpi > strong { color:var(--metric-accent); font-size:clamp(28px,2.8vw,40px); font-weight:900; letter-spacing:-.055em; }
.discount17-kpis > .discount17-kpi > small { color:#536780; font-size:11px; }
.discount17-kpis > .discount17-kpi-total { --metric-accent:#8053dc; --metric-wash:#f4efff; }
.discount17-kpis > .discount17-kpi.is-order { --metric-accent:#df526a; --metric-wash:#fff0f2; }
.discount17-kpis > .discount17-kpi.is-product { --metric-accent:#078f9e; --metric-wash:#e8f9fa; }
.discount17-kpis > .discount17-kpi.is-orders { --metric-accent:#198c62; --metric-wash:#eaf8f0; }

.chart-box,.elimination-chart,.discount17-panel,.luna26-chart,.daily-sales-series {
  position:relative;
  overflow:hidden;
  border:1px solid #d8e3f0;
  border-radius:20px;
  background:linear-gradient(145deg,#fff 38%,#f2f7ff);
  box-shadow:0 12px 28px rgba(31,54,89,.10);
}
.chart-box::before,.elimination-chart::before,.discount17-panel::before,.luna26-chart::before,.daily-sales-series::before {
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:6px;
  background:linear-gradient(90deg,#3478ed,#12b6c5 55%,#31bd8b);
}
.chart-box h4,.elimination-chart h3,.discount17-panel-title,.luna26-chart-heading h4,.daily-sales-series-head h3 {
  color:#173b55;
  font-size:15px;
  font-weight:850;
  letter-spacing:-.015em;
}
.chart-box h4 { padding-bottom:12px; border-bottom:1px solid #dfe7f2; }
.chart-wrap {
  height:330px;
  padding:13px;
  border:1px solid #e0e8f3;
  border-radius:15px;
  background-color:#fbfcff;
  background-image:linear-gradient(to bottom,transparent calc(25% - 1px),#e6edf6 25%,transparent calc(25% + 1px),transparent calc(50% - 1px),#e6edf6 50%,transparent calc(50% + 1px),transparent calc(75% - 1px),#e6edf6 75%,transparent calc(75% + 1px));
}
.chart-wrap.chart-wrap-sm { height:250px; }
.chart-wrap canvas { filter:drop-shadow(0 7px 9px rgba(35,78,135,.13)); }
.chart-box .chart-data { position:relative; z-index:1; }
.elimination-chart-list li,.luna26-employee-row,.luna26-paired-row { padding:10px 12px; border-radius:13px; background:rgba(255,255,255,.86); }
.elimination-chart-track,.discount17-chart-track,.luna26-bar-track { height:19px; border:1px solid #dce6f0; border-radius:999px; background:repeating-linear-gradient(90deg,#e6edf7 0 10px,#f9fbff 10px 13px); }
.elimination-chart-track > span,.discount17-chart-track span,.luna26-bar-track > span { border-radius:inherit; box-shadow:0 3px 8px rgba(31,54,89,.18); }
.luna26-chart { padding:22px; background:linear-gradient(145deg,#fff 35%,#f3f8ff); }
.luna26-chart-heading { margin-bottom:16px; }
.luna26-employee-row,.luna26-paired-row { margin:8px 0; border:1px solid #e1e9f3; }
.luna26-bar-track { height:17px; }
.luna26-paired-row .luna26-bar-track > span { background:linear-gradient(90deg,#3478ed,#63a5ff); }
.luna26-paired-row .luna26-bar-track > span.is-tips { background:linear-gradient(90deg,#8b5be8,#c09cff); }
.daily-sales-kpis > div { border:1px solid #dce6f1; border-radius:13px; background:linear-gradient(140deg,#fff,#f0f6ff); }
.daily-sales-kpis > div:nth-child(2) { background:linear-gradient(140deg,#fff,#eaf9f2); }
.daily-sales-kpis > div:nth-child(3) { background:linear-gradient(140deg,#fff,#fff5e8); }
.daily-sales-chart { min-height:250px; }
.daily-sales-bars { border-bottom:2px solid #71839a; background:repeating-linear-gradient(to top,transparent 0 48px,#e8eef6 49px 50px); }
.daily-sales-day.is-best .daily-revenue { filter:saturate(1.2); box-shadow:0 0 0 4px rgba(255,178,54,.20),0 9px 20px rgba(235,146,23,.22); }

@media (max-width:760px) {
  .stat-cards > .stat-card { min-height:126px; padding:18px; }
  .stat-cards > .stat-card .num { font-size:clamp(28px,8vw,38px); }
  .discount17-kpis > .discount17-kpi { min-height:108px; padding:15px; }
  .chart-wrap { height:275px; padding:8px; }
  .chart-wrap.chart-wrap-sm { height:225px; }
}

/* Luna 28 · lecturas operativas diferenciadas para resumen, reimpresiones y
   reaperturas. Identidad editorial limpia con acentos de estado explícitos. */
.summary-masthead {
  display:grid; grid-template-columns:minmax(175px,.7fr) minmax(280px,1.7fr) auto;
  align-items:center; gap:20px; padding:22px 24px; border:1px solid #d8e4ef;
  border-left:6px solid #3478ed; border-radius:18px;
  background:linear-gradient(112deg,#eef5ff 0%,#fff 43%,#f8fbff 100%);
  box-shadow:0 12px 30px rgba(24,55,99,.09);
}
.summary-count { display:grid; gap:3px; }
.summary-count > strong { color:#245ac5; font-size:clamp(38px,4vw,58px); line-height:1; font-weight:850; font-variant-numeric:tabular-nums; }
.summary-count > span { color:#53657a; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.summary-count > small { color:#617187; font-size:11px; }
.summary-copy h3 { margin:3px 0 6px; color:#172b43; font-size:clamp(22px,2vw,29px); }
.summary-copy p { max-width:760px; margin:0; color:#5d6f83; font-size:13px; line-height:1.5; }
.summary-masthead .summary-copy h3 { color:#172b43; }
.summary-masthead .summary-copy p { color:#5d6f83; }
.summary-action { display:inline-flex; align-items:center; justify-content:center; min-height:43px; padding:10px 15px; border-radius:11px; color:white; background:#245ecb; font-size:12px; font-weight:800; text-decoration:none; box-shadow:0 5px 12px rgba(36,94,203,.23); }
.summary-action:hover { background:#174cae; }
.vista-general-kpis { gap:13px; margin-top:15px; }
.vista-general-kpi { position:relative; min-height:128px; padding:17px 16px 15px 19px; overflow:hidden; border:1px solid #dbe5f1; border-radius:16px; background:linear-gradient(145deg,#fff,var(--kpi-soft,#f5f8fd)); box-shadow:0 7px 19px rgba(24,55,99,.07); }
.vista-general-kpi::before { position:absolute; top:0; bottom:0; left:0; width:5px; content:""; background:var(--kpi-accent,#3478ed); }
.vista-general-kpi::after { position:absolute; right:-22px; bottom:-38px; width:110px; height:110px; border:16px solid color-mix(in srgb,var(--kpi-accent,#3478ed) 13%,transparent); border-radius:50%; content:""; }
.vista-general-kpi > span,.vista-general-kpi > strong,.vista-general-kpi > small { position:relative; z-index:1; }
.vista-general-kpi > span { color:#53647b; font-size:13px; font-weight:800; letter-spacing:.045em; text-transform:uppercase; }
.vista-general-kpi > strong { color:var(--kpi-accent,#315fc5); font-size:clamp(24px,2.2vw,34px); line-height:1.1; }
.vista-general-kpi > small { color:#63738a; font-size:12px; line-height:1.4; }
.vista-general-kpi--ordenes_observadas { --kpi-accent:#3977f6; --kpi-soft:#edf3ff; }
.vista-general-kpi--casos_unicos { --kpi-accent:#ed5d67; --kpi-soft:#fff0f1; }
.vista-general-kpi--descuentos { --kpi-accent:#8758e8; --kpi-soft:#f4efff; }
.vista-general-kpi--pagos { --kpi-accent:#08a9c7; --kpi-soft:#e9f9fc; }
.vista-general-kpi--propinas { --kpi-accent:#e8a326; --kpi-soft:#fff7e8; }
.vista-general-kpi-coverage { --kpi-accent:#16a879; --kpi-soft:#eaf8f1; }
.vista-general-kpi-coverage > strong { font-size:16px; }

.luna28-reprint-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; margin:16px 0; }
.luna28-reprint-kpi,.luna28-reopen-kpis > article { --accent:#3478ed; --tint:#eef4ff; position:relative; display:flex; min-height:124px; flex-direction:column; justify-content:space-between; gap:9px; padding:16px 17px 14px 20px; overflow:hidden; border:1px solid #dbe5f0; border-radius:16px; background:linear-gradient(145deg,#fff,var(--tint)); box-shadow:0 8px 20px rgba(24,55,99,.065); }
.luna28-reprint-kpi::before,.luna28-reopen-kpis > article::before { position:absolute; inset:0 auto 0 0; width:5px; content:""; background:var(--accent); }
.luna28-reprint-kpi::after,.luna28-reopen-kpis > article::after { position:absolute; right:-21px; bottom:-34px; width:90px; height:90px; border:14px solid color-mix(in srgb,var(--accent) 13%,transparent); border-radius:50%; content:""; }
.luna28-reprint-kpi > span,.luna28-reopen-kpis > article > span { z-index:1; color:#54667b; font-size:13px; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.luna28-reprint-kpi > strong,.luna28-reopen-kpis > article > strong { z-index:1; color:var(--accent); font-size:clamp(29px,3vw,40px); line-height:1; font-variant-numeric:tabular-nums; }
.luna28-reprint-kpi > small,.luna28-reopen-kpis > article > small { z-index:1; color:#64758b; font-size:12px; line-height:1.4; }
.luna28-reprint-kpi.is-blue,.luna28-reopen-kpis > .is-blue { --accent:#3478ed; --tint:#edf4ff; }
.luna28-reprint-kpi.is-coral,.luna28-reopen-kpis > .is-coral { --accent:#e65b68; --tint:#fff1f1; }
.luna28-reprint-kpi.is-violet,.luna28-reopen-kpis > .is-violet { --accent:#8656df; --tint:#f5f0ff; }
.luna28-reprint-kpi.is-teal,.luna28-reopen-kpis > .is-teal { --accent:#069db4; --tint:#eafaff; }
.luna28-reopen-kpis > .is-green { --accent:#12a879; --tint:#eaf9f2; }
.luna28-reopen-kpis > .is-amber { --accent:#d88f10; --tint:#fff7e8; }
.luna28-reprint-analytics { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(260px,.8fr); gap:15px; margin:0 0 20px; }
.luna28-reprint-chart,.luna28-reprint-mix,.luna28-reopen-status { min-width:0; padding:19px; border:1px solid #dce5ef; border-radius:18px; background:#fff; box-shadow:0 8px 22px rgba(24,55,99,.065); }
.luna28-chart-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.luna28-chart-heading h3,.luna28-reprint-mix h3 { margin:3px 0 5px; color:#172b43; font-size:17px; }
.luna28-chart-heading p,.luna28-reprint-mix > p { margin:0; color:#63738a; font-size:13px; line-height:1.45; }
.luna28-chart-total { flex:none; padding:7px 10px; border-radius:999px; color:#245ac5; background:#edf4ff; font-size:11px; font-weight:800; }
.luna28-reprint-chart-scroll { max-width:100%; margin-top:12px; overflow-x:auto; overscroll-behavior-inline:contain; }
.luna28-reprint-chart-scroll:focus-visible { outline:3px solid rgba(8,169,199,.42); outline-offset:2px; }
.luna28-reprint-days { display:grid; grid-auto-columns:minmax(42px,1fr); grid-auto-flow:column; align-items:end; gap:8px; min-width:max(100%,540px); height:235px; margin:0; padding:10px 6px 0; list-style:none; border-bottom:1px solid #8594a7; background:repeating-linear-gradient(to top,transparent 0 55px,#edf1f6 56px 57px); }
.luna28-reprint-days > li { display:grid; grid-template-rows:15px minmax(0,1fr) 17px; justify-items:center; gap:4px; height:100%; color:#596b81; }
.luna28-reprint-days > li > strong { color:#425872; font-size:12px; font-variant-numeric:tabular-nums; }
.luna28-reprint-bar-track { display:flex; align-items:flex-end; justify-content:center; width:100%; height:100%; }
.luna28-reprint-bar { display:flex; width:min(70%,26px); min-height:2px; flex-direction:column; justify-content:flex-end; overflow:hidden; border-radius:7px 7px 2px 2px; box-shadow:0 3px 9px rgba(44,88,159,.16); }
.luna28-reprint-bar > i.is-lower { display:block; flex:none; background:linear-gradient(180deg,#ff917d,#e65b68); }
.luna28-reprint-bar > i.is-rest { display:block; flex:none; background:linear-gradient(180deg,#61a3ff,#3478ed); }
.luna28-reprint-days > li > small { color:#607188; font-size:12px; font-weight:750; white-space:nowrap; }
.luna28-reprint-legend { display:flex; flex-wrap:wrap; gap:14px; margin-top:12px; color:#53657a; font-size:12px; font-weight:700; }
.luna28-reprint-legend > span,.luna28-mix-rows > div { display:inline-flex; align-items:center; gap:7px; }
.luna28-reprint-legend i,.luna28-mix-rows i { width:10px; height:10px; border-radius:3px; }
.luna28-reprint-legend i.is-lower,.luna28-mix-rows i.is-lower { background:#e65b68; }
.luna28-reprint-legend i.is-rest,.luna28-mix-rows i.is-rest { background:#3478ed; }
.luna28-reprint-mix { background:linear-gradient(145deg,#fff,#f6f8ff); }
.luna28-mix-total { display:flex; align-items:baseline; gap:8px; margin:19px 0 12px; }
.luna28-mix-total strong { color:#172b43; font-size:34px; font-variant-numeric:tabular-nums; }
.luna28-mix-total span { color:#6a7a8e; font-size:11px; }
.luna28-mix-track { display:flex; height:17px; overflow:hidden; border-radius:999px; background:#eaf0f6; }
.luna28-mix-track > .is-lower { background:#e65b68; }.luna28-mix-track > .is-rest { background:#3478ed; }
.luna28-mix-rows { display:grid; gap:9px; margin-top:14px; }
.luna28-mix-rows > div { color:#53657a; font-size:11px; }.luna28-mix-rows strong { margin-left:auto; color:#203550; font-variant-numeric:tabular-nums; }
.luna28-empty-note,.luna28-empty-state { margin:14px 0 0; padding:10px 12px; border-radius:10px; color:#63738a; background:#f2f6fa; font-size:10px; line-height:1.45; }

.luna28-reopen-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; margin:16px 0; }
.luna28-reopen-status { margin:0 0 18px; background:linear-gradient(120deg,#fff,#f8fbff); }
.luna28-reopen-stack { display:flex; height:18px; margin:17px 0 14px; overflow:hidden; border-radius:999px; background:#edf1f6; }
.luna28-reopen-stack > i { min-width:0; height:100%; }.luna28-reopen-stack > i.is-confirmadas { background:#12a879; }.luna28-reopen-stack > i.is-candidatas { background:#e49b18; }.luna28-reopen-stack > i.is-sin_identificar { background:#e65b68; }.luna28-reopen-stack > i.is-otros { background:#5877d8; }
.luna28-reopen-legend { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; margin:0; padding:0; list-style:none; }
.luna28-reopen-legend > li { display:grid; grid-template-columns:10px minmax(0,1fr) auto auto; align-items:center; gap:8px; padding:8px 10px; border:1px solid #e6ebf2; border-radius:10px; background:#fff; color:#52647a; font-size:13px; }
.luna28-reopen-legend > li > strong { color:#1d334e; font-size:13px; }.luna28-reopen-legend > li > small { min-width:36px; color:#78879a; text-align:right; }
.luna28-reopen-legend i,.luna28-state-badge { border-radius:999px; }.luna28-reopen-legend i { width:10px; height:10px; }.luna28-reopen-legend i.is-confirmadas { background:#12a879; }.luna28-reopen-legend i.is-candidatas { background:#e49b18; }.luna28-reopen-legend i.is-sin_identificar { background:#e65b68; }.luna28-reopen-legend i.is-otros { background:#5877d8; }
.luna28-reopen-list { margin-top:18px; }
.luna28-reopen-list-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; padding:15px 18px; border-left:5px solid #3478ed; border-radius:12px; background:#edf4ff; }
.luna28-reopen-list-heading h3 { margin:2px 0 0; color:#172b43; font-size:18px; }.luna28-reopen-list-heading > span { flex:none; color:#245ac5; font-size:12px; font-weight:800; }
.luna28-reopen-cards { display:grid; gap:14px; }
.luna28-reopen-card { overflow:hidden; border:1px solid #dce5ef; border-radius:17px; background:#fff; box-shadow:0 7px 20px rgba(24,55,99,.06); }
.luna28-reopen-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 17px; border-bottom:1px solid #e7edf4; background:linear-gradient(100deg,#f5f8ff,#fff); }
.luna28-reopen-card-head > div { display:flex; flex-wrap:wrap; align-items:center; gap:9px; }.luna28-cycle-tag { padding:5px 9px; border-radius:7px; color:#245ac5; background:#e6efff; font-size:12px; font-weight:850; text-transform:uppercase; }.luna28-reopen-kind { color:#64758b; font-size:12px; font-weight:700; }
.luna28-state-badge { padding:7px 10px; font-size:12px; font-weight:800; }.luna28-state-badge.is-confirmed { color:#087653; background:#e6f7ef; }.luna28-state-badge.is-candidate { color:#945e00; background:#fff3d9; }.luna28-state-badge.is-unidentified { color:#a23e4a; background:#fff0f1; }
.luna28-reopen-flow { display:flex; align-items:center; gap:10px; padding:15px 17px; overflow-x:auto; background:#f9fbfe; }
.luna28-reopen-step { display:grid; min-width:150px; gap:4px; padding:11px 13px; border:1px solid #dae4ef; border-radius:12px; background:#fff; }
.luna28-reopen-step > small { color:#6d7e92; font-size:12px; font-weight:850; letter-spacing:.035em; }.luna28-reopen-step > a { color:#245ac5; font-size:18px; font-weight:850; text-underline-offset:3px; }.luna28-reopen-step > strong { color:#8b5d13; font-size:14px; }
.luna28-reopen-step.is-origin { border-top:3px solid #3478ed; }.luna28-reopen-step.is-refund { border-top:3px solid #8758e8; }.luna28-reopen-step.is-new { border-top:3px solid #12a879; }.luna28-reopen-step.is-pending { border-top:3px solid #e49b18; background:#fffaf0; }
.luna28-flow-arrow { flex:none; color:#8796aa; font-size:22px; font-weight:800; }
.luna28-candidate-links { display:flex; flex-wrap:wrap; align-items:center; gap:7px; padding:10px 17px; border-top:1px solid #f0e3c4; color:#7c590d; background:#fffaf0; font-size:11px; }.luna28-candidate-links a { color:#245ac5; font-weight:800; }.luna28-candidate-links small { flex-basis:100%; color:#756b57; font-size:10px; }
.luna28-reopen-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:12px 17px; border-top:1px solid #e7edf4; }
.luna28-reopen-meta > span { display:grid; gap:4px; min-width:0; }.luna28-reopen-meta small,.luna28-reopen-facts section > small { color:#6c7d91; font-size:12px; font-weight:850; letter-spacing:.035em; }.luna28-reopen-meta strong { color:#263c56; font-size:13px; line-height:1.45; }
.luna28-reopen-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; padding:0 17px 13px; }
.luna28-reopen-facts section { min-width:0; padding:11px 12px; border:1px solid #e2e9f1; border-radius:11px; background:#fbfcfe; }.luna28-reopen-facts p { margin:6px 0 0; color:#374b63; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.luna28-reopen-evidence { margin:0 17px 16px; border:1px solid #dce5ef; border-radius:10px; background:#f7f9fc; }.luna28-reopen-evidence summary { padding:10px 12px; color:#245ac5; cursor:pointer; font-size:13px; font-weight:800; }.luna28-evidence-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:0 12px 12px; }.luna28-evidence-grid p { display:grid; gap:4px; margin:0; padding:9px; border-radius:8px; color:#596b81; background:white; font-size:12px; line-height:1.45; }.luna28-evidence-grid p > strong { color:#263c56; }
@media (max-width:1100px) { .luna28-reopen-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }.luna28-reprint-analytics { grid-template-columns:minmax(0,1fr); } }
@media (max-width:760px) { .summary-masthead { grid-template-columns:1fr; gap:12px; padding:17px; }.summary-action { justify-self:start; }.luna28-reprint-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.luna28-reopen-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.luna28-reopen-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }.luna28-reopen-meta { grid-template-columns:1fr; }.luna28-reopen-legend { grid-template-columns:1fr; }.luna28-reopen-card-head { align-items:flex-start; flex-direction:column; }.luna28-reopen-flow { align-items:stretch; }.luna28-reopen-step { min-width:135px; }.luna28-chart-heading { align-items:flex-start; flex-direction:column; } }
@media (max-width:420px) { .luna28-reprint-kpis,.luna28-reopen-kpis,.luna28-reopen-facts { grid-template-columns:minmax(0,1fr); } }
.vista-general-revenue { margin:12px 0 14px; padding:13px 14px 11px; border:1px solid #dbe5f0; border-radius:13px; background:linear-gradient(135deg,#f7faff,#fff 58%,#f7f4ff); }
.vista-general-revenue-head { display:flex; align-items:center; justify-content:space-between; gap:10px; color:#263c56; font-size:13px; }.vista-general-revenue-head span { color:#6c7d91; font-size:12px; }
.vista-general-revenue-scroll { max-width:100%; max-height:210px; margin-top:9px; overflow:auto; overscroll-behavior:contain; }.vista-general-revenue-scroll:focus-visible { outline:3px solid rgba(8,169,199,.42); outline-offset:2px; }
.vista-general-revenue-bars { display:grid; gap:6px; min-width:560px; margin:0; padding:0; list-style:none; }
.vista-general-revenue-bars > li { display:grid; grid-template-columns:48px minmax(80px,1fr) 94px; align-items:center; gap:9px; color:#586a80; font-size:12px; }
.vista-general-revenue-bars .revenue-day { font-weight:750; }.vista-general-revenue-bars .revenue-track { height:11px; overflow:hidden; border-radius:999px; background:#e8eef5; }
.vista-general-revenue-bars .revenue-track i { display:block; height:100%; min-width:0; border-radius:inherit; }.vista-general-revenue-bars .revenue-track i.is-positive { background:linear-gradient(90deg,#15af8c,#62d3b0); }.vista-general-revenue-bars .revenue-track i.is-correction { background:repeating-linear-gradient(135deg,#f1a23a 0 5px,#ffcc7a 5px 9px); }
.vista-general-revenue-bars strong { color:#24415f; text-align:right; font-size:12px; font-variant-numeric:tabular-nums; }.vista-general-revenue-bars strong.is-correction { color:#a76713; }

/* Luna28 · contraste estable por significado, no por la posición de la fila. */
.discount-report-l17 .luna18-day-series.is-orden i,
.discount-report-l17 .luna18-chart-legend i.is-orden,
.discount17-chart-row.is-order .discount17-chart-track span.is-positive { border-color:#3478ed; background:#3478ed; }
.discount-report-l17 .luna18-day-series.is-producto i,
.discount-report-l17 .luna18-chart-legend i.is-producto,
.discount17-chart-row.is-product .discount17-chart-track span.is-positive { border-color:#8656df; background:#8656df; }
.discount-report-l17 .luna18-day-series.is-orden i,
.discount-report-l17 .luna18-chart-legend i.is-orden { border-radius:2px; }
.discount-report-l17 .luna18-day-series.is-producto i { border-radius:2px 2px 0 0; }
.discount-report-l17 .luna18-chart-legend i.is-producto { border-radius:50%; }
.discount-report-l17 .luna18-day-series small,
.discount-report-l17 .luna18-day-total { font-size:12px; }
.discount-report-l17 .luna18-day-link time { font-size:12px; }
.discount17-data-note,.discount17-table caption,.discount17-table small { font-size:12px; }
.discount17-chart-row.is-order .discount17-chart-track span.is-negative { border-color:#3478ed; }
.discount17-chart-row.is-product .discount17-chart-track span.is-negative { border-color:#8656df; }

/* Resumen: más superficie de lectura para columnas, leyendas y ejes. */
.vista-general-column-scroll { min-height:245px; }
.vista-general-column-chart { height:220px; }
.vista-general-column-chart > li > strong,.vista-general-column-chart > li > small { font-size:12px; }
.vista-general-revenue-scroll { max-height:250px; }
.vista-general-panel-heading a { font-size:12px; }
.vista-general-scroll-hint { font-size:12px; }

/* Movimientos: los datos auxiliares siguen legibles en la ficha y la tabla. */
.luna22-movement-glance span,.movement-route > div > span,
.luna14-product-fate span,.luna14-product-fate small,
.luna14-movement-facts span,.luna14-movement-facts small,
.luna14-evidence,.luna14-evidence p,.luna14-evidence li,
.luna18-account-payment-cell,.luna18-movement-detail > div { font-size:12px; }
.luna22-movement-glance strong { font-size:13px; }
.luna14-set-free { font-size:12px; }

/* Reaperturas: cesta antes/después visible y atribuida a su fuente. */
.luna28-product-comparisons { margin:0 17px 15px; padding:14px; border:1px solid #dce5ef; border-radius:13px; background:linear-gradient(135deg,#f5f9ff,#fff 66%,#f7f3ff); }
.luna28-comparison-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin:0 0 11px; }
.luna28-comparison-heading h4 { margin:3px 0 0; color:#172b43; font-size:17px; }
.luna28-comparison-heading p { max-width:600px; margin:0; color:#63738a; font-size:12px; line-height:1.45; }
.luna28-product-comparison { margin-top:10px; padding:11px; border:1px solid #e0e7f1; border-radius:11px; background:#fff; }
.luna28-product-comparison > header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 14px; margin-bottom:8px; color:#243b58; font-size:13px; }
.luna28-product-comparison > header a { color:#245ac5; font-weight:850; }
.luna28-product-comparison > header > span { color:#64758b; font-size:12px; }
.luna28-product-comparison .table-scroll { border-radius:9px; }
.luna28-product-comparison-table { width:100%; min-width:600px; border-collapse:collapse; font-size:13px; }
.luna28-product-comparison-table th,.luna28-product-comparison-table td { padding:9px 11px; border-bottom:1px solid #e6edf4; text-align:left; }
.luna28-product-comparison-table thead th { color:#53677f; background:#f0f5fb; font-size:12px; text-transform:uppercase; }
.luna28-product-comparison-table tbody tr:last-child th,.luna28-product-comparison-table tbody tr:last-child td { border-bottom:0; }
.luna28-product-comparison-table td.is-added { color:#087653; font-weight:800; }
.luna28-product-comparison-table td.is-removed { color:#b43d4c; font-weight:800; }
.luna28-product-comparison-table td.is-unchanged { color:#52647a; }
.luna28-comparison-unavailable { margin:0 17px 15px; padding:11px 13px; border-left:4px solid #e49b18; border-radius:6px 11px 11px 6px; color:#694e19; background:#fff8e8; font-size:13px; line-height:1.45; }
.luna28-candidate-links,.luna28-candidate-links small,.luna28-mix-rows > div,.luna28-mix-total span,.luna28-chart-total,.luna28-empty-note,.luna28-empty-state { font-size:12px; }
@media (max-width:760px) { .luna28-comparison-heading { align-items:flex-start; flex-direction:column; }.luna28-product-comparisons { margin-right:10px; margin-left:10px; padding:10px; } }

/* Luna 29 · Propinas por persona que figura en Pagos (no atribución de servicio). */
.luna29-tip-employee-charts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:16px 0; }
.luna29-tip-employee-chart { min-width:0; padding:15px; border:1px solid #dbe6f2; border-radius:14px; background:linear-gradient(145deg,#fff,#f8fbff); }
.luna29-tip-employee-chart h4 { margin:0 0 5px; color:#172b43; font-size:16px; }
.luna29-tip-employee-chart > .muted { min-height:34px; margin:0 0 12px; font-size:12px; line-height:1.45; }
.luna29-tip-employee-list { display:grid; gap:9px; max-height:560px; overflow:auto; padding:2px 5px 2px 1px; }
.luna29-tip-employee-row { display:grid; grid-template-columns:minmax(120px,190px) minmax(60px,1fr) minmax(70px,94px); align-items:center; gap:9px; min-width:0; }
.luna29-tip-employee-label { display:grid; min-width:0; gap:3px; color:#263b55; }
.luna29-tip-employee-label strong { overflow-wrap:anywhere; font-size:12px; line-height:1.25; }
.luna29-tip-employee-label small { color:#6b7c91; font-size:10px; line-height:1.3; }
.luna29-tip-employee-track { height:14px; overflow:hidden; border:1px solid #dce6f1; border-radius:999px; background:#edf3fa; }
.luna29-tip-employee-track > span { display:block; height:100%; min-width:0; border-radius:inherit; background:linear-gradient(90deg,#16a6a0,#3478ed); }
.luna29-tip-employee-track > span.is-negative { background:repeating-linear-gradient(135deg,#fff0f0 0 4px,#bd3548 4px 7px); }
.luna29-tip-employee-value { color:#172b43; font-size:12px; text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.luna29-tip-employee-unavailable { color:#71561f; font-size:11px; line-height:1.3; }
.luna29-tip-employee-table { min-width:1080px; }
.luna29-tip-employee-table td,.luna29-tip-employee-table th { white-space:nowrap; }
.luna29-tip-employee-sort { display:flex; flex-wrap:wrap; align-items:end; gap:9px; margin:12px 0; padding:11px; border:1px solid #dce7f3; border-radius:11px; background:#f5f9ff; }
.luna29-tip-employee-sort label { display:grid; gap:4px; color:#52647a; font-size:12px; font-weight:700; }
.luna29-tip-employee-sort select { min-width:210px; min-height:36px; padding:6px 9px; border:1px solid #cbd8e8; border-radius:8px; color:#20364e; background:#fff; }
@media (max-width:980px) { .luna29-tip-employee-charts { grid-template-columns:1fr; } }
@media (max-width:600px) { .luna29-tip-employee-row { grid-template-columns:minmax(90px,1fr) minmax(52px,1fr) minmax(64px,auto); gap:7px; }.luna29-tip-employee-chart { padding:11px; } }

.luna29-no-recuperados-coverage { margin: -4px 0 14px; }
.luna29-no-recuperados-bars { display: grid; gap: 9px; margin: 12px 0 4px; }
.luna29-no-recuperados-bar-row { display: grid; grid-template-columns: minmax(105px, 1fr) minmax(90px, 2fr) 38px; align-items: center; gap: 10px; }
.luna29-no-recuperados-bar-row > a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.luna29-no-recuperados-bar-row > strong { text-align: right; font-variant-numeric: tabular-nums; }
.luna29-no-recuperados-track { display: block; overflow: hidden; height: 11px; border-radius: 999px; background: #e5edf5; }
.luna29-no-recuperados-track > span { display: block; height: 100%; min-width: 2px; border-radius: inherit; background: linear-gradient(90deg, #2783e6, #22b6bb); }
.luna29-no-recuperados-track-products > span { background: linear-gradient(90deg, #f2a329, #dc4d55); }
@media (max-width: 700px) {
  .luna29-no-recuperados-bar-row { grid-template-columns: minmax(90px, 1fr) minmax(60px, 1.4fr) 32px; gap: 6px; }
}

.training-index-luna29 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; background: transparent; }
.training-index-luna29 > div { min-width: 0; min-height: 96px; gap: 8px; padding: 14px; border: 0; border-radius: 14px; box-shadow: 0 8px 20px rgba(20, 37, 69, .12); }
.training-index-luna29 > div strong { font-size: clamp(25px, 3vw, 34px); line-height: 1; letter-spacing: -.04em; }
.training-index-luna29 > div span { color: rgba(255,255,255,.92); font-size: 11px; font-weight: 750; line-height: 1.25; }
.training-index-team { background: linear-gradient(135deg, #147d8a, #16a6a0); }
.training-index-individual { background: linear-gradient(135deg, #a66a13, #e49a23); }
.training-index-people { background: linear-gradient(135deg, #385fc9, #5888ee); }
.training-index-sources { background: linear-gradient(135deg, #6842b5, #9570db); }
.luna29-training-chart { margin-top: 16px; }
.luna29-training-bars { display: grid; gap: 10px; margin-top: 14px; }
.luna29-training-bar-row { display: grid; grid-template-columns: minmax(220px, 1.25fr) minmax(100px, 2fr) 42px; align-items: center; gap: 12px; }
.luna29-training-bar-label { display: grid; min-width: 0; gap: 3px; }
.luna29-training-bar-label a,.luna29-training-bar-label strong { overflow: hidden; color: var(--text); font-size: 12px; line-height: 1.35; text-overflow: ellipsis; }
.luna29-training-bar-label small { color: var(--muted); font-size: 10px; }
.luna29-training-bar-track { height: 13px; overflow: hidden; border-radius: 999px; background: #e7edf6; }
.luna29-training-bar-track > span { display: block; height: 100%; min-width: 2px; border-radius: inherit; background: linear-gradient(90deg, #14a4a3, #3983ed); }
.luna29-training-bar-row.is-individual .luna29-training-bar-track > span { background: linear-gradient(90deg, #e6a12d, #e85b59); }
.luna29-training-bar-value { text-align: right; font-size: 13px; font-variant-numeric: tabular-nums; }
@media (max-width: 900px) { .training-index-luna29 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .luna29-training-bar-row { grid-template-columns: minmax(115px, 1fr) minmax(50px, 1fr) 32px; gap: 7px; }.training-index-luna29 > div { min-height: 80px; padding: 10px; } }

/* Luna 30.4 · Reaperturas: pagos por cuenta en paralelo, sin mezclar origen y destino. */
.luna30-reopen-payments { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:0 17px 15px; }
.luna30-payment-account { min-width:0; overflow:hidden; border:1px solid #dce5ef; border-radius:13px; background:#fff; }
.luna30-payment-account.is-origin { border-top:4px solid #3478ed; }
.luna30-payment-account.is-destination { border-top:4px solid #12a879; }
.luna30-payment-account > header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 13px; border-bottom:1px solid #e7edf4; background:#f8faff; }
.luna30-payment-account.is-destination > header { background:#f5fbf8; }
.luna30-payment-account > header > div { display:grid; gap:4px; }
.luna30-payment-account > header span,.luna30-payment-totals small { color:#6c7d91; font-size:10px; font-weight:850; letter-spacing:.045em; }
.luna30-payment-account > header a { color:#245ac5; font-size:17px; font-weight:850; text-underline-offset:3px; }
.luna30-payment-account > header strong { color:#64758b; font-size:13px; }
.luna30-payment-totals { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:11px 13px; }
.luna30-payment-totals > div { display:grid; align-content:start; gap:4px; min-width:0; }
.luna30-payment-totals strong { color:#263c56; font-size:13px; line-height:1.35; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.luna30-payment-table { width:100%; min-width:520px; border-collapse:collapse; font-size:12px; }
.luna30-payment-table th,.luna30-payment-table td { padding:7px 9px; border-top:1px solid #edf1f5; text-align:left; vertical-align:top; }
.luna30-payment-table thead th { color:#61738a; background:#f5f7fa; font-size:10px; font-weight:850; letter-spacing:.035em; }
.luna30-payment-table tbody tr:nth-child(even) { background:#fbfcfe; }
.luna30-reopen-economy { margin-top:0; }
.luna30-reopen-economy > p { margin:0; padding:0 12px 12px; color:#52647a; font-size:12px; line-height:1.5; }
.luna30-reopen-facts { grid-template-columns:minmax(0,1fr); }
.luna30-reopen-facts section { background:#f8faff; }
@media (max-width:760px) { .luna30-reopen-payments { grid-template-columns:minmax(0,1fr); padding-right:12px; padding-left:12px; } }

/* Luna 31 · separar el reembolso de la venta corregida y sus candidatas. */
.luna30-refund-payment { margin:0 17px 14px; overflow:hidden; border:1px solid #f0d7ae; border-left:4px solid #d88a22; border-radius:12px; background:#fffaf1; }
.luna30-refund-payment > header,.luna30-candidate-payments article > header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 13px; border-bottom:1px solid #f1e3ca; color:#79521c; font-size:11px; font-weight:850; letter-spacing:.04em; }
.luna30-refund-payment > header a,.luna30-candidate-payments article > header a { color:#245ac5; font-size:15px; letter-spacing:0; }
.luna30-refund-payment > p { margin:0; padding:9px 13px 0; color:#79521c; font-size:12px; }
.luna30-candidate-payments { display:grid; gap:10px; margin:0 17px 14px; padding:13px; border:1px solid #e3d9f7; border-radius:12px; background:#faf8ff; }
.luna30-candidate-payments > div:first-child h4 { margin:3px 0; color:#3d3460; font-size:15px; }
.luna30-candidate-payments > div:first-child p { margin:0; color:#665e7e; font-size:12px; }
.luna30-candidate-payments article { overflow:hidden; border:1px solid #e5def4; border-radius:10px; background:#fff; }
.luna30-candidate-payments article > header { border-color:#ece7f5; background:#fbfaff; color:#51466f; letter-spacing:0; }
.luna30-candidate-payments article > header span { color:#81779a; font-size:10px; font-weight:750; }
@media (max-width:760px) { .luna30-refund-payment,.luna30-candidate-payments { margin-right:12px; margin-left:12px; } }

/* Luna 33 · tabla de movimientos en el sistema visual cálido de Revo; detalle al pie de cada ficha. */
.luna33-head,.luna33-grid { display:grid; grid-template-columns:minmax(175px,1.05fr) minmax(165px,1fr) minmax(180px,1fr) minmax(165px,1fr) minmax(205px,1.2fr); }
.luna33-head { overflow:hidden; border:1px solid var(--border); border-radius:10px; background:var(--brand-soft); color:var(--brand-ink); font-size:10px; font-weight:750; letter-spacing:.045em; text-transform:uppercase; }
.luna33-head > div { min-width:0; padding:10px 12px; border-right:1px solid var(--border); }
.luna33-head > div:last-child { border-right:0; }
.luna33-movement-card { overflow:hidden; border:1px solid var(--border); border-left:3px solid var(--brand); border-radius:var(--radius); background:var(--panel); box-shadow:var(--shadow); }
.luna33-grid > .luna33-cell { display:flex; flex-direction:column; justify-content:center; gap:4px; min-width:0; padding:12px 13px; border-right:1px solid var(--border); }
.luna33-grid > .luna33-cell:last-child { border-right:0; }
.luna33-product strong { color:var(--ink); font-size:14px; line-height:1.35; overflow-wrap:anywhere; }
.luna33-product small,.luna33-cell > small,.luna33-location { color:var(--muted); font-size:11px; line-height:1.4; overflow-wrap:anywhere; }
.luna33-label { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; color:var(--muted); font-size:10px; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.luna33-order { width:fit-content; color:var(--brand); font-size:15px; font-weight:750; font-variant-numeric:tabular-nums; text-underline-offset:3px; }
.luna33-order:focus-visible,.luna33-evidence a:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
.luna33-transfer { background:color-mix(in srgb,var(--brand) 4%,var(--panel)); }
.luna33-transfer > strong { color:var(--brand-ink); font-size:18px; font-variant-numeric:tabular-nums; line-height:1.2; }
.luna33-result { background:color-mix(in srgb,var(--brand) 3%,var(--panel)); }
.luna33-result ul { display:grid; gap:5px; margin:0; padding:0; list-style:none; }
.luna33-result li { color:var(--ink); font-size:12px; font-weight:700; line-height:1.35; overflow-wrap:anywhere; }
.luna33-result li::before { display:inline-block; width:7px; height:7px; margin:0 7px 1px 0; border:1px solid var(--brand); border-radius:50%; content:""; }
.luna33-result > strong { color:var(--ink); font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.luna33-cell .movement-merma-tag { color:var(--brand-ink); font-weight:800; letter-spacing:.04em; }
.luna33-evidence { border-top:1px solid var(--border); background:var(--panel-2); }
.luna33-evidence summary { padding:10px 14px; color:var(--brand-ink); cursor:pointer; font-size:12px; font-weight:700; }
.luna33-evidence[open] { padding-bottom:12px; }
.luna33-evidence[open] > :not(summary) { margin-right:14px; margin-left:14px; }
.luna33-evidence p,.luna33-evidence li { color:var(--muted); font-size:12px; line-height:1.5; }
.luna33-evidence a { color:var(--brand); font-weight:650; text-underline-offset:2px; }
@media (max-width:1100px) {
  .luna33-head { display:none; }
  .luna33-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .luna33-grid > .luna33-cell { border-bottom:1px solid var(--border); }
  .luna33-label { position:static; width:auto; height:auto; margin:0; padding:0; overflow:visible; clip:auto; white-space:normal; }
  .luna33-transfer { border-right:0; }
  .luna33-result { grid-column:1 / -1; }
}
@media (max-width:640px) {
  .luna33-grid { grid-template-columns:minmax(0,1fr); }
  .luna33-grid > .luna33-cell { padding:10px 12px; border-right:0; }
  .luna33-result { grid-column:auto; }
  .luna33-transfer > strong { font-size:16px; }
  .luna33-evidence summary { padding:10px 12px; }
  .luna33-evidence[open] > :not(summary) { margin-right:12px; margin-left:12px; }
}

/* Luna 34 · movimientos agrupados por orden de origen, con cada traslado dentro. */
.luna34-order-groups { display:grid; gap:13px; }
.luna34-order-group { border-left-width:4px; }
.luna34-order-header { display:grid; grid-template-columns:minmax(190px,.8fr) minmax(0,2fr); gap:12px 22px; padding:14px 16px; border-bottom:1px solid var(--border); background:var(--brand-soft); }
.luna34-origin-title,.luna34-origin-context { display:flex; flex-wrap:wrap; align-items:center; gap:5px 14px; min-width:0; }
.luna34-origin-title { align-content:center; }
.luna34-eyebrow { flex-basis:100%; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.luna34-origin-context { align-content:center; color:var(--ink); font-size:12px; }
.luna34-origin-context small { flex-basis:100%; }
.luna34-line-head,.luna34-movement-line .luna33-grid { grid-template-columns:minmax(155px,1.05fr) minmax(150px,.85fr) minmax(175px,1.2fr) minmax(180px,1.1fr); }
.luna34-line-head { margin:0 12px; border-radius:0; border-top:0; }
.luna34-movement-line + .luna34-movement-line { border-top:1px solid var(--border); }
.luna34-movement-line .luna33-grid > .luna33-cell { border-bottom:0; }
.luna34-context-tag { width:fit-content; margin:8px 12px 0; padding:4px 8px; border-radius:999px; background:#fff3dc; color:#765115; font-size:10px; font-weight:750; }
.luna34-no-outcome { color:var(--muted); font-size:13px; }
@media (max-width:1100px) {
  .luna34-order-header { grid-template-columns:minmax(0,1fr); }
  .luna34-line-head { display:none; }
  .luna34-movement-line .luna33-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .luna34-movement-line .luna33-label { position:static; width:auto; height:auto; margin:0; padding:0; overflow:visible; clip:auto; white-space:normal; }
  .luna34-movement-line .luna33-result { grid-column:1 / -1; }
}
@media (max-width:640px) {
  .luna34-order-header { padding:11px 12px; }
  .luna34-origin-context { display:grid; grid-template-columns:minmax(0,1fr); }
  .luna34-movement-line .luna33-grid { grid-template-columns:minmax(0,1fr); }
  .luna34-movement-line .luna33-result { grid-column:auto; }
  .luna34-movement-line .luna33-grid > .luna33-cell { padding:10px 12px; border-right:0; }
}
