/* Receiving view  -  manifest verifier scoped under `.receiving-view`.
   Tokens (--bg, --surface, --accent, etc.) come from shell.css. Do NOT redefine them here.
   Theme is set on <html data-theme>; selectors use CSS variables so they work in either mode. */

.receiving-view {
  /* Category swatches (--cat-flower, etc.) come from shell.css :root.
     Verifier-specific row tunables stay scoped here. */
  --row-opacity: 0.25;
  --row-opacity-edited: 0.75;
  --upload-border: var(--border);
}
.receiving-view button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  outline: none;
  transition: all 0.2s;
}
.receiving-view input,
.receiving-view select,
.receiving-view textarea {
  font-family: inherit;
  outline: none;
}

/* ===== Upload screen  -  stripped down to a sober dock-side intake card ===== */
.receiving-view .upload-screen {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  min-height: 50vh;
  gap: 0.6rem;
}
.receiving-view .upload-screen .tag-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.6rem;
  background: var(--accent);
  color: #000;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 0.25rem;
  line-height: 1;
}
.receiving-view .drop-zone-wrap {
  position: relative;
  width: 100%;
  max-width: 560px;
  margin-top: 0.75rem;
}
.receiving-view .section-index {
  position: absolute;
  top: -1.4rem;
  right: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.65rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  color: var(--text-secondary);
  text-transform: uppercase;
}
.receiving-view .section-index::before {
  content: "";
  width: 1.75rem;
  height: 1px;
  background: var(--border);
}
.receiving-view .section-index .idx-num { color: var(--accent); font-weight: 700; }
.receiving-view .drop-zone {
  position: relative;
  width: 100%;
  padding: 3rem 2rem;
  border: 1px solid var(--border);
  border-radius: 0;
  text-align: center;
  cursor: pointer;
  transition: all 0.25s ease;
  background-color: var(--surface);
  background-image: radial-gradient(circle, var(--dot-color) 2px, transparent 2px);
  background-size: 36px 36px;
}
.receiving-view .drop-zone:hover,
.receiving-view .drop-zone.dragover {
  border-color: var(--accent);
  background-color: var(--elevated);
}
.receiving-view .drop-zone::before,
.receiving-view .drop-zone::after {
  content: "";
  position: absolute;
  width: 14px;
  height: 14px;
  border: 1px solid var(--accent);
  pointer-events: none;
}
.receiving-view .drop-zone::before { top: -1px; left: -1px; border-right: none; border-bottom: none; }
.receiving-view .drop-zone::after { bottom: -1px; right: -1px; border-left: none; border-top: none; }
.receiving-view .drop-zone-icon { font-size: 2rem; opacity: 0.55; margin-bottom: 0.85rem; }
.receiving-view .drop-zone-text {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.85rem;
  letter-spacing: 0.05em;
  color: var(--text-primary);
  line-height: 1.6;
}
.receiving-view .drop-zone-text strong {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  color: var(--accent);
}
.receiving-view .drop-zone-text + p {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 0.68rem;
  opacity: 0.7;
}
.receiving-view .drop-zone input[type="file"] { display: none; }
.receiving-view .drop-zone-link {
  display: inline;
  background: transparent;
  border: none;
  font: inherit;
  font-weight: 600;
  color: var(--accent);
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
  text-decoration-style: dashed;
  text-underline-offset: 3px;
  transition: color 0.15s;
}
.receiving-view .drop-zone-link:hover {
  color: var(--accent-hover);
}

/* Sample picker dropdown - single "sample" link that opens a small menu with
   the two sample options (generic CSV / METRC manifest). */
.receiving-view .sample-picker-wrap {
  position: relative;
  display: inline-block;
}
.receiving-view .sample-picker-menu {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 30;
  min-width: 180px;
  padding: 4px 0;
  background: var(--surface, #1a1a1a);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-align: left;
  text-transform: none;
}
.receiving-view .sample-picker-wrap.open .sample-picker-menu { display: block; }
.receiving-view .sample-picker-menu::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  background: var(--surface, #1a1a1a);
  border-left: 1px solid var(--border);
  border-top: 1px solid var(--border);
}
.receiving-view .sample-picker-menu button[role="menuitem"] {
  display: block;
  width: 100%;
  padding: 0.55rem 0.9rem;
  background: transparent;
  border: none;
  color: var(--text-primary);
  font: inherit;
  text-align: left;
  cursor: pointer;
  letter-spacing: 0.04em;
}
.receiving-view .sample-picker-menu button[role="menuitem"]:hover {
  background: var(--elevated, rgba(255,255,255,0.06));
  color: var(--accent);
}
.receiving-view .sample-picker-wrap.open .drop-zone-link[data-role="samplePickerBtn"] {
  color: var(--accent-hover);
}
.receiving-view .paste-panel {
  margin-top: 1rem;
  padding: 1rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.receiving-view .paste-panel__label {
  display: block;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  margin-bottom: 0.5rem;
}
.receiving-view .paste-panel__input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.6rem 0.75rem;
  background: var(--bg);
  color: var(--text-primary);
  border: 1px solid var(--border);
  border-radius: 6px;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.78rem;
  resize: vertical;
}
.receiving-view .paste-panel__input:focus {
  border-color: var(--accent);
}
.receiving-view .paste-panel__actions {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.6rem;
  justify-content: flex-end;
}
.receiving-view .paste-panel__btn {
  padding: 0.45rem 0.9rem;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text-primary);
  font-family: inherit;
  font-size: 0.8rem;
  cursor: pointer;
}
.receiving-view .paste-panel__btn:hover {
  border-color: var(--accent);
}
.receiving-view .paste-panel__btn--primary {
  background: var(--accent);
  border-color: var(--accent);
  color: #000;
  font-weight: 600;
}
.receiving-view .paste-panel__btn--primary:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
}
.receiving-view .upload-error {
  margin-top: 1rem;
  padding: 0.75rem 1.25rem;
  background: rgba(198, 40, 40, 0.2);
  color: #EF5350;
  border-radius: 8px;
  max-width: 560px;
  display: none;
}

/* ===== Mapping screen ===== */
.receiving-view .mapping-screen { display: none; padding: 2rem 0; max-width: 800px; margin: 0 auto; }
.receiving-view .mapping-header { text-align: left; margin-bottom: 2rem; }
.receiving-view .mapping-tag-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.6rem;
  background: var(--accent);
  color: #000;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 1rem;
  line-height: 1;
}
.receiving-view .mapping-section-index {
  display: block;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.65rem;
  letter-spacing: 0.2em;
  color: var(--text-secondary);
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}
.receiving-view .mapping-section-index .idx-num { color: var(--accent); font-weight: 700; }
.receiving-view .mapping-header h2 {
  font-family: 'Saira Condensed', 'DM Sans', sans-serif;
  text-transform: uppercase;
  font-weight: 800;
  font-size: clamp(1.5rem, 3.5vw, 2rem);
  letter-spacing: 0.005em;
  line-height: 1;
  margin-bottom: 0.5rem;
}
.receiving-view .mapping-header p {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  color: var(--text-secondary);
}
.receiving-view .mapping-list { display: flex; flex-direction: column; gap: 0.75rem; margin-bottom: 2rem; }
.receiving-view .mapping-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 2px;
  position: relative;
}
.receiving-view .mapping-item::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: var(--accent);
  opacity: 0;
  transition: opacity 0.2s;
}
.receiving-view .mapping-item:hover::before { opacity: 0.6; }
.receiving-view .mapping-source { flex: 1; min-width: 0; }
.receiving-view .mapping-source-name {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  font-weight: 600;
  margin-bottom: 0.35rem;
  word-break: break-word;
}
.receiving-view .mapping-preview {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.7rem;
  color: var(--text-secondary);
  line-height: 1.4;
  max-height: 3.6em;
  overflow: hidden;
}
.receiving-view .mapping-preview span {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.receiving-view .mapping-arrow { color: var(--text-secondary); padding-top: 0.25rem; flex-shrink: 0; }
.receiving-view .mapping-target { flex: 1; min-width: 0; }
.receiving-view .mapping-target select {
  width: 100%;
  padding: 0.5rem;
  background: var(--input-bg);
  color: var(--text-primary);
  border: 1px solid var(--input-border);
  border-radius: 2px;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.receiving-view .mapping-warning {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  color: #EF5350;
  margin-bottom: 1rem;
  display: none;
}
.receiving-view .mapping-actions { text-align: left; }

/* ===== Main screen ===== */
.receiving-view .main-screen { display: none; }

/* Toolbar */
.receiving-view .toolbar {
  position: sticky;
  top: 0;
  z-index: 100;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 0;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}
.receiving-view .toolbar-brand {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-weight: 700;
  letter-spacing: 0.14em;
  font-size: 0.95rem;
  color: var(--accent);
  margin-right: 0.5rem;
}
.receiving-view .toolbar-brand::before {
  content: "//";
  color: var(--accent);
  margin-right: 0.35rem;
  font-weight: 700;
}
.receiving-view .toolbar-sep {
  width: 1px;
  height: 24px;
  background: var(--border);
  margin: 0 0.25rem;
}
.receiving-view .toolbar-btn {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-radius: 2px;
  padding: 0.4rem 0.75rem;
  background: var(--elevated);
  color: var(--text-primary);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 0.35rem;
  white-space: nowrap;
}
.receiving-view .toolbar-btn:hover { background: var(--border); }
.receiving-view .toolbar-btn svg { width: 14px; height: 14px; }
.receiving-view .toolbar-btn.warning {
  color: #E65100;
  border-color: rgba(230, 81, 0, 0.4);
}
.receiving-view .toolbar-btn.warning:hover {
  background: rgba(230, 81, 0, 0.08);
  border-color: #E65100;
}
[data-theme="dark"] .receiving-view .toolbar-btn.warning,
.receiving-view .toolbar-btn.warning {
  /* keep amber in either theme; the receiver shouldn't lose this signal */
}
.receiving-view .toolbar-info,
.receiving-view .toolbar-dup-info {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.receiving-view .toolbar-info { color: var(--text-secondary); margin-left: auto; white-space: nowrap; }
.receiving-view .toolbar-dup-info { color: #EF5350; white-space: nowrap; }
.receiving-view .export-dropdown { position: relative; display: inline-block; }
.receiving-view .export-menu {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 4px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 2px;
  min-width: 220px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
  z-index: 200;
  overflow: hidden;
}
.receiving-view .export-menu.show { display: block; }
.receiving-view .export-menu button {
  display: block;
  width: 100%;
  text-align: left;
  padding: 0.6rem 1rem;
  background: none;
  color: var(--text-primary);
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--border);
}
.receiving-view .export-menu button:last-child { border-bottom: none; }
.receiving-view .export-menu button:hover { background: var(--elevated); }
.receiving-view .export-menu-sep {
  height: 1px;
  background: var(--border);
  margin: 4px 0;
}

/* Buttons */
.receiving-view .btn-primary {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.85rem;
  border-radius: 2px;
  padding: 0.65rem 2rem;
  background: var(--accent);
  color: #000;
  font-weight: 600;
}
.receiving-view .btn-primary:hover { background: var(--accent-hover); }
.receiving-view .btn-primary:disabled { opacity: 0.4; cursor: not-allowed; }
.receiving-view .btn-secondary {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.72rem;
  border-radius: 2px;
  padding: 0.5rem 1.25rem;
  background: var(--elevated);
  color: var(--text-primary);
  border: 1px solid var(--border);
}
.receiving-view .btn-secondary:hover { background: var(--surface); }

/* Dashboard */
.receiving-view .dashboard {
  padding: 1rem 0 0.5rem;
}
.receiving-view .dashboard-heading {
  font-family: 'Saira Condensed', 'DM Sans', sans-serif;
  font-weight: 900;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  font-size: 1.5rem;
  margin-bottom: 0.15rem;
}
.receiving-view .dashboard-summary {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-primary);
  margin-bottom: 0.75rem;
  padding: 0.6rem 0.85rem;
  background: var(--surface);
  border-left: 3px solid var(--accent);
  border-radius: 0 6px 6px 0;
}
.receiving-view .dashboard-summary strong { color: var(--accent); }
.receiving-view .dashboard-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.6rem;
}
.receiving-view .dash-card {
  padding: 0.75rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}
.receiving-view .dash-card:hover { border-color: var(--accent); transform: translateY(-1px); }
.receiving-view .dash-card-count { font-size: 2rem; font-weight: 700; }
.receiving-view .dash-card-label { font-size: 0.8rem; font-weight: 600; margin-top: 0.15rem; }
.receiving-view .dash-card-desc { font-size: 0.72rem; color: var(--text-secondary); margin-top: 0.1rem; }
.receiving-view .dash-card.risk { border-left-color: #EF5350; background: rgba(239, 83, 80, 0.08); }
.receiving-view .dash-card.risk .dash-card-count { color: #EF5350; }
.receiving-view .dash-card.warn { border-left-color: var(--warning); background: rgba(212, 160, 58, 0.08); }
.receiving-view .dash-card.warn .dash-card-count { color: var(--warning); }
.receiving-view .dash-card.info .dash-card-count { color: var(--text-primary); }
.receiving-view .dash-card.highlight { border-left-color: var(--warning); background: rgba(212, 160, 58, 0.06); }

/* Uncategorized banner */
.receiving-view .uncat-banner {
  margin: 0.75rem 0;
  padding: 0.75rem 1rem;
  background: rgba(97, 97, 97, 0.2);
  border: 1px solid #616161;
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.receiving-view .uncat-banner-text { flex: 1; font-size: 0.9rem; }
.receiving-view .uncat-banner button { font-size: 0.8rem; }

/* Filter bar */
.receiving-view .filter-bar {
  display: flex;
  gap: 0.5rem;
  padding: 0.6rem 0;
  flex-wrap: wrap;
  align-items: center;
  border-bottom: 1px solid var(--border);
}
.receiving-view .filter-bar input[type="text"] {
  flex: 1;
  min-width: 180px;
  padding: 0.4rem 0.75rem;
  background: var(--input-bg);
  color: var(--text-primary);
  border: 1px solid var(--input-border);
  border-radius: 2px;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
}
.receiving-view .filter-bar select {
  padding: 0.4rem 0.5rem;
  background: var(--input-bg);
  color: var(--text-primary);
  border: 1px solid var(--input-border);
  border-radius: 2px;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
}
.receiving-view .filter-bar label {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-secondary);
  cursor: pointer;
  white-space: nowrap;
}
.receiving-view .filter-bar label input[type="checkbox"] { accent-color: var(--accent); }

/* Table */
.receiving-view .table-container {
  padding: 0 0 1rem;
  overflow-x: auto;
}
.receiving-view table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}
.receiving-view thead th {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--surface);
  padding: 0.5rem 0.6rem;
  text-align: left;
  border-bottom: 2px solid var(--border);
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.68rem;
  font-weight: 600;
}
.receiving-view thead th:hover { color: var(--accent); }
.receiving-view thead th .sort-arrow { font-size: 0.7rem; margin-left: 0.25rem; opacity: 0.5; }
.receiving-view thead th .sort-arrow.active { opacity: 1; color: var(--accent); }
.receiving-view .cat-header {
  padding: 0.5rem 0.75rem;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.8rem;
  font-weight: 600;
  color: #FFF;
  cursor: pointer;
  user-select: none;
  border-left: 4px solid;
}
.receiving-view .cat-header:hover { filter: brightness(1.1); }
.receiving-view .cat-header .collapse-icon {
  display: inline-block;
  margin-right: 0.35rem;
  transition: transform 0.2s;
  font-size: 0.75rem;
}
.receiving-view .cat-header .collapse-icon.collapsed { transform: rotate(-90deg); }
.receiving-view tbody tr { transition: background 0.15s; }
.receiving-view tbody td {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--border);
  position: relative;
  max-width: 300px;
}
.receiving-view tbody td.editable { cursor: cell; }
.receiving-view tbody td.editable:hover {
  background: rgba(255,255,255,0.08);
  outline: 1px dashed rgba(255,255,255,0.15);
  outline-offset: -1px;
}
[data-theme="light"] .receiving-view tbody td.editable:hover {
  background: rgba(0,0,0,0.04);
  outline: 1px dashed rgba(0,0,0,0.12);
}
.receiving-view tbody td input,
.receiving-view tbody td select {
  width: 100%;
  padding: 0.25rem 0.4rem;
  background: var(--input-bg);
  color: var(--text-primary);
  border: 1px solid var(--accent);
  border-radius: 2px;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.85rem;
}
.receiving-view .row-expired { background: rgba(198, 40, 40, 0.3) !important; }
.receiving-view .row-expiring { background: rgba(212, 160, 58, 0.3) !important; }

/* Qty cells */
.receiving-view .qty-expected {
  color: var(--text-secondary);
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.85rem;
  text-align: center;
}
.receiving-view .qty-received {
  position: relative;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
}
.receiving-view .qty-confirm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid var(--border);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.8rem;
  margin-left: 0.35rem;
  vertical-align: middle;
  transition: all 0.15s;
  flex-shrink: 0;
}
.receiving-view .qty-confirm-btn:hover {
  border-color: var(--success);
  color: var(--success);
  background: rgba(46,125,50,0.1);
}
.receiving-view .qty-confirm-btn.confirmed {
  border-color: var(--success);
  color: #fff;
  background: var(--success);
  pointer-events: none;
}
.receiving-view .qty-match { background: rgba(46,125,50,0.10) !important; }
.receiving-view .qty-mismatch { background: rgba(212,160,58,0.12) !important; }
.receiving-view .qty-cell-inner { display: flex; align-items: center; gap: 0.25rem; }
.receiving-view .qty-cell-inner span { flex: 1; }

/* Pills + badges */
.receiving-view .unexpected-pill {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0.05rem 0.4rem;
  background: rgba(230, 81, 0, 0.15);
  color: #E65100;
  border: 1px solid rgba(230, 81, 0, 0.4);
  border-radius: 3px;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  cursor: help;
  vertical-align: middle;
}
[data-theme="dark"] .receiving-view .unexpected-pill {
  background: rgba(255, 152, 0, 0.18);
  color: #FFB74D;
  border-color: rgba(255, 183, 77, 0.45);
}
.receiving-view tr.row-unexpected { box-shadow: inset 4px 0 0 #E65100; }
[data-theme="dark"] .receiving-view tr.row-unexpected { box-shadow: inset 4px 0 0 #FFB74D; }
.receiving-view .dup-badge {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 2px;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-left: 0.35rem;
  cursor: pointer;
  line-height: 1.25;
}
.receiving-view .dup-badge.exact { background: #E65100; color: #FFF; }
.receiving-view .dup-badge.possible {
  background: transparent;
  color: #FF9800;
  border: 1px solid rgba(255, 152, 0, 0.5);
}
.receiving-view .dup-row-border { border-left: 3px solid #FF9800 !important; }
.receiving-view .incomplete-pill {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 2px;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: transparent;
  color: #FFA726;
  border: 1px solid rgba(255, 167, 38, 0.4);
  vertical-align: middle;
  margin-left: 0.35rem;
  cursor: help;
  line-height: 1.25;
}
.receiving-view .complete-pill {
  display: inline-block;
  padding: 0.1rem 0.4rem;
  border-radius: 3px;
  font-size: 0.65rem;
  font-weight: 600;
  background: rgba(76, 175, 80, 0.15);
  color: #4CAF50;
  vertical-align: middle;
  margin-left: 0.35rem;
}
.receiving-view .missing-tag-pill {
  display: inline-block;
  padding: 0.1rem 0.4rem;
  border-radius: 3px;
  font-size: 0.65rem;
  font-weight: 600;
  background: rgba(239, 83, 80, 0.15);
  color: #EF5350;
  vertical-align: middle;
}
.receiving-view .confidence-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 0.35rem;
  vertical-align: middle;
}
.receiving-view .confidence-dot.high { background: #4CAF50; }
.receiving-view .confidence-dot.low { background: #FFC107; }
.receiving-view .confidence-dot.none { background: #EF5350; }
.receiving-view .confidence-tooltip { position: relative; cursor: help; }
.receiving-view .confidence-tooltip:hover::after {
  content: attr(data-reason);
  position: absolute;
  bottom: 100%;
  left: 0;
  padding: 0.3rem 0.6rem;
  background: #333;
  color: #FFF;
  font-size: 0.75rem;
  border-radius: 4px;
  white-space: nowrap;
  z-index: 300;
  pointer-events: none;
}
.receiving-view .row-delete {
  opacity: 0;
  background: none;
  color: #EF5350;
  font-size: 1rem;
  padding: 0.2rem 0.4rem;
  transition: opacity 0.15s;
  border: none;
}
.receiving-view tr:hover .row-delete { opacity: 1; }
.receiving-view tr.kb-focus { outline: 2px solid var(--accent); outline-offset: -2px; }
.receiving-view .checkbox-cell { width: 30px; text-align: center; }
.receiving-view .checkbox-cell input { accent-color: var(--accent); }

/* Bulk action bar (fixed at bottom) */
.receiving-view .bulk-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0.65rem 1.25rem;
  background: var(--surface);
  border-top: 2px solid var(--accent);
  display: none;
  align-items: center;
  gap: 0.75rem;
  z-index: 150;
  box-shadow: 0 -4px 16px rgba(0,0,0,0.3);
}
.receiving-view .bulk-bar.show { display: flex; }
.receiving-view .bulk-bar-count { font-weight: 600; font-size: 0.9rem; }
.receiving-view .bulk-bar select {
  padding: 0.4rem 0.5rem;
  background: var(--input-bg);
  color: var(--text-primary);
  border: 1px solid var(--input-border);
  border-radius: 2px;
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.85rem;
}

/* History panel */
.receiving-view .history-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 500;
  display: none;
}
.receiving-view .history-overlay.show { display: block; }
.receiving-view .history-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 380px;
  max-width: 90vw;
  background: var(--surface);
  border-left: 1px solid var(--border);
  z-index: 501;
  display: none;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.3s;
}
.receiving-view .history-panel.show { display: flex; transform: translateX(0); }
.receiving-view .history-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem;
  border-bottom: 1px solid var(--border);
}
.receiving-view .history-panel-header h3 {
  font-family: 'Saira Condensed', 'DM Sans', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  font-weight: 800;
  font-size: 1.5rem;
}
.receiving-view .history-panel-close {
  background: none;
  color: var(--text-secondary);
  font-size: 1.25rem;
  border: none;
}
.receiving-view .history-list {
  flex: 1;
  overflow-y: auto;
  padding: 0.5rem;
}
.receiving-view .history-entry {
  padding: 0.5rem 0.6rem;
  border-bottom: 1px solid var(--border);
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.82rem;
}
.receiving-view .history-entry-time {
  color: var(--text-secondary);
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.receiving-view .history-entry-action {
  font-weight: 600;
  letter-spacing: 0.04em;
}
.receiving-view .history-entry-detail {
  color: var(--text-secondary);
  margin-top: 0.15rem;
}
.receiving-view .history-panel-footer {
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--border);
}

/* Confirmation dialog */
.receiving-view .dialog-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 600;
  display: none;
  align-items: center;
  justify-content: center;
}
.receiving-view .dialog-overlay.show { display: flex; }
.receiving-view .dialog-box {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem;
  max-width: 420px;
  width: 90%;
  box-shadow: 0 12px 40px rgba(0,0,0,0.4);
  color: var(--text-primary);
}
.receiving-view .dialog-box h3 {
  margin-bottom: 0.75rem;
  font-size: 1.1rem;
  font-family: 'Saira Condensed', 'DM Sans', sans-serif;
  letter-spacing: 0.01em;
  text-transform: uppercase;
}
.receiving-view .dialog-box p { color: var(--text-secondary); margin-bottom: 1.25rem; font-size: 0.9rem; }
.receiving-view .dialog-box input[type="text"] {
  width: 100%;
  padding: 0.5rem 0.75rem;
  background: var(--input-bg);
  color: var(--text-primary);
  border: 1px solid var(--input-border);
  border-radius: 6px;
  font-size: 0.9rem;
  margin-bottom: 1rem;
}
.receiving-view .dialog-actions { display: flex; gap: 0.5rem; justify-content: flex-end; }
.receiving-view .dialog-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 0.8rem;
  margin-top: 0.5rem;
  text-align: left;
}
.receiving-view .dialog-form label {
  display: flex;
  flex-direction: column;
  font-size: 0.75rem;
  color: var(--text-secondary);
  gap: 0.22rem;
}
.receiving-view .dialog-form label.full-row { grid-column: 1 / -1; }
.receiving-view .dialog-form label .req { color: #E65100; font-weight: 700; }
.receiving-view .dialog-form input,
.receiving-view .dialog-form select {
  padding: 0.45rem 0.55rem;
  background: var(--bg);
  color: var(--text-primary);
  border: 1px solid var(--border);
  border-radius: 4px;
  font-size: 0.85rem;
  font-family: inherit;
}
.receiving-view .dialog-form input:focus,
.receiving-view .dialog-form select:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 2px rgba(212, 160, 58, 0.15);
}
.receiving-view .dialog-form input.invalid {
  border-color: #EF5350;
  box-shadow: 0 0 0 2px rgba(239, 83, 80, 0.15);
}
.receiving-view .dialog-form .helper {
  font-size: 0.7rem;
  color: var(--text-secondary);
  grid-column: 1 / -1;
  margin-top: -0.1rem;
  line-height: 1.35;
}

/* METRC manifest header chip */
.receiving-view .manifest-header-chip {
  margin: 0 0 0.85rem 0;
  padding: 0.85rem 1rem;
  background: var(--card-bg, rgba(255,255,255,0.04));
  border: 1px solid var(--input-border, rgba(255,255,255,0.1));
  border-left: 3px solid var(--accent);
  border-radius: 8px;
}
.receiving-view .manifest-header-chip .mh-row-top {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-bottom: 0.55rem;
}
.receiving-view .manifest-header-chip .mh-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: 0.01em;
}
.receiving-view .manifest-header-chip .mh-muted { color: var(--text-secondary); font-weight: 400; }
.receiving-view .manifest-header-chip .mh-badges {
  display: flex; gap: 0.35rem; flex-wrap: wrap;
  margin-left: auto;
}
.receiving-view .manifest-header-chip .mh-badge {
  font-size: 0.7rem; font-weight: 600;
  padding: 0.18rem 0.5rem;
  border-radius: 100px;
  background: rgba(255,255,255,0.06);
  color: var(--text-primary);
}
.receiving-view .manifest-header-chip .mh-badge-info { background: rgba(70, 130, 180, 0.18); color: #79b1d9; }
.receiving-view .manifest-header-chip .mh-badge-success { background: rgba(80, 170, 90, 0.18); color: #7bc485; }
.receiving-view .manifest-header-chip .mh-badge-warn { background: rgba(212, 160, 58, 0.18); color: var(--warning); }
.receiving-view .manifest-header-chip .mh-badge-risk { background: rgba(239, 83, 80, 0.18); color: #EF5350; }
.receiving-view .manifest-header-chip .mh-toggle {
  background: transparent;
  border: 1px solid var(--input-border, rgba(255,255,255,0.15));
  color: var(--text-secondary);
  font-size: 0.7rem;
  padding: 0.18rem 0.55rem;
  border-radius: 100px;
  cursor: pointer;
}
.receiving-view .manifest-header-chip .mh-toggle:hover { color: var(--text-primary); border-color: var(--accent); }
.receiving-view .manifest-header-chip .mh-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.7rem 1rem;
}
.receiving-view .manifest-header-chip .mh-cell-wide { grid-column: 1 / -1; }
.receiving-view .manifest-header-chip .mh-label {
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-secondary);
  margin-bottom: 0.2rem;
}
.receiving-view .manifest-header-chip .mh-value {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
}
.receiving-view .manifest-header-chip .mh-sub {
  font-size: 0.75rem;
  color: var(--text-secondary);
  line-height: 1.45;
}
.receiving-view .manifest-header-chip .mh-route {
  font-size: 0.7rem;
  color: var(--text-secondary);
  line-height: 1.5;
  max-height: 5.4em;
  overflow: hidden;
  position: relative;
}

/* Detail row: extra columns shown for METRC packages (strain, lab, source) */
.receiving-view tr.metrc-detail-row td {
  background: rgba(255,255,255,0.02);
  border-top: none !important;
  font-size: 0.72rem;
  color: var(--text-secondary);
  padding: 0.35rem 0.5rem 0.55rem 2.4rem;
}
.receiving-view tr.metrc-detail-row .mh-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.25rem 1rem;
}
.receiving-view tr.metrc-detail-row .mh-detail-key {
  text-transform: uppercase;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  color: var(--text-secondary);
  opacity: 0.75;
  margin-right: 0.35rem;
}
.receiving-view tr.metrc-detail-row .mh-detail-val {
  font-family: 'IBM Plex Mono', ui-monospace, monospace;
  font-size: 0.7rem;
  color: var(--text-primary);
}
.receiving-view .lab-pill {
  display: inline-block;
  font-size: 0.62rem;
  padding: 0.08rem 0.45rem;
  border-radius: 100px;
  margin-left: 0.35rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  vertical-align: middle;
}
.receiving-view .lab-pill.lab-passed { background: rgba(80, 170, 90, 0.15); color: #7bc485; }
.receiving-view .lab-pill.lab-failed { background: rgba(239, 83, 80, 0.18); color: #EF5350; }
.receiving-view .lab-pill.lab-untested { background: rgba(212, 160, 58, 0.18); color: var(--warning); }
.receiving-view .retail-pill {
  display: inline-block;
  font-size: 0.62rem;
  padding: 0.08rem 0.45rem;
  border-radius: 100px;
  margin-left: 0.35rem;
  background: rgba(70, 130, 180, 0.18);
  color: #79b1d9;
  font-weight: 600;
}
.receiving-view .strain-chip {
  display: inline-block;
  font-size: 0.7rem;
  padding: 0.08rem 0.5rem;
  border-radius: 4px;
  margin-left: 0.35rem;
  background: rgba(255,255,255,0.06);
  color: var(--text-secondary);
  font-style: italic;
}

/* Print styles (only when printing the receiving view) */
@media print {
  .receiving-view .toolbar,
  .receiving-view .filter-bar,
  .receiving-view .bulk-bar,
  .receiving-view .history-overlay,
  .receiving-view .history-panel,
  .receiving-view .dialog-overlay,
  .receiving-view .uncat-banner,
  .receiving-view .dashboard,
  .receiving-view .row-delete,
  .receiving-view .checkbox-cell,
  .receiving-view .upload-screen,
  .receiving-view .mapping-screen { display: none !important; }
  .receiving-view .main-screen { display: block !important; }
  .receiving-view .table-container { padding: 0; }
  .receiving-view table { font-size: 10pt; }
  .receiving-view thead th { position: static; background: #FFF; border-bottom: 2px solid #000; }
  .receiving-view .cat-header {
    color: #000 !important;
    border-left: 4px solid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .receiving-view tbody td { border-bottom: 1px solid #CCC; }
  .receiving-view .cat-header,
  .receiving-view tbody tr {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}
