:root, [data-theme="light"] {
  color-scheme: light;
  --bg: #f5f6f8;
  --surface: #ffffff;
  --surface-muted: #f8f9fb;
  --text: #17191c;
  --text-secondary: #5d6470;
  --text-subtle: #7b8492;
  --border: #dfe3e8;
  --border-strong: #c9cfd8;
  --accent: #2563eb;
  --accent-hover: #1d4ed8;
  --accent-soft: #edf3ff;
  --success: #16794b;
  --success-soft: #eaf7f0;
  --warning: #9a5d00;
  --warning-soft: #fff6df;
  --danger: #b42318;
  --danger-soft: #fff0ef;
  --info: #136a8a;
  --info-soft: #eaf6fa;
  --success-border: #a9ddc2;
  --warning-border: #efd08b;
  --danger-border: #efb3ae;
  --info-border: #add9e7;
  --topbar-bg: rgba(255, 255, 255, .96);
  --sticky-surface: rgba(255, 255, 255, .97);
  --row-hover: #fafbfc;
  --surface-warning-subtle: #fffdf6;
  --focus-ring: rgba(37, 99, 235, .28);
  --focus-ring-soft: rgba(37, 99, 235, .12);
  --spinner-track: rgba(37, 99, 235, .22);
  --button-hover-border: #aeb6c2;
  --nav-text: #454b55;
  --nav-icon: #737b88;
  --preview-backdrop: #e8ebef;
  --progress-track: #e9edf2;
  --target-surface: #f8fbff;
  --overlay: rgba(17, 24, 39, .32);
  --shadow: rgba(31, 41, 55, .12);
  --popup-shadow: rgba(15, 23, 42, .16);
  --selected-shadow: rgba(16, 24, 40, .08);
  --highlight: #d69f22;
  --highlight-ring: rgba(214, 159, 34, .24);
  --document-canvas: #ffffff;
  --panel-muted: var(--surface-muted);
  --primary: var(--accent);
  --primary-hover: var(--accent-hover);
  --primary-soft: var(--accent-soft);
  --radius: 6px;
  --radius-sm: 4px;
  --sidebar: 236px;
  --topbar: 64px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0;
}

.work-scope-panel,
.work-scope-origin {
  display: grid;
  gap: 18px;
}

.work-scope-add {
  display: flex;
  align-items: end;
  gap: 12px;
  max-width: 760px;
}

.work-scope-add label {
  display: grid;
  flex: 1;
  gap: 8px;
  font-weight: 650;
}

.work-scope-members ul {
  display: grid;
  gap: 8px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.work-scope-members li,
.work-scope-origin-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.work-scope-members li {
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
}

.work-scope-origin {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}

.work-scope-origin-heading h2,
.work-scope-origin-heading p {
  margin: 0;
}

.work-scope-origin-heading p,
.work-scope-vehicle-origin {
  color: var(--text-secondary);
  font-size: 13px;
}

.work-scope-vehicle-origin {
  display: block;
  padding: 8px 12px 0;
}

@media (max-width: 760px) {
  .work-scope-add,
  .work-scope-origin-heading {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Certification report registry */
.report-toolbar,
.report-filter,
.report-builder > form,
.report-recipient-add,
.report-confirmation .actions {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 10px;
}

.report-toolbar {
  margin-bottom: 12px;
}

.report-toolbar form,
.report-recipient-chip form {
  margin: 0;
}

.report-builder,
.report-year,
.report-month,
.report-day {
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface, #fff);
}

.report-builder {
  margin: 10px 0;
  padding: 0 14px 14px;
}

.report-builder > summary,
.report-year > summary,
.report-month > summary,
.report-day > summary {
  cursor: pointer;
  font-weight: 700;
  padding: 12px 4px;
}

.report-year {
  margin: 10px 0;
  padding: 0 10px 10px;
}

.report-year > summary {
  padding-inline: 4px;
  font-size: 1.05rem;
}

.report-year summary span {
  margin-left: 8px;
  color: var(--text-secondary);
  font-size: .82rem;
  font-weight: 500;
}

.report-month {
  margin: 12px 0;
  overflow: clip;
}

.report-month > summary {
  padding-inline: 14px;
  background: color-mix(in srgb, var(--surface, #fff) 88%, var(--blue, #3457d5) 12%);
}

.report-month summary span,
.report-day summary span {
  margin-left: 8px;
  color: var(--text-secondary);
  font-size: .82rem;
  font-weight: 500;
}

.report-day {
  margin: 0;
  min-width: 0;
}

.report-day > summary {
  padding-inline: 10px;
}

.report-days-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 8px;
  padding: 10px;
}

.report-day[open] {
  grid-column: 1 / -1;
}

.report-timeline-heading,
.report-year-picker,
.report-selected-day-heading {
  display: flex;
  align-items: center;
}

.report-timeline-heading {
  justify-content: space-between;
  gap: 16px;
  margin: 4px 0 12px;
}

.report-year-picker {
  gap: 14px;
}

.report-year-picker select {
  min-width: 118px;
  font-size: 1rem;
  font-weight: 650;
}

.report-year-picker > span,
.report-selected-day-heading > span {
  color: var(--text-secondary);
  white-space: nowrap;
}

.report-month-tabs {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0;
  border-block: 1px solid var(--border);
}

.report-month-tab {
  display: grid;
  gap: 3px;
  justify-items: center;
  min-width: 0;
  padding: 13px 6px 11px;
  border-bottom: 2px solid transparent;
  color: var(--text);
  text-decoration: none;
}

.report-month-tab span {
  color: var(--text-secondary);
  font-size: .84rem;
}

.report-month-tab:hover,
.report-month-tab:focus-visible {
  background: var(--surface-muted);
}

.report-month-tab.is-active {
  border-bottom-color: var(--accent);
  color: var(--accent);
}

.report-month-tab.is-active span { color: currentColor; }

.report-day-strip {
  display: flex;
  gap: 4px;
  max-width: 100%;
  margin: 14px 0 10px;
  padding-bottom: 8px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}

.report-day-card {
  flex: 0 0 62px;
  display: grid;
  gap: 3px;
  justify-items: center;
  padding: 8px 5px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface);
  color: var(--text);
  text-decoration: none;
  scroll-snap-align: center;
}

.report-day-card time { font-size: 1rem; font-weight: 700; }
.report-day-card span { color: var(--text-secondary); font-size: .78rem; }
.report-day-card strong { color: var(--text-secondary); font-size: .82rem; }
.report-day-card:hover,
.report-day-card:focus-visible { border-color: var(--accent); background: var(--accent-soft); }
.report-day-card.is-today { border-color: var(--accent); }
.report-day-card.is-active {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}
.report-day-card.is-active span,
.report-day-card.is-active strong { color: #fff; }

.report-selected-day-heading {
  gap: 12px;
  min-height: 48px;
  margin-bottom: 8px;
}

.report-selected-day-heading h2 {
  margin: 0;
  font-size: 1.2rem;
}

.report-day-arrow {
  display: inline-grid;
  place-items: center;
  flex: 0 0 40px;
  height: 40px;
  border: 1px solid var(--border);
  border-radius: 7px;
  color: var(--text);
  font-size: 1.35rem;
  text-decoration: none;
}

.report-day-arrow.is-disabled { color: var(--text-subtle); opacity: .55; }
.report-day-download { margin-left: 10px; color: var(--accent); font-weight: 650; }
.report-selected-day-heading .report-day-arrow:last-child { margin-left: auto; }

.report-table-current tbody td { background: var(--surface); }
.report-table-current tbody tr:hover td { background: var(--row-hover); }
.report-table-empty { padding-block: 24px !important; text-align: center; color: var(--text-secondary) !important; }

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.report-dialog {
  width: min(560px, calc(100vw - 32px));
  max-height: min(760px, calc(100vh - 32px));
  padding: 0;
  border: 1px solid var(--border-strong);
  border-radius: 14px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 18px 50px var(--popup-shadow);
}

.report-dialog::backdrop { background: var(--overlay); }

.report-dialog > form {
  display: grid;
  gap: 16px;
  padding: 18px;
}

.report-dialog header,
.report-dialog-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.report-dialog header h3 { margin: 0 auto 0 0; }
.report-dialog header button {
  width: 36px;
  height: 36px;
  border: 0;
  background: transparent;
  font-size: 1.4rem;
  cursor: pointer;
}
.report-dialog > form > label { display: grid; gap: 6px; font-weight: 700; }
.report-dialog > form > label input { width: 100%; }
.report-dialog fieldset { min-width: 0; margin: 0; border: 0; padding: 0; }
.report-dialog legend { margin-bottom: 8px; font-weight: 700; }
.report-recipient-choices { display: grid; gap: 8px; max-height: 260px; overflow-y: auto; }
.report-recipient-choice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 2px 10px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid var(--border);
  border-radius: 9px;
  cursor: pointer;
}
.report-recipient-choice input { grid-row: 1 / 3; }
.report-recipient-choice span,
.report-recipient-choice small { min-width: 0; overflow-wrap: anywhere; }
.report-recipient-choice small { color: var(--text-secondary); }
.report-dialog-actions { justify-content: flex-end; }
.report-job-row {
  display: grid;
  gap: 6px;
  justify-items: start;
}

.report-job-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 6px 14px;
  width: fit-content;
  max-width: 100%;
}

.report-table-scroll {
  max-width: 100%;
  overflow-x: auto;
  outline-offset: 2px;
}

.report-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-family: "Times New Roman", serif;
  font-size: 13px;
}

.report-table th,
.report-table td {
  min-width: 110px;
  padding: 8px 10px;
  border-right: 1px solid #9ca3af;
  border-bottom: 1px solid #9ca3af;
  vertical-align: middle;
  white-space: normal;
  color: #172033;
}

.report-table th:first-child,
.report-table td:first-child { min-width: 58px; }
.report-table th:nth-child(3),
.report-table td:nth-child(3) { min-width: 220px; }
.report-table th:nth-child(7),
.report-table td:nth-child(7) { min-width: 210px; }
.report-table th:nth-child(9),
.report-table td:nth-child(9) { min-width: 360px; }

.report-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  height: 66px;
  background: #d9ead3;
  font-style: italic;
  text-align: center;
}

.report-table tbody tr:nth-child(odd) td { background: #fff2cc; }
.report-table tbody tr:nth-child(even) td { background: #ddebf7; }
.report-table tbody tr:focus td { outline: 2px solid var(--blue, #3457d5); outline-offset: -2px; }

.report-cell-fill {
  display: block;
  margin: 0;
}
.report-cell-fill input[name="value"] {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  max-width: 220px;
  padding: 4px 6px;
  font: inherit;
}

.report-cell-filled {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.report-cell-clear {
  display: inline;
  margin: 0;
  flex: 0 0 auto;
}

.report-cell-clear button {
  box-sizing: border-box;
  margin: 0;
  padding: 0 6px;
  border: 0;
  background: transparent;
  color: #64748b;
  font: inherit;
  line-height: 1.2;
  cursor: pointer;
}

.report-cell-clear button:hover,
.report-cell-clear button:focus-visible {
  color: #0f172a;
}

.date-source {
  display: block;
  margin-top: 4px;
  color: #475569;
  font-family: Inter, ui-sans-serif, system-ui, sans-serif;
  font-size: 11px;
}

.report-confirmation {
  margin-top: 12px;
  padding: 14px;
  border-left: 4px solid var(--blue, #3457d5);
  background: var(--blue-soft, #eef3ff);
}

.report-confirmation dl {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 6px 12px;
}

.report-confirmation dt { font-weight: 700; }
.report-confirmation dd { margin: 0; overflow-wrap: anywhere; }
.explicit-confirm { display: block; margin: 12px 0; font-weight: 650; }

.report-recipient-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 14px;
}

.report-recipient-chip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 4px 8px;
  width: min(100%, 420px);
  max-width: 100%;
  padding: 9px 10px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--surface, #fff);
}

.report-recipient-chip details {
  min-width: 0;
  grid-column: 1;
  grid-row: 1;
}
.report-recipient-chip details > summary {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  list-style: none;
}
.report-recipient-chip details > summary::-webkit-details-marker { display: none; }
.report-recipient-copy { min-width: 0; display: grid; gap: 2px; overflow-wrap: anywhere; }
.report-recipient-copy small { color: var(--text-secondary); }
.report-recipient-chip details form {
  position: static;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
  width: 100%;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}
.report-recipient-chip details form label { min-width: 0; }
.report-recipient-chip details form input { min-width: 0; width: 100%; }
.report-recipient-chip > form { grid-column: 2; grid-row: 1; }
.report-jobs {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (max-width: 520px) {
  .report-recipient-chip { width: 100%; }
  .report-recipient-chip details form { grid-template-columns: 1fr; }
  .report-recipient-chip details form button { width: 100%; }
  .report-days-grid { grid-template-columns: 1fr; }
  .report-dialog-actions { align-items: stretch; flex-direction: column-reverse; }
  .report-dialog-actions > * { width: 100%; }
  .report-job-main { align-items: flex-start; flex-direction: column; }
  .report-timeline-heading,
  .report-selected-day-heading { align-items: flex-start; flex-wrap: wrap; }
  .report-selected-day-heading h2 { order: -1; width: calc(100% - 52px); }
  .report-day-download { order: 4; width: 100%; margin-left: 0; }
  .report-selected-day-heading .report-day-arrow:last-child { margin-left: 0; }
  .report-month-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .report-toolbar,
  .report-filter,
  .report-builder > form,
  .report-recipient-add {
    align-items: stretch;
    flex-direction: column;
  }

  .report-toolbar > *,
  .report-toolbar button,
  .report-filter button,
  .report-builder > form button,
  .report-recipient-add button {
    width: 100%;
  }

  .report-confirmation dl { grid-template-columns: 1fr; }
  .report-confirmation dd { margin-bottom: 8px; }
}

[data-theme="dark"] {
  color-scheme: dark;
  --bg: #17191b;
  --surface: #212426;
  --surface-muted: #282c2f;
  --text: #eceeea;
  --text-secondary: #b5b9b4;
  --text-subtle: #8f958f;
  --border: #373b3e;
  --border-strong: #4b5154;
  --accent: #596f86;
  --accent-hover: #677f97;
  --accent-soft: #27313b;
  --success: #86a08e;
  --success-soft: #26322b;
  --warning: #bfa36f;
  --warning-soft: #352f24;
  --danger: #c3827d;
  --danger-soft: #382928;
  --info: #8295a5;
  --info-soft: #283137;
  --success-border: #4d6555;
  --warning-border: #6f603f;
  --danger-border: #744b48;
  --info-border: #4d626f;
  --topbar-bg: rgba(33, 36, 38, .96);
  --sticky-surface: rgba(33, 36, 38, .97);
  --row-hover: #292d30;
  --surface-warning-subtle: #302c24;
  --focus-ring: rgba(89, 111, 134, .42);
  --focus-ring-soft: rgba(89, 111, 134, .22);
  --spinner-track: rgba(89, 111, 134, .3);
  --button-hover-border: #62696d;
  --nav-text: #c1c4c0;
  --nav-icon: #939a95;
  --preview-backdrop: #131517;
  --progress-track: #33383b;
  --target-surface: #252e36;
  --overlay: rgba(0, 0, 0, .72);
  --shadow: rgba(0, 0, 0, .3);
  --popup-shadow: rgba(0, 0, 0, .42);
  --selected-shadow: rgba(0, 0, 0, .24);
  --highlight: #ac9365;
  --highlight-ring: rgba(172, 147, 101, .24);
  --document-canvas: #ffffff;
}

[data-theme="beige"] {
  color-scheme: light;
  --bg: #e8e3da;
  --surface: #f3efe8;
  --surface-muted: #ece6dc;
  --text: #302f2c;
  --text-secondary: #68635d;
  --text-subtle: #837d74;
  --border: #cdc4b7;
  --border-strong: #b5aa9b;
  --accent: #6c725f;
  --accent-hover: #5e6553;
  --accent-soft: #dedfd6;
  --success: #5d7462;
  --success-soft: #e2e8e1;
  --warning: #806a46;
  --warning-soft: #ece4d5;
  --danger: #885f59;
  --danger-soft: #eee1dd;
  --info: #637478;
  --info-soft: #e0e6e4;
  --success-border: #a7b7a8;
  --warning-border: #c4b08d;
  --danger-border: #c5aaa4;
  --info-border: #a8b7b7;
  --topbar-bg: rgba(243, 239, 232, .96);
  --sticky-surface: rgba(243, 239, 232, .97);
  --row-hover: #e8e1d7;
  --surface-warning-subtle: #eee7db;
  --focus-ring: rgba(108, 114, 95, .32);
  --focus-ring-soft: rgba(108, 114, 95, .16);
  --spinner-track: rgba(108, 114, 95, .22);
  --button-hover-border: #9e9486;
  --nav-text: #5a554f;
  --nav-icon: #766f67;
  --preview-backdrop: #d9d1c6;
  --progress-track: #d8d0c4;
  --target-surface: #e2e3dc;
  --overlay: rgba(56, 52, 46, .48);
  --shadow: rgba(76, 69, 60, .14);
  --popup-shadow: rgba(76, 69, 60, .2);
  --selected-shadow: rgba(76, 69, 60, .12);
  --highlight: #8a754b;
  --highlight-ring: rgba(138, 117, 75, .22);
  --document-canvas: #ffffff;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--bg); }
body { margin: 0; color: var(--text); background: var(--bg); font-size: 14px; line-height: 1.45; letter-spacing: 0; }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
a { color: inherit; }
svg { display: block; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 8px;
  left: 8px;
  transform: translateY(-150%);
  padding: 8px 12px;
  border-radius: var(--radius);
  background: var(--text);
  color: #fff;
}
.skip-link:focus { transform: translateY(0); }

.app-shell { min-height: 100vh; }

.login-page { min-height: 100vh; background: var(--bg); }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.login-card { width: min(100%, 420px); padding: 34px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); box-shadow: 0 22px 60px var(--shadow); }
.login-brand { display: flex; align-items: baseline; gap: 10px; margin-bottom: 28px; }
.login-brand strong { font-size: 28px; color: var(--text); }
.login-brand span { color: var(--text-secondary); font-size: 14px; }
.login-card h1 { margin: 0 0 8px; font-size: 28px; color: var(--text); }
.login-card > p { margin: 0 0 24px; color: var(--text-secondary); line-height: 1.5; }
.login-form { display: grid; gap: 18px; }
.login-form label { display: grid; gap: 8px; color: var(--text); font-weight: 650; }
.login-form input { min-height: 46px; width: 100%; border: 1px solid var(--border-strong); border-radius: 9px; padding: 10px 12px; font: inherit; color: var(--text); background: var(--surface); }
.login-form input:focus { border-color: var(--accent); outline: 3px solid var(--focus-ring-soft); }
.login-submit { width: 100%; justify-content: center; margin-top: 2px; }
.login-error { display: grid; gap: 4px; margin-bottom: 18px; padding: 12px 14px; border: 1px solid var(--danger-border); border-radius: 9px; background: var(--danger-soft); color: var(--danger); line-height: 1.4; }
.login-theme-switcher { position: fixed; z-index: 10; top: 18px; right: 18px; padding: 5px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); box-shadow: 0 8px 24px var(--shadow); }
.login-theme-switcher .theme-switcher { margin-left: 0; }
.logout-form { margin: 0; }
.app-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 40;
  width: var(--sidebar);
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px 12px;
  border-right: 1px solid var(--border);
  background: var(--surface);
}
.brand-link {
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 0 12px;
  text-decoration: none;
}
.brand-link strong, .brand-link small { display: block; }
.brand-link strong { font-size: 17px; line-height: 1.2; }
.brand-link small { margin-top: 2px; color: var(--text-subtle); font-size: 11px; }

.app-nav { display: grid; gap: 4px; }
.nav-item {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0 12px;
  border-radius: var(--radius);
  color: var(--nav-text);
  font-weight: 620;
  text-decoration: none;
  transition: color 150ms ease, background-color 150ms ease;
}
.nav-item .icon { color: var(--nav-icon); }
.nav-item:hover { color: var(--text); background: var(--surface-muted); }
.nav-item.is-active { color: var(--accent-hover); background: var(--accent-soft); }
.nav-item.is-active .icon { color: var(--accent); }

.sidebar-status {
  margin-top: auto;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 12px;
  border-top: 1px solid var(--border);
  color: var(--text-secondary);
}
.sidebar-status strong, .sidebar-status small { display: block; }
.sidebar-status strong { color: var(--text); font-size: 12px; }
.sidebar-status small { margin-top: 2px; font-size: 10px; }
.sidebar-status-copy { min-width: 0; flex: 1 1 auto; }
.sidebar-reset-form { flex: 0 0 auto; display: grid; justify-items: end; gap: 4px; }
.sidebar-reset-button {
  min-height: 28px;
  padding: 4px 9px;
  border-color: var(--border);
  background: var(--surface-muted);
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 650;
}
.sidebar-reset-message {
  display: none !important;
  max-width: 150px;
  color: var(--text-secondary);
  text-align: right;
  line-height: 1.3;
}
.sidebar-reset-message:not(:empty) { display: block !important; }
.sidebar-reset-message.is-error { color: var(--danger); }
.sidebar-reset-message.is-success { color: var(--success); }
.status-dot { width: 8px; height: 8px; flex: 0 0 8px; margin-top: 5px; border-radius: 50%; background: var(--text-subtle); }
.status-dot-ok { background: var(--success); }

.app-column { min-height: 100vh; margin-left: var(--sidebar); }
.app-topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  height: var(--topbar);
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 28px;
  border-bottom: 1px solid var(--border);
  background: var(--topbar-bg);
}
.global-search {
  width: min(420px, 52vw);
  height: 38px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 11px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-muted);
}
.global-search .icon { color: var(--text-subtle); }
.global-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--text); }
.global-search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--focus-ring-soft); }
.mobile-create { margin-left: auto; }

.theme-switcher { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; }
.theme-option { width: 30px; min-width: 30px; min-height: 30px; padding: 5px; border: 1px solid transparent; border-radius: 50%; background: transparent; }
.theme-option:hover { transform: none; background: var(--surface-muted); }
.theme-option span { width: 16px; height: 16px; display: block; border: 1px solid var(--border-strong); border-radius: 50%; box-shadow: inset 0 0 0 2px var(--surface); }
.theme-option-light span { background: #ffffff; }
.theme-option-dark span { background: #212426; }
.theme-option-beige span { background: #e8e3da; }
.theme-option[aria-pressed="true"] { border-color: var(--accent); box-shadow: 0 0 0 2px var(--surface), 0 0 0 4px var(--accent-soft); }
.theme-option:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }

.app-main { width: min(1420px, 100%); margin: 0 auto; padding: 26px 30px 48px; }
.page-heading {
  min-height: 72px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}
.page-heading h1 { margin: 0; font-size: 24px; line-height: 1.25; font-weight: 760; }
.page-heading p { max-width: 760px; margin: 6px 0 0; color: var(--text-secondary); }
.page-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.breadcrumbs { min-height: 20px; display: flex; align-items: center; gap: 6px; margin-bottom: 4px; color: var(--text-subtle); font-size: 12px; }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs a:hover { color: var(--accent); }
.page-content { min-width: 0; animation: page-in 180ms ease both; }

.btn, button, .link-button, .file-button, .icon-button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  font-weight: 650;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease, transform 150ms ease;
}
.btn:hover, button:hover, .link-button:hover, .file-button:hover, .icon-button:hover { transform: translateY(-1px); }
.btn:active, button:active, .link-button:active, .file-button:active, .icon-button:active { transform: translateY(0); }
.btn-primary, button:not(.secondary):not(.icon-button):not(.theme-option):not(.sorter-vehicle-choice):not(.vehicle-template-card):not(.btn-danger) { background: var(--accent); color: #fff; }
.btn-primary:hover, button:not(.secondary):not(.icon-button):not(.theme-option):not(.sorter-vehicle-choice):not(.vehicle-template-card):not(.btn-danger):hover { background: var(--accent-hover); }
.btn-secondary, button.secondary, .link-button, .file-button {
  border-color: var(--border-strong);
  background: var(--surface);
  color: var(--text);
}
.btn-secondary:hover, button.secondary:hover, .link-button:hover, .file-button:hover { border-color: var(--button-hover-border); background: var(--surface-muted); }
.btn-ghost { border-color: transparent; background: transparent; color: var(--text-secondary); }
.btn-ghost:hover { background: var(--surface-muted); color: var(--text); }
.btn-danger, button.btn-danger { background: var(--danger); color: #fff; }
.icon-button { width: 38px; min-width: 38px; padding: 0; border-color: var(--border); background: var(--surface); color: var(--text); }
button.mobile-menu, a.mobile-create { display: none; }
button[disabled], .btn[aria-disabled="true"] { opacity: .48; cursor: not-allowed; transform: none; }
button.is-loading:not(.vehicle-template-card) { position: relative; color: transparent !important; pointer-events: none; }
button.vehicle-template-card.is-loading { pointer-events: none; }
button.vehicle-template-card.is-loading::after { display: none; }
button.is-loading::after {
  content: "";
  position: absolute;
  width: 15px;
  height: 15px;
  border: 2px solid var(--spinner-track);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: spin 650ms linear infinite;
}
.btn-primary.is-loading::after, .btn-danger.is-loading::after {
  border-color: rgba(255, 255, 255, .5);
  border-top-color: #fff;
}

:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 2px; }

.surface {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}
.surface + .surface { margin-top: 16px; }
.surface-header {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
}
.surface-header h2 { margin: 0; font-size: 16px; font-weight: 720; }
.surface-header p { margin: 3px 0 0; color: var(--text-secondary); font-size: 12px; }
.surface-body { padding: 16px; }
.surface-body-flush { padding: 0; }

.metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  overflow: hidden;
  margin-bottom: 16px;
}
.metric { min-width: 0; padding: 15px 16px; border-right: 1px solid var(--border); }
.metric:last-child { border-right: 0; }
.metric span { display: block; color: var(--text-secondary); font-size: 12px; }
.metric strong { display: block; margin-top: 5px; font-size: 22px; line-height: 1.1; }
.metric small { display: block; margin-top: 4px; color: var(--text-subtle); font-size: 11px; }

.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--border); }
.toolbar-group { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.filter-form { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.filter-form input, .filter-form select { width: auto; min-width: 170px; }

input, select, textarea {
  width: 100%;
  min-height: 40px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--text);
  padding: 9px 11px;
  outline: none;
}
textarea { min-height: 112px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--focus-ring-soft); }
input:disabled { color: var(--text-subtle); background: var(--surface-muted); }
label { display: grid; gap: 6px; color: var(--text); font-size: 13px; font-weight: 620; }
.form-section { padding: 18px 0; border-bottom: 1px solid var(--border); }
.form-section:first-child { padding-top: 0; }
.form-section:last-child { padding-bottom: 0; border-bottom: 0; }
.form-section h2 { margin: 0 0 4px; font-size: 15px; }
.form-section > p { margin: 0 0 14px; color: var(--text-secondary); font-size: 12px; }
.grid-2, .grid-3 { display: grid; gap: 12px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.compact-actions { margin-top: 8px; }
.note { margin-top: 8px; color: var(--text-secondary); font-size: 12px; }
.form-help { color: var(--text-secondary); font-size: 12px; }
details summary { width: fit-content; cursor: pointer; color: var(--text); font-weight: 680; }
details[open] summary { margin-bottom: 12px; }
.quality-report-details { border-top: 1px solid var(--border); }
.quality-report-details details { padding: 14px 16px; border-bottom: 1px solid var(--border); }
.quality-report-details details:last-child { border-bottom: 0; }
.quality-report-details summary { font-size: 13px; }
.quality-diagnostic { padding: 16px; border-bottom: 1px solid var(--border); background: var(--surface-muted); }
.quality-diagnostic-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 12px; }
.quality-diagnostic-heading strong, .quality-diagnostic-heading span { display: block; }
.quality-diagnostic-heading strong { font-size: 14px; }
.quality-diagnostic-heading span, .quality-diagnostic-heading p { margin: 3px 0 0; color: var(--text-secondary); font-size: 12px; }
.quality-diagnostic-heading p { max-width: 520px; text-align: right; }
.quality-diagnostic-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.quality-diagnostic-grid > div { border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.quality-diagnostic-grid h3 { margin: 0; padding: 10px 12px; border-bottom: 1px solid var(--border); font-size: 12px; }
.quality-diagnostic-ok, .quality-diagnostic-warning { margin: 0; padding: 12px; color: var(--text-secondary); font-size: 12px; }
.quality-diagnostic-warning { margin-top: 10px; padding: 0; color: var(--warning); }
.quality-diagnostic-empty { display: grid; gap: 3px; padding: 16px; border-bottom: 1px solid var(--border); background: var(--surface-muted); }
.quality-diagnostic-empty span { color: var(--text-secondary); font-size: 12px; }

.file-upload {
  min-height: 116px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 18px;
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius);
  background: var(--surface-muted);
}
.file-upload input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file-status { color: var(--text-secondary); font-size: 12px; overflow-wrap: anywhere; }
.checks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.check { min-height: 38px; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); font-weight: 520; }
.check input { width: 16px; min-height: 16px; margin: 0; }

.table-wrap { width: 100%; overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; font-size: 13px; }
.table th, .table td { min-height: 42px; padding: 10px 12px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: middle; }
.table th { color: var(--text-secondary); background: var(--surface-muted); font-size: 11px; font-weight: 700; white-space: nowrap; }
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr { transition: background-color 120ms ease; }
.table tbody tr:hover { background: var(--row-hover); }
.table td { overflow-wrap: anywhere; }
.compact-table th, .compact-table td { padding: 8px 10px; }
.row-link { color: var(--accent-hover); font-weight: 680; text-decoration: none; }
.row-link:hover { text-decoration: underline; }
.case-number-link { display: grid; gap: 2px; min-width: 150px; }
.case-number-main { display: block; color: var(--accent-hover); font-weight: 700; overflow-wrap: anywhere; }
.case-number-vehicle { display: block; color: var(--text-secondary); font-size: 11px; font-weight: 560; overflow-wrap: anywhere; }
.case-number-system { display: block; color: var(--text-subtle); font-size: 10px; font-weight: 520; text-decoration: none; }
.case-day-group + .case-day-group { border-top: 12px solid var(--bg); }
.case-day-heading {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--border);
  background: var(--surface-muted);
}
.case-day-heading h2 { margin: 0; font-size: 13px; font-weight: 740; }
.case-day-heading span { color: var(--text-secondary); font-size: 11px; }
.inline-action { display: inline-flex; margin: 0; }
.compact-button { min-height: 32px; padding: 0 10px; font-size: 11px; white-space: nowrap; }

.pill, .status-badge {
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface-muted);
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
.pill.warn, .status-badge.warning { border-color: var(--warning-border); background: var(--warning-soft); color: var(--warning); }
.pill.success, .status-badge.success { border-color: var(--success-border); background: var(--success-soft); color: var(--success); }
.pill.danger, .status-badge.danger { border-color: var(--danger-border); background: var(--danger-soft); color: var(--danger); }
.status-badge.info { border-color: var(--info-border); background: var(--info-soft); color: var(--info); }
.status-badge.sent { border-color: color-mix(in srgb, var(--accent) 42%, var(--border)); background: var(--accent-soft); color: var(--accent); }
.status-line { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.lab-presence-indicator {
  width: 32px;
  height: 32px;
  display: inline-flex;
  flex: 0 0 32px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border-strong);
  border-radius: 50%;
  background: transparent;
  color: transparent;
}
.lab-presence-indicator.is-none { opacity: .48; }
.lab-presence-indicator.is-partial {
  border-color: var(--warning-border);
  background: var(--warning-soft);
  color: var(--warning);
}
.lab-presence-indicator.is-all {
  border-color: var(--success-border);
  background: var(--success-soft);
  color: var(--success);
}
.lab-presence-indicator.is-all.is-stale {
  outline: 2px solid var(--warning-border);
  outline-offset: 2px;
}

.alert { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.alert strong { display: block; margin-bottom: 2px; }
.alert p { margin: 0; color: var(--text-secondary); }
.alert-success { border-color: var(--success-border); background: var(--success-soft); color: var(--success); }
.alert-warning { border-color: var(--warning-border); background: var(--warning-soft); color: var(--warning); }
.alert-danger, .error { border-color: var(--danger-border); background: var(--danger-soft); color: var(--danger); }
.error { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--danger-border); border-radius: var(--radius); }
.success-note { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--success-border); border-radius: var(--radius); background: var(--success-soft); color: var(--success); }

.empty-state { padding: 30px 18px; color: var(--text-secondary); text-align: center; }
.empty-state strong { display: block; margin-bottom: 5px; color: var(--text); font-size: 14px; }

.case-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.case-number { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.case-number strong { font-size: 17px; }
.case-timing { display: grid; flex: 0 0 auto; gap: 4px; justify-items: end; color: var(--text-secondary); font-size: 11px; text-align: right; }
.case-timing strong { color: var(--text); font-size: 12px; font-variant-numeric: tabular-nums; }
.case-progress-panel { display: grid; gap: 14px; margin-bottom: 16px; padding: 14px; border: 1px solid var(--info-border); border-radius: var(--radius); background: var(--info-soft); }
.case-progress-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.case-progress-summary span, .case-progress-facts span { color: var(--text-secondary); font-size: 11px; }
.case-progress-summary strong { color: var(--text); font-size: 13px; }
.case-progress-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); }
.case-progress-facts > div { min-width: 0; padding: 10px 12px; border-right: 1px solid var(--border); }
.case-progress-facts > div:last-child { border-right: 0; }
.case-progress-facts strong { display: block; margin-top: 3px; overflow-wrap: anywhere; color: var(--text); font-size: 12px; }
.case-progress-facts [data-progress-stage-elapsed], .case-progress-facts [data-progress-eta] { font-variant-numeric: tabular-nums; }
.case-progress-path { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.case-progress-path li { min-width: 0; padding: 7px 8px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--text-secondary); font-size: 10px; font-weight: 700; text-align: center; }
.case-progress-path li.is-current { border-color: var(--info-border); background: var(--info-soft); color: var(--info); }
.case-progress-path li.is-complete { border-color: var(--success-border); background: var(--success-soft); color: var(--success); }
.case-progress-skip { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding-top: 2px; }
.case-progress-skip form { margin: 0; }
.case-progress-skip strong { color: var(--text); font-size: 12px; }
.case-progress-skip .case-progress-skip-error { color: var(--danger); }
.case-progress-panel [data-progress-feedback] { color: var(--warning); font-size: 11px; font-weight: 650; }
.case-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--border); }
.case-fact { min-width: 0; padding: 13px 14px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.case-fact:nth-child(4n) { border-right: 0; }
.case-fact span { display: block; color: var(--text-secondary); font-size: 11px; }
.case-fact strong { display: block; margin-top: 4px; overflow-wrap: anywhere; }
.tabs { display: flex; gap: 2px; overflow-x: auto; border-bottom: 1px solid var(--border); background: var(--surface); }
.tab-link { min-height: 44px; display: inline-flex; align-items: center; padding: 0 14px; border-bottom: 2px solid transparent; color: var(--text-secondary); font-weight: 650; text-decoration: none; white-space: nowrap; }
.tab-link:hover { color: var(--text); background: var(--surface-muted); }
.tab-link.is-active { border-bottom-color: var(--accent); color: var(--accent-hover); }
.tab-content { padding: 16px; }
.case-card-list { display: none; }
.case-card {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  text-decoration: none;
}
.case-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.case-card-heading { color: inherit; text-decoration: none; }
.case-card-heading strong { color: var(--accent-hover); overflow-wrap: anywhere; }
.case-card .status-line > span:not(.status-badge) { color: var(--text-secondary); font-size: 12px; }
.case-card-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.case-card-facts span { padding: 9px 8px; border-right: 1px solid var(--border); color: var(--text-secondary); font-size: 11px; }
.case-card-facts span:last-child { border-right: 0; }
.case-card-facts strong { display: block; margin-top: 2px; color: var(--text); font-size: 15px; }
.case-card small { color: var(--text-subtle); }
.registry-technical-number { display: grid; gap: 4px; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.registry-technical-number span, .registry-technical-number small { color: var(--text-secondary); font-size: 11px; }
.registry-technical-number strong { font-size: 17px; overflow-wrap: anywhere; }
.registry-readonly-note { padding: 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.registry-readonly-note p { margin: 3px 0 0; color: var(--text-secondary); font-size: 12px; }
.registry-lifecycle { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.registry-lifecycle p { margin: 4px 0 0; color: var(--text-secondary); font-size: 12px; }
.registry-archive-confirm { min-width: 210px; }
.archived-case-state { min-height: 220px; display: grid; align-content: center; }

.detail-block { padding: 16px 0; border-bottom: 1px solid var(--border); }
.detail-block:first-child { padding-top: 0; }
.detail-block:last-child { padding-bottom: 0; border-bottom: 0; }
.detail-title, .small-title, .fieldset-title { margin-bottom: 10px; color: var(--text); font-size: 13px; font-weight: 720; }
.detail-subblock { margin-top: 12px; }
.kv { display: grid; grid-template-columns: minmax(130px, 220px) minmax(0, 1fr); margin: 0; }
.kv dt, .kv dd { margin: 0; padding: 9px 0; border-bottom: 1px solid var(--border); }
.kv dt { color: var(--text-secondary); }
.kv dd { overflow-wrap: anywhere; }

.two-column { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .7fr); gap: 16px; align-items: start; }
.stack { display: grid; gap: 16px; }
.operator-guide {
  display: grid;
  gap: 4px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid var(--info-border);
  border-radius: var(--radius);
  background: var(--info-soft);
  color: var(--info);
}
.operator-guide strong { color: var(--text); }
.operator-guide span { font-size: 12px; line-height: 1.45; }
.technical-details {
  margin-top: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-muted);
}
.technical-details summary {
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: 0 14px;
  cursor: pointer;
  color: var(--text-secondary);
  font-weight: 700;
}
.technical-details-body { padding: 0 14px 14px; }
.transfer-data { display: grid; gap: 14px; }
.case-source-metadata-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}
.case-source-metadata {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin-bottom: 12px;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--surface-muted);
  color: var(--text-secondary);
  font-size: 12px;
}
.case-source-metadata strong { color: var(--text); }
.vehicle-application { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.vehicle-application-summary { width: 100%; min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; cursor: pointer; list-style: none; background: var(--surface); }
.vehicle-application-summary::-webkit-details-marker { display: none; }
.vehicle-application[open] > .vehicle-application-summary { margin-bottom: 0; border-bottom: 1px solid var(--border); }
.vehicle-application-heading { min-width: 0; display: grid; gap: 3px; }
.vehicle-application-heading strong { overflow-wrap: anywhere; font-size: 17px; }
.vehicle-application-heading > span { color: var(--text-secondary); font-size: 11px; font-weight: 520; }
.vehicle-application-heading > .vehicle-application-title { min-width: 0; display: block; color: var(--text); font-size: inherit; font-weight: inherit; }
.vehicle-application-title .vehicle-lab-presence { width: 28px; height: 28px; margin-left: 8px; vertical-align: middle; }
.vehicle-application-summary-meta { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.vehicle-application-counts { color: var(--text-secondary); font-size: 11px; font-weight: 620; white-space: nowrap; }
.vehicle-application-toggle { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border: 1px solid var(--border); border-radius: var(--radius); color: var(--text-secondary); background: var(--surface); }
.vehicle-application-toggle .icon { transition: transform 140ms ease; }
.vehicle-application:not([open]) .vehicle-application-toggle .icon { transform: rotate(-90deg); }
.vehicle-application-body { display: grid; gap: 12px; padding: 14px; }
.transfer-hint { padding: 10px 12px; border: 1px solid var(--info-border); border-radius: var(--radius); background: var(--info-soft); color: var(--info); font-size: 12px; }
.transfer-group { overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.transfer-group-heading { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 14px; border-bottom: 1px solid var(--border); background: var(--surface-muted); }
.transfer-group-heading h3 { margin: 0; font-size: 14px; }
.transfer-group-heading span { color: var(--text-subtle); font-size: 11px; }
.transfer-field-list { display: grid; }
.transfer-field { min-height: 66px; display: grid; grid-template-columns: minmax(180px, .9fr) minmax(240px, 1.6fr) 108px minmax(150px, auto); gap: 14px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--border); }
.transfer-field:last-child { border-bottom: 0; }
.transfer-field-name strong, .transfer-field-name small { display: block; }
.transfer-field-name small { margin-top: 3px; color: var(--text-subtle); font-size: 10px; }
.transfer-field-value { overflow-wrap: anywhere; font-weight: 650; }
.transfer-row-warning { background: var(--surface-warning-subtle); }
.transfer-action { display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 6px; }
.transfer-review-link { min-height: 34px; white-space: nowrap; }
.transfer-quick-confirm { margin: 0; }
.transfer-confirm-icon { width: 34px; min-width: 34px; min-height: 34px; }
.transfer-confirm-icon:not(:disabled) { border-color: var(--accent); background: var(--surface); color: var(--accent); }
.transfer-confirm-icon:not(:disabled):hover { border-color: var(--accent); background: var(--accent-soft); }
.transfer-confirm-icon:disabled { border-color: var(--border); background: var(--surface-muted); color: var(--text-subtle); }
.issue-link { color: var(--accent); font-weight: 750; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.issue-link:hover { color: var(--primary-hover); text-decoration-thickness: 2px; }
[data-issue-target-container] { scroll-margin-top: calc(var(--topbar) + 18px); transition: box-shadow 180ms ease, border-color 180ms ease; }
.issue-target-active { border-color: var(--highlight) !important; box-shadow: 0 0 0 4px var(--highlight-ring), inset 4px 0 0 var(--highlight); }
.claim-approval { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.claim-approval > div { display: grid; gap: 4px; }
.claim-approval strong { font-size: 14px; }
.claim-approval span { color: var(--text-secondary); font-size: 12px; }
.claim-approval-success { border-color: var(--success-border); background: var(--success-soft); }
.claim-approval-warning { border-color: var(--warning-border); background: var(--warning-soft); }
.claim-approval form, .claim-approval button { flex: 0 0 auto; }
.claim-approval > .claim-approval-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.claim-approval-actions form { margin: 0; }
.crm-batch-selection { display: grid; gap: 12px; }
.crm-batch-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.crm-batch-toolbar-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.crm-batch-toolbar [data-crm-batch-count] { margin-left: auto; color: var(--text-secondary); font-size: 13px; font-weight: 700; }
.crm-batch-vehicle-list { display: grid; gap: 8px; }
.crm-batch-vehicle-row { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; align-items: stretch; }
.crm-batch-vehicle-row.is-readonly { grid-template-columns: minmax(0, 1fr); }
.crm-batch-vehicle-choice { display: grid; place-items: center; min-height: 56px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); cursor: pointer; }
.crm-batch-vehicle-choice:hover { border-color: var(--accent); background: var(--accent-soft); }
.crm-batch-vehicle-choice:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.crm-batch-vehicle-choice input { width: 18px; height: 18px; margin: 0; accent-color: var(--accent); }
.crm-batch-vehicle-row .claim-approval { min-width: 0; }
.crm-batch-preview-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.crm-batch-preview-item { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.crm-batch-preview-item > div { display: grid; gap: 4px; min-width: 0; }
.crm-batch-preview-item span:not(.status-badge) { color: var(--text-secondary); font-size: 13px; }
.crm-confirm-surface { display: grid; gap: 18px; padding: 20px; }
.crm-confirm-warning { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1px solid var(--warning-border); border-radius: var(--radius); background: var(--warning-soft); color: var(--warning); }
.crm-confirm-warning h2 { margin: 0; color: var(--text); font-size: 18px; }
.crm-confirm-warning p { margin: 5px 0 0; color: var(--text-secondary); }
.crm-confirm-success { display: flex; align-items: flex-start; gap: 12px; padding: 16px; border: 1px solid var(--success-border); border-radius: var(--radius); background: var(--success-soft); color: var(--success); }
.crm-confirm-success h2 { margin: 0; color: var(--text); font-size: 18px; }
.crm-confirm-success p { margin: 5px 0 0; color: var(--text-secondary); }
.crm-confirm-rules { display: grid; gap: 5px; padding: 14px; border-left: 3px solid var(--border-strong); background: var(--surface-muted); }
.crm-confirm-rules span { color: var(--text-secondary); font-size: 13px; line-height: 1.5; }
.crm-confirm-form { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 4px; }
.crm-confirm-check { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.crm-confirm-check input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--accent); }
.crm-confirm-check span { display: grid; gap: 3px; }
.crm-confirm-check small { color: var(--text-secondary); font-size: 12px; }
.case-field-review-grid { align-items: stretch; scroll-margin-top: calc(var(--topbar) + 16px); }
.case-field-current { display: grid; gap: 6px; padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.case-field-current span, .case-field-current small { color: var(--text-secondary); font-size: 11px; }
.case-field-current strong { font-size: 18px; overflow-wrap: anywhere; }
.case-field-review-form { display: grid; gap: 14px; margin-top: 18px; }
.case-field-review-form label { display: grid; gap: 7px; font-weight: 700; }
.case-field-review-form input { width: 100%; }
.document-source-list { display: grid; gap: 7px; max-height: 260px; overflow-y: auto; padding-right: 4px; }
.source-choice { display: grid; gap: 3px; padding: 10px 11px; border: 1px solid var(--border); border-radius: 6px; color: var(--text); text-decoration: none; background: var(--surface); }
.source-choice:hover { border-color: var(--primary); }
.source-choice.is-active { border-color: var(--primary); box-shadow: inset 3px 0 0 var(--primary); background: var(--primary-soft); }
.source-choice strong { font-size: 13px; }
.source-choice span { color: var(--text-subtle); font-size: 11px; }
.case-quality-separator { display: flex; align-items: center; gap: 10px; margin: 22px 0 12px; color: var(--text-subtle); font-size: 11px; }
.case-quality-separator::before, .case-quality-separator::after { height: 1px; flex: 1; content: ""; background: var(--border); }
.case-quality-form button { width: 100%; }
.review-list, .log-list, .field-review-list, .logical-review-list { display: grid; gap: 8px; }
.review-item, .log-row, .field-review-row, .logical-review-row {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
}
.log-row { grid-template-columns: 112px minmax(0, 1fr); }
.log-time { color: var(--text-subtle); font-size: 11px; font-weight: 650; }
.log-title { font-weight: 700; }
.log-text { margin-top: 3px; color: var(--text-secondary); overflow-wrap: anywhere; }
.field-review-row { grid-template-columns: minmax(0, 1fr) minmax(260px, .75fr); align-items: start; }
.field-review-heading { font-weight: 700; }
.field-review-value { margin-top: 3px; overflow-wrap: anywhere; }
.field-review-meta { margin-top: 4px; color: var(--text-secondary); font-size: 11px; }
.field-review-form, .logical-review-form, .retry-form, .compact-form, .vehicle-binding-form { display: grid; gap: 10px; }
.logical-review-row { grid-template-columns: minmax(150px, .6fr) minmax(0, 1.4fr); align-items: start; }
.logical-preview-card { width: min(100%, 240px); display: grid; margin-top: 12px; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); color: var(--text-secondary); text-decoration: none; background: var(--surface-muted); transition: border-color 120ms ease, box-shadow 120ms ease; }
.logical-preview-card:hover { border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-soft); }
.logical-preview-card:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.logical-preview-image, .logical-preview-placeholder { width: 100%; height: 138px; display: flex; align-items: center; justify-content: center; object-fit: contain; background: var(--preview-backdrop); }
.logical-preview-placeholder { flex-direction: column; gap: 7px; padding: 12px; text-align: center; font-size: 11px; }
.logical-preview-caption { padding: 8px 10px; border-top: 1px solid var(--border); background: var(--surface); font-size: 11px; font-weight: 650; }
.logical-preview-pages { width: min(100%, 240px); justify-content: flex-start; margin-top: 7px; }
.document-package-panel, .logical-workspace-section { margin-bottom: 16px; padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.logical-workspace { display: grid; gap: 14px; scroll-margin-top: calc(var(--topbar) + 16px); }
.logical-workspace-section { margin-bottom: 0; }
.logical-workspace-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.logical-workspace-header h3 { margin: 0; font-size: 16px; }
.logical-workspace-header p { margin: 4px 0 0; color: var(--text-secondary); font-size: 12px; }
.source-folder-overview { margin-bottom: 14px; padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.source-folder-grid { display: grid; gap: 10px; }
.source-folder-group { overflow: hidden; border: 1px solid var(--border); border-radius: 7px; background: var(--surface); }
.source-folder-summary { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 12px; border-bottom: 0; cursor: pointer; list-style: none; }
.source-folder-summary::-webkit-details-marker { display: none; }
.source-folder-group[open] > .source-folder-summary { margin-bottom: 0; border-bottom: 1px solid var(--border); }
.source-folder-group:not([open]) > .source-folder-summary { background: var(--surface-muted); }
.source-folder-summary > div { min-width: 0; display: grid; gap: 2px; }
.source-folder-summary span { color: var(--text-secondary); font-size: 11px; }
.source-folder-summary strong { overflow-wrap: anywhere; font-size: 13px; }
.source-folder-toggle { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--border); border-radius: var(--radius); color: var(--text-secondary); background: var(--surface); }
.source-folder-toggle .icon { transition: transform 140ms ease; }
.source-folder-group:not([open]) .source-folder-toggle .icon { transform: rotate(-90deg); }
.source-folder-body { display: grid; }
.source-folder-body > .logical-workspace { padding: 12px; border-top: 1px solid var(--border); }
.source-folder-document-list { display: grid; }
.source-folder-document-row { display: grid; grid-template-columns: 260px minmax(180px, .75fr) minmax(320px, 1fr); gap: 16px; align-items: center; padding: 14px; border-bottom: 1px solid var(--border); }
.source-folder-document-row:last-child { border-bottom: 0; }
.source-folder-document-preview { position: relative; display: grid; width: 260px; min-width: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 6px; background: var(--surface-muted); color: var(--text-secondary); text-decoration: none; }
.source-folder-document-preview iframe,
.source-folder-document-preview img { display: block; width: 100%; height: 220px; border: 0; background: var(--surface); object-fit: contain; pointer-events: none; }
.source-folder-document-preview span { display: block; padding: 8px 10px; overflow: hidden; font-size: 12px; font-weight: 700; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.source-folder-document-preview:hover { border-color: var(--primary); color: var(--primary); }
.source-folder-document-meta { min-width: 0; display: grid; gap: 3px; }
.source-folder-document-meta strong { overflow-wrap: anywhere; font-size: 13px; }
.source-folder-document-meta span { color: var(--text-secondary); font-size: 11px; }
.source-folder-document-row .vehicle-binding-form { min-width: 0; }
.package-traffic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.package-traffic-item { min-width: 0; display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 9px 11px; border: 1px solid var(--border); border-radius: 7px; background: var(--surface-muted); color: var(--text-secondary); font-size: 11px; }
.package-traffic-item strong { color: var(--text); font-size: 14px; font-variant-numeric: tabular-nums; }
.package-state-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.package-state-item { min-width: 0; display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 13px 14px; border: 1px solid var(--border); border-left-width: 3px; border-radius: 7px; background: var(--surface-muted); }
.package-state-item strong, .package-state-item small { display: block; min-width: 0; overflow-wrap: anywhere; }
.package-state-item strong { font-size: 13px; }
.package-state-item small { margin-top: 3px; color: var(--text-subtle); font-size: 10px; }
.package-state-dot { width: 10px; height: 10px; border: 2px solid var(--surface); border-radius: 50%; background: var(--text-subtle); box-shadow: 0 0 0 1px var(--border); }
.package-state-label { padding: 4px 7px; border-radius: 999px; background: var(--surface); color: var(--text-secondary); font-size: 10px; font-weight: 700; white-space: nowrap; }
.package-state-item[data-package-state="present"] { border-color: var(--success-border); background: var(--success-soft); }
.package-state-item[data-package-state="present"] .package-state-dot,
.package-traffic-item[data-traffic-state="present"] .package-state-dot { background: var(--success); box-shadow: 0 0 0 1px var(--success-border); }
.package-state-item[data-package-state="present"] .package-state-label { color: var(--success); }
.package-traffic-item[data-traffic-state="present"] { border-color: var(--success-border); }
.package-traffic-item[data-traffic-state="present"] strong { color: var(--success); }
.package-state-item[data-package-state="sorting"] { border-color: var(--warning-border); background: var(--warning-soft); }
.package-state-item[data-package-state="sorting"] .package-state-dot,
.package-traffic-item[data-traffic-state="sorting"] .package-state-dot { background: var(--warning); box-shadow: 0 0 0 1px var(--warning-border); }
.package-state-item[data-package-state="sorting"] .package-state-label { color: var(--warning); }
.package-traffic-item[data-traffic-state="sorting"] { border-color: var(--warning-border); }
.package-traffic-item[data-traffic-state="sorting"] strong { color: var(--warning); }
.package-state-item[data-package-state="missing"] { border-color: var(--danger-border); background: var(--danger-soft); }
.package-state-item[data-package-state="missing"] .package-state-dot,
.package-traffic-item[data-traffic-state="missing"] .package-state-dot { background: var(--danger); box-shadow: 0 0 0 1px var(--danger-border); }
.package-state-item[data-package-state="missing"] .package-state-label { color: var(--danger); }
.package-traffic-item[data-traffic-state="missing"] { border-color: var(--danger-border); }
.package-traffic-item[data-traffic-state="missing"] strong { color: var(--danger); }
.package-request-selector { grid-column: 2 / -1; display: inline-flex; align-items: center; gap: 7px; color: var(--text-secondary); font-size: 11px; cursor: pointer; }
.package-request-selector input { width: 16px; height: 16px; margin: 0; accent-color: var(--primary); }
.package-state-item .checklist-action { grid-column: 2 / -1; }
.package-state-item .checklist-action .secondary { min-height: 32px; padding: 6px 10px; font-size: 11px; }
.package-request-actions { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.package-request-actions p { margin: 0 auto 0 0; color: var(--text-secondary); font-size: 12px; }
.package-request-pending-note { margin-top: 16px; padding: 16px 18px; }
.document-request-status { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); }
.document-request-status h4 { margin: 0 0 8px; font-size: 13px; }
.document-request-status ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.document-request-status li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 8px 10px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface-muted); font-size: 11px; }
.document-request-status li small { color: var(--text-subtle); }
.document-request-preview .surface-body { display: grid; gap: 16px; }
.document-request-preview h3 { margin: 0; font-size: 14px; }
.document-request-labels { margin: -8px 0 0; padding-left: 22px; }
.document-request-preview .field { display: grid; gap: 6px; }
.document-request-preview .field > span { font-size: 12px; font-weight: 700; }
.document-request-preview textarea { resize: vertical; min-height: 180px; }
.document-request-confirm { display: flex; flex-wrap: wrap; gap: 10px; }
.manual-document-request .surface-body { display: grid; gap: 16px; }
.manual-request-form { display: grid; gap: 16px; }
.manual-request-search { max-width: 620px; }
.manual-request-group,
.manual-request-vehicle-group,
.manual-request-reference { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.manual-request-group-heading { display: grid; gap: 3px; }
.manual-request-group-heading span { color: var(--text-secondary); font-size: 11px; }
.manual-request-group-heading strong { font-size: 14px; overflow-wrap: anywhere; }
.manual-request-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.manual-request-option { min-width: 0; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 9px; align-items: start; padding: 11px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); cursor: pointer; }
.manual-request-option:hover { border-color: var(--primary); }
.manual-request-option:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); }
.manual-request-option input { width: 18px; height: 18px; margin: 0; accent-color: var(--primary); }
.manual-request-option strong,
.manual-request-option small { display: block; overflow-wrap: anywhere; }
.manual-request-option strong { font-size: 12px; }
.manual-request-option small { margin-top: 3px; color: var(--text-secondary); font-size: 10px; }
.manual-request-vehicles { display: grid; gap: 12px; }
.manual-request-empty { margin: 0; padding: 12px; border: 1px dashed var(--border); border-radius: var(--radius-sm); color: var(--text-secondary); text-align: center; }
.manual-request-actions { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 4px; }
.logical-accepted-list { display: grid; gap: 7px; }
.logical-accepted-card { min-width: 0; display: grid; grid-template-columns: 118px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 10px 12px; border: 1px solid var(--success-border); border-radius: 6px; background: var(--success-soft); }
.logical-accepted-card strong, .logical-accepted-card span { display: block; }
.logical-accepted-card strong { font-size: 12px; overflow-wrap: anywhere; }
.logical-accepted-card div > span { margin-top: 3px; color: var(--text-secondary); font-size: 10px; overflow-wrap: anywhere; }
.logical-accepted-preview, .logical-accepted-copy { min-width: 0; }
.logical-accepted-preview .logical-preview-stack,
.logical-accepted-preview .logical-preview-card { width: 118px; }
.logical-accepted-preview .logical-preview-card { margin-top: 0; }
.logical-accepted-preview .logical-preview-image,
.logical-accepted-preview .logical-preview-placeholder { height: 68px; }
.logical-accepted-preview .logical-preview-placeholder { padding: 6px; font-size: 9px; }
.logical-accepted-preview .logical-preview-caption { padding: 5px 6px; font-size: 9px; }
.logical-accepted-preview .logical-preview-pages { display: none; }
.logical-accepted-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.logical-accepted-actions form { margin: 0; }
.logical-accepted-actions .link-button { min-height: 30px; padding: 6px 9px; font-size: 11px; }
.logical-page-list { display: grid; gap: 10px; }
.logical-page-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
  gap: 18px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  scroll-margin-top: calc(var(--topbar) + 18px);
}
.logical-page-card:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.logical-page-preview { min-width: 0; display: grid; align-content: start; gap: 4px; }
.logical-page-preview > strong { font-size: 13px; overflow-wrap: anywhere; }
.logical-page-preview > span { color: var(--text-secondary); font-size: 11px; line-height: 1.45; }
.logical-page-kicker { color: var(--primary); font-size: 11px; font-weight: 750; }
.logical-page-inspector { min-width: 0; display: grid; align-content: start; gap: 8px; }
.logical-page-inspector form:first-child {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.logical-page-inspector form:first-child > label,
.logical-auto-vehicle { min-width: 0; display: grid; gap: 6px; color: var(--text-secondary); font-size: 11px; font-weight: 650; }
.logical-page-inspector form:first-child > button { align-self: end; justify-self: start; }
.logical-auto-vehicle { padding: 9px 11px; border: 1px solid var(--border); border-radius: 6px; background: var(--surface-muted); }
.logical-auto-vehicle strong { color: var(--text); font-size: 12px; overflow-wrap: anywhere; }
.logical-auto-vehicle small { color: var(--text-secondary); font-weight: 500; }
.logical-exclude-button { min-height: 34px; padding: 7px 10px; color: var(--warning); }
.logical-excluded-list { display: grid; gap: 7px; }
.logical-excluded-card {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 10px 12px;
  border: 1px dashed var(--border-strong);
  border-radius: 6px;
  background: var(--surface-muted);
}
.logical-excluded-card > div { min-width: 0; display: grid; gap: 3px; }
.logical-excluded-card strong { font-size: 12px; overflow-wrap: anywhere; }
.logical-excluded-card > div > span { color: var(--text-secondary); font-size: 10px; }
.logical-excluded-card .logical-preview-stack { width: 118px; }
.logical-excluded-card .logical-preview-card { width: 118px; margin-top: 5px; }
.logical-excluded-card .logical-preview-image,
.logical-excluded-card .logical-preview-placeholder { height: 68px; }
.logical-excluded-card .logical-preview-placeholder { padding: 6px; font-size: 9px; }
.logical-excluded-card .logical-preview-caption { padding: 5px 6px; font-size: 9px; }
.logical-excluded-card .logical-preview-pages { display: none; }
.logical-excluded-card form { flex: 0 0 auto; }

.review-case-list { display: grid; gap: 12px; padding: 12px; }
.review-case-card { border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.review-case-head { width: 100%; min-height: 56px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; border-bottom: 1px solid var(--border); background: var(--surface-muted); cursor: pointer; list-style: none; }
.review-case-head::-webkit-details-marker { display: none; }
.review-case-card[open] > .review-case-head { margin-bottom: 0; }
.review-case-card:not([open]) > .review-case-head { border-bottom-color: transparent; }
.review-case-heading { min-width: 0; }
.review-case-head-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.review-case-toggle { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; border: 1px solid var(--border); border-radius: var(--radius); color: var(--text-secondary); background: var(--surface); }
.review-case-toggle .icon { transition: transform 140ms ease; }
.review-case-card:not([open]) .review-case-toggle .icon { transform: rotate(-90deg); }
.review-case-head a, .review-case-head span { display: block; }
.review-case-head span:not(.status-badge) { margin-top: 3px; color: var(--text-secondary); font-size: 12px; }
.review-case-head .review-case-head-actions, .review-case-head .review-case-toggle { margin-top: 0; }
.review-case-head .review-case-head-actions, .review-case-head .status-stack { display: flex; align-items: center; }
.review-case-head .review-case-toggle { display: inline-flex; }
.review-issue-list { display: grid; }
.review-issue-row { display: grid; grid-template-columns: minmax(180px, 1.1fr) minmax(140px, 1fr) 72px minmax(130px, .8fr) minmax(110px, .7fr); gap: 10px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--border); font-size: 12px; }
.review-issue-row:last-child { border-bottom: 0; }
.review-issue-row strong, .review-issue-row span { min-width: 0; overflow-wrap: anywhere; }
.review-issue-row > span:not(.status-badge) { color: var(--text-secondary); }
.review-case-more { padding: 10px 14px; color: var(--text-secondary); font-size: 12px; background: var(--surface-muted); }

.document-card-list { display: grid; gap: 10px; }
.document-card { padding: 13px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.document-card:target { border-color: var(--accent); box-shadow: 0 0 0 3px var(--focus-ring-soft); }
.document-card-main { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.document-card-main strong, .document-card-main span { display: block; }
.document-card-main span { margin-top: 3px; color: var(--text-secondary); font-size: 12px; }
.document-card-source { min-width: 0; display: flex; align-items: flex-end; gap: 12px; margin-top: 12px; }
.document-card-source .logical-preview-stack { width: min(100%, 240px); }
.document-card-source .btn { flex: 0 0 auto; }
.document-card-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.document-card-meta > div { padding: 9px 10px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.document-card-meta span, .document-card-meta strong { display: block; }
.document-card-meta span { color: var(--text-secondary); font-size: 11px; }
.document-card-meta strong { margin-top: 3px; font-size: 12px; }
.document-card-action { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.document-card-action .vehicle-binding-form { grid-template-columns: minmax(180px, 1fr) auto; align-items: end; }

.link-review-list { display: grid; gap: 12px; }
.link-review-card { padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.link-review-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.link-review-heading strong, .link-review-heading span { display: block; }
.link-review-heading span:not(.status-badge) { margin-top: 4px; color: var(--text-secondary); font-size: 12px; }
.link-candidate-list { display: grid; gap: 8px; margin-top: 12px; }
.link-candidate { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 11px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.link-candidate-main { min-width: 0; }
.link-candidate-main span, .link-candidate-main small { display: block; margin-top: 3px; color: var(--text-secondary); overflow-wrap: anywhere; }
.link-candidate-main small { font-size: 11px; }
.link-candidate form, .link-keep-new-form { margin: 0; }
.link-candidate button, .link-keep-new-form button { white-space: nowrap; }
.link-keep-new-form { display: flex; justify-content: flex-end; margin-top: 10px; }

.segmented { display: inline-flex; align-items: center; padding: 3px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.segmented a { min-height: 30px; display: inline-flex; align-items: center; padding: 0 10px; border-radius: 4px; color: var(--text-secondary); font-size: 12px; font-weight: 650; text-decoration: none; }
.segmented a:hover { color: var(--text); }
.segmented a.is-active { background: var(--surface); color: var(--text); box-shadow: 0 1px 2px var(--selected-shadow); }

/* Quality evaluation is a protected desktop workflow, not an overview screen. */
.quality-page .app-main { width: min(1660px, 100%); }
.metrics-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  overflow: hidden;
}
.metric-card { min-width: 0; padding: 15px 16px; border-right: 1px solid var(--border); }
.metric-card:last-child { border-right: 0; }
.metric-card span, .metric-card small { display: block; color: var(--text-secondary); }
.metric-card span { font-size: 12px; }
.metric-card strong { display: block; margin-top: 5px; font-size: 22px; line-height: 1.1; }
.metric-card small { margin-top: 4px; font-size: 11px; }

.quality-progress-grid { display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 14px 18px; }
.quality-progress-item { min-width: 0; }
.quality-progress-item > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.quality-progress-item strong { font-size: 12px; }
.quality-progress-item span { color: var(--text-secondary); font-size: 10px; text-align: right; }
.progress-track { height: 6px; margin-top: 8px; border-radius: 3px; background: var(--progress-track); overflow: hidden; }
.progress-track > span { display: block; height: 100%; border-radius: inherit; background: var(--success); transition: width 240ms ease; }

.quality-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 14px; align-items: start; margin-top: 16px; }
.quality-queue { position: sticky; top: calc(var(--topbar) + 16px); max-height: calc(100vh - var(--topbar) - 32px); overflow: hidden; }
.quality-queue .surface-body { max-height: calc(100vh - var(--topbar) - 104px); padding: 8px; overflow-y: auto; }
.quality-queue-list { display: grid; gap: 4px; }
.quality-queue-item { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 8px; padding: 10px; border: 1px solid transparent; border-radius: var(--radius); text-decoration: none; }
.quality-queue-item:hover { border-color: var(--border); background: var(--surface-muted); }
.quality-queue-item.is-active { border-color: var(--accent); background: var(--accent-soft); }
.quality-queue-item strong { min-width: 0; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.quality-queue-item small { grid-column: 2; color: var(--text-subtle); font-size: 10px; }
.quality-state { grid-row: 1 / span 2; width: 8px; height: 8px; align-self: center; border-radius: 50%; background: var(--warning); color: transparent; overflow: hidden; }
.quality-state.completed { background: var(--success); }
.empty-state.compact { padding: 18px 10px; font-size: 12px; }

.quality-workspace { min-width: 0; }
.quality-start { min-height: 520px; display: grid; place-items: center; }
.quality-start-copy { width: min(660px, 100%); padding: 42px; }
.eyebrow { display: block; color: var(--accent-hover); font-size: 11px; font-weight: 760; text-transform: uppercase; }
.quality-start h2 { margin: 8px 0 6px; font-size: 24px; }
.quality-start-copy > p { margin: 0; color: var(--text-secondary); }
.quality-steps { display: grid; gap: 12px; margin: 26px 0; padding: 0; list-style: none; }
.quality-steps li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 11px; align-items: start; }
.quality-steps li > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--accent-soft); color: var(--accent-hover); font-weight: 760; }
.quality-steps strong { display: block; }
.quality-steps p { margin: 2px 0 0; color: var(--text-secondary); font-size: 12px; }
.quality-hint { margin-top: 12px !important; font-size: 11px; }

.quality-review-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(410px, .95fr); gap: 14px; align-items: start; }
#quality-review-workspace,
#case-document-parsing-workspace { scroll-margin-top: calc(var(--topbar) + 16px); }
.quality-preview-panel, .quality-decision-panel { min-width: 0; height: calc(100vh - var(--topbar) - 32px); min-height: 640px; max-height: 920px; display: flex; flex-direction: column; position: sticky; top: calc(var(--topbar) + 16px); }
.quality-decision-panel { container-type: inline-size; }
.quality-preview-viewer { min-height: 0; flex: 1; display: flex; flex-direction: column; }
.quality-preview-toolbar { min-height: 44px; display: flex; align-items: center; justify-content: flex-end; gap: 4px; padding: 7px 10px; border-bottom: 1px solid var(--border); background: var(--surface-muted); }
.quality-preview-status { margin-right: auto; color: var(--text-secondary); font-size: 11px; font-variant-numeric: tabular-nums; }
.quality-preview-toolbar [data-preview-zoom-label] { min-width: 48px; color: var(--text-secondary); font-size: 11px; font-variant-numeric: tabular-nums; text-align: center; }
.quality-preview-frame { min-height: 0; flex: 1; padding: 8px; overflow: auto; overscroll-behavior: contain; background: var(--preview-backdrop); }
.quality-preview-frame.is-pannable { cursor: grab; touch-action: none; user-select: none; }
.quality-preview-frame.is-pannable [data-preview-media] { pointer-events: none; }
.quality-preview-frame.is-panning, .quality-preview-frame.is-panning * { cursor: grabbing; }
.quality-preview-toolbar [data-preview-pan-toggle][aria-pressed="true"] { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-hover); }
.quality-preview-toolbar .preview-reset-button { width: auto; min-width: 38px; padding-inline: 7px; color: var(--text-secondary); font-size: 11px; font-weight: 760; font-variant-numeric: tabular-nums; }
.quality-preview-canvas { width: 100%; min-height: 100%; transition: opacity 120ms ease; }
.quality-preview-viewer[aria-busy="true"] .quality-preview-canvas { opacity: .72; }
.quality-preview-frame iframe, .quality-preview-frame img { width: 100%; height: auto; min-height: 100%; display: block; border: 0; border-radius: 3px; background: var(--document-canvas); transform-origin: left top; }
.quality-preview-frame img { min-height: 0; object-fit: contain; user-select: none; }
.quality-preview-viewer.is-excel .quality-preview-frame { padding: 0; overflow: hidden; background: var(--document-canvas); }
.quality-preview-viewer.is-excel .quality-preview-canvas { height: 100%; min-height: 0; }
.quality-preview-viewer.is-excel iframe[data-excel-preview] { width: 100%; height: 100%; min-height: 0; border: 0; border-radius: 0; background: var(--document-canvas); }
.quality-preview-toolbar.is-excel { gap: 10px; }
.quality-preview-panel:fullscreen,
[data-preview-panel]:fullscreen { width: 100vw; height: 100vh; min-height: 0; max-height: none; margin: 0; border: 0; border-radius: 0; position: static; inset: auto; background: var(--surface); }
[data-preview-panel]:fullscreen .quality-preview-viewer { min-height: 0; flex: 1; }
[data-preview-panel]:fullscreen .quality-preview-frame { min-height: 0; height: auto; flex: 1; }
.quality-excel-open { min-height: 32px; padding: 6px 9px; font-size: 11px; }
.quality-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.quality-exclude-control { position: relative; display: inline-flex; align-items: center; gap: 8px; }
.quality-exclude-control > summary { min-height: 38px; display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); color: var(--text-secondary); font-size: 11px; font-weight: 720; cursor: pointer; list-style: none; }
.quality-exclude-control > summary::-webkit-details-marker { display: none; }
.quality-exclude-control > summary:hover, .quality-exclude-control[open] > summary { border-color: var(--danger-border); color: var(--danger); }
.quality-exclude-other { position: relative; }
.quality-exclude-other > summary { min-height: 38px; display: inline-flex; align-items: center; padding: 7px 10px; border: 1px solid transparent; border-radius: var(--radius); color: var(--text-subtle); font-size: 11px; font-weight: 650; cursor: pointer; list-style: none; }
.quality-exclude-other > summary::-webkit-details-marker { display: none; }
.quality-exclude-other > summary:hover, .quality-exclude-other[open] > summary { color: var(--text-secondary); }
.quality-irrelevant-form { display: inline-flex; }
.quality-irrelevant-form .is-danger { min-height: 38px; }
.quality-exclude-form { position: absolute; z-index: 20; top: calc(100% + 7px); right: 0; width: 300px; display: grid; gap: 9px; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: 0 14px 34px var(--popup-shadow); }
.quality-exclude-form label { display: grid; gap: 5px; color: var(--text-secondary); font-size: 10px; font-weight: 720; }
.quality-exclude-form select, .quality-exclude-form textarea { width: 100%; min-width: 0; }
.quality-exclude-form textarea { resize: vertical; }
.quality-exclude-form p { margin: 0; color: var(--text-secondary); font-size: 10px; line-height: 1.4; }
.quality-exclude-form .is-danger { border-color: var(--danger-border); color: var(--danger); }
.page-chips { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.page-chip { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--border); border-radius: 4px; color: var(--text-secondary); font-size: 11px; font-weight: 700; text-decoration: none; }
.page-chip:hover, .page-chip.is-active { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-hover); }
.page-chip.is-assigned { border-color: var(--success-border); color: var(--success); }
.page-chip.is-excluded { opacity: .45; text-decoration: line-through; }
.page-counter { color: var(--text-secondary); font-size: 11px; }

.quality-decision-body { min-height: 0; flex: 1; padding: 0; overflow-y: auto; overscroll-behavior: contain; }
.quality-locked-banner { display: flex; align-items: flex-start; gap: 9px; margin: 12px; padding: 11px 12px; border: 1px solid var(--success-border); border-radius: var(--radius); background: var(--success-soft); color: var(--success); }
.quality-locked-banner.is-excluded, .quality-locked-banner.is-split { border-color: var(--warning-border); background: var(--warning-soft); color: var(--warning); }
.quality-locked-banner svg { flex: 0 0 auto; margin-top: 1px; }
.quality-locked-banner strong, .quality-locked-banner span { display: block; }
.quality-locked-banner strong { font-size: 12px; }
.quality-locked-banner span { margin-top: 2px; font-size: 10px; line-height: 1.4; }
.quality-locked-banner .quality-header-actions { justify-content: flex-start; margin-top: 8px; }
.quality-split-panel { display: grid; gap: 12px; margin: 0 12px 16px; padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.quality-split-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.quality-split-header h3 { margin: 0; font-size: 15px; }
.quality-split-header p { margin: 4px 0 0; color: var(--text-secondary); font-size: 12px; line-height: 1.4; }
.quality-split-form, .quality-split-status { display: grid; gap: 10px; }
.quality-split-form label { display: grid; gap: 5px; color: var(--text-secondary); font-size: 11px; font-weight: 720; }
.quality-split-assembled { display: grid; gap: 8px; }
.quality-split-assembled strong { font-size: 12px; }
.quality-split-assembled ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.quality-split-assembled li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.quality-split-assembled li span { color: var(--text-secondary); font-size: 11px; }
.quality-type-check { padding: 16px; border-bottom: 1px solid var(--border); background: var(--surface-muted); }
.quality-system-answer { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.quality-system-answer > span:first-child { color: var(--text-secondary); font-size: 12px; }
.quality-system-answer strong { margin-right: auto; }
.quality-type-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; margin-top: 12px; }
.quality-locked-type { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 8px; align-items: center; margin-top: 12px; padding: 9px 10px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
.quality-locked-type span { color: var(--text-secondary); font-size: 11px; }
.quality-locked-type strong { font-size: 12px; }
.quality-verdict-form { display: grid; }
.quality-verdict-summary { display: grid; }
.quality-field-list { display: grid; }
.quality-field-row { min-width: 0; margin: 0; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--border); }
.quality-field-row legend { max-width: 100%; padding: 0; font-size: 12px; font-weight: 740; }
.quality-field-content { display: grid; grid-template-columns: minmax(180px, .78fr) minmax(300px, 1.22fr) 38px; gap: 8px; align-items: stretch; margin-top: 5px; }
.quality-field-answer { min-height: 34px; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; padding: 6px 8px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.quality-field-answer small { flex: 1 0 100%; color: var(--text-subtle); font-size: 9px; line-height: 1.35; text-align: left; }
.quality-candidate-warning { display: inline-block; margin-left: 5px; color: var(--warning); font-weight: 700; }
.quality-value { flex: 1 1 180px; color: var(--text); font-size: 12px; font-weight: 680; overflow-wrap: anywhere; }
.quality-not-found { color: var(--warning); font-size: 12px; font-weight: 680; }
.quality-field-reprocess { width: 38px; height: 100%; min-height: 38px; align-self: stretch; border-color: var(--border); background: var(--surface); color: var(--text-secondary); }
.quality-field-reprocess:hover { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-hover); }
.quality-field-row:target { background: var(--target-surface); box-shadow: inset 3px 0 0 var(--accent); }
.quality-field-row.is-locked .quality-field-content { grid-template-columns: minmax(180px, 1fr) minmax(140px, .55fr); }
.quality-locked-verdict { min-height: 38px; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 7px 9px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); color: var(--text-secondary); font-size: 10px; font-weight: 740; text-align: center; }
.quality-locked-verdict.correct { border-color: var(--success-border); background: var(--success-soft); color: var(--success); }
.quality-locked-verdict.incorrect { border-color: var(--danger-border); background: var(--danger-soft); color: var(--danger); }
.quality-locked-verdict.missing, .quality-locked-verdict.unreadable { border-color: var(--warning-border); background: var(--warning-soft); color: var(--warning); }
.quality-locked-correction { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 8px; align-items: center; margin-top: 8px; padding: 8px 9px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.quality-locked-correction span { color: var(--text-secondary); font-size: 10px; }
.quality-locked-correction strong { min-width: 0; font-size: 11px; overflow-wrap: anywhere; }
.quality-field-feedback { display: flex; align-items: center; gap: 7px; margin-top: 7px; padding: 7px 9px; border: 1px solid var(--border); border-radius: var(--radius); font-size: 11px; font-weight: 650; line-height: 1.35; }
.quality-field-feedback svg { flex: 0 0 auto; }
.quality-field-feedback.success { border-color: var(--success-border); background: var(--success-soft); color: var(--success); }
.quality-field-feedback.neutral { border-color: var(--border-strong); background: var(--accent-soft); color: var(--accent-hover); }
.quality-field-feedback.warning { border-color: var(--warning-border); background: var(--warning-soft); color: var(--warning); }
.quality-field-feedback.is-pending::before { content: ""; width: 13px; height: 13px; flex: 0 0 13px; border: 2px solid var(--spinner-track); border-top-color: var(--accent); border-radius: 50%; animation: spin 650ms linear infinite; }
.yandex-ocr-poll-feedback { flex: 1 1 100%; justify-content: space-between; }
.yandex-ocr-poll-feedback .compact { min-height: 32px; padding: 5px 9px; white-space: nowrap; }
.verdict-control { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(72px, 1fr)); grid-auto-rows: 1fr; gap: 3px; padding: 3px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-muted); }
.verdict-option { position: relative; display: block; cursor: pointer; }
.verdict-option input { position: absolute; width: 1px; height: 1px; min-height: 1px; opacity: 0; }
.verdict-option span { min-width: 0; min-height: 38px; height: 100%; display: grid; place-items: center; padding: 4px 5px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: var(--text-secondary); font-size: 10px; font-weight: 720; line-height: 1.15; overflow-wrap: normal; text-align: center; white-space: normal; transition: border-color 120ms ease, background-color 120ms ease, color 120ms ease, box-shadow 120ms ease; }
.verdict-option:hover span { border-color: var(--border); background: var(--surface); color: var(--text); }
.verdict-option input:focus-visible + span { outline: 3px solid var(--focus-ring); outline-offset: 2px; }
.verdict-option.correct input:checked + span { border-color: var(--success-border); background: var(--success-soft); color: var(--success); box-shadow: 0 1px 2px var(--selected-shadow); }
.verdict-option.incorrect input:checked + span { border-color: var(--danger-border); background: var(--danger-soft); color: var(--danger); box-shadow: 0 1px 2px var(--selected-shadow); }
.verdict-option.missing input:checked + span, .verdict-option.unreadable input:checked + span { border-color: var(--warning-border); background: var(--warning-soft); color: var(--warning); box-shadow: 0 1px 2px var(--selected-shadow); }
.verdict-option.is-disabled { cursor: not-allowed; }
.verdict-option.is-disabled span { opacity: .42; }
.quality-correction { display: none; }
.quality-field-row.needs-correction .quality-correction { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 8px; align-items: center; margin-top: 8px; }
.quality-correction span { color: var(--text-secondary); font-size: 11px; font-weight: 680; }
.quality-correction input { width: 100%; min-width: 0; min-height: 34px; background: var(--surface); }
.quality-extra-fields { margin: 16px; padding: 11px 12px; border: 1px solid var(--info-border); border-radius: var(--radius); background: var(--info-soft); color: var(--info); }
.quality-extra-fields p { margin: 3px 0 0; font-size: 11px; }
.quality-form-footer { position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: flex-end; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--border); background: var(--sticky-surface); }
.quality-candidate-bulk-form { gap: 0; }
.quality-bulk-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--panel-muted);
}
.quality-select-all {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}
.quality-select-all input,
.quality-candidate-select input {
  width: 18px;
  min-height: 18px;
  padding: 0;
  cursor: pointer;
}
.quality-candidate-select {
  width: 52px;
  text-align: center;
}
.quality-candidate-table td:last-child { min-width: 260px; }
#quality-candidate-documents { scroll-margin-top: calc(var(--topbar) + 16px); }

.checklist-toolbar { align-items: flex-start; margin-bottom: 16px; }
.checklist-toolbar p { max-width: 720px; margin: 4px 0 0; }
.checklist-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(340px, .75fr); gap: 16px; align-items: start; }
.checklist-group, .checklist-draft { border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); overflow: hidden; }
.checklist-group + .checklist-group { margin-top: 12px; }
.checklist-group-header { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; border-bottom: 1px solid var(--border); background: var(--surface-muted); }
.checklist-group-header h3 { margin: 0; font-size: 15px; letter-spacing: 0; }
.checklist-group-header span:not(.status-badge) { display: block; margin-top: 3px; color: var(--text-secondary); font-size: 11px; }
.checklist-table td:first-child { min-width: 190px; }
.checklist-table td:first-child small { display: block; margin-top: 3px; color: var(--text-secondary); }
.checklist-table td:last-child { width: 1%; min-width: 240px; text-align: right; }
.checklist-action { display: grid; gap: 7px; justify-items: stretch; }
.checklist-evidence { border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-muted); text-align: left; }
.checklist-evidence summary { padding: 7px 9px; color: var(--text-secondary); font-size: 11px; font-weight: 700; cursor: pointer; }
.checklist-evidence > div { display: grid; gap: 4px; padding: 0 9px 8px; }
.checklist-evidence a { display: inline-flex; align-items: center; gap: 5px; color: var(--info); font-size: 11px; font-weight: 700; text-decoration: none; }
.checklist-evidence a:hover { text-decoration: underline; }
.checklist-evidence-empty { margin: 0; padding: 7px 9px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-muted); color: var(--text-secondary); font-size: 11px; text-align: left; }
.checklist-confirmation { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 7px; align-items: start; color: var(--text-secondary); font-size: 11px; line-height: 1.3; text-align: left; }
.checklist-confirmation input { width: 16px; height: 16px; margin: 0; }
.checklist-action button { min-height: 34px; padding: 7px 10px; white-space: normal; line-height: 1.2; }
.checklist-draft { position: sticky; top: 82px; }
.checklist-draft-body { display: grid; gap: 12px; padding: 14px; }
.checklist-draft-body label { display: grid; gap: 5px; }
.client-draft-subject { min-height: 58px; resize: none; overflow-wrap: anywhere; font-family: inherit; line-height: 1.4; }
.client-draft { min-height: 310px; resize: vertical; font-family: inherit; line-height: 1.5; }

@media (max-width: 1180px) {
  .checklist-layout { grid-template-columns: 1fr; }
  .checklist-draft { position: static; }
}

.sidebar-backdrop { display: none; }

@container (max-width: 610px) {
  .quality-decision-panel > .surface-header { align-items: stretch; flex-direction: column; }
  .quality-header-actions { justify-content: flex-start; flex-wrap: wrap; }
  .quality-field-content { grid-template-columns: minmax(0, 1fr) 38px; }
  .quality-field-answer { grid-column: 1 / -1; }
  .verdict-control { grid-template-columns: repeat(4, minmax(68px, 1fr)); }
}

@keyframes page-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
@keyframes spin { to { transform: rotate(360deg); } }

@media (max-width: 1500px) {
  .quality-layout { grid-template-columns: 1fr; }
  .quality-queue { position: static; max-height: none; }
  .quality-queue .surface-body { max-height: none; overflow-x: auto; overflow-y: hidden; }
  .quality-queue-list { display: flex; }
  .quality-queue-item { min-width: 220px; }
}

@media (max-width: 1180px) {
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric:nth-child(2) { border-right: 0; }
  .metric:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .two-column { grid-template-columns: 1fr; }
  .case-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-fact:nth-child(odd) { border-right: 1px solid var(--border); }
  .case-fact:nth-child(even) { border-right: 0; }
  .quality-progress-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quality-review-grid { grid-template-columns: 1fr; }
  .quality-preview-panel, .quality-decision-panel { position: static; height: auto; max-height: none; }
  .quality-preview-frame { height: 720px; flex: none; }
  .quality-decision-body { overflow: visible; }
  .source-folder-document-row { grid-template-columns: 220px minmax(0, 1fr); align-items: start; }
  .source-folder-document-preview { width: 220px; }
  .source-folder-document-preview iframe,
  .source-folder-document-preview img { height: 180px; }
  .source-folder-document-row .vehicle-binding-form { grid-column: 1 / -1; }
  .package-traffic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manual-request-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .app-sidebar { transform: translateX(-100%); transition: transform 180ms ease; }
  body.menu-open .app-sidebar { transform: translateX(0); }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 35; background: var(--overlay); }
  body.menu-open .sidebar-backdrop { display: block; }
  .app-column { margin-left: 0; }
  button.mobile-menu { display: inline-flex; }
  a.mobile-create { display: inline-flex; }
  a.mobile-create { margin-left: 0; }
  .app-topbar { padding: 0 16px; }
  .app-main { padding: 22px 18px 40px; }
  .global-search { width: min(460px, 100%); }
}

@media (max-width: 680px) {
  .app-main { padding: 18px 12px 32px; }
  .app-topbar { gap: 8px; padding: 0 10px; }
  .theme-switcher { gap: 3px; }
  .theme-option { width: 26px; min-width: 26px; min-height: 26px; padding: 4px; }
  .theme-option span { width: 16px; height: 16px; }
  .mobile-create span { display: none; }
  .page-heading { min-height: 0; flex-direction: column; gap: 12px; }
  .page-heading h1 { font-size: 21px; }
  .page-actions { width: 100%; justify-content: stretch; }
  .page-actions .btn { flex: 1 1 auto; }
  .source-folder-document-row { grid-template-columns: 1fr; }
  .source-folder-document-preview { width: 220px; }
  .source-folder-document-row .vehicle-binding-form { grid-column: auto; }
  .metrics, .grid-2, .grid-3, .checks, .case-summary { grid-template-columns: 1fr; }
  .metric { border-right: 0; border-bottom: 1px solid var(--border); }
  .metric:last-child { border-bottom: 0; }
  .case-fact { border-right: 0 !important; }
  .toolbar { align-items: stretch; flex-direction: column; }
  .filter-form { display: grid; grid-template-columns: 1fr; }
  .filter-form input, .filter-form select { width: 100%; min-width: 0; }
  .field-review-row, .logical-review-row, .log-row { grid-template-columns: 1fr; }
  .vehicle-application-summary { align-items: flex-start; flex-direction: column; }
  .vehicle-application-summary-meta { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
  .vehicle-application-toggle { margin-left: auto; }
  .review-issue-row { grid-template-columns: 1fr; gap: 4px; }
  .kv { grid-template-columns: 1fr; }
  .kv dt { padding-bottom: 2px; border-bottom: 0; }
  .kv dd { padding-top: 2px; }
  .actions { align-items: stretch; flex-direction: column; }
  .actions .btn, .actions button, .actions .link-button { width: 100%; }
  .surface-header { align-items: flex-start; flex-direction: column; }
  .case-timing { width: 100%; justify-items: start; text-align: left; }
  .case-progress-summary { align-items: flex-start; flex-direction: column; gap: 4px; }
  .case-progress-facts { grid-template-columns: 1fr; }
  .case-progress-facts > div { border-right: 0; border-bottom: 1px solid var(--border); }
  .case-progress-facts > div:last-child { border-bottom: 0; }
  .case-progress-path { grid-template-columns: 1fr; }
  .cases-table-wrap { display: none; }
  .case-card-list { display: grid; gap: 10px; padding: 10px; }
  .document-card-main { align-items: stretch; flex-direction: column; }
  .document-card-meta { grid-template-columns: 1fr; }
  .document-card-action .vehicle-binding-form { grid-template-columns: 1fr; }
  .package-traffic, .package-state-grid { grid-template-columns: 1fr; }
  .manual-request-options { grid-template-columns: 1fr; }
  .manual-request-actions { align-items: stretch; flex-direction: column; }
  .manual-request-actions .btn { width: 100%; }
}

@media (max-width: 520px) {
  .app-topbar { gap: 4px; padding: 0 6px; }
  .app-topbar .global-search { width: auto; min-width: 42px; flex: 1 1 80px; padding: 0 7px; }
  .app-topbar .theme-switcher { gap: 2px; }
  .app-topbar .theme-option { width: 24px; min-width: 24px; min-height: 24px; padding: 3px; }
  .app-topbar .logout-form .btn { padding: 0 8px; }
  .login-theme-switcher { top: 10px; right: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
  .issue-target-active { transition: none !important; }
}

/* Постраничный сортировщик документов */
[data-document-sorter] {
  display: grid;
  min-width: 0;
  gap: 24px;
  padding: 22px 24px 30px;
  color: var(--text);
}

.sorter-section-heading,
.sorter-document-column > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.sorter-section-heading > div {
  display: grid;
  gap: 3px;
}

.sorter-section-heading p,
.sorter-empty-state span,
.sorter-trash-empty span {
  margin: 0;
  color: var(--text-secondary);
  font-size: 12px;
}

.sorter-section-heading h3 {
  margin: 0;
  font-size: 18px;
  line-height: 1.25;
}

.sorter-section-heading > span {
  min-width: 28px;
  padding: 4px 9px;
  border: 0;
  border-radius: 999px;
  background: var(--surface-muted);
  color: var(--text-secondary);
  text-align: center;
  font-size: 12px;
}

.sorter-vehicle-switcher {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 0 0 2px;
  scrollbar-width: thin;
}

.sorter-vehicle-choice {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid var(--primary, #2563eb);
  border-radius: 999px;
  background: var(--surface-muted);
  color: var(--primary, #2563eb);
  cursor: pointer;
}

.sorter-vehicle-choice:hover {
  background: var(--accent-soft);
  color: var(--accent-strong);
}

.sorter-vehicle-choice.is-active {
  border-color: var(--primary, #2563eb);
  background: var(--primary, #2563eb);
  color: #fff;
}

.sorter-unassigned-section,
.sorter-routing-section,
.sorter-documents-section,
.sorter-trash {
  min-width: 0;
  border: 0;
}

.sorter-unassigned-section,
.sorter-routing-section,
.sorter-documents-section {
  padding: 0;
}

.sorter-unassigned-strip,
.sorter-routing-proposals {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-height: 188px;
  margin-top: 14px;
  padding: 2px 2px 10px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}

.sorter-unprepared-document {
  display: flex;
  grid-column: span 2;
  min-height: 188px;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
  padding: 12px;
  border: 0;
  border-radius: 18px;
  background: var(--surface-muted);
  scroll-snap-align: start;
}

.sorter-unprepared-document > div {
  display: grid;
  gap: 4px;
}

.sorter-unprepared-document strong {
  display: -webkit-box;
  overflow: hidden;
  overflow-wrap: break-word;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.sorter-unprepared-document span {
  overflow-wrap: normal;
  color: var(--text-secondary);
  font-size: 11px;
}

.sorter-unprepared-document .btn {
  min-height: 36px;
  padding: 7px 8px;
  font-size: 12px;
}

.sorter-main-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(164px, 190px);
  align-items: start;
  gap: 24px;
  min-width: 0;
}

.sorter-document-columns {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(176px, 1fr);
  gap: 14px;
  margin-top: 14px;
  overflow-x: auto;
  padding: 0 2px 8px;
  scrollbar-width: thin;
}

.sorter-document-column {
  display: flex;
  min-width: 0;
  min-height: 292px;
  flex-direction: column;
  overflow: hidden;
  border: 0;
  border-radius: 20px;
  background: var(--surface-muted);
}

.sorter-document-column > header {
  min-height: 52px;
  padding: 15px 14px 9px;
  border: 0;
  background: transparent;
  font-size: 14px;
  line-height: 1.35;
}

.sorter-column-actions {
  display: flex;
  gap: 4px;
}

.sorter-column-actions button {
  padding: 3px 5px;
  border: 0;
  background: transparent;
  color: var(--text-secondary);
  font-size: 11px;
  cursor: pointer;
}

.sorter-column-pages,
.sorter-trash-pages {
  display: flex;
  min-height: 220px;
  flex: 1;
  flex-direction: column;
  gap: 12px;
  padding: 4px 12px 14px;
}

.sorter-trash {
  position: sticky;
  top: calc(var(--topbar) + 14px);
  overflow: hidden;
  padding: 14px;
  border-radius: 20px;
  background: var(--surface-muted);
}

.sorter-trash .sorter-section-heading {
  padding: 0 0 10px;
  border: 0;
}

.sorter-page-tile {
  position: relative;
  display: grid;
  width: 100%;
  aspect-ratio: 1;
  flex: 0 0 auto;
  min-width: 0;
  overflow: hidden;
  border: 0;
  border-radius: 16px;
  background: var(--surface);
  box-shadow: 0 4px 14px var(--shadow);
  scroll-snap-align: start;
  transition: transform 140ms ease, box-shadow 140ms ease;
}

.sorter-unassigned-strip > .sorter-page-tile,
.sorter-routing-proposal > .sorter-page-tile {
  width: 148px;
}

.sorter-routing-proposal {
  display: flex;
  width: 148px;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 8px;
  scroll-snap-align: start;
}

.sorter-routing-proposal-actions {
  display: grid;
  gap: 6px;
}

.sorter-routing-proposal-actions .btn {
  min-height: 32px;
  padding: 6px 8px;
  font-size: 11px;
  line-height: 1.2;
  white-space: normal;
}

.sorter-page-tile:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.sorter-page-tile.is-dragging {
  opacity: .55;
  transform: scale(.98);
}

.sorter-page-preview {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  overflow: hidden;
  border-radius: 16px;
  background: var(--preview-backdrop);
}

.sorter-page-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  background: var(--document-canvas);
}

.sorter-page-rotation {
  position: absolute;
  top: 8px;
  right: 8px;
  display: flex;
  gap: 4px;
  padding: 3px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface, #fff) 90%, transparent);
  box-shadow: 0 2px 10px rgba(15, 23, 42, .1);
  opacity: .82;
  transition: opacity .15s ease;
}

.sorter-page-tile:hover .sorter-page-rotation,
.sorter-page-tile:focus-within .sorter-page-rotation {
  opacity: 1;
}

.sorter-page-rotation button {
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text, #111827);
  cursor: pointer;
  font: 700 18px/1 system-ui, sans-serif;
}

.sorter-page-rotation button:hover,
.sorter-page-rotation button:focus-visible {
  background: color-mix(in srgb, var(--surface, #fff) 82%, var(--primary, #2563eb) 18%);
  outline: none;
}

.sorter-page-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  border: 0;
  border-radius: 0;
  background: var(--preview-backdrop);
  color: var(--text-subtle);
}

.sorter-page-copy {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  min-height: 40px;
  align-items: center;
  padding: 8px 10px;
  background: var(--surface);
}

.sorter-page-copy strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 12px;
  line-height: 1.25;
}

.sorter-page-copy-pending {
  flex-direction: column;
  align-items: stretch;
  gap: 3px;
}

.sorter-page-copy-pending .muted {
  font-size: 11px;
  line-height: 1.25;
}

.sorter-empty-state,
.sorter-trash-empty,
.sorter-column-empty {
  display: grid;
  min-height: 92px;
  place-content: center;
  gap: 3px;
  color: var(--text-secondary);
  text-align: center;
  font-size: 12px;
}

.sorter-column-empty {
  min-height: 200px;
  border: 0;
}

[data-sorter-dropzone].is-drop-target {
  outline: 3px solid var(--accent);
  outline-offset: -3px;
  border-radius: 18px;
  background: var(--accent-soft);
}

.sorter-feedback {
  min-height: 18px;
  color: var(--text-secondary);
  font-size: 12px;
}

.sorter-feedback.is-error {
  color: var(--danger);
}

.sorter-dialog {
  width: min(92vw, 440px);
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 22px 60px var(--popup-shadow);
}

.sorter-dialog::backdrop {
  background: var(--overlay);
}

.sorter-dialog form {
  display: grid;
  gap: 16px;
  padding: 18px;
}

.sorter-dialog header,
.sorter-dialog-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.sorter-dialog header button {
  padding: 2px 7px;
  border: 0;
  background: transparent;
  color: var(--text-secondary);
  font-size: 22px;
  cursor: pointer;
}

.sorter-dialog label {
  display: grid;
  gap: 6px;
  color: var(--text-secondary);
  font-size: 12px;
}

.sorter-dialog input,
.sorter-dialog select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--border-strong);
  border-radius: 7px;
  background: var(--surface);
  color: var(--text);
}

@media (max-width: 900px) {
  .sorter-main-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .sorter-trash {
    position: static;
  }
}

@media (max-width: 620px) {
  [data-document-sorter] {
    gap: 20px;
    padding: 16px 12px 24px;
  }

  .sorter-document-columns {
    grid-auto-columns: minmax(168px, 78vw);
  }
}
.application-workbook {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin: 0 0 24px;
  padding: 20px;
  overflow: hidden;
  border-radius: 18px;
  background: var(--surface, #fff);
  box-shadow: 0 10px 32px rgba(20, 31, 54, 0.06);
}

.application-workbook-source {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 12px;
  margin: 0 0 16px;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--border, #e5e7eb);
}

.application-workbook-source strong {
  overflow-wrap: anywhere;
}

.application-workbook-source span {
  color: var(--muted, #667085);
  font-size: 13px;
}

.application-workbook-heading,
.workbook-revision-summary,
.workbook-revision-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.application-workbook-heading {
  justify-content: space-between;
  align-items: flex-start;
}

.application-workbook h2 {
  margin: 0 0 6px;
  font-size: 18px;
}

.application-workbook p,
.workbook-revision span {
  margin: 0;
  color: var(--muted, #667085);
  font-size: 14px;
}

.workbook-upload {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(0, auto);
  align-items: end;
  gap: 20px;
  min-width: 0;
  max-width: 100%;
  margin-top: 24px;
  padding: 18px 0;
  border-top: 1px solid var(--border, #e5e7eb);
  border-bottom: 1px solid var(--border, #e5e7eb);
}

.workbook-upload-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.workbook-upload-copy span {
  color: var(--text-secondary, #667085);
  font-size: 13px;
}

.workbook-upload-controls {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: 10px;
  min-width: 0;
}

.workbook-file-picker {
  display: grid;
  gap: 5px;
  min-width: 220px;
  max-width: 380px;
  font-weight: 600;
}

.workbook-file-picker input {
  max-width: 100%;
  min-height: 40px;
  color: var(--text-secondary, #667085);
  font: inherit;
  font-weight: 400;
}

.workbook-editor {
  display: grid;
  gap: 14px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  margin-top: 18px;
  padding: 16px 0 2px;
  border-top: 1px solid var(--border, #e5e7eb);
}

.workbook-editor form {
  display: grid;
  min-width: 0;
  max-width: 100%;
}

.workbook-editor-heading h3 {
  margin: 0 0 5px;
  font-size: 16px;
}

.workbook-editor-blocked {
  padding: 14px 0;
}

.workbook-editor-blocked span {
  color: var(--muted, #667085);
  font-size: 14px;
}

.workbook-editor-toolbar {
  position: relative;
  z-index: 6;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  margin-bottom: 10px;
}

.workbook-editor-toolbar-note {
  min-width: 0;
  color: var(--text-secondary, #667085);
  font-size: 13px;
}

.workbook-columns-menu {
  position: relative;
  flex: 0 0 auto;
}

.workbook-columns-menu > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
}

.workbook-columns-menu > summary::-webkit-details-marker {
  display: none;
}

[data-workbook-columns-hidden-count] {
  display: inline-grid;
  place-items: center;
  min-width: 20px;
  min-height: 20px;
  margin-left: 4px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--accent-soft, #edf3ff);
  color: var(--accent, #2563eb);
  font-size: 11px;
}

.workbook-columns-popover {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 20;
  width: min(360px, calc(100vw - 48px));
  max-height: min(460px, 70vh);
  padding: 10px;
  overflow: auto;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  background: var(--surface, #fff);
  box-shadow: 0 14px 36px var(--popup-shadow, rgba(15, 23, 42, .16));
}

.workbook-columns-popover ul {
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.workbook-columns-popover li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 5px 7px;
  border-radius: 8px;
}

.workbook-columns-popover li:hover {
  background: var(--surface-muted, #f8fafc);
}

.workbook-columns-popover label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  cursor: pointer;
  font-size: 13px;
}

.workbook-columns-popover label span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workbook-column-locked {
  color: var(--text-subtle, #7b8492);
  font-size: 11px;
}

.workbook-column-move-actions {
  display: flex;
  gap: 4px;
}

.workbook-column-move-actions button,
.workbook-columns-menu-actions button {
  min-width: 30px;
  min-height: 30px;
  padding: 4px 8px;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 7px;
  background: var(--surface, #fff);
  color: var(--text, #111827);
  cursor: pointer;
  font: inherit;
}

.workbook-column-move-actions button:hover,
.workbook-columns-menu-actions button:hover {
  border-color: var(--button-hover-border, #aeb6c2);
  background: var(--surface-muted, #f8fafc);
}

.workbook-columns-menu-actions {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 8px;
  padding-top: 9px;
  border-top: 1px solid var(--border, #e5e7eb);
}

.workbook-editor-table-wrap {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: auto;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  background: var(--surface, #fff);
  box-shadow: inset -16px 0 18px -22px var(--shadow, rgba(31, 41, 55, .12));
}

.workbook-editor-table {
  width: max-content;
  min-width: 100%;
  max-width: none;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
}

.workbook-editor-table th,
.workbook-editor-table td {
  position: relative;
  min-width: 0;
  max-width: 280px;
  padding: 5px 6px;
  border-right: 1px solid var(--border, #e5e7eb);
  border-bottom: 1px solid var(--border, #e5e7eb);
  text-align: left;
  vertical-align: middle;
}

.workbook-editor-table th:first-child {
  position: sticky;
  left: 0;
  z-index: 4;
  background: var(--surface-muted);
}

.workbook-editor-table thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  padding-right: 18px;
  background: var(--surface-muted);
  color: var(--text-secondary);
  font-weight: 700;
  white-space: nowrap;
}

.workbook-editor-table thead th:first-child {
  z-index: 5;
}

.workbook-editor-table [hidden] {
  display: none;
}

.workbook-column-resize {
  position: absolute;
  top: 0;
  right: -4px;
  z-index: 2;
  width: 10px;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent !important;
  color: transparent;
  cursor: col-resize;
  touch-action: none;
  transform: none !important;
}

.workbook-column-resize::after {
  position: absolute;
  top: 22%;
  right: 4px;
  width: 1px;
  height: 56%;
  background: var(--border-strong, #c9cfd8);
  content: "";
  opacity: 0;
  transition: opacity .15s ease;
}

.workbook-editor-table thead th:hover .workbook-column-resize::after,
.workbook-column-resize:focus-visible::after {
  opacity: 1;
}

.workbook-editor-table tr:last-child > * {
  border-bottom: 0;
}

.workbook-editor-table tr > *:last-child {
  border-right: 0;
}

.workbook-cell-input {
  width: 100%;
  min-width: 0;
  min-height: 32px;
  padding: 5px 7px;
  border: 1px solid var(--border, #d0d5dd);
  border-radius: 8px;
  background: var(--surface, #fff);
  color: var(--text, #111827);
  font: inherit;
  box-sizing: border-box;
  text-overflow: ellipsis;
}

.workbook-cell-input:hover {
  border-color: var(--border, #d0d5dd);
  background: var(--surface-muted);
}

.workbook-cell-input:focus {
  outline: 2px solid color-mix(in srgb, var(--primary, #2563eb) 32%, transparent);
  border-color: var(--primary, #2563eb);
  background: var(--surface, #fff);
}

.workbook-cell-readonly,
.workbook-editor-empty {
  color: var(--muted, #667085);
}

.workbook-cell-readonly {
  display: block;
  overflow-wrap: anywhere;
  white-space: normal;
}

.workbook-editor-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}

.workbook-editor .workbook-cell-input[aria-invalid="true"] {
  border-color: var(--danger);
  background: var(--danger-soft);
}

.workbook-editor [data-workbook-cell-error]:not(:empty) {
  display: block;
  margin-top: 5px;
  color: var(--danger);
  font-size: 12px;
  white-space: normal;
  overflow-wrap: anywhere;
}

.workbook-editor [data-workbook-conflicts] fieldset {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
  padding: 10px 12px;
  border: 1px solid var(--danger-border);
  border-radius: 8px;
  min-width: 0;
}

.workbook-editor [data-workbook-conflicts] legend {
  padding: 0 4px;
  font-weight: 620;
}

.workbook-editor [data-workbook-conflicts] label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  overflow-wrap: anywhere;
  cursor: pointer;
}

.workbook-editor [data-workbook-conflicts] input[type="radio"] {
  flex: 0 0 auto;
  width: auto;
  height: auto;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  accent-color: var(--accent);
}

.workbook-revisions {
  display: grid;
  gap: 4px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.workbook-revision {
  display: grid;
  gap: 10px;
  padding: 8px 0;
}

.workbook-revision-summary {
  justify-content: space-between;
  min-height: 48px;
}

.workbook-revision-summary > div:first-child {
  display: grid;
  gap: 2px;
}

.workbook-diff {
  display: grid;
  gap: 10px;
  padding: 14px;
  border-radius: 14px;
  background: color-mix(in srgb, var(--surface, #fff) 88%, var(--primary, #2563eb) 12%);
}

.workbook-diff > span,
.workbook-diff li {
  color: var(--muted, #667085);
  font-size: 14px;
}

.workbook-diff ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 20px;
}

.workbook-diff-blocked {
  background: color-mix(in srgb, var(--surface, #fff) 82%, #f59e0b 18%);
}

.btn-compact {
  min-height: 36px;
  padding: 7px 12px;
}

.vehicle-model-inline {
  width: 100%;
  min-width: 0;
  margin: 0 0 24px;
  padding: 22px 20px;
  border-radius: 18px;
  background: var(--surface);
  box-shadow: 0 10px 32px rgba(20, 31, 54, .06);
}

.vehicle-model-inline-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.vehicle-model-inline-heading h2 {
  margin: 0 0 6px;
  font-size: 18px;
}

.vehicle-model-inline-heading p,
.vehicle-model-hint,
.vehicle-model-selected-item span,
.vehicle-model-lock {
  margin: 0;
  color: var(--text-secondary);
  font-size: 13px;
}

.vehicle-model-selected-list {
  display: grid;
  gap: 6px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.vehicle-model-selected-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 54px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--success-soft);
}

.vehicle-model-selected-item > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.vehicle-model-selected-item.is-stale {
  background: var(--warning-soft);
}

.vehicle-model-persisted {
  color: var(--success, #15803d);
  font-size: 13px;
  font-weight: 700;
}

.vehicle-model-hint,
.vehicle-model-empty {
  margin-top: 18px;
}

.vehicle-model-table-wrap {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 100%;
  margin-top: 18px;
  overflow: auto;
  overscroll-behavior-inline: contain;
  border: 1px solid var(--border);
  border-radius: 12px;
}

.vehicle-model-table {
  width: max-content;
  min-width: 100%;
  margin: 0;
  white-space: nowrap;
}

.vehicle-model-batch-form,
.vehicle-model-group-body {
  display: grid;
  gap: 14px;
}

.vehicle-model-group {
  min-width: 0;
  margin: 18px 0 0;
  padding: 0;
  border: 0;
}

.vehicle-model-group > legend {
  float: left;
  width: 100%;
  padding: 0;
  font-weight: 750;
  pointer-events: none;
}

.vehicle-model-group-body {
  min-width: 0;
  clear: both;
}

.vehicle-comparison-reference {
  display: grid;
  gap: 8px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface-muted);
}

.vehicle-comparison-reference > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.vehicle-comparison-reference span {
  color: var(--text-secondary);
}

.vehicle-comparison-reference span strong {
  color: var(--text);
}

.vehicle-comparison-provenance {
  color: var(--text-secondary);
  overflow-wrap: anywhere;
}

.vehicle-model-batch-status,
.vehicle-model-batch-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.vehicle-model-batch-status {
  margin-top: 18px;
  color: var(--text-secondary);
  font-size: 13px;
}

.vehicle-model-batch-status strong {
  color: var(--text);
  font-size: 15px;
}

.vehicle-model-batch-actions {
  justify-content: flex-end;
  margin-top: 4px;
}

.vehicle-model-radio {
  display: inline-flex;
  position: relative;
  z-index: 1;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-weight: 650;
}

.vehicle-model-radio input[type="radio"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  max-width: 18px;
  margin: 0;
  flex: 0 0 18px;
  align-self: center;
  accent-color: var(--primary, #2563eb);
  pointer-events: auto;
}

.vehicle-model-table tr[data-vehicle-model-row]:hover td {
  background: color-mix(in srgb, var(--surface, #fff) 90%, var(--primary, #2563eb) 10%);
}

.vehicle-model-table tr[data-vehicle-model-row] {
  cursor: pointer;
}

.vehicle-model-table tr[data-vehicle-model-row]:has(input:disabled) {
  cursor: default;
}

.vehicle-model-table tr[data-vehicle-model-row]:focus-within td {
  outline: 2px solid var(--blue);
  outline-offset: -2px;
}

.vehicle-model-table tr.is-persisted {
  box-shadow: inset 0 0 0 2px var(--primary, #2563eb);
}

.vehicle-model-table tr.is-persisted td {
  background: color-mix(in srgb, var(--surface, #fff) 86%, var(--primary, #2563eb) 14%);
}

.vehicle-model-table tr.is-pending {
  box-shadow: inset 0 0 0 2px #d97706;
}

.vehicle-model-table tr.is-pending td,
.vehicle-model-clear-row td {
  background: color-mix(in srgb, var(--surface, #fff) 88%, #f59e0b 12%);
}

.vehicle-model-table tr.is-unavailable td {
  background: var(--warning-soft);
}

.vehicle-model-catalog-unavailable {
  color: #92400e;
  font-weight: 650;
  white-space: normal;
}

.vehicle-model-dialog:not([open]),
.confirm-dialog:not([open]) {
  display: none;
  pointer-events: none;
}

.vehicle-model-dialog {
  width: min(520px, calc(100vw - 32px));
  padding: 0;
  border: 0;
  border-radius: 18px;
  background: var(--surface, #fff);
  color: var(--text, #111827);
  box-shadow: 0 24px 64px rgba(15, 23, 42, .22);
}

.vehicle-model-dialog::backdrop {
  background: rgba(15, 23, 42, .38);
  backdrop-filter: blur(3px);
}

.vehicle-model-dialog-content {
  display: grid;
  gap: 16px;
  padding: 22px;
}

.vehicle-model-dialog header,
.vehicle-model-dialog-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.vehicle-model-dialog header > button {
  width: 32px;
  height: 32px;
  border: 0;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 24px;
}

.vehicle-model-dialog p {
  margin: 0;
  color: var(--text-secondary);
}

[data-vehicle-model-confirm-copy] {
  color: var(--text-secondary);
  line-height: 1.6;
  white-space: pre-line;
}

@media (max-width: 760px) {
  .application-workbook-heading,
  .workbook-revision-summary,
  .vehicle-model-batch-status {
    align-items: stretch;
    flex-direction: column;
  }

  .workbook-revision-actions {
    flex-wrap: wrap;
  }

  .application-workbook {
    padding: 16px;
  }

  .workbook-editor-toolbar,
  .workbook-upload,
  .workbook-upload-controls {
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr);
    flex-direction: column;
  }

  .workbook-columns-menu,
  .workbook-columns-menu > summary,
  .workbook-upload-controls .btn,
  .workbook-file-picker {
    width: 100%;
    max-width: none;
  }

  .workbook-columns-popover {
    right: auto;
    left: 0;
    width: min(360px, calc(100vw - 64px));
  }

  .vehicle-model-inline-heading,
  .vehicle-model-selected-item {
    align-items: stretch;
    flex-direction: column;
  }

  .vehicle-model-inline-heading form,
  .vehicle-model-inline-heading .btn,
  .vehicle-model-selected-item form,
  .vehicle-model-selected-item .btn {
    width: 100%;
  }
}

.confirm-dialog {
  width: min(440px, calc(100vw - 32px));
  padding: 0;
  border: 0;
  border-radius: 18px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 24px 64px var(--popup-shadow);
}

.confirm-dialog::backdrop {
  background: var(--overlay);
  backdrop-filter: blur(3px);
}

.confirm-dialog-content {
  display: grid;
  gap: 16px;
  padding: 22px;
}

.confirm-dialog header,
.confirm-dialog-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.confirm-dialog header {
  justify-content: space-between;
}

.confirm-dialog header strong {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.35;
}

.confirm-dialog header .icon-button {
  width: 32px;
  min-width: 32px;
  min-height: 32px;
  border: 0;
  background: transparent;
  color: var(--text-secondary);
  font-size: 22px;
}

.confirm-dialog header .icon-button:hover {
  background: var(--surface-muted);
  color: var(--text);
}

.vehicle-templates {
  display: grid;
  gap: 22px;
}

.vehicle-templates-status {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: start;
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface-muted);
}

.vehicle-templates-status div {
  display: grid;
  gap: 4px;
}

.vehicle-templates-status span {
  color: var(--text-secondary);
  font-size: .92rem;
}

.vehicle-template-block {
  display: grid;
  gap: 14px;
}

.vehicle-template-block header h3,
.vehicle-template-block h4 {
  margin: 0;
}

.vehicle-template-block header p,
.vehicle-templates-empty {
  color: var(--text-secondary);
}

.vehicle-templates-application {
  overflow-x: auto;
}

.vehicle-templates-application-table {
  width: max-content;
  min-width: 100%;
  table-layout: auto;
}

.vehicle-templates-application-table th,
.vehicle-templates-application-table td {
  overflow-wrap: normal;
  word-break: normal;
  white-space: nowrap;
  hyphens: none;
}

.vehicle-template-list {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 12px;
  align-items: stretch;
}

.vehicle-template-pick {
  display: block;
  width: 100%;
  margin: 0;
}

.vehicle-template-card {
  display: grid;
  gap: 12px;
  width: 100%;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text);
}

button.vehicle-template-card {
  display: grid;
  align-items: stretch;
  justify-content: stretch;
  width: 100%;
  min-height: 0;
  margin: 0;
  font: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: var(--text);
  background: var(--surface);
  text-align: left;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transform: none;
}

button.vehicle-template-card:hover,
button.vehicle-template-card:active {
  transform: none;
  color: var(--text);
  background: var(--surface);
  border-color: var(--border-strong);
}

button.vehicle-template-card.is-recommended:hover,
button.vehicle-template-card.is-recommended:active {
  border-color: var(--highlight);
}

button.vehicle-template-card:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.vehicle-template-card.is-recommended {
  border: 2px solid var(--highlight);
  box-shadow: 0 0 0 3px var(--highlight-ring);
}

.vehicle-template-card.is-selected {
  border: 2px solid var(--accent);
  box-shadow: 0 0 0 3px var(--focus-ring-soft);
  background: var(--accent-soft);
}

.vehicle-template-card.is-recommended.is-selected {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--focus-ring-soft);
}

.vehicle-template-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.vehicle-template-card-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: start;
}

.vehicle-template-card-head div {
  display: grid;
  gap: 2px;
}

.vehicle-template-card-head span {
  color: var(--text-secondary);
}

.vehicle-template-deltas {
  display: grid;
  gap: 8px;
  margin: 0;
}

.vehicle-template-deltas.is-row {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.vehicle-template-delta {
  display: grid;
  gap: 4px;
  flex: 0 0 auto;
  min-width: 168px;
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--surface-muted);
}

.vehicle-template-delta,
.vehicle-template-delta dd,
.vehicle-template-delta span,
.vehicle-template-delta strong {
  color: var(--text);
}

.vehicle-template-delta dt {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-secondary);
}

.vehicle-template-delta dt,
.vehicle-template-delta dd,
.vehicle-template-delta span,
.vehicle-template-delta strong {
  white-space: nowrap;
}

.vehicle-template-delta dd {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin: 0;
  align-items: baseline;
}

.vehicle-template-percent,
.vehicle-template-range,
.vehicle-template-hint {
  font-size: .85rem;
}

.vehicle-template-hint {
  flex: 1 0 100%;
}

.vehicle-template-delta.is-match {
  background: var(--success-soft);
}

.vehicle-template-delta.is-close {
  background: var(--info-soft);
}

.vehicle-template-delta.is-warn,
.vehicle-template-delta.is-mismatch {
  background: var(--warning-soft);
}

.vehicle-template-delta.is-far {
  background: var(--danger-soft);
}

.vehicle-template-delta.is-missing {
  opacity: .86;
}

.confirm-dialog p {
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.55;
}

.confirm-dialog-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
}

.confirm-dialog-actions [data-confirm-ok].btn-danger {
  background: var(--danger);
  color: #fff;
}

.confirm-dialog-actions [data-confirm-ok].btn-danger:hover {
  filter: brightness(0.96);
}

.vehicle-transfer-workspace,
.vehicle-transfer-workspace form,
.vehicle-transfer-workspace section,
.vehicle-transfer-intro,
.vehicle-transfer-section-heading,
.vehicle-transfer-vehicles,
.vehicle-transfer-preview,
.vehicle-transfer-result {
  display: grid;
  gap: 12px;
}

.vehicle-transfer-intro h2,
.vehicle-transfer-section-heading h3,
.vehicle-transfer-preview h3,
.vehicle-transfer-result h3,
.vehicle-transfer-workspace p {
  margin: 0;
}

.vehicle-transfer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  gap: 20px;
  align-items: start;
}

.vehicle-transfer-grid > section,
.vehicle-transfer-preview,
.vehicle-transfer-result {
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-muted);
}

.vehicle-transfer-section-heading {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}

.vehicle-transfer-selection-actions,
.vehicle-transfer-counts,
.inline-search {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.vehicle-transfer-vehicle {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  cursor: pointer;
}

.vehicle-transfer-vehicle:has(input:checked) {
  border-color: var(--accent);
  background: var(--accent-soft);
  box-shadow: 0 0 0 2px var(--focus-ring-soft);
}

.vehicle-transfer-vehicle:has(input:disabled) {
  cursor: not-allowed;
  opacity: .72;
}

.vehicle-transfer-vehicle > span {
  display: grid;
  gap: 3px;
}

.vehicle-transfer-vehicle small,
.vehicle-transfer-state,
.vehicle-transfer-count,
.vehicle-transfer-counts span,
.vehicle-transfer-counts small {
  color: var(--text-secondary);
}

.vehicle-transfer-counts > div {
  display: grid;
  flex: 1 1 220px;
  gap: 4px;
  padding: 12px;
  border-radius: 10px;
  background: var(--surface);
}

.vehicle-transfer-counts strong {
  font-size: 1.35rem;
}

.vehicle-transfer-preview-blocked {
  border-color: var(--danger);
  background: var(--danger-soft);
}

.vehicle-transfer-search .inline-search input {
  flex: 1 1 220px;
}

.vehicle-transfer-confirm-form .confirm-checkbox {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 12px;
  border-radius: 10px;
  background: var(--surface);
}

.processing-priority-panel {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-muted);
}

.processing-priority-heading,
.processing-priority-actions,
.processing-priority-toolbar,
.processing-priority-toolbar > div {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
}

.processing-priority-heading h3,
.processing-priority-heading p {
  margin: 0;
}

.processing-priority-heading > div {
  display: grid;
  gap: 5px;
  max-width: 760px;
}

.processing-priority-toolbar > label {
  flex: 1 1 280px;
}

.processing-priority-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.processing-priority-vehicle {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
}

.processing-priority-vehicle:has(input:checked) {
  border-color: var(--accent);
  background: var(--accent-soft);
  box-shadow: 0 0 0 2px var(--focus-ring-soft);
}

.processing-priority-identity {
  display: grid;
  gap: 3px;
}

.processing-priority-identity small,
.processing-priority-state,
.processing-priority-actions span {
  color: var(--text-secondary);
}

.processing-priority-state {
  font-size: .875rem;
  text-align: right;
}

.processing-priority-state.state-priority,
.processing-priority-state.state-processing {
  color: var(--accent);
  font-weight: 700;
}

.processing-priority-state.state-ready {
  color: var(--success);
  font-weight: 700;
}

.processing-priority-state.state-needs_review {
  color: var(--warning);
  font-weight: 700;
}

.processing-priority-state.state-failed {
  color: var(--danger);
  font-weight: 700;
}

@media (max-width: 620px) {
  .processing-priority-heading,
  .processing-priority-actions,
  .processing-priority-toolbar,
  .processing-priority-toolbar > div,
  .processing-priority-toolbar .btn,
  .processing-priority-actions button {
    width: 100%;
  }

  .processing-priority-vehicle {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .processing-priority-state {
    grid-column: 2;
    text-align: left;
  }

  .vehicle-transfer-grid,
  .vehicle-transfer-section-heading {
    grid-template-columns: minmax(0, 1fr);
  }

  .vehicle-transfer-selection-actions,
  .vehicle-transfer-selection-actions .btn,
  .vehicle-transfer-search .inline-search,
  .vehicle-transfer-search .inline-search .btn {
    width: 100%;
  }

  .crm-batch-toolbar,
  .crm-batch-toolbar-actions,
  .crm-batch-toolbar .btn {
    width: 100%;
  }

  .crm-batch-toolbar [data-crm-batch-count] {
    margin-left: 0;
  }

  .crm-batch-vehicle-row {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 6px;
  }

  .crm-batch-vehicle-row .claim-approval,
  .crm-batch-preview-item {
    align-items: flex-start;
    flex-direction: column;
  }

  .confirm-dialog-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .confirm-dialog-actions > * {
    width: 100%;
  }
}
/* Bounded, keyboard-accessible work-scope target selection. */
[data-work-scope-target-fallback][hidden],
[data-work-scope-target-combo][hidden],
[data-work-scope-target-list][hidden] { display: none; }
.work-scope-target-combo { position: relative; flex: 1; min-width: 0; }
.work-scope-target-combo input { width: 100%; }
.work-scope-target-list { position: absolute; z-index: 20; left: 0; right: 0; max-height: 18rem; overflow-y: auto; margin: 4px 0 0; padding: 4px; list-style: none; background: var(--surface, #fff); color: var(--text, #182235); border: 1px solid var(--border, #cbd5e1); border-radius: 8px; box-shadow: 0 8px 24px #0002; }
.work-scope-target-list [role="option"] { padding: 10px; cursor: pointer; border-radius: 4px; }
.work-scope-target-list [aria-selected="true"], .work-scope-target-list [role="option"]:hover { background: var(--surface-hover, #e8eef8); }
.work-scope-target-status { margin: 6px 0 0; font-size: .85rem; }
