/* features/scan/scan.css */
/* Layout/header come from the shared .page shell (styles/components.css). */
.scan__lede { line-height: 1.5; max-width: 72ch; }

.scan__unsupported {
  color: #b45309;
  background: #fffbeb;
  border: 1px solid #fde68a;
  padding: 12px 14px;
  border-radius: 12px;
  margin: 16px 0 0;
  line-height: 1.5;
}

/* Quantity ---------------------------------------------------------------- */
.scan__qty {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 8px 0 4px;
}
.scan__qty-label {
  font-size: 13px;
  font-weight: 600;
  color: #334155;
  letter-spacing: 0.01em;
}
.scan__qty input {
  width: 120px;
  padding: 12px 14px;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 12px;
  font: inherit;
  font-size: 18px;
  font-variant-numeric: tabular-nums;
}
.scan__qty input:disabled { background: #f1f5f9; color: #94a3b8; }

/* The two big action buttons --------------------------------------------- */
.scan__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 18px 0 8px;
}
.scan__action {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: clamp(160px, 40vw, 240px);
  padding: 24px 16px;
  border: 0;
  border-radius: 20px;
  cursor: pointer;
  color: #fff;
  font-family: inherit;
  text-align: center;
  box-shadow: 0 10px 24px -12px rgba(15, 23, 42, 0.4);
  transition: transform 0.08s ease, filter 0.15s ease, box-shadow 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}
.scan__action--in { background: #16a34a; }   /* green — stock in */
.scan__action--out { background: #dc2626; }   /* red — stock out */
.scan__action:hover:not(:disabled) { filter: brightness(1.05); }
.scan__action:active:not(:disabled) { transform: scale(0.98); }
.scan__action:focus-visible { outline: 3px solid rgba(15, 23, 42, 0.45); outline-offset: 3px; }
.scan__action:disabled { opacity: 0.45; cursor: not-allowed; box-shadow: none; }
.scan__action.is-scanning { filter: brightness(0.92); box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.7); }

.scan__action-icon { width: clamp(40px, 12vw, 56px); height: clamp(40px, 12vw, 56px); }
.scan__action-icon svg { width: 100%; height: 100%; }
.scan__action-label { font-size: clamp(19px, 5vw, 24px); font-weight: 700; letter-spacing: 0.01em; }

/* Session summary + feed -------------------------------------------------- */
.scan__summary {
  margin: 40px 0 12px;
  color: #334155;
  font-size: 14px;
  font-weight: 500;
}
.scan__summary-num { font-weight: 700; color: #0f172a; font-variant-numeric: tabular-nums; }

.scan__feed { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.scan__row {
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 12px;
  background: #fff;
}
.scan__row.is-undone { opacity: 0.5; text-decoration: line-through; }
.scan__row-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.scan__row-name { font-weight: 600; }
.scan__row-time { font-size: 12px; color: #94a3b8; font-variant-numeric: tabular-nums; }
.scan__row-dir { font-weight: 700; font-variant-numeric: tabular-nums; }
.scan__row-dir--out { color: #dc2626; }
.scan__row-dir--in { color: #16a34a; }
.scan__row-val { color: #475569; font-variant-numeric: tabular-nums; }

.scan__pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 14px;
}
.scan__pager:empty { display: none; }
.scan__pager-info { font-size: 13px; font-weight: 600; color: #334155; font-variant-numeric: tabular-nums; }

/* Mobile ------------------------------------------------------------------ */
@media (max-width: 480px) {
  .scan__actions { gap: 12px; }
  .scan__row { padding: 10px 12px; gap: 8px; }
  .scan__qty input { width: 100%; }
}
