:root {
  color-scheme: light;
  --lihua-green: #008c69;
  --lihua-green-dark: #075342;
  --lihua-green-soft: #e8f5ef;
  --lihua-gold: #c79a25;
  --lihua-gold-soft: #fff7df;
  --lihua-red: #d94646;
  --lihua-red-soft: #fff0ee;
  --ink: #183d33;
  --muted: #5d7068;
  --line: #d6e2db;
  --surface: #ffffff;
  --canvas: #f3f7f3;
  --focus-ring: rgba(0, 140, 105, .28);
  --focus-contrast: #c79a25;
  --control-height: 44px;
  font-family: Inter, "Noto Sans SC", "PingFang SC", Arial, sans-serif;
  background: var(--canvas);
  color: var(--ink);
}

.app-shell[hidden] { display: none !important; }
.local-launch-guidance {
  box-sizing: border-box;
  width: min(760px, calc(100% - 32px));
  margin: 8vh auto;
  padding: clamp(22px, 5vw, 34px);
  border: 1px solid #dcc36d;
  border-radius: 16px;
  background: linear-gradient(135deg, #fffdf5, #f4faf5);
  color: #173f35;
  font-family: var(--font-sans, system-ui, sans-serif);
  line-height: 1.55;
}
.local-launch-guidance__tag { margin: 0 0 8px; color: #8a6413; font-size: .76rem; font-weight: 850; letter-spacing: .06em; }
.local-launch-guidance h1 { margin: 0 0 10px; color: #173f35; font-size: clamp(1.35rem, 3vw, 1.85rem); }
.local-launch-guidance h2 { margin: 22px 0 8px; color: #245b40; font-size: 1.05rem; }
.local-launch-guidance p { margin: 0 0 12px; }
.local-launch-guidance a { color: #075f44; font-weight: 850; overflow-wrap: anywhere; }
.local-launch-guidance__footnote { color: #5d6d65; font-size: .84rem; }
.app-ready .local-launch-guidance { display: none; }

* { box-sizing: border-box; }
/* Author grid/flex declarations must not unhide role-gated forms or closed
   workflow panels. This also keeps stale import options off the screen. */
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; touch-action: manipulation; }
button:disabled, input:disabled, select:disabled, textarea:disabled { cursor: not-allowed; opacity: .68; }

.skip-link {
  position: fixed;
  z-index: 10;
  top: 10px;
  left: 10px;
  transform: translateY(-160%);
  border-radius: 9px;
  padding: 10px 14px;
  color: #fff;
  background: var(--lihua-green-dark);
  box-shadow: 0 8px 22px rgba(6, 62, 50, .24);
  transition: transform .16s ease;
}
.skip-link:focus { transform: translateY(0); }

.app-frame { min-height: 100vh; display: grid; grid-template-columns: 300px minmax(0, 1fr); }
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  padding: 22px 16px;
  background: linear-gradient(180deg, #063e32 0%, #075443 55%, #063d31 100%);
  color: #f7fffb;
  border-right: 1px solid rgba(255, 255, 255, .1);
}

.brand-lockup { display: grid; gap: 10px; text-decoration: none; color: inherit; margin: 0 8px 22px; }
.brand-logo { width: 100%; max-height: 94px; object-fit: contain; object-position: left center; display: block; }
.brand-caption { color: #d7e9e0; font-size: .67rem; letter-spacing: .1em; font-weight: 800; }
.sidebar-label { margin: 0 8px 9px; color: #b6d3c6; font-size: .67rem; letter-spacing: .11em; font-weight: 800; }
.stage-nav { display: grid; gap: 4px; }
.stage-link {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-height: var(--control-height);
  padding: 10px 11px;
  color: #dbece4;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 10px;
  transition: transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.stage-link span { color: #b9d4c7; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .7rem; }
.stage-link strong { font-size: .86rem; line-height: 1.2; }
.stage-link:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.16); }
.stage-link:active { transform: translateY(1px); }
.stage-link.active { background: rgba(255,255,255,.12); border-color: rgba(207,170,54,.66); color: #fff; }
.stage-link.active span { color: #edc444; }
.stage-link--closed { border-color: rgba(207,170,54,.42); background: rgba(207,170,54,.08); }
.stage-link--closed span { color: #edc444; }

.role-indicator { margin: auto 8px 0; padding: 15px 0 0; border-top: 1px solid rgba(255,255,255,.16); }
.role-indicator h2 { margin: 9px 0 5px; font-size: .92rem; }
.role-indicator p { color: #c0d8cc; margin: 0; font-size: .75rem; line-height: 1.45; }
.role-indicator ul { display: grid; gap: 6px; list-style: none; padding: 0; margin: 12px 0 0; }
.role-indicator li { color: #e0eee7; font-size: .76rem; }

.workspace { min-width: 0; padding: 30px clamp(16px, 3vw, 44px) 56px; max-width: 1680px; width: 100%; }
.topbar { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; margin-bottom: 18px; }
.eyebrow { margin: 0 0 8px; color: var(--lihua-green); font-weight: 800; letter-spacing: .09em; font-size: .71rem; }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 900px; margin-bottom: 8px; font-size: clamp(1.45rem, 2.1vw, 2.05rem); line-height: 1.16; letter-spacing: -.018em; }
h2 { margin: 0 0 7px; font-size: clamp(1.28rem, 2vw, 1.72rem); line-height: 1.2; }
h3 { margin: 0 0 7px; font-size: 1.02rem; line-height: 1.28; }
.subtle, .rule, .microcopy, small, .view-heading p, .card-heading p { color: var(--muted); line-height: 1.48; }
.subtle { margin-bottom: 0; max-width: 980px; font-size: .95rem; }
.microcopy { margin: 0; font-size: .84rem; }
small { display: block; font-size: .77rem; font-weight: 500; }

.language { display: flex; min-height: calc(var(--control-height) + 2px); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: var(--surface); flex: 0 0 auto; box-shadow: 0 2px 8px rgba(13, 72, 52, .04); }
.language-button { min-width: 52px; min-height: var(--control-height); border: 0; background: transparent; padding: 9px 12px; color: var(--lihua-green-dark); font-weight: 750; transition: background .15s ease, color .15s ease; }
.language-button:hover:not(.active) { background: var(--lihua-green-soft); }
.language-button.active { background: var(--lihua-green-dark); color: #fff; }

.notice, .feedback { border-radius: 11px; padding: 13px 15px; margin-bottom: 12px; line-height: 1.48; }
.notice { background: var(--lihua-gold-soft); border: 1px solid #e8ce7c; color: #725c17; }
.notice.neutral { background: var(--lihua-green-soft); border-color: #b6dbc9; color: #245943; }
.build-identity { display: grid; gap: 4px; margin-bottom: 12px; padding: 11px 14px; border: 1px solid #b8d8c7; border-radius: 11px; background: #f1faf5; color: #215a40; font-size: .82rem; line-height: 1.42; }
.build-identity strong { color: var(--lihua-green-dark); font-size: .84rem; }
.build-identity span, .build-identity small { overflow-wrap: anywhere; }
.feedback.success { background: #ddf3e5; border: 1px solid #83c59c; color: #155d37; }
.feedback.danger { background: var(--lihua-red-soft); border: 1px solid #e7aba1; color: #8e2e25; }
.feedback-detail { display: grid; gap: 5px; }
.feedback-detail p { margin: 0; }

.app-view { animation: reveal .16s ease-out; }
.app-view[hidden] { display: none; }
@keyframes reveal { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: translateY(0); } }
.view-heading, .card-heading, .inline-heading, .audit-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.view-heading { margin: 25px 0 16px; }
.view-heading p, .card-heading p { margin-bottom: 0; max-width: 900px; }
.heading-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; align-items: flex-start; justify-content: flex-end; gap: 8px; }
.section-help { flex: 0 1 290px; min-width: 0; border: 1px solid #c7dfd1; border-radius: 10px; background: #fbfdfb; color: #365f4f; }
.section-help summary { display: flex; align-items: center; min-height: var(--control-height); padding: 8px 11px; color: var(--lihua-green-dark); cursor: pointer; font-size: .78rem; font-weight: 800; list-style: none; }
.section-help summary::-webkit-details-marker { display: none; }
.section-help summary::after { content: "?"; display: inline-grid; place-items: center; width: 18px; height: 18px; margin-left: 7px; border: 1px solid #89b8a1; border-radius: 50%; color: var(--lihua-green-dark); font-size: .72rem; font-weight: 900; }
.section-help[open] summary { border-bottom: 1px solid #d6e5dc; }
.section-help p { margin: 0; padding: 10px 11px 11px; color: #466759; font-size: .78rem; line-height: 1.42; overflow-wrap: anywhere; }
.card { background: var(--surface); border: 1px solid var(--line); border-radius: 15px; padding: clamp(16px, 2vw, 24px); box-shadow: 0 10px 28px rgba(13, 72, 52, .055); transition: border-color .16s ease, box-shadow .16s ease; }
.card:focus-within { border-color: #8bbda6; box-shadow: 0 12px 30px rgba(13, 72, 52, .09); }
.dashboard-card { margin-top: 16px; }
.plain-language-card { display: grid; gap: 10px; margin-top: 16px; background: linear-gradient(135deg, #fbfdfb, #fffdf4); }
.plain-language-card h3 { margin-bottom: 0; }
.plain-language-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.plain-language-list div { padding: 10px 12px; border: 1px solid #d7e6dc; border-radius: 10px; background: rgba(255,255,255,.74); }
.plain-language-list dt { color: var(--lihua-green-dark); font-size: .82rem; font-weight: 850; }
.plain-language-list dd { margin: 4px 0 0; color: #476458; font-size: .8rem; line-height: 1.38; }
.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.summary-card { border: 1px solid var(--line); background: var(--surface); border-radius: 13px; padding: 15px; display: grid; gap: 4px; }
.summary-link {
  position: relative;
  min-height: 104px;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.summary-link::after {
  content: "→";
  position: absolute;
  right: 14px;
  bottom: 12px;
  color: var(--lihua-green);
  font-size: 1.05rem;
  font-weight: 900;
  transition: transform .16s ease;
}
.summary-link:hover { border-color: #8fbba8; background: #fcfffd; box-shadow: 0 11px 22px rgba(13, 72, 52, .09); transform: translateY(-2px); }
.summary-link:hover::after { transform: translateX(3px); }
.summary-link:active { transform: translateY(0); }
.summary-card span { color: var(--muted); font-size: .77rem; font-weight: 700; }
.summary-card strong { max-width: calc(100% - 24px); color: var(--lihua-green-dark); font-size: .94rem; overflow-wrap: anywhere; }
.summary-card small { max-width: calc(100% - 24px); color: #557368; line-height: 1.35; overflow-wrap: anywhere; }
.role-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: 9px; margin-top: 14px; }
.role-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(116px, auto) minmax(0, 1fr);
  align-items: start;
  gap: 5px 10px;
  border-left: 3px solid var(--lihua-gold);
  padding: 10px 12px;
  background: #fafcf9;
  color: #456257;
  line-height: 1.38;
}
.role-card strong { min-width: 0; color: var(--ink); font-size: .82rem; overflow-wrap: anywhere; }
.role-card span { min-width: 0; font-size: .82rem; overflow-wrap: anywhere; }

.scope-tag { display: inline-flex; align-items: center; border: 1px solid #b2d7c4; border-radius: 999px; color: #216044; background: #eff9f3; padding: 5px 8px; font-size: .65rem; font-weight: 850; letter-spacing: .05em; white-space: nowrap; }
.sidebar .scope-tag { background: rgba(255,255,255,.1); color: #e9f8ee; border-color: rgba(255,255,255,.23); }
.danger-tag { background: var(--lihua-red-soft); border-color: #e6afa4; color: #9b3623; }
.warning-tag { background: var(--lihua-gold-soft); border-color: #ead284; color: #725c18; }

.stage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.stage-grid.two-up { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.stage-grid:has(#cargo-measurement-form) { grid-template-columns: minmax(0, 1fr); }
#cargo-declaration-confirmation { display: grid; gap: 12px; min-width: 0; }
#cargo-declaration-confirm-submit { white-space: normal; overflow-wrap: anywhere; }
.stage-card { min-width: 0; }
.cargo-intake-card { margin-bottom: 16px; }
.inbound-receipt-card, .loading-dock-section { display: grid; gap: 14px; }
.loading-dock-section { margin-top: 18px; padding-top: 18px; border-top: 1px solid #dfe9e2; }
.dock-board { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.dock-card { display: grid; gap: 4px; min-width: 0; padding: 12px; border: 1px solid #c7dfd1; border-radius: 10px; background: #f8fcf9; }
.dock-card strong { color: var(--lihua-green-dark); font-size: .88rem; }
.dock-card span { font-size: .78rem; font-weight: 850; }
.dock-card small { color: #537065; font-size: .74rem; line-height: 1.35; overflow-wrap: anywhere; }
.dock-card.free { border-left: 4px solid var(--lihua-green); }
.dock-card.receiving { border-left: 4px solid var(--lihua-gold); background: #fffaf0; }
.dock-card.loading { border-left: 4px solid #487cb6; background: #f3f8fd; }
.dock-release-form { margin-top: 0; }
.empty-workflow-card { max-width: 760px; display: grid; gap: 13px; }
.empty-workflow-card .scope-tag { justify-self: start; }
.weight-card { display: grid; gap: 4px; margin-top: 16px; }
.workflow-safety-card, .supplier-claim-section, .claim-lifecycle-section, .controlled-change-section { display: grid; gap: 8px; padding: 14px; border: 1px solid #c7dfd1; border-radius: 12px; background: linear-gradient(135deg, #f7fcf8, #fffdf4); }
.workflow-safety-card { border-left: 4px solid var(--lihua-gold); }
.supplier-claim-section .card-heading { margin-bottom: 0; }
.claim-lifecycle-section, .controlled-change-section { border-left: 4px solid var(--lihua-gold); }
.claim-lifecycle-section + .claim-lifecycle-section { margin-top: 12px; }
.controlled-change-context, .controlled-transfer-context { display: grid; gap: 5px; margin: 0; padding: 10px 12px; border: 1px solid #d5e5da; border-radius: 9px; background: #f8fcf9; color: #406557; font-size: .8rem; line-height: 1.45; overflow-wrap: anywhere; }
.controlled-change-context strong, .controlled-transfer-context strong { color: var(--lihua-green-dark); }

.catalog-overview-card { display: grid; gap: 12px; margin-bottom: 16px; }
.catalog-overview-card .scope-tag { justify-self: start; }
.catalog-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.catalog-summary-grid span { display: grid; gap: 4px; border-left: 3px solid var(--lihua-gold); padding: 8px 10px; background: #fafcf9; color: #456257; }
.catalog-summary-grid b { color: var(--muted); font-size: .72rem; }
.catalog-summary-grid strong { color: var(--lihua-green-dark); font-size: 1rem; }
.catalog-summary-grid small { overflow-wrap: anywhere; }
.catalog-search-card { margin-bottom: 16px; }
.catalog-filter-form { grid-template-columns: minmax(220px, 1.5fr) minmax(160px, .8fr) minmax(190px, .9fr) auto; align-items: end; margin-top: 0; }
.catalog-search-field { min-width: 0; }
.catalog-filter-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.catalog-filter-actions button { min-height: var(--control-height); }
.catalog-view-mode { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding-top: 14px; margin-top: 14px; border-top: 1px solid #e0e9e2; }
.catalog-view-mode > div:first-child { display: grid; gap: 3px; min-width: 0; }
.catalog-view-mode strong { color: var(--lihua-green-dark); font-size: .84rem; }
.catalog-view-mode p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.4; }
.catalog-view-mode-buttons { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.catalog-view-mode-buttons .secondary { min-height: 38px; padding: 8px 11px; font-size: .78rem; }
.catalog-view-mode-buttons .secondary.active { background: var(--lihua-green-dark); color: #fff; border-color: var(--lihua-green-dark); }
.catalog-results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.catalog-record { display: grid; align-content: start; gap: 9px; padding: 16px; min-width: 0; }
.catalog-record-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.catalog-record-heading code { color: var(--lihua-green-dark); font-size: .8rem; font-weight: 800; overflow-wrap: anywhere; }
.catalog-record h3 { margin: 0; font-size: 1rem; line-height: 1.32; }
.catalog-alternate-name, .catalog-group, .catalog-ean, .catalog-issues { margin: 0; overflow-wrap: anywhere; }
.catalog-alternate-name { color: var(--muted); font-size: .83rem; }
.catalog-group { color: #456257; font-size: .76rem; line-height: 1.4; }
.catalog-facts { display: grid; gap: 7px; margin: 0; }
.catalog-facts div { display: grid; gap: 2px; }
.catalog-facts dt { color: var(--muted); font-size: .7rem; font-weight: 800; }
.catalog-facts dd { margin: 0; color: var(--ink); font-size: .8rem; line-height: 1.35; }
.catalog-ean { color: #567267; font-size: .72rem; line-height: 1.4; border-top: 1px solid #e5ece6; padding-top: 8px; }
.catalog-issues { color: #8e2e25; font-size: .74rem; line-height: 1.4; }
.catalog-pagination { display: flex; justify-content: center; align-items: center; gap: 12px; margin: 20px 0 8px; color: var(--muted); font-size: .84rem; text-align: center; }
.catalog-pagination button { min-width: 108px; }
.catalog-product-link { width: fit-content; margin-top: 9px; text-decoration: none; font-size: .78rem; }
.catalog-results--list { grid-template-columns: 1fr; }
.catalog-record--list { grid-template-columns: 76px minmax(0, 1.2fr) minmax(150px, .65fr) minmax(175px, .8fr); gap: 13px; align-items: center; }
.catalog-list-media { align-self: stretch; display: grid; place-items: center; }
.catalog-list-image, .catalog-list-placeholder { width: 76px; height: 76px; border-radius: 10px; object-fit: cover; background: #eaf3ed; box-shadow: inset 0 0 0 1px rgba(17, 71, 52, .12); }
.catalog-list-placeholder { display: grid; place-items: center; background: linear-gradient(135deg, #0e8060, #d9ad31); color: #fff; }
.catalog-list-placeholder span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.catalog-list-main { display: grid; align-content: center; gap: 6px; min-width: 0; }
.catalog-list-main .catalog-record-heading { margin-bottom: 1px; }
.catalog-list-main h3 { margin: 0; }
.catalog-list-facts { display: grid; gap: 8px; margin: 0; }
.catalog-list-facts div { display: grid; gap: 2px; }
.catalog-list-facts dt { color: var(--muted); font-size: .69rem; font-weight: 800; }
.catalog-list-facts dd { margin: 0; color: var(--ink); font-size: .78rem; line-height: 1.34; overflow-wrap: anywhere; }
.catalog-list-actions { display: grid; align-content: center; justify-items: start; gap: 7px; min-width: 0; }
.catalog-list-actions .catalog-product-link { margin-top: 0; }
.catalog-list-actions .catalog-issues { margin-top: 1px; }
.catalog-media-status { margin: 0; color: #5f4d15; font-size: .74rem; line-height: 1.35; }
.catalog-results--photos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.catalog-record--photos { grid-template-rows: auto 1fr; gap: 0; padding: 0; overflow: hidden; }
.catalog-photo-media { display: grid; min-height: 170px; aspect-ratio: 4 / 3; background: linear-gradient(135deg, #edf7f1, #fff7df); }
.catalog-photo-image, .catalog-photo-placeholder { width: 100%; height: 100%; min-height: 170px; object-fit: cover; background: #eaf3ed; }
.catalog-photo-placeholder { display: grid; place-items: center; background: linear-gradient(135deg, #0e8060, #d9ad31); color: #fff; }
.catalog-photo-placeholder span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem; font-weight: 800; letter-spacing: .1em; }
.catalog-photo-copy { display: grid; align-content: start; gap: 7px; padding: 14px; min-width: 0; }
.catalog-photo-copy code { color: var(--lihua-green-dark); font-size: .78rem; font-weight: 800; overflow-wrap: anywhere; }
.catalog-photo-copy h3 { margin: 0; }
.catalog-photo-copy .catalog-product-link { margin-top: 1px; }

form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.compact-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
label { display: grid; gap: 6px; color: #2e5546; font-size: .86rem; font-weight: 700; }
input, select, textarea { width: 100%; min-height: var(--control-height); border: 1px solid #b9cbc0; border-radius: 9px; padding: 10px 12px; color: var(--ink); background: #fff; transition: border-color .14s ease, box-shadow .14s ease, background .14s ease; }
input:hover, select:hover, textarea:hover { border-color: #8db9a3; }
textarea { resize: vertical; min-height: 88px; }
input:focus, select:focus, textarea:focus { outline: 3px solid var(--focus-ring); outline-offset: 1px; border-color: var(--lihua-green); background: #fcfffd; }
button:focus-visible, .stage-link:focus-visible, .summary-link:focus-visible, .brand-lockup:focus-visible { outline: 3px solid var(--focus-contrast); outline-offset: 3px; }
.full-width { grid-column: 1 / -1; }
.check { grid-template-columns: 18px 1fr; align-items: start; }
.check input { width: 18px; min-height: 18px; height: 18px; margin-top: 2px; accent-color: var(--lihua-green); }
.primary, .secondary, .line-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--control-height);
  border-radius: 10px;
  padding: 11px 15px;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
  transition: transform .14s ease, border-color .14s ease, background .14s ease, box-shadow .14s ease, color .14s ease;
}
.primary { background: var(--lihua-green); color: #fff; border: 1px solid var(--lihua-green); box-shadow: 0 5px 12px rgba(0, 140, 105, .16); }
.primary:hover:not(:disabled) { background: var(--lihua-green-dark); border-color: var(--lihua-green-dark); box-shadow: 0 8px 16px rgba(7, 83, 66, .24); transform: translateY(-1px); }
.secondary { background: #fff; color: var(--lihua-green-dark); border: 1px solid #8eb8a2; }
.secondary:hover:not(:disabled) { background: var(--lihua-green-soft); border-color: var(--lihua-green); transform: translateY(-1px); }
.line-remove { background: #fff; color: #a23831; border: 1px solid #e6afa4; padding: 8px 12px; font-size: .78rem; }
.line-remove:hover:not(:disabled) { background: var(--lihua-red-soft); border-color: #d68c82; }
.primary:active:not(:disabled), .secondary:active:not(:disabled), .line-remove:active:not(:disabled) { transform: translateY(1px); box-shadow: none; }
.primary:disabled, .secondary:disabled, .line-remove:disabled { box-shadow: none; }

.cargo-line-panel { border: 1px solid var(--line); border-radius: 11px; padding: 14px; background: #fbfdfb; }
.cargo-lines { display: grid; gap: 12px; margin-top: 13px; }
.cargo-line { border: 1px solid #cfe0d5; border-left: 4px solid var(--lihua-green); border-radius: 10px; background: #fff; padding: 13px; }
.cargo-line header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.cargo-line header h3 { min-width: 0; margin: 0; font-size: .92rem; overflow-wrap: anywhere; }
.cargo-line-grid { display: grid; grid-template-columns: minmax(210px, 1.5fr) minmax(120px, .55fr) repeat(3, minmax(105px, .55fr)); gap: 10px; align-items: end; }
.cargo-line .declared-fact { grid-column: 1 / -1; color: #557368; font-size: .76rem; }
.cargo-line .profile-status { color: #765b12; font-size: .75rem; }

.treatment-grid, .treatment-list-card, .packing-card { margin-top: 16px; }
.operation-timer-card { grid-column: 1 / -1; }
.operation-pause-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 12px; }
.server-owned-fact { display: grid; gap: 5px; align-content: start; min-height: 58px; padding: 11px 12px; border: 1px solid #b7d9c3; border-radius: 10px; background: #f4fbf6; color: #285b45; }
.server-owned-fact strong { color: var(--lihua-green-dark); font-size: .82rem; }
.server-owned-fact span { font-size: .82rem; line-height: 1.35; }
.workflow-hint, .local-test-actor-note {
  margin: 0;
  padding: 10px 11px;
  border: 1px solid #c9dfd1;
  border-radius: 9px;
  background: #f4faf6;
  color: #3d6252;
  font-size: .79rem;
  line-height: 1.45;
}
.workflow-hint.success { border-color: #9dceb0; background: #edf9f1; color: #236044; }
.workflow-hint.warning { border-color: #e7ca77; background: #fff9e8; color: #765b15; }
.procurement-boundary-card { display: grid; gap: 12px; border-left: 4px solid var(--lihua-gold); }
.procurement-access-form { grid-template-columns: minmax(240px, 1fr) minmax(220px, auto); align-items: end; margin: 0; }
.procurement-access-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: end; }
.procurement-access-actions > button { flex: 1 1 170px; }
.procurement-access-status { min-height: 1.35rem; margin: 0; color: #4b685a; font-size: .8rem; line-height: 1.42; }
.procurement-access-status.denied { color: #98392f; }
.procurement-access-status.ready { color: #216143; }
.procurement-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.procurement-summary-card { display: grid; gap: 4px; min-width: 0; padding: 13px; border: 1px solid #c9dfd1; border-radius: 11px; background: linear-gradient(135deg, #f7fcf8, #fffdf4); }
.procurement-summary-card b { color: #527065; font-size: .7rem; letter-spacing: .02em; text-transform: uppercase; }
.procurement-summary-card strong { color: var(--lihua-green-dark); font-size: 1.25rem; line-height: 1.1; overflow-wrap: anywhere; }
.procurement-summary-card span { color: var(--muted); font-size: .73rem; line-height: 1.36; overflow-wrap: anywhere; }
.procurement-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.procurement-card { display: grid; align-content: start; gap: 12px; min-width: 0; }
.procurement-card--wide { grid-column: 1 / -1; }
.procurement-list { display: grid; gap: 9px; min-width: 0; }
.procurement-row { display: grid; gap: 9px; min-width: 0; padding: 11px 12px; border: 1px solid #d6e4da; border-radius: 10px; background: #fcfffd; }
.procurement-row > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 9px; min-width: 0; }
.procurement-row h4 { margin: 0; color: var(--lihua-green-dark); font-size: .84rem; line-height: 1.33; overflow-wrap: anywhere; }
.procurement-row code { color: #285d46; font-size: .72rem; overflow-wrap: anywhere; }
.procurement-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 0; }
.procurement-facts div { display: grid; gap: 3px; min-width: 0; padding: 7px 8px; border: 1px solid #e0ebe4; border-radius: 8px; background: #fff; }
.procurement-facts dt { color: var(--muted); font-size: .65rem; font-weight: 800; line-height: 1.25; }
.procurement-facts dd { margin: 0; color: #315948; font-size: .75rem; font-weight: 750; line-height: 1.32; overflow-wrap: anywhere; }
.procurement-status { display: inline-flex; align-items: center; min-height: 24px; border: 1px solid #d4dfd7; border-radius: 999px; padding: 3px 8px; background: #f5faf7; color: #43675a; font-size: .68rem; font-weight: 850; line-height: 1.2; text-align: center; }
.procurement-status--ready, .procurement-status--staged, .procurement-status--approved, .procurement-status--shipped { border-color: #9acbae; background: #eaf8ee; color: #1c603d; }
.procurement-status--pending, .procurement-status--expected { border-color: #e1c875; background: #fff9e8; color: #735c16; }
.procurement-status--quarantined, .procurement-status--blocked, .procurement-status--rejected { border-color: #e3aaa3; background: #fff0ee; color: #96372d; }
.procurement-row .microcopy { margin: 0; }
.procurement-empty { margin: 0; padding: 13px; border: 1px dashed #c8d8cf; border-radius: 9px; color: var(--muted); font-size: .8rem; line-height: 1.45; }
.mixed-route-guidance strong { display: block; color: var(--lihua-green-dark); }
.mixed-route-guidance p { margin: 4px 0 0; line-height: 1.42; }
.local-test-actor-note {
  border-color: #e4d08d;
  background: #fffaf0;
  color: #705b1c;
}
.hold-journey, .local-uat-scenario { display: grid; gap: 10px; margin-bottom: 16px; padding: 14px; border: 1px solid #e3c777; border-radius: 11px; background: #fff9e9; color: #644d12; }
.hold-journey.neutral { border-color: #c9dfd1; background: #f4faf6; color: #3d6252; }
.hold-journey h3, .local-uat-scenario strong, .local-uat-scenario p { margin: 0; }
.hold-journey-item { display: grid; gap: 8px; padding: 11px; border: 1px solid rgba(198, 159, 43, .45); border-radius: 9px; background: rgba(255,255,255,.64); }
.hold-journey-item strong { color: var(--lihua-green-dark); overflow-wrap: anywhere; }
.hold-journey-item ol { display: flex; flex-wrap: wrap; gap: 7px; margin: 0; padding: 0; list-style: none; counter-reset: hold-step; }
.hold-journey-item li { counter-increment: hold-step; border: 1px solid #d9cfac; border-radius: 999px; padding: 4px 8px; font-size: .74rem; color: #5f665e; }
.hold-journey-item li::before { content: counter(hold-step) ". "; font-weight: 800; }
.hold-journey-item li.done { border-color: #94c4a5; background: #e7f6ec; color: #216242; }
.hold-journey-item li.current { border-color: #d59b2c; background: #fff0bf; color: #795408; font-weight: 800; }
.hold-journey-item p { margin: 0; line-height: 1.45; }
.local-uat-scenario { border-color: #91c6a6; background: #effaf3; color: #225b40; }
.local-uat-scenario p { line-height: 1.45; }
.packing-eligibility { display: grid; gap: 9px; padding: 12px; border: 1px solid #d4e2d8; border-radius: 10px; background: #fbfdfb; }
.packing-eligibility h3 { margin: 0; font-size: .92rem; }
.eligibility-list { display: grid; gap: 7px; }
.eligibility-row { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 11px; align-items: start; padding: 9px 10px; border-radius: 8px; background: #fff; border: 1px solid #dce8e0; }
.eligibility-row.ready { border-left: 4px solid var(--lihua-green); }
.eligibility-row.blocked { border-left: 4px solid var(--lihua-gold); }
.eligibility-row > div { min-width: 0; display: grid; gap: 3px; }
.eligibility-row strong, .eligibility-row span, .eligibility-row small { overflow-wrap: anywhere; }
.eligibility-row strong { color: var(--lihua-green-dark); font-size: .82rem; }
.eligibility-row span { color: var(--muted); font-size: .74rem; }
.eligibility-row b { color: #38594b; font-size: .79rem; }
.operation-result-help { grid-column: 1 / -1; padding-top: 7px; border-top: 1px solid #e1eae4; }
.operation-result-help small { color: #45675a; }
.packing-line-panel { display: grid; gap: 12px; padding-top: 4px; }
.packing-lines { display: grid; gap: 10px; }
.packing-line { border: 1px solid #cfe0d5; border-left: 4px solid var(--lihua-gold); border-radius: 10px; padding: 13px; background: #fffdf7; }
.packing-line header { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.packing-line header h3 { margin: 0; font-size: .92rem; }
.packing-line-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.packing-line .profile-status { color: #765b12; font-size: .75rem; }
.packing-custom-reason { grid-column: 1 / -1; }

.pallet-work-queue { display: grid; gap: 10px; padding: 13px; border: 1px solid #d7e6dc; border-radius: 11px; background: #fbfdfb; }
.pallet-scan-workbench, .scanner-hook-card { display: grid; gap: 12px; margin: 16px 0; padding: 14px; border: 1px solid #c7dfd1; border-left: 4px solid var(--lihua-green); border-radius: 12px; background: linear-gradient(135deg, #f4fbf7, #fffdf4); }
.scanner-capture-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 0; }
.scanner-first-note, .scanner-form-contract, .scanner-hook-note { margin: 0; padding: 10px 12px; border: 1px solid #c7dfd1; border-radius: 9px; background: #f8fcf9; color: #3c6252; font-size: .79rem; font-weight: 700; line-height: 1.45; }
.scanner-form-contract { border-color: #e5d18b; background: #fffaf0; color: #725c17; }
.scanner-session-status { min-height: 20px; margin: 0; padding: 10px 12px; border: 1px dashed #b8d5c6; border-radius: 9px; color: #49675a; font-size: .79rem; font-weight: 700; line-height: 1.45; }
.scanner-session-status.active { border-style: solid; border-color: #97c5ad; background: #edf9f2; color: #1a6644; }
.scanner-hook-card { border-left-color: var(--lihua-gold); }
.scanner-hook-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; opacity: .86; }
.scanner-capture-actions { display: grid; grid-template-columns: minmax(170px, auto) minmax(0, 1fr); align-items: center; gap: 10px; padding: 10px; border: 1px dashed #b8d5c6; border-radius: 10px; background: #f8fcf9; }
.scanner-capture-actions small, .scanner-capture-status { min-height: 18px; margin: 0; color: #49675a; font-size: .74rem; line-height: 1.35; overflow-wrap: anywhere; }
.manual-scan-exception-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px; border: 1px solid #e3bd89; border-radius: 10px; background: #fff9ee; }
.manual-scan-exception-fields[hidden] { display: none !important; }
.scanner-manual-warning { grid-column: 1 / -1; margin: 0; color: #765218; font-size: .77rem; font-weight: 750; line-height: 1.42; }
.scanner-camera-preview { grid-column: 1 / -1; display: block; width: min(100%, 390px); max-height: 260px; border: 1px solid #9dbfac; border-radius: 10px; background: #173f35; object-fit: cover; }
.scanner-queue { display: grid; gap: 8px; padding: 11px; border: 1px solid #d4e4da; border-radius: 10px; background: rgba(255,255,255,.78); }
.scanner-queue-heading, .scanner-queue-item { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.scanner-queue-heading strong { color: var(--lihua-green-dark); font-size: .86rem; }
.scanner-queue-empty { margin: 0; color: #49675a; font-size: .8rem; font-weight: 700; line-height: 1.4; }
.scanner-queue-item { padding: 9px 10px; border: 1px solid #cde0d3; border-radius: 8px; background: #f8fcf9; }
.scanner-queue-item.manual { border-color: #e1c278; background: #fffaf0; }
.scanner-queue-item div { min-width: 0; display: grid; gap: 4px; }
.scanner-queue-item code { color: var(--lihua-green-dark); font-size: .76rem; font-weight: 850; overflow-wrap: anywhere; }
.scanner-queue-item small { color: #546f63; font-size: .73rem; overflow-wrap: anywhere; }
.scanner-queue-item button { min-height: 36px; padding: 7px 10px; font-size: .76rem; }
.pallet-work-heading, .pallet-manifest-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.pallet-work-heading h3, .pallet-manifest-heading h4 { margin: 0 0 4px; color: var(--lihua-green-dark); font-size: .93rem; }
.pallet-work-heading p, .pallet-manifest-heading p { margin: 0; }
.pallet-preview-card { padding: 12px 0; border-top: 1px solid #e6eee7; }
.pallet-manifest-preview { display: grid; gap: 10px; margin-top: 10px; padding: 12px; border: 1px solid #c9dfd1; border-radius: 10px; background: linear-gradient(135deg, #f7fcf8, #fffdf4); }
.pallet-manifest-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; }
.pallet-manifest-facts div { display: grid; gap: 3px; min-width: 0; padding: 8px 9px; border: 1px solid #d8e6dc; border-radius: 8px; background: rgba(255,255,255,.76); }
.pallet-manifest-facts dt { color: var(--muted); font-size: .68rem; font-weight: 800; }
.pallet-manifest-facts dd { margin: 0; color: var(--ink); font-size: .76rem; font-weight: 750; overflow-wrap: anywhere; }
.pallet-manifest-facts code { font-size: .66rem; overflow-wrap: anywhere; }
.pallet-manifest-boxes { display: grid; gap: 6px; }
.pallet-manifest-boxes > strong { color: var(--lihua-green-dark); font-size: .8rem; }
.pallet-manifest-boxes > div { display: grid; grid-template-columns: minmax(130px, .8fr) minmax(120px, 1fr) minmax(130px, .8fr); gap: 8px; align-items: center; padding: 8px 9px; border-radius: 8px; background: rgba(255,255,255,.78); border: 1px solid #dce8e0; }
.pallet-manifest-boxes code { color: var(--lihua-green-dark); font-size: .7rem; overflow-wrap: anywhere; }
.pallet-manifest-boxes span, .pallet-manifest-boxes small { font-size: .73rem; overflow-wrap: anywhere; }

.route-directory { display: grid; gap: 12px; margin: 16px 0 0; padding: 14px; border: 1px solid #c7dfd1; border-radius: 12px; background: linear-gradient(135deg, #eff9f3, #fffdf3); }
.route-directory-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.route-directory-heading h3 { margin-bottom: 5px; }
.route-directory-section { display: grid; gap: 8px; }
.route-directory-section h4 { margin: 0; color: var(--lihua-green-dark); font-size: .9rem; }
.route-directory-drafts { padding-top: 12px; border-top: 1px dashed #c9b66c; }
.route-directory-drafts h4 { color: #81631c; }
.route-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.route-token { display: grid; align-content: start; gap: 3px; padding: 9px 10px; border-radius: 9px; background: rgba(255,255,255,.82); border: 1px solid #d7e6dc; min-width: 0; }
.route-token strong { color: var(--lihua-green-dark); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.route-token span, .route-token small { overflow-wrap: anywhere; }
.route-token span { color: #355b4d; font-size: .78rem; line-height: 1.3; }
.route-token small { color: var(--muted); font-size: .69rem; line-height: 1.3; }

.trip-capacity-card { display: grid; gap: 12px; margin-bottom: 16px; }
.trip-capacity-filter { grid-template-columns: minmax(190px, 260px) auto; align-items: end; margin: 0; }
.trip-capacity-filter button { min-width: 150px; }
.trip-capacity-overview { min-width: 0; }
.trip-capacity-list { display: grid; gap: 10px; }
.trip-capacity-row { display: grid; gap: 12px; padding: 14px; border: 1px solid #cde0d5; border-radius: 12px; background: #fcfffd; }
.trip-capacity-row > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.trip-capacity-row h4 { margin: 0 0 3px; color: var(--lihua-green-dark); font-size: 1rem; line-height: 1.3; }
.trip-capacity-row .eyebrow { margin-bottom: 4px; }
.trip-state-stack { display: grid; justify-items: end; gap: 5px; text-align: right; }
.capacity-state, .capacity-substate { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; border-radius: 999px; padding: 5px 9px; font-size: .72rem; font-weight: 850; line-height: 1.2; }
.capacity-state { border: 1px solid #d6a99f; background: var(--lihua-red-soft); color: #9b3623; }
.capacity-state.in-planned-window { border-color: #8dc7a7; background: #e7f7ed; color: #14613b; }
.capacity-state.needs-boxes { border-color: #e6ca73; background: var(--lihua-gold-soft); color: #725c18; }
.capacity-state.too-full { border-color: #d6a99f; background: var(--lihua-red-soft); color: #9b3623; }
.capacity-state.no-confirmed-truck { border-color: #d5c485; background: #fff9e7; color: #6b591c; }
.capacity-substate { border: 1px solid #d7e6dc; background: #f6faf7; color: #49675a; font-weight: 700; }
.trip-capacity-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; }
.trip-capacity-facts div { display: grid; gap: 3px; min-width: 0; padding: 9px 10px; border-radius: 9px; background: #f3f8f4; }
.trip-capacity-facts dt { color: var(--muted); font-size: .69rem; font-weight: 800; line-height: 1.32; }
.trip-capacity-facts dd { margin: 0; color: var(--ink); font-size: .87rem; font-weight: 850; overflow-wrap: anywhere; }
.trip-capacity-note { margin: 0; padding: 10px 11px; border-radius: 9px; font-size: .79rem; line-height: 1.42; }
.trip-capacity-note.warning { border: 1px solid #ead183; background: #fff9e7; color: #6d5a1b; }
.trip-capacity-note.confirmed { border: 1px solid #a6d1b6; background: #eff9f3; color: #245b40; }

.truck-layout-card, .handover-documents, .vehicle-measurement-card { display: grid; gap: 12px; padding: 15px; border: 1px solid #c7dfd1; border-radius: 12px; background: linear-gradient(135deg, #f7fcf8, #fffdf4); }
.truck-layout-card .card-heading, .handover-documents .card-heading, .vehicle-measurement-card .card-heading { margin: 0; }
.vehicle-measurement-status { display: grid; gap: 6px; padding: 12px; border: 1px solid #d5e3da; border-radius: 10px; background: #f8fcf9; color: #3f5f50; }
.vehicle-measurement-status strong { color: var(--lihua-green-dark); font-size: .92rem; }
.vehicle-measurement-status p, .vehicle-measurement-status small { margin: 0; }
.vehicle-measurement-status .vehicle-measurement-cta { justify-self: start; margin-top: 3px; }
.vehicle-measurement-status.missing { border-color: #e6ca73; background: #fff9e7; color: #6d5a1b; }
.vehicle-measurement-status.missing strong { color: #725c18; }
.vehicle-measurement-status.fits { border-color: #91c8a5; background: #eff9f3; color: #245b40; }
.vehicle-measurement-status.overflow { border-color: #e4a69f; background: #fff1ef; color: #8f342b; }
.vehicle-measurement-status.overflow strong { color: #96392d; }
.vehicle-measurement-status.pending { border-color: #d5c485; background: #fff9e7; color: #6b591c; }
.vehicle-measurement-status.test-profile { border-color: #b8a05e; background: #fff9e8; color: #69531a; }
.vehicle-measurement-status.test-profile strong { color: #725c18; }
.vehicle-measurement-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 7px; margin: 1px 0 0; }
.vehicle-measurement-facts div { display: grid; gap: 3px; min-width: 0; padding: 8px 9px; border: 1px solid rgba(89, 126, 105, .22); border-radius: 8px; background: rgba(255,255,255,.56); }
.vehicle-measurement-facts dt { color: inherit; opacity: .86; font-size: .66rem; font-weight: 800; line-height: 1.25; }
.vehicle-measurement-facts dd { margin: 0; color: var(--ink); font-size: .78rem; font-weight: 850; line-height: 1.25; overflow-wrap: anywhere; }
.vehicle-measurement-form--readonly { align-items: end; }
.vehicle-measurement-replacement-actions { display: flex; gap: 9px; flex-wrap: wrap; padding: 10px; border: 1px solid #d8c47a; border-radius: 10px; background: #fff9e8; }
.vehicle-measurement-replacement-actions button { flex: 1 1 210px; }
.vehicle-measurement-replacement-note { display: grid; gap: 4px; padding: 11px 12px; border: 1px solid #e0b9ae; border-radius: 10px; background: #fff3f0; color: #7c3428; }
.vehicle-measurement-replacement-note strong { color: #913b2c; }
.vehicle-measurement-replacement-note p { margin: 0; font-size: .8rem; line-height: 1.42; }
[data-vehicle-replacement-only][hidden] { display: none !important; }
/* Form layout rules give labels a display mode; keep hidden physical-measurement
   controls truly out of the test-only/recorded-measurement screen. */
[data-vehicle-measurement-actual][hidden] { display: none !important; }
.ready-pallet-selection { display: grid; gap: 11px; padding: 14px; border: 1px solid #c8dfd0; border-radius: 12px; background: linear-gradient(135deg, #f6fcf8, #fffcf2); }
.ready-pallet-selection-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.ready-pallet-selection-heading h3 { margin: 0 0 4px; color: var(--lihua-green-dark); font-size: .95rem; }
.ready-pallet-selection-heading p { margin: 0; }
.ready-pallet-selection-list { display: grid; gap: 8px; }
.ready-pallet-card { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 11px; border: 1px solid #d8e6dc; border-radius: 9px; background: rgba(255,255,255,.78); }
.ready-pallet-card.selected { border-color: #9fbd73; background: #f5fae8; box-shadow: inset 0 0 0 1px rgba(169, 135, 37, .15); }
.ready-pallet-card > div { display: grid; min-width: 0; gap: 3px; }
.ready-pallet-card strong { color: var(--lihua-green-dark); overflow-wrap: anywhere; }
.ready-pallet-card span, .ready-pallet-card small { color: var(--muted); font-size: .75rem; overflow-wrap: anywhere; }
.ready-pallet-card button { flex: 0 0 auto; min-width: 150px; }
.ready-pallet-selection-empty { margin: 0; color: var(--muted); font-size: .84rem; }
.advanced-load-plan-fields { display: grid; gap: 12px; padding: 10px 0 0; }
.advanced-load-plan-fields summary { color: var(--lihua-green-dark); font-size: .84rem; font-weight: 800; cursor: pointer; }
.advanced-load-plan-fields > .microcopy { margin: 0; }
.truck-layout-preview { min-width: 0; overflow-x: auto; padding: 3px 1px 8px; overscroll-behavior-inline: contain; }
.truck-layout-key { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 9px; color: var(--muted); font-size: .76rem; line-height: 1.35; }
.truck-vehicle-shell { display: grid; grid-template-columns: auto minmax(1050px, 1fr) auto; align-items: stretch; gap: 8px; min-width: max-content; }
.truck-cab-marker, .truck-door-marker { display: grid; align-items: center; justify-items: center; min-width: 46px; padding: 8px; border: 1px solid #9ab9a7; border-radius: 9px; background: #e0efe5; color: #225941; font-size: .68rem; font-weight: 900; writing-mode: vertical-rl; text-orientation: mixed; letter-spacing: .05em; }
.truck-door-marker { background: #f5efe0; border-color: #d5bd75; color: #755a17; }
.truck-layout {
  display: grid;
  grid-template-rows: repeat(2, minmax(90px, auto));
  grid-auto-rows: minmax(90px, auto);
  gap: 12px;
  min-width: 1050px;
  padding: 12px;
  border: 1px solid #cadbd0;
  border-radius: 12px;
  background: #e9f1ec;
  box-shadow: inset 0 0 0 4px #fbfdfb;
}
/* The standard UAT profile is a top view: two lanes, thirteen places in each lane. */
.truck-row {
  display: grid;
  grid-template-columns: repeat(13, minmax(0, 1fr)) !important;
  gap: 7px;
  min-width: 0;
  align-items: stretch;
  padding: 4px;
  border: 1px solid rgba(86, 128, 105, .32);
  border-radius: 10px;
  background: rgba(255, 255, 255, .42);
}
.truck-slot { min-width: 0; display: grid; gap: 4px; min-height: 90px; align-content: center; justify-items: start; overflow: hidden; border: 1px solid #aac5b5; border-radius: 8px; padding: 9px; background: #fff; color: var(--ink); text-align: left; }
.truck-slot:hover:not(:disabled) { border-color: var(--lihua-green); background: #f7fcf8; transform: translateY(-1px); }
.truck-slot span, .truck-slot small { overflow-wrap: anywhere; }
.truck-slot span { color: #557368; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .62rem; }
.truck-slot strong { width: 100%; overflow-wrap: anywhere; word-break: break-word; color: var(--lihua-green-dark); font-size: .7rem; line-height: 1.22; }
.truck-slot small { color: var(--muted); font-size: .61rem; line-height: 1.23; }
.truck-slot.occupied { border-color: #79b296; background: #eaf7ee; }
.truck-slot.fumigation-tail { border: 2px solid var(--lihua-gold); background: #fff8e1; }
.truck-slot.fumigation-tail strong { color: #896a16; }
.handover-documents-form { margin-top: 0; }
.form-unavailable { opacity: .66; }
.form-unavailable :is(input, select, textarea, button) { cursor: not-allowed; }
.draft-plan-required { margin: 8px 0 0; border: 1px solid #e3bb75; background: #fff8e8; color: #76530d; font-weight: 750; }
.document-evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.document-evidence-grid fieldset { display: grid; gap: 10px; min-width: 0; padding: 12px; border: 1px solid #d1e0d7; border-radius: 10px; background: rgba(255,255,255,.82); }
.document-evidence-grid legend { padding: 0 5px; color: var(--lihua-green-dark); font-size: .84rem; font-weight: 800; }
.document-evidence-grid input[type="file"] { padding: 8px; min-height: var(--control-height); }
.document-evidence-grid [data-evidence-status] { min-height: 18px; color: #49675a; font-size: .73rem; line-height: 1.35; overflow-wrap: anywhere; }
.evidence-field { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .55fr); gap: 10px; padding: 12px; border: 1px solid #d1e0d7; border-radius: 10px; background: #fbfdfb; }
.evidence-field > small { grid-column: 1 / -1; min-height: 18px; margin: 0; }
.evidence-field input[type="file"] { padding: 8px; min-height: var(--control-height); }
.evidence-field [data-evidence-status] { color: #49675a; font-size: .73rem; line-height: 1.35; overflow-wrap: anywhere; }

.dimension-fieldset { margin: 0; min-width: 0; border: 1px solid var(--line); border-radius: 9px; padding: 11px; }
.dimension-fieldset legend { color: #2e5546; font-size: .86rem; font-weight: 700; padding: 0 5px; }
.dimensions-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.scan-status { min-height: 48px; background: var(--lihua-green-soft); border: 1px solid #c7e2d3; border-radius: 8px; padding: 12px; margin: 16px 0; color: #2d6244; font-weight: 700; line-height: 1.4; }
.measurement-queue { display: grid; gap: 10px; margin: 16px 0; padding: 13px; border: 1px solid #d7e6dc; border-radius: 11px; background: #fbfdfb; }
.measurement-queue h4 { margin: 0 0 4px; color: var(--lihua-green-dark); font-size: .93rem; line-height: 1.3; }
.measurement-queue-actions, .measurement-submit-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.measurement-queue-actions button, .measurement-submit-actions button { flex: 1 1 180px; }
.measurement-queue-list { display: grid; grid-auto-rows: auto; align-content: start; gap: 7px; max-height: min(52vh, 360px); overflow: auto; padding-right: 3px; scrollbar-gutter: stable; }
.measurement-queue-item { align-self: stretch; min-width: 0; min-height: max-content; height: auto; display: grid; grid-template-columns: 22px minmax(0, 1fr); grid-template-areas: "check copy" ". state"; align-items: start; gap: 7px 9px; padding: 11px; border: 1px solid #d5e4da; border-radius: 9px; background: #fff; color: var(--ink); cursor: pointer; }
.measurement-queue-item:hover { border-color: #8ebba4; background: #fcfffd; }
.measurement-queue-item input { grid-area: check; width: 18px; min-height: 18px; height: 18px; margin-top: 2px; accent-color: var(--lihua-green); }
.measurement-queue-item > span:first-of-type { grid-area: copy; min-width: 0; display: grid; gap: 4px; }
.measurement-queue-item strong { display: block; min-width: 0; color: var(--lihua-green-dark); font-size: .82rem; line-height: 1.35; overflow-wrap: anywhere; }
.measurement-queue-item code { overflow-wrap: anywhere; word-break: break-word; color: var(--lihua-green-dark); font-size: .76rem; font-weight: 800; line-height: 1.35; }
.measurement-queue-item small { display: block; min-width: 0; margin-top: 0; overflow-wrap: anywhere; line-height: 1.38; }
.measurement-queue-item small code { display: inline; font-size: inherit; }
.measurement-queue-item .measurement-state { grid-area: state; justify-self: start; align-self: start; max-width: 100%; color: #825d14; background: var(--lihua-gold-soft); border: 1px solid #e6ce81; border-radius: 999px; padding: 3px 7px; font-size: .66rem; font-weight: 800; line-height: 1.28; overflow-wrap: anywhere; white-space: normal; }
.measurement-queue-item.complete { background: #f4fbf6; border-color: #b7d9c3; cursor: default; }
.measurement-queue-item.complete .measurement-state { color: #17603a; background: #e2f4e8; border-color: #9fceb0; }
.measurement-queue-empty { margin: 0; color: #406557; font-size: .83rem; font-weight: 700; }
.label-list, .entity-list { margin-top: 16px; }
.cargo-label-issue-card { display: grid; gap: 10px; margin-top: 16px; padding: 14px; border: 1px solid #ddc16e; border-left: 4px solid var(--lihua-gold); border-radius: 11px; background: linear-gradient(135deg, #fffaf0, #f7fcf8); }
.cargo-label-issue-card h4, .cargo-label-issue-card p { margin: 0; }
.cargo-label-issue-card h4 { color: var(--lihua-green-dark); font-size: .96rem; }
.cargo-label-issue-card > p { color: #5b6b61; font-size: .82rem; line-height: 1.45; }
.cargo-label-issue-card .compact-form { margin: 0; align-items: end; }
.cargo-label-issue-status { min-height: 1.25rem; color: #4b685a; }
.cargo-label-preview-list { display: grid; gap: 10px; }
.cargo-label-preview-card { display: grid; gap: 10px; padding: 12px; border: 1px solid #b8d8c3; border-radius: 10px; background: #fff; }
.cargo-label-preview-card header { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.cargo-label-preview-card h5, .cargo-label-preview-card p { margin: 0; }
.cargo-label-preview-card h5 { color: var(--lihua-green-dark); font-size: .88rem; overflow-wrap: anywhere; }
.cargo-label-preview-card p { color: #4a6759; font-size: .77rem; line-height: 1.4; }
.cargo-label-preview-card code { color: var(--lihua-green-dark); font-size: .72rem; overflow-wrap: anywhere; }
.warehouse-movement-label { width: min(100%, 380px); aspect-ratio: 1; display: grid; grid-template-rows: auto auto 1fr auto; gap: 8px; padding: 14px; border: 2px solid #152c22; background: #fff; color: #101a14; }
.warehouse-movement-label__top { display: flex; justify-content: space-between; gap: 8px; align-items: start; }
.warehouse-movement-label__top strong { display: inline-flex; padding: 3px 6px; border: 1px solid #101a14; color: #101a14; font-size: .65rem; letter-spacing: .05em; }
.warehouse-movement-label__top code { max-width: 58%; text-align: right; font-size: .58rem; color: #263f31; }
.warehouse-movement-label__headline { font-family: "Arial Narrow", Arial, "Noto Sans SC", sans-serif; font-size: clamp(20px, 5.5vw, 27pt); font-weight: 900; line-height: 1; letter-spacing: -.035em; white-space: nowrap; overflow: hidden; text-overflow: clip; }
.warehouse-movement-label__facts { display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 5px 8px; margin: 0; }
.warehouse-movement-label__facts div { min-width: 0; }
.warehouse-movement-label__facts dt { color: #496257; font-size: .55rem; font-weight: 900; line-height: 1.05; }
.warehouse-movement-label__facts dd { margin: 2px 0 0; color: #152c22; font-size: .71rem; font-weight: 700; line-height: 1.12; overflow-wrap: anywhere; }
.warehouse-movement-label__symbols { display: grid; grid-template-columns: 29% minmax(0, 1fr); align-items: end; gap: 10px; }
.warehouse-movement-label__symbols .qr-symbol { width: 100%; aspect-ratio: 1; border: 1px solid #d6dfd8; }
.warehouse-movement-label__symbols .barcode-symbol { width: 100%; height: 58px; border: 1px solid #d6dfd8; }
.cargo-label-symbols { display: grid; grid-template-columns: minmax(115px, 148px) minmax(0, 1fr); gap: 12px; align-items: center; }
.cargo-label-symbols .machine-symbol { display: block; max-width: 100%; background: #fff; }
.cargo-label-symbols .qr-symbol { width: 100%; aspect-ratio: 1; border: 1px solid #e0e8e2; }
.cargo-label-symbols .barcode-symbol { width: 100%; height: 72px; border: 1px solid #e0e8e2; }
.cargo-label-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0; }
.cargo-label-facts div { display: grid; gap: 2px; min-width: 0; padding: 7px 8px; border: 1px solid #e2ebe5; border-radius: 8px; background: #fbfdfb; }
.cargo-label-facts dt { color: var(--muted); font-size: .65rem; font-weight: 800; }
.cargo-label-facts dd { margin: 0; color: #315948; font-size: .74rem; font-weight: 750; overflow-wrap: anywhere; }
.cargo-label-preview-card .secondary { justify-self: start; }
.token-list { display: grid; gap: 6px; }
.box-token { width: 100%; text-align: left; border: 1px dashed #9aafa0; background: #fbfdfb; padding: 9px 10px; border-radius: 9px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .75rem; overflow-wrap: anywhere; }
button.box-token { min-height: var(--control-height); cursor: pointer; transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease, background .14s ease; }
button.box-token:hover { border-style: solid; border-color: var(--lihua-green); background: #f2faf5; box-shadow: 0 5px 12px rgba(13, 72, 52, .08); transform: translateY(-1px); }
button.box-token.selected { border-style: solid; border-color: var(--lihua-gold); background: var(--lihua-gold-soft); box-shadow: 0 0 0 3px rgba(199, 154, 37, .12); }
button.box-token:active { transform: translateY(0); }
.box-token.scanned { background: #dff3e5; border-style: solid; border-color: #60a776; }
.box-token.needs-measurement { border-color: #d5b653; background: #fffdf5; }
.box-token.measurement-complete { border-color: #83bf99; }
.box-token span { display: block; }
.box-token small { margin-top: 4px; font-family: Inter, "Noto Sans SC", "PingFang SC", Arial, sans-serif; }
.result { min-height: 48px; margin-top: 16px; border-radius: 8px; padding: 12px; line-height: 1.4; background: #f2f5f2; color: #496257; }
.result.success { background: #dff3e5; color: #155d37; }
.result.danger { background: var(--lihua-red-soft); color: #9b3623; }
.rule { margin: 16px 0 0; font-size: .88rem; }
.subsection-divider { border-top: 1px solid #e1e9e2; margin: 22px 0; }

.entity-row { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(105px, 1fr) minmax(70px, .55fr); gap: 10px; padding: 10px 0; border-top: 1px solid #e6eee7; font-size: .82rem; }
.entity-row.lot-row { grid-template-columns: minmax(0, 1.35fr) repeat(4, minmax(95px, .72fr)); }
.entity-row.claim-row { grid-template-columns: minmax(0, 1.2fr) repeat(3, minmax(115px, .85fr)); }
.entity-row div { display: grid; gap: 3px; min-width: 0; }
.entity-row span { color: var(--muted); overflow-wrap: anywhere; }
.entity-row strong { overflow-wrap: anywhere; }
.entity-row code { grid-column: 1 / -1; color: #416153; white-space: normal; overflow-wrap: anywhere; font-size: .72rem; }
.box-references { grid-column: 1 / -1; display: grid; gap: 5px; }
.box-references > div { display: grid; gap: 3px; }
.box-references span { font-size: .74rem; }
.box-references code { grid-column: auto; }
.empty-state { color: var(--muted); font-size: .86rem; margin: 16px 0 0; }
.audit-filter-form { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; margin-top: 14px; }
.audit-filter-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.audit-filter-actions button { min-width: 132px; }
.audit-list { list-style: none; padding: 0; margin: 14px 0 0; border-top: 1px solid #e3ece4; }
.audit-list li { display: grid; grid-template-columns: minmax(180px, .5fr) 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid #e3ece4; font-size: .84rem; }
.audit-list time { color: var(--muted); }
.audit-list div { display: grid; gap: 3px; }
.audit-list .audit-event-copy { gap: 5px; }
.audit-list .audit-event-copy strong { color: var(--lihua-green-dark); }
.audit-list span { color: var(--muted); overflow-wrap: anywhere; font-size: .76rem; line-height: 1.35; }
.audit-list .empty { display: block; color: var(--muted); }
.catalog-media-state { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 11px; align-items: center; margin: 14px 0; padding: 10px; border: 1px dashed #d6c884; border-radius: 12px; background: linear-gradient(135deg, #fffcf1, #f6faef); }
.catalog-media-placeholder { display: grid; place-items: center; min-height: 68px; border-radius: 9px; background: linear-gradient(135deg, #0e8060, #d9ad31); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.4); }
.catalog-media-placeholder span { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.catalog-local-image { display: block; width: 76px; height: 76px; border-radius: 9px; object-fit: cover; background: #eaf3ed; box-shadow: inset 0 0 0 1px rgba(17, 71, 52, .12); }
.catalog-media-state div:last-child { display: grid; gap: 3px; min-width: 0; }
.catalog-media-state strong { color: #5f4d15; font-size: .84rem; }
.catalog-media-state p, .catalog-media-state small { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.35; }

@media (max-width: 1180px) {
  .app-frame { grid-template-columns: 242px minmax(0, 1fr); }
  .stage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stage-grid.two-up { grid-template-columns: 1fr; }
  .procurement-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .procurement-grid { grid-template-columns: 1fr; }
  .operation-pause-controls { grid-template-columns: 1fr; }
  .cargo-line-grid { grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(100px, .65fr)); }
  .cargo-line-grid > label:nth-child(2) { grid-column: 1 / -1; max-width: 180px; }
  .catalog-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .audit-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-results { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-results--list { grid-template-columns: 1fr; }
  .catalog-record--list { grid-template-columns: 72px minmax(0, 1.2fr) minmax(140px, .65fr) minmax(150px, .75fr); gap: 11px; }
  .catalog-list-image, .catalog-list-placeholder { width: 72px; height: 72px; }
  .catalog-results--photos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .route-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trip-capacity-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pallet-manifest-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .document-evidence-grid { grid-template-columns: 1fr; }
  .evidence-field { grid-template-columns: 1fr; }
  .scanner-capture-form, .scanner-hook-grid { grid-template-columns: 1fr; }
  .manual-scan-exception-fields { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .app-frame { display: block; }
  .sidebar { position: static; height: auto; padding: 15px; overflow: visible; }
  .brand-lockup { grid-template-columns: 145px minmax(0, 1fr); align-items: center; margin: 0 0 12px; }
  .brand-logo { max-height: 58px; }
  .stage-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stage-link { grid-template-columns: 22px minmax(0, 1fr); padding: 8px; }
  .stage-link strong { font-size: .76rem; }
  .role-indicator { display: none; }
  .workspace { padding: 24px 16px 42px; }
}

@media (max-width: 760px) {
  .role-card { grid-template-columns: 1fr; gap: 4px; }
  .measurement-queue { padding: 12px; }
  .measurement-queue-list { max-height: min(56vh, 420px); }
  .scanner-capture-actions { grid-template-columns: 1fr; }
  .scanner-capture-actions .secondary { width: 100%; }
  .truck-layout-preview { margin-inline: -2px; }
  .vehicle-measurement-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vehicle-measurement-status .vehicle-measurement-cta { width: 100%; }
}

@media (max-width: 576px) {
  .topbar, .view-heading, .inline-heading, .card-heading { flex-direction: column; }
  .topbar { gap: 15px; }
  .heading-actions { width: 100%; justify-content: flex-start; }
  .section-help { width: 100%; max-width: none; }
  .stage-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; overflow: visible; padding-bottom: 0; }
  .sidebar-label { grid-column: 1 / -1; }
  .stage-link { min-width: 0; min-height: 48px; padding: 9px; gap: 7px; }
  .stage-link strong { font-size: .74rem; overflow-wrap: anywhere; }
  .summary-grid, .stage-grid, .role-grid, .plain-language-list { grid-template-columns: 1fr; }
  .procurement-access-form, .procurement-summary-grid, .procurement-grid { grid-template-columns: 1fr; }
  .procurement-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dock-board { grid-template-columns: 1fr; }
  .catalog-summary-grid, .catalog-results { grid-template-columns: 1fr; }
  .catalog-view-mode { align-items: flex-start; flex-direction: column; }
  .catalog-view-mode-buttons { width: 100%; justify-content: stretch; }
  .catalog-view-mode-buttons .secondary { flex: 1 1 110px; }
  .catalog-results--list { grid-template-columns: 1fr; }
  .catalog-record--list { grid-template-columns: 64px minmax(0, 1fr); align-items: start; }
  .catalog-record--list .catalog-list-facts, .catalog-record--list .catalog-list-actions { grid-column: 2; }
  .catalog-list-image, .catalog-list-placeholder { width: 64px; height: 64px; }
  .catalog-results--photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-media-state { grid-template-columns: 64px minmax(0, 1fr); }
  .catalog-local-image { width: 64px; height: 64px; }
  form, .compact-form { grid-template-columns: 1fr; }
  .catalog-filter-form, .audit-filter-form { grid-template-columns: 1fr; }
  .catalog-filter-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .catalog-pagination { flex-wrap: wrap; }
  .dimensions-grid, .cargo-line-grid { grid-template-columns: 1fr; }
  .cargo-label-symbols, .cargo-label-facts { grid-template-columns: 1fr; }
  .warehouse-movement-label { width: 100%; }
  .cargo-label-preview-card .secondary { width: 100%; }
  .packing-line-grid, .route-directory-grid { grid-template-columns: 1fr; }
  .pallet-manifest-facts { grid-template-columns: 1fr; }
  .pallet-manifest-boxes > div { grid-template-columns: 1fr; }
  .eligibility-row { grid-template-columns: 1fr; }
  .trip-capacity-filter, .trip-capacity-facts, .vehicle-measurement-facts { grid-template-columns: 1fr; }
  .ready-pallet-selection-heading, .ready-pallet-card { flex-direction: column; align-items: stretch; }
  .ready-pallet-card button { width: 100%; }
  .truck-layout { min-width: 780px; }
  .trip-capacity-row > header { flex-direction: column; }
  .trip-state-stack { justify-items: start; text-align: left; }
  .cargo-line-grid > label:nth-child(2) { grid-column: auto; max-width: none; }
  .entity-row { grid-template-columns: 1fr 1fr; }
  .entity-row.lot-row, .entity-row.claim-row { grid-template-columns: 1fr 1fr; }
  .entity-row div:first-child { grid-column: 1 / -1; }
  .audit-list li { grid-template-columns: 1fr; gap: 3px; }
}

@media (pointer: coarse) {
  .primary, .secondary, .line-remove { min-height: 48px; }
  .measurement-queue-item { min-height: 52px; }
  .truck-slot { min-height: 96px; }
}

@media (max-width: 390px) {
  .stage-nav { grid-template-columns: 1fr; }
  .language { width: 100%; }
  .language-button { flex: 1; }
  .catalog-results--photos { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
/* Camera media lives outside status text so feedback cannot detach video. */
.scanner-preview-host { display: grid; gap: 12px; min-width: 0; }
.scanner-preview-host:empty { display: none; }
.scanner-preview-host video { width: min(100%, 520px); max-height: 380px; object-fit: contain; background: #102c23; border-radius: 12px; }
.operator-test-role { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 14px 18px; border: 1px solid #b6d6c7; border-radius: 14px; margin: 14px 0; background: #fff; }
.operator-test-role select { width: auto; min-width: 230px; max-width: 100%; }
.role-gated-form { opacity: .65; }
.role-access-note { grid-column: 1 / -1; padding: 10px; background: #fff5da; border-radius: 8px; }
.cargo-saved-notice { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
