/* Buscador por vehiculo en cascada. */

.veh-cascada {
  display: flex; align-items: flex-end; gap: 10px; padding: 16px 18px;
  margin-bottom: 14px; flex-wrap: wrap;
}
.veh-paso { flex: 1; min-width: 170px; }
.veh-paso > label {
  display: block; font-size: 10px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; color: var(--text-muted); margin-bottom: 5px;
}
.veh-paso .ip { font-size: 14px; padding: 11px 13px; }
.veh-paso select:disabled { opacity: .45; cursor: not-allowed; }
.veh-flecha {
  font-size: 20px; color: var(--text-faint); padding-bottom: 10px; flex: 0 0 auto;
}
.veh-patente { flex: 0 0 150px; border-left: 1px solid var(--border); padding-left: 14px; }
.veh-patente .ip { letter-spacing: .06em; font-weight: 600; text-align: center; }

.veh-tipo { padding: 0; overflow: hidden; }
.veh-tipo-cab {
  display: flex; justify-content: space-between; align-items: baseline; gap: 8px;
  padding: 13px 16px; border-bottom: 1px solid var(--border); background: var(--bg-elev);
}
.veh-tipo-nom { font-size: 15px; font-weight: 700; }

.veh-op {
  display: flex; align-items: center; gap: 10px; padding: 10px 16px;
  border-bottom: 1px solid var(--border);
}
.veh-op:last-child { border-bottom: none; }
.veh-op.sin { opacity: .55; }
.veh-op.ok { background: var(--marca-tinte, transparent); }
.veh-op-cod { flex: 1; font-size: 13px; line-height: 1.3; min-width: 0; }
.veh-op-stock { width: 110px; text-align: right; font-size: 12px; }
.veh-op-precio {
  width: 100px; text-align: right; font-weight: 700;
  font-variant-numeric: tabular-nums; font-size: 13px;
}

.veh-visc {
  font-size: 40px; font-weight: 700; line-height: 1; letter-spacing: -.01em;
  text-align: center; padding: 14px 0 4px;
}
.veh-norma { text-align: center; font-size: 13px; color: var(--text-dim); }
.veh-litros {
  text-align: center; font-size: 15px; font-weight: 600; margin-top: 8px;
  color: var(--text-dim);
}

@media (max-width: 1100px) {
  .veh-flecha { display: none; }
  .veh-patente { border-left: none; padding-left: 0; }
}

/* --------------------------------- ingreso con lector de codigo de barras */
.ing-lector { padding: 18px; }
.ing-lector-cab {
  display: flex; align-items: center; gap: 9px; font-size: 12px;
  color: var(--text-muted); margin-bottom: 10px;
}
.ing-punto {
  width: 9px; height: 9px; border-radius: 50%; background: #1D9E75;
  animation: pu 1.6s ease-in-out infinite; flex: 0 0 auto;
}
.ing-input {
  font-size: 19px !important; padding: 15px 18px !important;
  letter-spacing: .02em; font-weight: 600;
}
.ing-ultimo {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px; margin-top: 12px; padding: 11px 14px; border-radius: 10px;
  background: #1D9E7514; border: 1px solid #1D9E7533; animation: fi .2s ease;
}
.ing-ultimo-cant { font-size: 20px; font-weight: 700; color: #1D9E75; }
.ing-cant {
  width: 100%; padding: 5px 7px !important; font-size: 12px !important;
  text-align: right;
}

/* ------------------------------- punto de venta: vista en cuadros */
.pos-vista { display: flex; gap: 3px; flex: 0 0 auto; }
.pos-vista .bt { padding: 7px 11px !important; font-size: 14px !important; }
.pos-lista.en-grilla {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
  gap: 9px; padding: 10px; align-content: start;
}
.pos-tarjeta {
  background: var(--bg-elev); border: 1px solid var(--border); border-radius: 11px;
  padding: 11px; cursor: pointer; display: flex; flex-direction: column;
  gap: 7px; min-height: 112px; transition: all .13s;
}
.pos-tarjeta:hover {
  border-color: var(--marca, var(--border-strong));
  transform: translateY(-2px); box-shadow: 0 5px 16px rgba(0,0,0,.1);
}
.pos-tarjeta:active { transform: scale(.975); }
.pos-tarjeta.sin { opacity: .5; }
.pos-tarjeta-cat {
  font-size: 9.5px; font-weight: 700; padding: 2px 7px; border-radius: 999px;
  align-self: flex-start; white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; max-width: 100%;
}
.pos-tarjeta-nom {
  font-size: 12.5px; line-height: 1.3; flex: 1;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
  overflow: hidden;
}
.pos-tarjeta-pie {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 6px; border-top: 1px solid var(--border); padding-top: 7px;
}
.pos-tarjeta-st { font-size: 10px; color: var(--text-muted); }
.pos-tarjeta-pr { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }


/* ------------------------------- la opcion unificada de cada filtro */
.veh-op.usado { background: #1D9E750E; }
.veh-eq {
  font-size: 11px; color: var(--text-dim); margin-top: 3px;
  font-variant-numeric: tabular-nums;
}
.veh-fuente {
  font-size: 10px; color: var(--text-faint); margin-top: 3px;
  text-transform: lowercase;
}
.veh-pedir { color: #EF9F27; font-weight: 600; }

/* Las tarjetas de tipo necesitan ancho: adentro va el codigo, la
   equivalencia, los motores y de donde sale el dato. Con cuatro
   columnas el codigo se partia en tres renglones. */
.veh-tipos {
  display: grid; gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(430px, 1fr));
}
.veh-op-cod .mn { white-space: nowrap; }
.veh-op-cod > .bg { vertical-align: middle; }
.veh-op { align-items: flex-start; }
.veh-op-stock, .veh-op-precio { padding-top: 2px; }
.veh-eq { line-height: 1.45; }
.veh-op-cod .mini { line-height: 1.35; }
@media (max-width: 980px) {
  .veh-tipos { grid-template-columns: 1fr; }
}


/* ------------------------------------ cuadro con lista que se filtra */
.combo { position: relative; }
.combo-input { width: 100%; padding-right: 30px !important; }
.combo-input:disabled { opacity: .45; cursor: not-allowed; }
.combo-x {
  position: absolute; right: 7px; top: 50%; transform: translateY(-50%);
  background: none; border: none; color: var(--text-faint); cursor: pointer;
  font-size: 12px; padding: 3px 5px; border-radius: 5px; display: none;
}
.combo-x.visible { display: block; }
.combo-x:hover { background: var(--card-hover); color: var(--text); }
.combo-lista {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 30;
  background: var(--card); border: 1px solid var(--border-strong);
  border-radius: 10px; max-height: 320px; overflow-y: auto;
  box-shadow: 0 10px 30px rgba(0,0,0,.22); animation: fi .12s ease;
}
.combo-op {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 10px; padding: 9px 13px; cursor: pointer; font-size: 13px;
  border-bottom: 1px solid var(--border);
}
.combo-op:last-child { border-bottom: none; }
.combo-op.marcada { background: var(--marca-tinte, var(--card-hover)); }
.combo-op-tx { flex: 1; }
.combo-op-sub { font-size: 11px; color: var(--text-muted); white-space: nowrap; }
.combo-mas { padding: 10px 13px; font-size: 11px; color: var(--text-muted); }

/* ------------------------- lo que dice el catalogo del fabricante */
/* Va visualmente aparte del dato de Esteban, a proposito: son dos
   fuentes distintas y no se pueden confundir. */
.veh-catalogo {
  margin-top: 12px; padding-top: 11px;
  border-top: 1px dashed var(--border-strong);
}
.veh-catalogo-tit {
  font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--text-muted); margin-bottom: 8px;
}
.veh-catalogo-fila {
  padding: 7px 0; border-bottom: 1px solid var(--border);
  font-size: 15px;
}
.veh-catalogo-fila:last-of-type { border-bottom: none; }
.veh-catalogo-pie { margin-top: 9px; line-height: 1.55; }

/* ------------------------ veredicto de si un aceite sirve o no */
/* El rojo y el verde son semánticos, no de la marca: si dice "no le
   pongas este" tiene que verse como una advertencia, no como un acento. */
.veh-op.veh-no { opacity: .72; }
.veh-op.veh-no .veh-op-cod b { text-decoration: line-through; }
.veh-link {
  background: none; border: none; padding: 3px 0 0; margin: 0;
  font-size: 11px; color: var(--text-muted); cursor: pointer;
  text-decoration: underline; text-underline-offset: 2px; display: block;
}
.veh-link:hover { color: var(--marca, var(--text)); }
/* "probablemente no": se ve como advertencia, pero NO tachado. El tachado
   es para lo que seguro no va; esto es una duda mia, no un hecho. */
.veh-op.veh-dudoso { opacity: .85; }

/* ------------------------------------------- la respuesta del aceite */
/* Una sola cosa grande: la viscosidad. Es lo único que el que atiende
   necesita leer con el auto arriba del elevador. */
.ac-respuesta { text-align: center; }
.ac-visc {
  font-size: 46px; font-weight: 800; letter-spacing: -1px;
  line-height: 1.05; color: var(--marca, var(--text));
}
.ac-litros { font-size: 19px; font-weight: 600; margin-top: 2px; }
.ac-litros-no { font-size: 13px; font-weight: 400; color: var(--text-muted); }
.ac-auto {
  margin-top: 12px; padding-top: 12px; font-size: 14px; font-weight: 600;
  border-top: 1px solid var(--border);
}
.ac-dato {
  margin-top: 10px; font-size: 12px; line-height: 1.5;
  color: var(--text-muted); text-align: left;
}
.ac-dato b { color: var(--text); }
.ac-fuente {
  margin-top: 12px; padding-top: 10px; font-size: 11px; line-height: 1.55;
  color: var(--text-faint); text-align: left;
  border-top: 1px dashed var(--border-strong);
}
.ac-otros {
  display: grid; gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
}
.ac-otro {
  padding: 10px 12px; border: 1px solid var(--border); border-radius: 9px;
  background: var(--row-alt);
}
.ac-otro-tit {
  font-size: 10px; text-transform: uppercase; letter-spacing: .6px;
  color: var(--text-muted); margin-bottom: 3px;
}
.ac-otro-que { font-size: 13px; font-weight: 600; }
.veh-paso-ancho { flex: 2; }
/* El ano es un numero de cuatro cifras: no necesita el mismo ancho que
   un nombre de modelo. */
.veh-paso-corto { flex: 0 0 120px; min-width: 120px; }

/* ------------------------------- revisar las normas de los aceites */
.ac-normas { max-height: 52vh; overflow-y: auto; padding-right: 4px; }
.ac-norma-fila {
  display: grid; grid-template-columns: 1fr 260px 110px;
  gap: 10px; align-items: center;
  padding: 8px 0; border-bottom: 1px solid var(--border);
}
.ac-norma-fila:last-child { border-bottom: none; }
.ac-norma-nom { font-size: 13px; min-width: 0; }
.ac-norma-ip { font-size: 13px; }
/* la confirmada se ve distinta: es el dato, no una deducción mía */
.ac-norma-ip.ac-ok { border-color: var(--marca, #1D9E75); }
.ac-norma-est { text-align: right; }

/* ------------------------------------------------ abrir un envase */
.ac-envases { display: grid; gap: 8px; max-height: 42vh; overflow-y: auto; }
.ac-envase {
  display: grid; grid-template-columns: 1fr 170px 90px;
  gap: 12px; align-items: center;
  padding: 10px 12px; border: 1px solid var(--border); border-radius: 9px;
}
.ac-envase-nom { font-size: 13px; min-width: 0; }
.ac-envase-lt { display: flex; gap: 6px; align-items: center; }
.ac-envase-lt .ip { width: 80px; text-align: right; }

/* ------------------------------------- "cargar el service" en la OT */
.srv { margin: 10px 0; padding: 12px 14px; }
.srv-tit {
  font-size: 11px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--text-muted); margin-bottom: 8px;
}
/* La aclaracion del motor va adentro del titulo, pero es una frase
   entera ("Bi-Turbo Panther 213 CV, la Raptor..."). En mayusculas y con
   el espaciado del titulo se lee como un grito y cuesta leerla. */
.srv-tit .mini {
  text-transform: none;
  letter-spacing: 0;
  margin-top: 3px;
}
.srv-aceite { font-size: 19px; margin-bottom: 10px; }
.srv-item {
  display: flex; align-items: center; gap: 10px;
  padding: 7px 0; border-bottom: 1px solid var(--border);
  font-size: 13px; cursor: pointer;
}
.srv-item:last-of-type { border-bottom: none; }
.srv-nom { flex: 1; }
.srv-pie {
  display: flex; gap: 8px; justify-content: flex-end;
  margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--border);
}

/* ----------------------------------------------- quien esta para service */
.sv-fila {
  display: grid; grid-template-columns: 150px 1fr 290px 110px;
  gap: 14px; align-items: center; margin-bottom: 8px; padding: 12px 14px;
  border-left: 3px solid var(--border-strong);
}
.sv-fila.vencido { border-left-color: #E24B4A; }
.sv-fila.cerca   { border-left-color: #EF9F27; }
.sv-fila.aldia   { border-left-color: #1D9E75; }
.sv-pat { font-weight: 700; letter-spacing: .04em; }
.sv-mod { font-size: 12px; color: var(--text-muted); }
.sv-cli { font-size: 13px; }
.sv-cuando { font-size: 12px; }
.sv-estado { font-size: 13px; font-weight: 600; }
.sv-fila.vencido .sv-estado { color: #E24B4A; }
.sv-fila.cerca   .sv-estado { color: #EF9F27; }
