/* Flujo operativo de entradas y salidas: cámara, producto y registro. */
.fast-movement-form { display: grid; gap: 14px; }

.fast-movement-type {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 5px;
  border: 1px solid #d3dfe9;
  border-radius: 12px;
  background: #f2f6f9;
}
.fast-movement-type button {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: #53697d;
  background: transparent;
  cursor: pointer;
  font-size: 14px;
}
.fast-movement-type button span {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  font-size: 20px;
  font-weight: 800;
}
.fast-movement-type button.active {
  border-color: #cbd9e5;
  color: #15334e;
  background: #fff;
  box-shadow: 0 4px 12px rgba(24, 54, 81, .08);
}
.fast-movement-type .entry.active { border-color: #9ed4c0; color: #086b4b; }
.fast-movement-type .exit.active { border-color: #edb8bd; color: #a72635; }
.fast-movement-type .entry span { color: #087154; background: #e3f5ee; }
.fast-movement-type .exit span { color: #ad2c3b; background: #fdecee; }

.fast-flow-status {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
}
.fast-flow-status span {
  min-height: 29px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  color: #718398;
  background: #edf2f6;
  font-size: 11px;
  font-weight: 750;
}
.fast-flow-status span.active { color: #135c98; background: #e5f2fc; }

.fast-movement-stage { min-height: 270px; display: grid; align-content: start; gap: 11px; }
.fast-camera-prompt,
.fast-processing {
  min-height: 250px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  padding: 28px;
  border: 2px dashed #9ebfdc;
  border-radius: 14px;
  color: #173b5d;
  background: #f4f9fd;
  text-align: center;
}
.fast-camera-prompt > div,
.fast-processing { text-align: center; }
.fast-camera-prompt strong,
.fast-processing strong { display: block; font-size: 17px; }
.fast-camera-prompt small,
.fast-processing small { display: block; margin-top: 4px; color: #5c7287; font-size: 13px; }
.fast-camera-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(145deg, #318bd8, #1769b5);
  box-shadow: 0 9px 20px rgba(29, 111, 183, .2);
  font-size: 28px;
}
.fast-camera-prompt .button { min-width: 170px; }
.fast-processing i {
  width: 36px;
  height: 36px;
  border: 4px solid #c9dfef;
  border-top-color: #237dc6;
  border-radius: 50%;
  animation: spin .75s linear infinite;
}

.fast-photo-strip {
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 10px;
  border: 1px solid #ccdbe7;
  border-radius: 12px;
  background: #f7fafc;
}
.fast-photo-strip.ready { border-color: #a8d8c6; background: #f2faf7; }
.fast-photo-strip img { width: 66px; height: 58px; object-fit: cover; border-radius: 9px; }
.fast-photo-strip div { min-width: 0; display: grid; gap: 3px; }
.fast-photo-strip strong { color: #18344e; font-size: 14px; overflow-wrap: anywhere; }
.fast-photo-strip small { color: #5b7084; font-size: 12px; line-height: 1.4; }
.fast-photo-strip > button,
.fast-selected-product header button {
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid #bed4e7;
  border-radius: 8px;
  color: #196aa9;
  background: #fff;
  cursor: pointer;
  font-size: 12px;
  font-weight: 750;
}

.fast-candidate-list { display: grid; gap: 8px; }
.fast-candidate-list .candidate { min-height: 69px; padding: 10px; }
.fast-manual-search,
.fast-note {
  border: 1px solid #d2dee8;
  border-radius: 11px;
  background: #fff;
}
.fast-manual-search summary,
.fast-note summary {
  min-height: 43px;
  display: flex;
  align-items: center;
  padding: 10px 13px;
  color: #34536e;
  cursor: pointer;
  font-size: 13px;
  font-weight: 750;
}
.fast-manual-search[open] summary,
.fast-note[open] summary { border-bottom: 1px solid #e0e8ef; }
.fast-manual-search .form-field,
.fast-note .form-field { padding: 12px 13px 14px; }
.recognition-quality.compact { padding-block: 9px; }

.fast-selected-product {
  overflow: hidden;
  border: 1px solid #9ed2be;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 6px 20px rgba(13, 92, 66, .07);
}
.fast-selected-product > header {
  min-height: 43px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  border-bottom: 1px solid #d8ebe4;
  background: #eef9f5;
}
.fast-selected-product > header > span { color: #087052; font-size: 12px; font-weight: 800; }
.fast-product-identity {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  padding: 14px;
}
.fast-product-identity .product-thumb { width: 58px; height: 58px; border-radius: 11px; opacity: 1; }
.fast-product-identity > div { min-width: 0; display: grid; gap: 3px; }
.fast-product-identity > div small { color: #5d7184; font-size: 11px; }
.fast-product-identity > div strong { color: #122f49; font-size: 16px; line-height: 1.35; overflow-wrap: anywhere; }
.fast-product-identity > div span { color: #536b80; font-size: 12px; }
.fast-product-identity > b { display: grid; justify-items: end; color: #123e62; font-size: 24px; }
.fast-product-identity > b small { color: #5c7285; font-size: 10px; font-weight: 650; }

.fast-quantity {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 15px;
  border: 1px solid #d0dce7;
  border-radius: 12px;
  background: #f7f9fb;
}
.fast-quantity > div:first-child { display: grid; gap: 3px; }
.fast-quantity > div:first-child span { color: #173650; font-size: 14px; font-weight: 800; }
.fast-quantity > div:first-child small { color: #627689; font-size: 11px; }
.fast-stepper { display: grid; grid-template-columns: 44px 76px 44px; align-items: center; }
.fast-stepper button {
  height: 48px;
  border: 1px solid #bfd0df;
  color: #195d93;
  background: #fff;
  cursor: pointer;
  font-size: 23px;
  font-weight: 700;
}
.fast-stepper button:first-child { border-radius: 9px 0 0 9px; }
.fast-stepper button:last-child { border-radius: 0 9px 9px 0; }
.fast-stepper input {
  width: 76px;
  height: 48px;
  border: solid #bfd0df;
  border-width: 1px 0;
  outline: 0;
  color: #14334f;
  background: #fff;
  font-size: 20px;
  font-weight: 800;
  text-align: center;
  -moz-appearance: textfield;
}
.fast-stepper input::-webkit-inner-spin-button,
.fast-stepper input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.fast-stock-result { min-height: 20px; margin: -3px 2px 0; color: #31614f; font-size: 12px; font-weight: 700; }
.fast-stock-result.invalid { color: #b32637; }

.fast-movement-footer #movementSubmit { min-width: 230px; }
.fast-movement-footer #movementSubmit.exit { border-color: #bd2e40; background: #bd2e40; box-shadow: 0 6px 14px rgba(174, 38, 53, .18); }
.fast-movement-footer #movementSubmit:disabled { border-color: #aebbc7; background: #aebbc7; box-shadow: none; }

@media (max-width: 620px) {
  .fast-movement-form { gap: 11px; }
  .fast-movement-stage { min-height: 310px; }
  .fast-camera-prompt,
  .fast-processing { min-height: 290px; padding: 22px 16px; }
  .fast-flow-status span { font-size: 10px; }
  .fast-photo-strip { grid-template-columns: 57px minmax(0, 1fr); }
  .fast-photo-strip img { width: 57px; height: 55px; }
  .fast-photo-strip > button { grid-column: 1 / -1; width: 100%; }
  .fast-product-identity { grid-template-columns: 50px minmax(0, 1fr); padding: 12px; }
  .fast-product-identity .product-thumb { width: 50px; height: 50px; }
  .fast-product-identity > b { grid-column: 2; justify-items: start; font-size: 18px; }
  .fast-quantity { align-items: stretch; flex-direction: column; }
  .fast-stepper { grid-template-columns: 1fr 82px 1fr; }
  .fast-stepper input { width: 82px; }
  .fast-movement-footer { display: grid; grid-template-columns: .7fr 1.3fr; }
  .fast-movement-footer #movementSubmit { min-width: 0; }
}
