/* ==========================================================================
   Modulo repartidor - registro de actividad y dashboard
   Reglas: bordes de 1px, radio maximo de 5px, sombras suaves, paleta sobria.
   ========================================================================== */

.repartidor-shell {
  --rpt-borde: #e3e7ee;
  --rpt-borde-fuerte: #ccd3de;
  --rpt-fondo: #f6f8fb;
  --rpt-superficie: #ffffff;
  --rpt-texto: #1f2937;
  --rpt-texto-suave: #66748a;
  --rpt-texto-tenue: #8b96a8;
  --rpt-primario: #3b6fd4;
  --rpt-primario-suave: #eef3fc;
  --rpt-bueno: #1f8a63;
  --rpt-bueno-suave: #ecf7f2;
  --rpt-advertencia: #a86a12;
  --rpt-advertencia-suave: #fdf5e7;
  --rpt-malo: #b8324c;
  --rpt-malo-suave: #fdeef1;
  --rpt-radio: 4px;
  --rpt-sombra: 0 2px 8px rgba(15, 23, 42, 0.06);
  color: var(--rpt-texto);
}

/* Radios discretos en todo el modulo: nada supera los 5px */
.repartidor-shell .card,
.repartidor-shell .modal-content,
.repartidor-shell .form-control,
.repartidor-shell .form-select,
.repartidor-shell .btn,
.repartidor-shell .input-group-text,
.repartidor-shell .alert,
.repartidor-shell .dropdown-menu {
  border-radius: var(--rpt-radio) !important;
}

.repartidor-shell .card {
  border: 1px solid var(--rpt-borde);
  box-shadow: var(--rpt-sombra);
  margin-bottom: 16px;
}

.repartidor-shell .card-body {
  padding: 20px;
}

/* --------------------------------------------------------------- tipografia */
.rpt-page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin: 4px 0 20px;
}

.rpt-page-head h4 {
  font-size: 20px;
  font-weight: 600;
  margin: 0 0 4px;
}

.rpt-page-head p {
  color: var(--rpt-texto-suave);
  font-size: 13px;
  margin: 0;
}

.rpt-block-head {
  margin-bottom: 16px;
}

.rpt-block-head h5 {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 3px;
}

.rpt-block-head p {
  color: var(--rpt-texto-suave);
  font-size: 12.5px;
  line-height: 1.5;
  margin: 0;
}

.rpt-block-head-flex {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.repartidor-shell .form-label {
  color: var(--rpt-texto-suave);
  font-size: 12.5px;
  font-weight: 500;
  margin-bottom: 5px;
}

.repartidor-shell .form-text {
  color: var(--rpt-texto-tenue);
  font-size: 11.5px;
  margin-top: 5px;
}

.rpt-req {
  color: var(--rpt-malo);
  font-weight: 600;
}

.rpt-ayuda {
  color: var(--rpt-texto-suave);
  font-size: 12.5px;
  line-height: 1.6;
}

.rpt-hint-alerta {
  color: var(--rpt-advertencia);
  font-weight: 500;
}

/* ------------------------------------------------------------------ campos */
.repartidor-shell .form-control,
.repartidor-shell .form-select {
  border: 1px solid var(--rpt-borde-fuerte);
  color: var(--rpt-texto);
  font-size: 14px;
  min-height: 38px;
  padding: 7px 12px;
}

.repartidor-shell .form-control:focus,
.repartidor-shell .form-select:focus {
  border-color: var(--rpt-primario);
  box-shadow: 0 0 0 3px rgba(59, 111, 212, 0.12);
}

.repartidor-shell .form-control-lg,
.repartidor-shell .input-group-lg .form-control {
  font-size: 18px;
  font-weight: 600;
  min-height: 48px;
}

.repartidor-shell .input-group-text {
  background: #f2f5f9;
  border: 1px solid var(--rpt-borde-fuerte);
  color: var(--rpt-texto-suave);
  font-size: 13px;
}

.repartidor-shell .form-control.is-invalid {
  border-color: var(--rpt-malo);
  background-image: none;
}

.rpt-error {
  color: var(--rpt-malo);
  font-size: 11.5px;
  margin-top: 5px;
  width: 100%;
}

.rpt-check {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-size: 13px;
  gap: 8px;
  margin: 0;
}

.rpt-check input {
  accent-color: var(--rpt-primario);
  height: 16px;
  width: 16px;
}

.rpt-toggle {
  color: var(--rpt-primario);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  font-weight: 500;
  margin-top: 12px;
  text-decoration: none;
}

.rpt-toggle:hover {
  text-decoration: underline;
}

/* -------------------------------------------------------------------- chips */
.rpt-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.rpt-chip {
  background: var(--rpt-superficie);
  border: 1px solid var(--rpt-borde-fuerte);
  border-radius: var(--rpt-radio);
  color: var(--rpt-texto-suave);
  cursor: pointer;
  font-size: 13px;
  padding: 7px 14px;
  transition: border-color .15s, background .15s, color .15s;
}

.rpt-chip:hover {
  border-color: var(--rpt-primario);
  color: var(--rpt-primario);
}

.rpt-chip.is-active {
  background: var(--rpt-primario-suave);
  border-color: var(--rpt-primario);
  color: var(--rpt-primario);
  font-weight: 600;
}

/* ------------------------------------------------------------------ botones */
.repartidor-shell .btn {
  font-size: 13.5px;
  font-weight: 500;
  padding: 8px 16px;
}

.repartidor-shell .btn i {
  margin-right: 4px;
}

.repartidor-shell .btn-primary {
  background: var(--rpt-primario);
  border-color: var(--rpt-primario);
}

.repartidor-shell .btn-primary:hover,
.repartidor-shell .btn-primary:focus {
  background: #3363c2;
  border-color: #3363c2;
}

.rpt-btn-principal {
  padding: 11px 20px;
  width: 100%;
}

/* ------------------------------------------------------- barra de jornada */
.rpt-jornada-bar {
  align-items: center;
  background: var(--rpt-superficie);
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  box-shadow: var(--rpt-sombra);
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
  margin-bottom: 16px;
  padding: 14px 20px;
}

.rpt-jornada-info {
  align-items: center;
  display: flex;
  gap: 12px;
}

.rpt-jornada-info strong {
  display: block;
  font-size: 14px;
  font-weight: 600;
}

.rpt-jornada-info span {
  color: var(--rpt-texto-suave);
  font-size: 12.5px;
}

.rpt-dot {
  background: var(--rpt-bueno);
  border-radius: 50%;
  box-shadow: 0 0 0 4px var(--rpt-bueno-suave);
  flex: none;
  height: 9px;
  width: 9px;
}

.rpt-jornada-acciones {
  display: flex;
  gap: 8px;
}

/* ------------------------------------------------------------- indicadores */
.rpt-kpis {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 16px;
}

.rpt-kpi {
  background: var(--rpt-superficie);
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  box-shadow: var(--rpt-sombra);
  padding: 16px;
}

.rpt-kpi.es-destacado {
  background: var(--rpt-primario-suave);
  border-color: #cfdefa;
}

.rpt-kpi-label {
  color: var(--rpt-texto-suave);
  display: block;
  font-size: 12px;
  margin-bottom: 6px;
}

.rpt-kpi-valor {
  color: var(--rpt-texto);
  display: block;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.3px;
  line-height: 1.2;
}

.rpt-kpi-pie {
  color: var(--rpt-texto-tenue);
  display: block;
  font-size: 11.5px;
  margin-top: 5px;
}

/* --------------------------------------------------- estado de rentabilidad */
.rpt-estado {
  align-items: center;
  background: var(--rpt-superficie);
  border: 1px solid var(--rpt-borde);
  border-left: 3px solid var(--rpt-borde-fuerte);
  border-radius: var(--rpt-radio);
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: space-between;
  margin-bottom: 16px;
  padding: 16px 20px;
}

.rpt-estado[data-tono="bueno"] { border-left-color: var(--rpt-bueno); }
.rpt-estado[data-tono="advertencia"] { border-left-color: var(--rpt-advertencia); }
.rpt-estado[data-tono="malo"] { border-left-color: var(--rpt-malo); }

.rpt-estado-texto {
  flex: 1 1 320px;
}

.rpt-estado-texto p {
  color: var(--rpt-texto-suave);
  font-size: 13px;
  line-height: 1.6;
  margin: 8px 0 0;
}

.rpt-badge-estado {
  border: 1px solid var(--rpt-borde-fuerte);
  border-radius: 20px;
  color: var(--rpt-texto-suave);
  display: inline-block;
  font-size: 11.5px;
  font-weight: 600;
  padding: 3px 12px;
}

.rpt-estado[data-tono="bueno"] .rpt-badge-estado { background: var(--rpt-bueno-suave); border-color: #bfe3d3; color: var(--rpt-bueno); }
.rpt-estado[data-tono="advertencia"] .rpt-badge-estado { background: var(--rpt-advertencia-suave); border-color: #ecd9b4; color: var(--rpt-advertencia); }
.rpt-estado[data-tono="malo"] .rpt-badge-estado { background: var(--rpt-malo-suave); border-color: #f2c6cf; color: var(--rpt-malo); }

/* ---------------------------------------------------------------- meta */
.rpt-meta {
  flex: 0 1 280px;
  min-width: 240px;
}

.rpt-meta-head,
.rpt-meta-grande .rpt-meta-head {
  color: var(--rpt-texto-suave);
  display: flex;
  font-size: 12.5px;
  justify-content: space-between;
  margin-bottom: 7px;
}

.rpt-meta-head strong {
  color: var(--rpt-texto);
  font-weight: 600;
}

.rpt-barra {
  background: #eef1f6;
  border-radius: 3px;
  height: 6px;
  overflow: hidden;
}

.rpt-barra-avance {
  background: var(--rpt-primario);
  border-radius: 3px;
  height: 100%;
  transition: width .35s ease;
}

.rpt-meta-pie {
  color: var(--rpt-texto-tenue);
  display: block;
  font-size: 11.5px;
  margin-top: 6px;
}

.rpt-meta-datos {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 16px;
}

.rpt-meta-datos span {
  color: var(--rpt-texto-suave);
  display: block;
  font-size: 11.5px;
}

.rpt-meta-datos strong {
  font-size: 15px;
  font-weight: 600;
}

/* ------------------------------------------------------ panel de captura */
.rpt-acciones {
  border-bottom: 1px solid var(--rpt-borde);
  display: flex;
  gap: 4px;
  margin: -4px -4px 20px;
  overflow-x: auto;
  padding-bottom: 0;
}

.rpt-accion {
  align-items: center;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--rpt-texto-suave);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  font-size: 11.5px;
  gap: 3px;
  padding: 8px 14px 10px;
  white-space: nowrap;
}

.rpt-accion i {
  font-size: 17px;
}

.rpt-accion:hover {
  color: var(--rpt-primario);
}

.rpt-accion.is-active {
  border-bottom-color: var(--rpt-primario);
  color: var(--rpt-primario);
  font-weight: 600;
}

.rpt-panel {
  display: none;
}

.rpt-panel.is-active {
  display: block;
}

.rpt-total {
  align-items: center;
  background: #f6f8fb;
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  display: flex;
  justify-content: space-between;
  margin-top: 16px;
  padding: 12px 16px;
}

.rpt-total span {
  color: var(--rpt-texto-suave);
  font-size: 12.5px;
}

.rpt-total strong {
  font-size: 19px;
  font-weight: 600;
}

.rpt-recomendacion {
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--rpt-borde);
  border-left: 4px solid #aab3bf;
  border-radius: 5px;
  display: flex;
  gap: 10px;
  margin-top: 12px;
  padding: 11px 12px;
}

.rpt-recomendacion i {
  font-size: 20px;
  line-height: 1.1;
}

.rpt-recomendacion strong,
.rpt-recomendacion span {
  display: block;
}

.rpt-recomendacion strong {
  font-size: 13.5px;
}

.rpt-recomendacion span {
  color: var(--rpt-texto-suave);
  font-size: 12.5px;
}

.rpt-recomendacion[data-estado="conveniente"] { border-left-color: #18864b; }
.rpt-recomendacion[data-estado="reservas"] { border-left-color: #c58a00; }
.rpt-recomendacion[data-estado="no_conveniente"] { border-left-color: #c0392b; }

.rpt-kmref {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, 1fr);
}

.rpt-kmref > div {
  background: #f6f8fb;
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  padding: 10px 12px;
  text-align: center;
}

.rpt-kmref span {
  color: var(--rpt-texto-suave);
  display: block;
  font-size: 11px;
}

.rpt-kmref strong {
  font-size: 14px;
  font-weight: 600;
}

/* ----------------------------------------------------------------- tablas */
.rpt-tabla-scroll {
  margin: 0 -4px;
  overflow-x: auto;
}

.repartidor-shell .rpt-tabla {
  font-size: 13px;
  margin: 0;
  min-width: 560px;
}

.repartidor-shell .rpt-tabla thead th {
  border-bottom: 1px solid var(--rpt-borde);
  color: var(--rpt-texto-tenue);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.2px;
  padding: 8px 10px;
  white-space: nowrap;
}

.repartidor-shell .rpt-tabla tbody td {
  border-bottom: 1px solid #f0f3f7;
  padding: 10px;
  vertical-align: middle;
}

.repartidor-shell .rpt-tabla tbody tr:last-child td {
  border-bottom: none;
}

.rpt-col-hora {
  color: var(--rpt-texto-suave);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.rpt-col-monto {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.rpt-mov {
  align-items: center;
  display: flex;
  gap: 10px;
}

.rpt-mov > i {
  background: #f2f5f9;
  border-radius: var(--rpt-radio);
  color: var(--rpt-texto-suave);
  flex: none;
  font-size: 15px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  width: 30px;
}

.rpt-mov-titulo {
  display: block;
  font-weight: 500;
}

.rpt-mov-ref {
  color: var(--rpt-texto-tenue);
  display: block;
  font-size: 11px;
}

.rpt-tag {
  background: #f2f5f9;
  border-radius: var(--rpt-radio);
  color: var(--rpt-texto-suave);
  display: inline-block;
  font-size: 11.5px;
  padding: 3px 9px;
}

.rpt-nulo {
  color: #c3cad6;
}

.es-positivo { color: var(--rpt-bueno); font-weight: 600; }
.es-negativo { color: var(--rpt-malo); font-weight: 600; }

.rpt-acciones-fila {
  display: flex;
  gap: 4px;
  justify-content: flex-end;
}

.rpt-icono {
  background: none;
  border: 1px solid transparent;
  border-radius: var(--rpt-radio);
  color: var(--rpt-texto-suave);
  cursor: pointer;
  font-size: 14px;
  height: 30px;
  width: 30px;
}

.rpt-icono:hover {
  background: #f2f5f9;
  border-color: var(--rpt-borde);
  color: var(--rpt-primario);
}

.rpt-icono.es-peligro:hover {
  background: var(--rpt-malo-suave);
  border-color: #f2c6cf;
  color: var(--rpt-malo);
}

.rpt-filtros-mov {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.rpt-filtro {
  background: none;
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  color: var(--rpt-texto-suave);
  cursor: pointer;
  font-size: 12px;
  padding: 5px 11px;
}

.rpt-filtro.is-active {
  background: var(--rpt-primario-suave);
  border-color: var(--rpt-primario);
  color: var(--rpt-primario);
  font-weight: 600;
}

/* -------------------------------------------------------------- desglose */
.rpt-desglose {
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  overflow: hidden;
}

.rpt-desglose-fila {
  align-items: center;
  border-bottom: 1px solid #f0f3f7;
  display: flex;
  font-size: 13px;
  justify-content: space-between;
  padding: 10px 14px;
}

.rpt-desglose-fila:last-child {
  border-bottom: none;
}

.rpt-desglose-fila strong {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}

.rpt-desglose-fila.es-detalle {
  color: var(--rpt-texto-tenue);
  font-size: 12px;
  padding: 6px 14px 6px 26px;
}

.rpt-desglose-fila.es-detalle strong {
  color: var(--rpt-texto-suave);
  font-weight: 500;
}

.rpt-desglose-fila.es-resta strong {
  color: var(--rpt-malo);
}

.rpt-desglose-fila.es-subtotal {
  background: #f8fafc;
  font-weight: 600;
}

.rpt-desglose-fila.es-total {
  background: var(--rpt-primario-suave);
  font-size: 14px;
  font-weight: 600;
}

.rpt-desglose-fila.es-total strong {
  font-size: 17px;
}

.rpt-mini-kpis {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 16px;
}

.rpt-mini-kpis > div,
.rpt-mini {
  background: var(--rpt-superficie);
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  padding: 12px;
}

.rpt-mini-kpis span,
.rpt-mini span {
  color: var(--rpt-texto-suave);
  display: block;
  font-size: 11.5px;
  margin-bottom: 4px;
}

.rpt-mini-kpis strong,
.rpt-mini strong {
  font-size: 16px;
  font-weight: 600;
}

/* ------------------------------------------------------------------ listas */
.rpt-lista-item {
  align-items: center;
  border-bottom: 1px solid #f0f3f7;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
}

.rpt-lista-item:last-child {
  border-bottom: none;
}

.rpt-ref {
  display: block;
  font-size: 13px;
  font-weight: 600;
}

.rpt-lista-meta {
  color: var(--rpt-texto-tenue);
  display: block;
  font-size: 11.5px;
}

.rpt-monto {
  display: block;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}

.rpt-badge {
  border-radius: 20px;
  display: inline-block;
  font-size: 10.5px;
  font-weight: 600;
  margin-top: 3px;
  padding: 2px 9px;
  text-transform: capitalize;
}

.rpt-badge.es-abierta { background: var(--rpt-bueno-suave); color: var(--rpt-bueno); }
.rpt-badge.es-cerrada { background: #f2f5f9; color: var(--rpt-texto-suave); }

/* ------------------------------------------------------------ estados vacios */
.rpt-empty {
  color: var(--rpt-texto-suave);
  padding: 28px 20px;
  text-align: center;
}

.rpt-empty i {
  color: #c3cad6;
  display: block;
  font-size: 30px;
  margin-bottom: 10px;
}

.rpt-empty p {
  font-size: 13px;
  line-height: 1.6;
  margin: 0 auto 12px;
  max-width: 380px;
}

.rpt-empty p:last-child {
  margin-bottom: 0;
}

.rpt-empty-sm {
  padding: 14px;
}

.rpt-empty-sm i {
  display: none;
}

.rpt-sin-datos {
  background: var(--rpt-superficie);
  border: 1px dashed var(--rpt-borde-fuerte);
  border-radius: var(--rpt-radio);
  padding: 44px 24px;
  text-align: center;
}

.rpt-sin-datos i {
  color: #c3cad6;
  font-size: 38px;
}

.rpt-sin-datos h5 {
  font-size: 16px;
  font-weight: 600;
  margin: 12px 0 6px;
}

.rpt-sin-datos p {
  color: var(--rpt-texto-suave);
  font-size: 13px;
  margin-bottom: 16px;
}

.rpt-sin-datos-acciones {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}

.rpt-aviso {
  background: var(--rpt-advertencia-suave);
  border: 1px solid #ecd9b4;
  border-radius: var(--rpt-radio);
  color: #7a4e0c;
  font-size: 12.5px;
  line-height: 1.6;
  padding: 12px 14px;
}

/* ================================ DASHBOARD ================================ */
.rpt-filtros {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: space-between;
}

.rpt-periodos {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.rpt-filtros-extra {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.rpt-filtros-extra .form-select {
  min-width: 170px;
}

.rpt-rango {
  align-items: center;
  display: flex;
  gap: 6px;
}

.rpt-rango span {
  color: var(--rpt-texto-tenue);
  font-size: 12px;
}

.rpt-rango-texto {
  color: var(--rpt-texto-tenue);
  font-size: 11.5px;
  margin-top: 10px;
}

.rpt-resultado {
  background: var(--rpt-superficie);
  border: 1px solid var(--rpt-borde);
  border-left: 3px solid var(--rpt-primario);
  border-radius: var(--rpt-radio);
  box-shadow: var(--rpt-sombra);
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(260px, 1fr) 2fr;
  margin-bottom: 16px;
  padding: 20px;
}

.rpt-resultado[data-tono="bueno"] { border-left-color: var(--rpt-bueno); }
.rpt-resultado[data-tono="advertencia"] { border-left-color: var(--rpt-advertencia); }
.rpt-resultado[data-tono="malo"] { border-left-color: var(--rpt-malo); }

.rpt-resultado-valor {
  display: block;
  font-size: 34px;
  font-weight: 600;
  letter-spacing: -1px;
  line-height: 1.1;
}

.rpt-resultado-nota {
  color: var(--rpt-texto-suave);
  font-size: 12.5px;
  line-height: 1.6;
  margin: 12px 0 0;
  max-width: 420px;
}

.rpt-resultado-lado {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, 1fr);
}

.rpt-comparativo {
  display: block;
  font-size: 11.5px;
  margin-top: 6px;
}

.rpt-comparativo[data-tendencia="bueno"] { color: var(--rpt-bueno); }
.rpt-comparativo[data-tendencia="malo"] { color: var(--rpt-malo); }
.rpt-comparativo[data-tendencia="igual"] { color: var(--rpt-texto-tenue); }

.rpt-nota-prorrateo {
  background: var(--rpt-primario-suave);
  border: 1px solid #cfdefa;
  border-radius: var(--rpt-radio);
  color: #2c5aad;
  font-size: 12px;
  margin-bottom: 16px;
  padding: 10px 14px;
}

.rpt-grid-kpis {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, 1fr);
}

.rpt-leyenda {
  margin-top: 16px;
}

.rpt-leyenda-item {
  align-items: center;
  display: flex;
  font-size: 12px;
  gap: 8px;
  padding: 5px 0;
}

.rpt-punto {
  border-radius: 2px;
  flex: none;
  height: 9px;
  width: 9px;
}

.rpt-leyenda-nombre {
  color: var(--rpt-texto-suave);
  flex: 1;
}

.rpt-leyenda-valor {
  color: var(--rpt-texto);
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}

.rpt-conclusiones {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, 1fr);
}

.rpt-conclusion {
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  display: flex;
  gap: 12px;
  padding: 14px;
}

.rpt-conclusion > i {
  color: var(--rpt-primario);
  font-size: 18px;
  line-height: 1.3;
}

.rpt-conclusion-label {
  color: var(--rpt-texto-suave);
  display: block;
  font-size: 11.5px;
}

.rpt-conclusion strong {
  display: block;
  font-size: 15px;
  font-weight: 600;
  margin: 2px 0;
}

.rpt-conclusion-detalle {
  color: var(--rpt-texto-tenue);
  display: block;
  font-size: 11.5px;
  line-height: 1.5;
}

.rpt-cargando {
  opacity: .55;
  pointer-events: none;
  transition: opacity .15s;
}

/* ------------------------------------------------------------ calculadora */
.rpt-calculadora {
  background: #f8fafc;
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  padding: 16px;
}

.rpt-resultado-calc {
  margin-top: 16px;
}

.rpt-proyeccion {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, 1fr);
}

.rpt-proyeccion-item {
  background: var(--rpt-superficie);
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  padding: 10px 12px;
}

.rpt-proyeccion-item span {
  color: var(--rpt-texto-suave);
  display: block;
  font-size: 11.5px;
}

.rpt-proyeccion-item strong {
  font-size: 16px;
  font-weight: 600;
}

.rpt-probabilidad {
  margin-top: 12px;
}

.rpt-probabilidad span {
  color: var(--rpt-texto-suave);
  display: block;
  font-size: 12px;
  margin-top: 7px;
}

/* --------------------------------------------------------------- detalle */
.rpt-detalle {
  border: 1px solid var(--rpt-borde);
  border-radius: var(--rpt-radio);
  overflow: hidden;
}

.rpt-detalle-fila {
  border-bottom: 1px solid #f0f3f7;
  display: flex;
  font-size: 13px;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 14px;
}

.rpt-detalle-fila:last-child {
  border-bottom: none;
}

.rpt-detalle-fila span {
  color: var(--rpt-texto-suave);
}

.rpt-detalle-fila strong {
  font-weight: 600;
  text-align: right;
}

/* ------------------------------------------------------------- responsive */
@media (max-width: 1399px) {
  .rpt-conclusiones { grid-template-columns: repeat(2, 1fr); }
  .rpt-grid-kpis { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 1199px) {
  .rpt-resultado { grid-template-columns: 1fr; }
  .rpt-resultado-lado { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 991px) {
  .rpt-kpis { grid-template-columns: repeat(2, 1fr); }
  .rpt-grid-kpis { grid-template-columns: repeat(3, 1fr); }
  .rpt-mini-kpis { grid-template-columns: repeat(2, 1fr); }
  .rpt-proyeccion { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
  .repartidor-shell .card-body { padding: 16px; }

  .rpt-page-head { align-items: stretch; flex-direction: column; }
  .rpt-page-head .btn { width: 100%; }

  .rpt-jornada-bar { align-items: stretch; flex-direction: column; }
  .rpt-jornada-acciones .btn { flex: 1; }

  .rpt-kpis { gap: 8px; }
  .rpt-kpi { padding: 12px; }
  .rpt-kpi-valor { font-size: 19px; }

  .rpt-resultado-lado { grid-template-columns: 1fr; }
  .rpt-resultado-valor { font-size: 28px; }

  .rpt-grid-kpis,
  .rpt-conclusiones,
  .rpt-meta-datos,
  .rpt-proyeccion { grid-template-columns: repeat(2, 1fr); }

  .rpt-block-head-flex { flex-direction: column; }

  .rpt-filtros { align-items: stretch; flex-direction: column; }
  .rpt-filtros-extra { flex-direction: column; align-items: stretch; }
  .rpt-filtros-extra .form-select,
  .rpt-rango { width: 100%; }
  .rpt-rango .form-control { flex: 1; }

  .rpt-accion { padding: 8px 12px 10px; }

  .repartidor-shell .modal-footer .btn { flex: 1; }
}

@media (max-width: 479px) {
  .rpt-kpis,
  .rpt-grid-kpis,
  .rpt-mini-kpis,
  .rpt-proyeccion,
  .rpt-conclusiones { grid-template-columns: 1fr; }

  .rpt-kmref { grid-template-columns: 1fr; }
}
