:root {
  color-scheme: light;
  --paper: #f6f3ed;
  --surface: #fffdf8;
  --surface-strong: #ffffff;
  --ink: #17202a;
  --muted: #5e6873;
  --rule: #c8c5bd;
  --rule-strong: #858b91;
  --accent: #185adb;
  --accent-dark: #0f3f9e;
  --vermillion: #d45b36;
  --success: #18794e;
  --warning: #9a6700;
  --danger: #b42318;
  --focus: #111111;
  --radius: 8px;
  --shadow: 0 14px 36px rgba(23, 32, 42, 0.09);
  --content: min(1440px, calc(100vw - 48px));
  font-family: "IBM Plex Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
}

* {
  box-sizing: border-box;
}

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

[hidden] {
  display: none !important;
}

html {
  min-width: 320px;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.5;
}

button,
input,
select,
textarea {
  color: inherit;
  font: inherit;
}

button,
select {
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

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

a {
  color: var(--accent-dark);
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  line-height: 1.08;
}

h1 {
  max-width: 18ch;
  margin-bottom: 18px;
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: clamp(42px, 6vw, 82px);
  font-weight: 500;
  letter-spacing: -0.045em;
}

h2 {
  margin-bottom: 12px;
  font-size: clamp(24px, 3vw, 38px);
  letter-spacing: -0.03em;
}

h3 {
  margin-bottom: 12px;
  font-size: 24px;
  letter-spacing: -0.02em;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 8px;
  left: 8px;
  padding: 10px 14px;
  transform: translateY(-150%);
  background: var(--ink);
  color: white;
}

.skip-link:focus {
  transform: none;
}

.site-header {
  position: sticky;
  z-index: 20;
  top: 0;
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto minmax(190px, 1fr);
  align-items: center;
  min-height: 76px;
  padding: 0 max(24px, calc((100vw - 1440px) / 2));
  border-bottom: 1px solid var(--rule);
  background: var(--paper);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  width: fit-content;
  color: var(--ink);
  text-decoration: none;
}

.brand-mark {
  position: relative;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 2px solid var(--ink);
  border-radius: 50%;
}

.brand-mark::before,
.brand-mark::after,
.brand-mark span {
  position: absolute;
  width: 11px;
  height: 2px;
  background: var(--vermillion);
  content: "";
}

.brand-mark::before {
  transform: translate(-5px, -4px) rotate(25deg);
}

.brand-mark::after {
  transform: translate(5px, 4px) rotate(25deg);
}

.brand-mark span {
  transform: rotate(-25deg);
}

.brand strong,
.brand small {
  display: block;
}

.brand strong {
  font-size: 18px;
  line-height: 1;
  letter-spacing: -0.02em;
}

.brand small {
  margin-top: 4px;
  color: var(--muted);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.primary-nav,
.language-switcher {
  display: flex;
  align-items: center;
}

.primary-nav {
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--rule);
  border-radius: 8px;
  background: var(--surface);
}

.primary-nav button,
.language-switcher button {
  border: 0;
  background: transparent;
}

.primary-nav button {
  padding: 9px 13px;
  border-radius: 5px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
}

.primary-nav button:hover,
.primary-nav button[aria-current="page"] {
  background: var(--ink);
  color: white;
}

.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
}

.language-switcher {
  gap: 2px;
}

.language-switcher button {
  padding: 6px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.language-switcher button[aria-pressed="true"] {
  border-bottom: 2px solid var(--vermillion);
  color: var(--ink);
}

.profile-button {
  display: inline-flex;
  width: auto;
  min-width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  border: 1px solid var(--ink);
  border-radius: 18px;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
}

main {
  min-height: calc(100vh - 180px);
}

.panel {
  display: none;
  width: var(--content);
  margin: 0 auto;
  padding: 46px 0 90px;
}

.panel.is-active {
  display: block;
  animation: panel-in 220ms ease-out;
}

@keyframes panel-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
}

.eyebrow,
.micro-label,
.template-code,
.demo-label {
  color: var(--vermillion);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.hero-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(340px, 0.65fr);
  min-height: 520px;
  border-bottom: 1px solid var(--rule);
}

.hero-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 58px 7vw 58px 0;
  border-right: 1px solid var(--rule);
}

.hero-lead {
  max-width: 62ch;
  color: var(--muted);
  font-size: 19px;
}

.hero-actions,
.proof-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.button {
  min-height: 46px;
  padding: 11px 17px;
  border: 1px solid var(--ink);
  border-radius: 6px;
  font-weight: 700;
}

.button-primary {
  background: var(--ink);
  color: white;
}

.button-primary:hover {
  border-color: var(--accent-dark);
  background: var(--accent-dark);
}

.button-secondary {
  background: transparent;
}

.button-secondary:hover {
  background: var(--surface-strong);
}

.decision-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 42px;
  background: var(--ink);
  color: white;
}

.decision-card-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 12px;
}

.status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #63d09a;
  box-shadow: 0 0 0 5px rgba(99, 208, 154, 0.15);
}

.mini-route {
  display: grid;
  gap: 0;
  margin: 32px 0;
  padding: 0;
  list-style: none;
}

.mini-route li {
  position: relative;
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  min-height: 56px;
  color: #9da7b2;
}

.mini-route li:not(:last-child)::after {
  position: absolute;
  top: 40px;
  bottom: -16px;
  left: 14px;
  width: 1px;
  background: #59636d;
  content: "";
}

.mini-route-marker {
  position: relative;
  z-index: 1;
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid #59636d;
  border-radius: 50%;
  background: var(--ink);
  font-family: ui-monospace, monospace;
  font-size: 11px;
}

.mini-route-copy {
  display: grid;
  min-width: 0;
  gap: 2px;
  padding-left: 9px;
}

.mini-route-copy strong {
  overflow: hidden;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mini-route-copy small {
  color: #7f8a95;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 9px;
  line-height: 1.2;
  text-transform: uppercase;
}

.mini-route .is-current,
.mini-route .is-done {
  color: white;
}

.mini-route .is-current > .mini-route-marker {
  border-color: var(--vermillion);
  background: var(--vermillion);
}

.mini-route .is-complete > .mini-route-marker {
  border-color: #63d09a;
  color: #63d09a;
}

.freshness-note {
  margin: auto 0 0;
  color: #aeb7c0;
  font-size: 12px;
}

.freshness-note button {
  padding: 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: white;
}

.focus-section {
  padding: 68px 0;
  border-bottom: 1px solid var(--rule);
}

.section-heading,
.page-heading,
.board-heading,
.evidence-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.section-heading > p,
.page-heading > div > p,
.supplier-legal {
  color: var(--muted);
}

.section-heading > p {
  max-width: 42ch;
}

.section-heading.compact {
  align-items: center;
}

.category-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 28px;
}

.category-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px 16px;
  min-height: 190px;
  padding: 22px;
  text-align: left;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: transparent;
}

.category-card:hover,
.category-card[aria-pressed="true"] {
  border-color: var(--ink);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.category-card[aria-pressed="true"] {
  border-width: 2px;
}

.category-card strong {
  font-size: 20px;
}

.category-code {
  grid-column: 2;
  grid-row: 1 / span 3;
  color: var(--rule-strong);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 30px;
  font-weight: 700;
  writing-mode: vertical-rl;
}

.category-description {
  max-width: 35ch;
  color: var(--muted);
  font-size: 14px;
}

.category-action {
  align-self: end;
  color: var(--accent-dark);
  font-size: 13px;
  font-weight: 700;
}

.supplier-workspace {
  display: grid;
  grid-template-columns: minmax(300px, 0.7fr) minmax(0, 1.3fr);
  min-height: 650px;
  padding-top: 68px;
}

.supplier-list-column {
  padding-right: 28px;
  border-right: 1px solid var(--rule);
}

.result-count,
.context-count,
.warning-badge,
.fresh-source {
  padding: 5px 8px;
  border: 1px solid var(--rule);
  border-radius: 4px;
  color: var(--muted);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 10px;
}

.supplier-list {
  display: grid;
  gap: 8px;
  margin-top: 24px;
}

.supplier-load-more {
  width: 100%;
  margin-top: 12px;
}

.supplier-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  margin-top: 18px;
}

.supplier-search input {
  min-width: 0;
}

.supplier-search-status {
  min-height: 18px;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.search-match {
  color: var(--accent-dark);
  overflow-wrap: anywhere;
}

.original-name {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.admin-divider {
  margin: 36px 0;
  border: 0;
  border-top: 1px solid var(--rule);
}

.supplier-row {
  display: grid;
  gap: 7px;
  width: 100%;
  padding: 18px;
  text-align: left;
  border: 1px solid var(--rule);
  border-radius: 6px;
  background: transparent;
}

.supplier-row:hover,
.supplier-row[aria-pressed="true"] {
  border-color: var(--ink);
  background: var(--surface);
}

.supplier-row[aria-pressed="true"] {
  box-shadow: inset 4px 0 var(--accent);
}

.supplier-row-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.supplier-row-top strong {
  font-size: 15px;
}

.trust-rank {
  flex: 0 0 auto;
  padding: 3px 6px;
  border: 1px solid var(--success);
  border-radius: 3px;
  color: var(--success);
  font-family: ui-monospace, monospace;
  font-size: 10px;
  font-weight: 700;
}

.supplier-location,
.supplier-capabilities,
.supplier-meta {
  color: var(--muted);
  font-size: 12px;
}

.supplier-meta {
  color: var(--ink);
  font-weight: 600;
}

.supplier-proof {
  padding: 0 0 40px 42px;
}

.shortlist-workspace {
  margin-top: 40px;
  padding: 40px;
  border: 1px solid var(--ink);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}

.shortlist-lead {
  max-width: 76ch;
  color: var(--muted);
}

.shortlist-empty {
  padding: 22px;
  border: 1px dashed var(--rule-strong);
  background: var(--paper);
}

.shortlist-create-form,
.shortlist-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, 0.45fr) auto;
  align-items: end;
  gap: 12px;
}

.shortlist-create-form {
  padding: 20px;
  border: 1px solid var(--rule);
  background: var(--paper);
}

.shortlist-toolbar {
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 18px;
}

.shortlist-content {
  margin-top: 18px;
}

.shortlist-summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rule);
}

.shortlist-summary h3 {
  margin-bottom: 6px;
}

.shortlist-candidates,
.shortlist-history {
  display: grid;
  gap: 8px;
}

.shortlist-candidate,
.shortlist-history-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 14px;
  border: 1px solid var(--rule);
  background: var(--surface-strong);
}

.shortlist-candidate > span,
.shortlist-history-item > span {
  display: grid;
  gap: 2px;
}

.shortlist-candidate small,
.shortlist-history-item small {
  color: var(--muted);
}

.shortlist-selected {
  margin: 14px 0;
  padding: 14px;
  border-left: 4px solid var(--success);
  background: #f1faf5;
}

.shortlist-comparison-dialog {
  width: min(1180px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  padding: 0;
  overflow: auto;
  border: 1px solid var(--ink);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
}

.shortlist-comparison-dialog::backdrop {
  background: rgba(23, 32, 42, 0.58);
}

.shortlist-comparison-dialog > .message-policy {
  margin: 0;
  padding: 18px 28px;
  border-bottom: 1px solid var(--rule);
}

.shortlist-comparison-content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 12px;
  padding: 24px 28px 30px;
}

.comparison-supplier-card {
  display: grid;
  align-content: start;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--rule);
  background: var(--surface-strong);
}

.comparison-supplier-card[data-availability="unavailable"] {
  opacity: 0.68;
}

.comparison-supplier-card h3 {
  margin: 0;
}

.comparison-facts {
  display: grid;
  gap: 7px;
  margin: 0;
}

.comparison-facts div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--rule);
}

.comparison-facts dt,
.comparison-facts dd {
  margin: 0;
}

.comparison-facts dd {
  font-weight: 700;
}

.comparison-facts dd[data-state="confirmed"] { color: var(--success); }
.comparison-facts dd[data-state="expired"] { color: var(--danger); }
.comparison-facts dd[data-state="self_claim"] { color: var(--warning); }
.comparison-facts dd[data-state="missing"],
.comparison-facts dd[data-state="unavailable"] { color: var(--muted); }

.demo-label {
  display: inline-block;
  margin-bottom: 28px;
  padding: 6px 8px;
  background: #fff0e8;
}

.proof-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 170px;
  gap: 24px;
}

.proof-heading h3 {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: clamp(30px, 3vw, 46px);
  font-weight: 500;
}

.proof-heading p:last-child {
  max-width: 62ch;
  color: var(--muted);
}

.supplier-legal {
  margin-bottom: 6px;
  font-size: 13px;
}

.trust-level {
  align-self: start;
  display: grid;
  gap: 3px;
  padding: 16px;
  text-align: left;
  border: 1px solid var(--success);
  border-radius: 6px;
  background: #f1faf5;
}

.trust-level-code {
  color: var(--success);
  font-family: ui-monospace, monospace;
  font-size: 24px;
  font-weight: 700;
}

.trust-level small {
  color: var(--accent-dark);
  text-decoration: underline;
}

.supplier-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 28px 0 34px;
  border-block: 1px solid var(--rule);
}

.supplier-facts div {
  padding: 16px 10px 16px 0;
}

.supplier-facts div + div {
  padding-left: 16px;
  border-left: 1px solid var(--rule);
}

.supplier-facts dt {
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
}

.supplier-facts dd {
  margin: 5px 0 0;
  font-weight: 700;
}

.evidence-heading {
  align-items: center;
  margin-bottom: 12px;
}

.evidence-heading span {
  color: var(--muted);
  font-family: ui-monospace, monospace;
  font-size: 11px;
}

.evidence-preview {
  border-top: 1px solid var(--ink);
}

.evidence-row {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  border-bottom: 1px solid var(--rule);
}

.evidence-state {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  color: white;
  font-size: 12px;
  font-weight: 700;
}

.evidence-state.state-confirmed {
  background: var(--success);
}

.evidence-state.state-review {
  background: var(--warning);
}

.evidence-state.state-missing {
  background: var(--danger);
}

.freshness {
  color: var(--muted);
  font-family: ui-monospace, monospace;
  font-size: 10px;
}

.page-heading {
  align-items: flex-start;
  margin-bottom: 40px;
  padding-bottom: 30px;
  border-bottom: 1px solid var(--rule);
}

.page-heading > div {
  min-width: 0;
}

.page-heading .warning-badge {
  flex: 0 1 280px;
  max-width: 280px;
  text-align: center;
  white-space: normal;
}

.page-heading h1 {
  max-width: 21ch;
  font-size: clamp(38px, 5vw, 68px);
}

.page-heading > div > p:last-child {
  max-width: 70ch;
  margin-bottom: 0;
}

.warning-badge {
  border-color: var(--warning);
  background: #fff8dd;
  color: var(--warning);
}

.deal-inbox {
  margin-bottom: 24px;
  padding: 24px;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--surface);
}

.deal-inbox .board-heading {
  align-items: end;
}

.deal-inbox .board-heading h2 {
  margin-bottom: 8px;
}

.deal-inbox .board-heading p:last-child {
  max-width: 72ch;
  margin: 0;
  color: var(--muted);
}

.deal-inbox-filter {
  display: grid;
  flex: 0 0 min(240px, 100%);
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
}

.deal-inbox-filter select {
  min-height: 42px;
  padding: 8px 32px 8px 10px;
  border: 1px solid var(--rule-strong);
  border-radius: 5px;
  background: white;
}

.deal-inbox-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.deal-inbox-list > .empty-state {
  grid-column: 1 / -1;
}

.deal-inbox-item {
  display: grid;
  align-content: start;
  gap: 12px;
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--rule);
  border-top: 3px solid var(--rule-strong);
  border-radius: 6px;
  background: var(--surface-strong);
}

.deal-inbox-item.is-selected {
  border-color: var(--accent);
  border-top-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent);
}

.deal-inbox-item-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.deal-inbox-item-heading time {
  color: var(--muted);
  font-family: ui-monospace, monospace;
  font-size: 9px;
  text-align: right;
}

.deal-inbox-item h3 {
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 20px;
}

.deal-inbox-item > p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.deal-inbox-item dl {
  display: grid;
  gap: 0;
  margin: 0;
  border-top: 1px solid var(--rule);
}

.deal-inbox-item dl div {
  display: grid;
  grid-template-columns: minmax(90px, 0.7fr) minmax(0, 1.3fr);
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid var(--rule);
  font-size: 11px;
}

.deal-inbox-item dt {
  color: var(--muted);
}

.deal-inbox-item dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  text-align: right;
}

.deal-inbox-item .button {
  align-self: end;
  width: 100%;
  margin-top: auto;
}

.deal-layout,
.negotiation-grid,
.calculator-layout,
.assistant-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 1.28fr);
  gap: 16px;
}

.route-board,
.rfq-card,
.message-output,
.context-card,
.calculator-form,
.cost-result,
.assistant-form,
.checklist-result,
.template-library article,
.safety-rules {
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--surface);
}

.route-board,
.rfq-card,
.message-output,
.context-card,
.cost-result,
.assistant-form,
.checklist-result,
.safety-rules {
  padding: 24px;
}

.board-heading {
  align-items: center;
  margin-bottom: 20px;
}

.board-heading h2 {
  margin: 0;
  font-size: 22px;
}

.board-heading select,
.rfq-card select {
  min-height: 40px;
  padding: 8px 32px 8px 10px;
  border: 1px solid var(--rule-strong);
  border-radius: 5px;
  background: white;
}

.deal-route {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.deal-route li {
  display: grid;
  grid-template-columns: 40px 1fr auto;
  gap: 2px 10px;
  padding: 13px 0;
  border-bottom: 1px solid var(--rule);
  color: var(--muted);
}

.deal-route li strong {
  color: var(--ink);
}

.deal-route li p {
  grid-column: 2 / -1;
  margin: 0;
  font-size: 12px;
}

.route-index,
.route-state {
  font-family: ui-monospace, monospace;
  font-size: 10px;
}

.route-index {
  display: grid;
  grid-row: 1 / span 2;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid var(--rule-strong);
  border-radius: 50%;
}

.deal-route .is-current .route-index {
  border-color: var(--accent);
  background: var(--accent);
  color: white;
}

.deal-route .is-done .route-index {
  border-color: var(--success);
  color: var(--success);
}

.route-state {
  color: var(--muted);
}

.deal-route .is-current .route-state {
  color: var(--accent-dark);
  font-weight: 700;
}

.route-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 22px;
}

.route-action span,
.route-action strong {
  display: block;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
}

.structured-brief-builder {
  display: grid;
  gap: 18px;
  padding: 18px;
  border: 1px solid var(--rule-strong);
  border-top: 4px solid var(--accent);
  background: #f3f6fb;
}

.structured-brief-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.55fr);
  gap: 20px;
  align-items: start;
}

.structured-brief-head h3,
.structured-brief-head p,
.structured-brief-meta,
.structured-brief-error {
  margin: 0;
}

.structured-brief-head h3 {
  margin-top: 5px;
  font-size: 20px;
}

.structured-brief-head p {
  max-width: 68ch;
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
}

.rfq-supplier-context {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 12px 14px;
  border-left: 3px solid var(--accent);
  background: var(--surface);
}

.rfq-supplier-context span,
.rfq-supplier-context small,
.structured-brief-meta,
.structured-brief-help {
  color: var(--muted);
  font-size: 11px;
}

.rfq-supplier-context strong,
.rfq-supplier-context small {
  overflow-wrap: anywhere;
}

.structured-brief-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 0.8fr) minmax(0, 1.2fr);
  gap: 16px;
  align-items: end;
}

.structured-brief-meta {
  padding-bottom: 11px;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}

.structured-brief-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.structured-brief-field > span small {
  margin-left: 5px;
  color: var(--accent-dark);
  font: 700 9px/1.3 "IBM Plex Mono", ui-monospace, monospace;
  text-transform: uppercase;
}

.structured-brief-field[data-invalid="true"] input,
.structured-brief-field[data-invalid="true"] textarea,
.structured-brief-field[data-invalid="true"] select {
  border-color: var(--danger);
  box-shadow: 0 0 0 1px var(--danger);
}

.structured-brief-field-error {
  color: var(--danger);
  font-size: 11px;
  font-weight: 700;
}

.structured-brief-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--rule);
}

.structured-brief-status[data-state="ready"] {
  border-color: var(--success);
  color: var(--success);
}

.structured-brief-status[data-state="editing"] {
  border-color: var(--warning);
  color: var(--warning);
}

.rfq-catalog-provenance {
  display: grid;
  grid-template-columns: minmax(220px, 0.75fr) minmax(0, 1.25fr);
  gap: 18px;
  padding: 16px 18px;
  border: 1px dashed var(--rule-strong);
  background: color-mix(in srgb, var(--surface) 90%, var(--accent) 10%);
}

.rfq-catalog-provenance h3,
.rfq-catalog-provenance p {
  margin: 4px 0 0;
}

.rfq-catalog-provenance p,
.rfq-catalog-provenance > small {
  color: var(--muted);
  font-size: 12px;
}

.rfq-catalog-provenance-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.rfq-catalog-provenance > small {
  grid-column: 1 / -1;
}

.field {
  display: grid;
  gap: 7px;
}

.field > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
}

.field input,
.field textarea,
.field select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--rule-strong);
  border-radius: 5px;
  background: white;
}

.field textarea {
  min-height: 110px;
  resize: vertical;
}

.field-wide {
  grid-column: 1 / -1;
}

.negotiation-grid {
  grid-template-columns: minmax(0, 1.28fr) minmax(280px, 0.72fr);
  margin-top: 16px;
}

.text-button {
  padding: 5px 0;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: var(--accent-dark);
  font-weight: 700;
}

.message-output pre {
  overflow: auto;
  max-height: 440px;
  margin: 0;
  padding: 18px;
  white-space: pre-wrap;
  border-left: 3px solid var(--accent);
  background: #f3f6fb;
  font: 13px/1.65 "IBM Plex Mono", ui-monospace, monospace;
}

.context-card ul {
  display: grid;
  gap: 8px;
  max-height: 440px;
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
}

.context-entry,
.context-empty {
  padding: 13px;
  border: 1px solid var(--rule);
  border-radius: 5px;
}

.context-entry {
  display: grid;
  gap: 5px;
}

.context-entry p,
.context-empty {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.context-time {
  font-family: ui-monospace, monospace;
  font-size: 9px;
  text-transform: uppercase;
}

.calculator-layout {
  grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.85fr);
}

.calculator-form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  overflow: hidden;
}

.calculator-form fieldset {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 24px;
  border: 0;
}

.calculator-form fieldset + fieldset {
  border-left: 1px solid var(--rule);
}

.calculator-form fieldset:nth-of-type(odd) {
  border-left: 0;
}

.calculator-form fieldset:nth-of-type(n + 3) {
  border-top: 1px solid var(--rule);
}

.calculator-form legend {
  float: left;
  width: 100%;
  margin-bottom: 18px;
  font-size: 20px;
  font-weight: 700;
}

.cost-result {
  position: sticky;
  top: 94px;
  align-self: start;
}

.cost-range {
  display: grid;
  gap: 7px;
}

.cost-range span,
.cost-range small {
  color: var(--muted);
}

.cost-range strong {
  font-family: "IBM Plex Serif", Georgia, serif;
  overflow-wrap: anywhere;
  font-size: clamp(24px, 1.9vw, 32px);
  font-weight: 500;
  line-height: 1.12;
}

.uncertainty-track {
  position: relative;
  height: 18px;
  margin: 24px 0;
  background: #e4e0d8;
}

.uncertainty-base,
.uncertainty-buffer {
  position: absolute;
  inset-block: 0;
}

.uncertainty-base {
  left: 0;
  width: 86%;
  background: var(--accent);
}

.uncertainty-buffer {
  right: 0;
  width: 14%;
  background: repeating-linear-gradient(135deg, #efb15e 0 6px, #f7d09a 6px 12px);
}

.cost-result dl {
  margin: 0;
  border-top: 1px solid var(--ink);
}

.cost-result dl div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 0;
  border-bottom: 1px solid var(--rule);
}

.cost-result dt {
  color: var(--muted);
}

.cost-result dd {
  margin: 0;
  font-family: ui-monospace, monospace;
  font-weight: 700;
}

.assumption-note {
  margin-top: 22px;
  padding: 14px;
  border-left: 3px solid var(--warning);
  background: #fff8dd;
}

.assumption-note p {
  margin: 6px 0 0;
  color: #69551a;
  font-size: 12px;
}

#exchange-reference-evidence code {
  overflow-wrap: anywhere;
  font-size: 10px;
}

.calculation-history {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.calculation-version-card {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--rule);
  border-radius: 6px;
  background: var(--surface);
}

.calculation-version-card > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.calculation-version-card p,
.calculation-version-card small,
.source-caution {
  margin: 0;
}

.calculation-version-card small {
  overflow-wrap: anywhere;
  color: var(--muted);
}

.saved-scenario-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.saved-scenario-grid span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--rule);
  background: #f3f6fb;
}

.saved-scenario-grid strong {
  overflow-wrap: anywhere;
  font: 700 12px/1.3 ui-monospace, monospace;
}

.scenario-rule-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.scenario-rule-column {
  display: grid;
  gap: 12px;
  min-width: 0;
  margin: 0;
  padding: 16px;
  border: 1px solid var(--rule);
}

.scenario-rule-column legend {
  padding-inline: 6px;
  font-weight: 700;
}

.source-caution {
  padding: 10px 12px;
  border-left: 3px solid var(--warning);
  background: #fff8dd;
  color: #69551a;
  font-size: 12px;
}

.assistant-layout {
  grid-template-columns: minmax(280px, 0.6fr) minmax(0, 1.4fr);
}

.assistant-form {
  display: grid;
  align-self: start;
  gap: 16px;
}

.checklist-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 18px;
}

.state {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 4px 7px;
  border: 1px solid currentColor;
  border-radius: 3px;
  font-family: ui-monospace, monospace;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.state-confirmed {
  color: var(--success);
}

.state-review {
  color: var(--warning);
}

.state-specialist {
  color: var(--accent-dark);
}

.state-blocker,
.state-missing {
  color: var(--danger);
}

.checklist-result ol {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}

.checklist-item {
  display: grid;
  grid-template-columns: 130px 1fr 170px;
  gap: 16px;
  padding: 17px 0;
  border-top: 1px solid var(--rule);
}

.checklist-item strong {
  display: block;
  margin-bottom: 4px;
}

.checklist-item p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.checklist-owner {
  align-self: start;
  padding-left: 10px;
  border-left: 1px solid var(--rule);
  color: var(--muted);
  font-size: 11px;
}

.checklist-blocker {
  background: linear-gradient(90deg, #fff1ee 0, transparent 65%);
}

.official-sources {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 22px;
  margin-top: 16px;
  padding: 18px 22px;
  border: 1px solid var(--rule);
  background: var(--surface);
  font-size: 12px;
}

.deal-import-gate {
  margin-top: 24px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid var(--line);
  border-radius: 24px;
  background: color-mix(in srgb, var(--surface) 92%, var(--accent) 8%);
}

.deal-import-gate-head,
.deal-import-check-head,
.deal-import-check-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.deal-import-gate-head h2 { margin: 4px 0 0; }
.deal-import-checks { display: grid; gap: 12px; margin-top: 18px; }

.deal-import-check {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface);
}

.deal-import-check[data-ready="true"] { border-color: color-mix(in srgb, #16835d 55%, var(--line)); }
.deal-import-check[data-ready="false"] { border-color: color-mix(in srgb, #c98022 45%, var(--line)); }
.deal-import-check p { margin: 8px 0; }
.deal-import-check form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.deal-import-check form .field-wide,
.deal-import-check form button { grid-column: 1 / -1; }
.deal-import-check-meta { color: var(--muted); font-size: .84rem; flex-wrap: wrap; }
.deal-import-check-evidence {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 10px;
  color: var(--muted);
  font-size: .84rem;
}
.deal-import-check-evidence .text-button { font-size: inherit; }

@media (max-width: 680px) {
  .deal-import-gate-head,
  .deal-import-check-head { align-items: flex-start; flex-direction: column; }
  .deal-import-check form { grid-template-columns: 1fr; }
}

.official-sources span {
  flex-basis: 100%;
  color: var(--muted);
}

.template-library {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.template-library article {
  display: flex;
  min-height: 270px;
  flex-direction: column;
  align-items: flex-start;
  padding: 24px;
}

.template-library article.is-selected {
  border-color: var(--accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);
}

.template-library h2 {
  margin-top: 32px;
  font-size: 24px;
}

.template-library p {
  color: var(--muted);
}

.template-library small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.template-library .button {
  margin-top: auto;
}

.safety-rules {
  display: grid;
  grid-template-columns: 0.65fr 1.35fr;
  gap: 32px;
  margin-top: 16px;
}

.safety-rules ul {
  margin: 0;
  padding-left: 20px;
}

.safety-rules li + li {
  margin-top: 10px;
}

.trust-dialog {
  width: min(760px, calc(100vw - 32px));
  max-height: min(820px, calc(100vh - 32px));
  padding: 0;
  overflow: auto;
  border: 1px solid var(--ink);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.28);
}

.trust-dialog::backdrop {
  background: rgba(23, 32, 42, 0.58);
}

.dialog-head,
.trust-dialog > p,
.evidence-list,
.dialog-warning {
  margin: 0;
  padding: 24px 28px;
}

.dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  border-bottom: 1px solid var(--rule);
}

.dialog-head h2 {
  margin: 0;
}

.dialog-close {
  width: 40px;
  height: 40px;
  border: 1px solid var(--rule);
  border-radius: 50%;
  background: transparent;
  font-size: 26px;
}

.evidence-list {
  display: grid;
  gap: 8px;
  padding-top: 0;
}

.evidence-card {
  padding: 16px;
  border: 1px solid var(--rule);
  border-radius: 5px;
}

.evidence-card > div {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.evidence-card p {
  margin: 9px 0;
}

.evidence-card small {
  color: var(--muted);
}

.dialog-warning {
  border-top: 1px solid var(--warning);
  background: #fff8dd;
  color: #69551a;
  font-size: 12px;
}

.toast {
  position: fixed;
  z-index: 50;
  right: 24px;
  bottom: 24px;
  max-width: 390px;
  padding: 14px 17px;
  transform: translateY(24px);
  border: 1px solid white;
  border-radius: 6px;
  background: var(--ink);
  color: white;
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease, transform 160ms ease;
  box-shadow: var(--shadow);
}

.toast.is-visible {
  transform: none;
  opacity: 1;
}

.site-footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 30px max(24px, calc((100vw - 1440px) / 2));
  border-top: 1px solid var(--rule);
  background: var(--ink);
  color: white;
  font-size: 12px;
}

.site-footer div,
.site-footer span {
  display: grid;
  gap: 5px;
}

.site-footer span {
  color: #adb6bf;
}

/* Runtime component aliases for the current DOM renderer. */
.category-card {
  grid-template-columns: auto 1fr;
  align-items: start;
}

.category-card strong,
.category-card > span:last-child > span {
  display: block;
}

.category-card strong {
  margin-bottom: 8px;
}

.category-card > span:last-child > span {
  color: var(--muted);
  font-size: 14px;
}

.category-icon,
.supplier-avatar {
  display: grid;
  place-items: center;
  border: 1px solid var(--ink);
  border-radius: 5px;
  color: var(--accent-dark);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 12px;
  font-weight: 700;
}

.category-icon {
  width: 56px;
  height: 56px;
}

.supplier-row {
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
}

.supplier-row > span:nth-child(2) {
  display: grid;
  gap: 3px;
}

.supplier-row > span:nth-child(2) > span,
.context-card li span,
.context-card li p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}

.supplier-avatar {
  width: 38px;
  height: 38px;
  background: var(--paper);
}

.trust-badge {
  display: inline-flex;
  width: fit-content;
  padding: 4px 7px;
  border: 1px solid var(--success);
  border-radius: 3px;
  color: var(--success);
  font-family: ui-monospace, monospace;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.proof-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.proof-head h2 {
  max-width: 18ch;
  margin-top: 16px;
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 500;
}

.proof-head p,
.supplier-summary {
  color: var(--muted);
}

.supplier-origin {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 14px 0;
  color: var(--muted);
  font-size: 14px;
  overflow-wrap: anywhere;
}

.supplier-origin a {
  color: var(--accent-dark);
}

.supplier-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr));
  gap: 12px;
  margin: 18px 0;
}

.supplier-gallery figure {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--rule);
  border-radius: 16px;
  background: var(--surface);
}

.supplier-gallery img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.supplier-gallery figcaption {
  padding: 10px 12px 12px;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}

.review-note {
  padding-left: 10px;
  border-left: 3px solid var(--rule-strong);
  color: var(--muted);
}

.supplier-media-preview {
  display: block;
  width: min(100%, 360px);
  margin: 10px 0;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--surface);
}

.supplier-summary {
  max-width: 68ch;
  margin-top: 20px;
  font-size: 17px;
}

.supplier-facts span,
.supplier-facts strong {
  display: block;
}

.supplier-facts span {
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
}

.supplier-facts strong {
  margin-top: 5px;
}

.capability-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.capability-list span {
  padding: 6px 9px;
  border: 1px solid var(--rule);
  border-radius: 3px;
  background: var(--surface);
  font-size: 11px;
}

.mini-route .is-complete {
  color: white;
}

.mini-route .is-complete > span:first-child {
  border-color: #63d09a;
  color: #63d09a;
}

.deal-route .deal-stage > span:nth-child(2) {
  display: grid;
  gap: 3px;
}

.deal-route .deal-stage > span:nth-child(2) > span {
  color: var(--muted);
  font-size: 12px;
}

.stage-number {
  display: grid;
  grid-row: 1 / span 2;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid var(--rule-strong);
  border-radius: 50%;
  font-family: ui-monospace, monospace;
  font-size: 10px;
}

.deal-stage.is-current .stage-number {
  border-color: var(--accent);
  background: var(--accent);
  color: white;
}

.deal-stage.is-complete .stage-number {
  border-color: var(--success);
  color: var(--success);
}

.stage-state {
  color: var(--muted);
  font-family: ui-monospace, monospace;
  font-size: 9px;
  text-transform: uppercase;
}

.context-card li:not(.context-empty) {
  display: grid;
  gap: 5px;
  padding: 13px;
  border: 1px solid var(--rule);
  border-radius: 5px;
}

.checklist-symbol {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-family: ui-monospace, monospace;
  font-weight: 700;
}

.checklist-item[data-status="confirmed"] .checklist-symbol { color: var(--success); }
.checklist-item[data-status="review"] .checklist-symbol { color: var(--warning); }
.checklist-item[data-status="specialist"] .checklist-symbol { color: var(--accent-dark); }
.checklist-item[data-status="blocker"] .checklist-symbol { color: var(--danger); }
.checklist-item[data-status="blocker"] { background: linear-gradient(90deg, #fff1ee 0, transparent 65%); }

.assistant-progress {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-family: ui-monospace, monospace;
  font-size: 11px;
}

.assistant-progress-track {
  height: 5px;
  overflow: hidden;
  background: #ddd9d0;
}

.assistant-progress-track span {
  display: block;
  width: 25%;
  height: 100%;
  background: var(--accent);
  transition: width 180ms ease-out;
}

.assistant-step {
  display: grid;
  gap: 16px;
}

.assistant-step h2 {
  margin-bottom: 0;
  font-size: 24px;
}

.assistant-review p {
  color: var(--muted);
}

.assistant-step-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding-top: 6px;
  border-top: 1px solid var(--rule);
}

[hidden] {
  display: none !important;
}

.trust-dialog .evidence-row {
  grid-template-columns: 16px minmax(0, 1fr) auto;
  align-items: start;
  min-height: 0;
  padding: 15px 0;
}

.trust-dialog .evidence-row > span:nth-child(2) {
  display: grid;
  gap: 3px;
}

.trust-dialog .evidence-row > span:nth-child(2) > span,
.trust-dialog .evidence-row small {
  color: var(--muted);
  font-size: 11px;
}

.evidence-indicator {
  width: 10px;
  height: 10px;
  margin-top: 5px;
  border-radius: 50%;
  background: var(--warning);
}

.trust-dialog .evidence-row[data-status="confirmed"] .evidence-indicator { background: var(--success); }
.trust-dialog .evidence-row[data-status="missing"] .evidence-indicator { background: var(--danger); }

.evidence-meta {
  display: grid;
  justify-items: end;
}

.evidence-freshness[data-state="fresh"] { color: var(--success) !important; }
.evidence-freshness[data-state="stale"] { color: var(--danger) !important; }

@media (max-width: 1080px) {
  :root {
    --content: min(100% - 32px, 940px);
  }

  .site-header {
    grid-template-columns: 1fr auto;
    background: var(--paper);
  }

  .primary-nav {
    position: fixed;
    z-index: 30;
    right: 12px;
    bottom: 12px;
    left: 12px;
    justify-content: space-around;
    box-shadow: 0 10px 40px rgba(23, 32, 42, 0.22);
  }

  .primary-nav button {
    flex: 1;
  }

  .hero-shell {
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
  }

  .supplier-workspace,
  .deal-layout,
  .negotiation-grid,
  .calculator-layout,
  .assistant-layout {
    grid-template-columns: 1fr;
  }

  .deal-inbox-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .supplier-list-column {
    padding: 0 0 28px;
    border-right: 0;
    border-bottom: 1px solid var(--rule);
  }

  .supplier-list {
    grid-template-columns: repeat(2, 1fr);
  }

  .supplier-proof {
    padding: 34px 0 0;
  }

  .cost-result {
    position: static;
  }

  .site-footer {
    padding-bottom: 100px;
  }
}

@media (max-width: 720px) {
  :root {
    --content: calc(100% - 24px);
  }

  body {
    font-size: 15px;
  }

  .deal-inbox {
    padding: 16px;
  }

  .deal-inbox .board-heading {
    display: grid;
    align-items: start;
  }

  .deal-inbox-filter,
  .deal-inbox-list {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .scenario-rule-grid,
  .saved-scenario-grid {
    grid-template-columns: 1fr;
  }

  .site-header {
    min-height: 64px;
    padding-inline: 12px;
  }

  .header-actions {
    gap: 6px;
  }

  .brand {
    gap: 7px;
    min-width: 0;
  }

  .brand small {
    display: none;
  }

  .brand strong {
    font-size: 16px;
  }

  .language-switcher button {
    padding-inline: 4px;
  }

  .profile-button {
    display: inline-flex;
    height: 32px;
    min-width: 32px;
    padding-inline: 8px;
    font-size: 10px;
  }

  .primary-nav {
    overflow-x: auto;
    justify-content: flex-start;
    gap: 2px;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 4px;
    scrollbar-width: none;
  }

  .primary-nav button {
    flex: 1 0 54px;
    min-width: 54px;
    padding-inline: 3px;
    font-size: 10.5px;
    scroll-snap-align: center;
  }

  .primary-nav::-webkit-scrollbar { display: none; }

  .panel {
    padding: 20px 0 86px;
  }

  .hero-shell {
    display: flex;
    min-height: 0;
    flex-direction: column;
  }

  .hero-copy {
    padding: 42px 0;
    border-right: 0;
  }

  .hero-copy h1 {
    font-size: clamp(42px, 13.5vw, 62px);
  }

  .hero-lead {
    font-size: 17px;
  }

  .hero-actions,
  .proof-actions {
    display: grid;
    width: 100%;
  }

  .decision-card {
    margin-inline: -12px;
    padding: 26px 24px;
  }

  .focus-section,
  .supplier-workspace {
    padding-top: 44px;
  }

  .section-heading,
  .page-heading,
  .board-heading {
    align-items: flex-start;
  }

  .section-heading,
  .page-heading {
    flex-direction: column;
  }

  .category-grid,
  .supplier-list,
  .template-library,
  .calculator-form,
  .safety-rules {
    grid-template-columns: 1fr;
  }

  .category-card {
    min-height: 165px;
  }

  .supplier-row {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .supplier-search {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .supplier-search .text-button {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .supplier-row .trust-badge {
    grid-column: 2;
  }

  .proof-head {
    display: block;
  }

  .proof-heading {
    grid-template-columns: 1fr;
  }

  .trust-level {
    width: 100%;
  }

  .supplier-facts {
    grid-template-columns: 1fr;
  }

  .supplier-facts div + div {
    padding-left: 0;
    border-top: 1px solid var(--rule);
    border-left: 0;
  }

  .evidence-row {
    grid-template-columns: 28px 1fr;
    padding-block: 10px;
  }

  .trust-dialog .evidence-row {
    grid-template-columns: 14px 1fr;
  }

  .trust-dialog .evidence-meta {
    grid-column: 2;
    justify-items: start;
  }

  .freshness {
    grid-column: 2;
  }

  .page-heading h1 {
    font-size: 42px;
  }

  .route-board,
  .rfq-card,
  .message-output,
  .context-card,
  .cost-result,
  .assistant-form,
  .checklist-result,
  .safety-rules {
    padding: 18px;
  }

  .route-action,
  .form-grid {
    display: grid;
    grid-template-columns: 1fr;
  }

  .structured-brief-builder {
    padding: 14px;
  }

  .structured-brief-head,
  .structured-brief-toolbar,
  .structured-brief-fields,
  .rfq-catalog-provenance,
  .rfq-catalog-provenance-controls {
    grid-template-columns: 1fr;
  }

  .structured-brief-meta {
    padding-bottom: 0;
  }

  .structured-brief-actions {
    display: grid;
  }

  .structured-brief-actions .button {
    width: 100%;
  }

  .route-action .button {
    width: 100%;
  }

  .calculator-form fieldset + fieldset {
    border-top: 1px solid var(--rule);
    border-left: 0;
  }

  .calculator-form fieldset {
    padding: 18px;
  }

  .checklist-item {
    grid-template-columns: 1fr;
    gap: 9px;
  }

  .checklist-owner {
    padding: 0;
    border: 0;
  }

  .template-library article {
    min-height: 230px;
  }

  .site-footer {
    flex-direction: column;
    padding-inline: 16px;
  }

  .toast {
    right: 12px;
    bottom: 88px;
    left: 12px;
  }
}

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

@media (max-width: 720px) {
  .shortlist-workspace {
    margin-top: 24px;
    padding: 18px;
  }

  .shortlist-create-form,
  .shortlist-toolbar,
  .shortlist-candidate,
  .shortlist-history-item {
    grid-template-columns: 1fr;
  }

  .shortlist-create-form .button,
  .shortlist-toolbar .button,
  .shortlist-candidate .button,
  .shortlist-history-item .button {
    width: 100%;
  }

  .shortlist-comparison-content {
    grid-template-columns: 1fr;
    padding: 16px;
  }

  .shortlist-comparison-dialog > .message-policy {
    padding: 16px;
  }
}

/* Server mode, account and moderation workspace. */
.runtime-badge,
.status-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 24px;
  padding: 3px 7px;
  border: 1px solid var(--rule);
  border-radius: 3px;
  color: var(--muted);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.runtime-badge::before {
  width: 6px;
  height: 6px;
  margin-right: 6px;
  border-radius: 50%;
  background: var(--rule-strong);
  content: "";
}

.runtime-badge[data-mode="authenticated"]::before { background: var(--success); }
.runtime-badge[data-mode="server"]::before { background: var(--accent); }
.runtime-badge[data-mode="setup"]::before { background: var(--warning); }
.runtime-badge[data-mode="local"]::before { background: var(--danger); }

.account-dialog {
  width: min(680px, calc(100vw - 32px));
  max-height: min(820px, calc(100vh - 32px));
  padding: 0;
  border: 1px solid var(--ink);
  border-radius: var(--radius);
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 24px 80px rgba(23, 32, 42, 0.28);
  overflow: auto;
}

.account-dialog::backdrop {
  background: rgba(23, 32, 42, 0.62);
}

.account-dialog > section,
.account-dialog > .form-error {
  margin: 0;
  padding: 26px;
}

.account-dialog > section[hidden] {
  display: none;
}

.account-summary {
  padding: 22px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.account-summary > span {
  color: var(--accent-dark);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 11px;
  text-transform: uppercase;
}

.account-summary h3 {
  margin-top: 12px;
}

.account-summary p:last-child {
  margin-bottom: 0;
}

.notification-preferences {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.notification-preferences h3 {
  font-size: 18px;
}

.notification-preferences > p,
.email-delivery-note small,
.preference-toggle small {
  color: var(--muted);
  font-size: 12px;
}

.preference-toggle {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 12px;
  border: 1px solid var(--rule);
  cursor: pointer;
}

.preference-toggle input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--accent);
}

.preference-toggle span {
  display: grid;
  gap: 4px;
}

.email-delivery-note {
  display: flex;
  align-items: center;
  gap: 10px;
}

.security-management {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.security-management h3 {
  font-size: 18px;
}

.security-management > p {
  color: var(--muted);
  font-size: 12px;
}

.security-management .status-chip[data-state="enabled"] {
  border-color: var(--success);
  color: var(--success);
}

#mfa-setup,
#mfa-enabled-actions {
  display: grid;
  gap: 14px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--rule);
}

#mfa-setup textarea,
#mfa-setup input {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 11px;
}

.danger-form {
  padding-top: 14px;
  border-top: 1px solid var(--rule);
}

.danger-form .button {
  color: var(--danger);
}

.recovery-code-result {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid var(--warning);
  background: #fff8dd;
}

.recovery-code-result p {
  margin: 8px 0;
  color: var(--muted);
  font-size: 12px;
}

.recovery-code-result pre {
  margin: 0;
  padding: 12px;
  overflow: auto;
  border: 1px solid var(--rule);
  background: white;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 13px;
  line-height: 1.7;
  user-select: all;
}

.form-error {
  color: var(--danger);
  font-weight: 600;
}

.verification-desk {
  display: grid;
  gap: 22px;
  margin: 30px 0;
  padding: 28px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.verification-desk-head,
.verification-inbox-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.verification-desk-head > div {
  max-width: 760px;
}

.verification-desk-head h2 {
  margin: 4px 0 8px;
  font-size: clamp(28px, 4vw, 42px);
}

.verification-desk .freshness-note {
  max-width: 260px;
  text-align: right;
}

.verification-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--rule);
}

.verification-metrics article {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  padding: 20px;
}

.verification-metrics article + article {
  border-left: 1px solid var(--rule);
}

.verification-metrics span {
  color: var(--muted);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.verification-metrics strong {
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: 34px;
  font-weight: 500;
}

.verification-metrics small {
  color: var(--muted);
  line-height: 1.45;
}

.verification-tabs {
  display: flex;
  max-width: 100%;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.verification-tab {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 9px;
  padding: 10px 14px;
  border: 1px solid var(--rule);
  background: transparent;
  color: var(--muted);
  white-space: nowrap;
  cursor: pointer;
}

.verification-tab strong {
  min-width: 24px;
  padding: 2px 6px;
  border-radius: 999px;
  background: var(--paper);
  color: var(--ink);
  text-align: center;
}

.verification-tab.is-active {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--surface);
}

.moderation-inbox {
  display: grid;
  gap: 12px;
}

.catalog-intake-editors {
  display: grid;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid var(--rule);
}

.catalog-intake-editor {
  border: 1px solid var(--rule);
  background: var(--paper);
}

.catalog-intake-editor > summary {
  padding: 15px 18px;
  font-weight: 700;
  cursor: pointer;
}

.catalog-intake-editor > form {
  padding: 0 18px 18px;
}

.catalog-intake-inbox .review-item code {
  display: inline-block;
  max-width: min(100%, 640px);
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: 10px;
}

.catalog-intake-inbox .review-note {
  padding: 8px 10px;
  border-left: 3px solid var(--rule-strong);
  background: var(--paper);
}

.moderation-inbox-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding: 18px;
  border: 1px solid var(--rule);
  border-left: 4px solid transparent;
}

.moderation-inbox-item.is-overdue,
.moderation-priority-critical {
  border-left-color: var(--danger, #b33a2b);
}

.moderation-priority-high {
  border-left-color: var(--accent);
}

.moderation-inbox-main {
  display: grid;
  min-width: 0;
  gap: 7px;
}

.moderation-inbox-main h3,
.moderation-inbox-main p {
  overflow-wrap: anywhere;
}

.moderation-inbox-main small {
  display: block;
  color: var(--muted);
}

.moderation-inbox-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.moderation-load-more {
  justify-self: start;
}

.moderation-error {
  color: var(--danger, #b33a2b);
}

.review-item.is-moderation-highlighted {
  outline: 3px solid var(--accent);
  outline-offset: 4px;
}

.admin-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.admin-card {
  margin-top: 18px;
  padding: 28px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.admin-card h2 {
  font-size: 28px;
}

.category-checkboxes {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 12px;
  border: 1px solid var(--rule);
}

.category-checkboxes label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.review-queue {
  display: grid;
  gap: 12px;
}

.review-item {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 24px;
  padding: 22px;
  border: 1px solid var(--rule);
  background: var(--paper);
}

.review-item > * {
  min-width: 0;
}

.review-item h3 {
  margin-top: 12px;
}

.review-item p,
.review-item small {
  color: var(--muted);
}

.review-item h3,
.review-item p,
.review-item small,
.review-item code {
  overflow-wrap: anywhere;
}

.review-decision {
  display: grid;
  align-content: end;
  gap: 10px;
}

.review-decision > div {
  display: flex;
  gap: 8px;
}

.publish-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
}

.publish-row select {
  min-height: 44px;
  border: 1px solid var(--rule);
  background: white;
}

.audit-log {
  border-top: 1px solid var(--rule);
}

.audit-entry {
  display: grid;
  grid-template-columns: 1fr 0.8fr 1fr auto;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rule);
  font-size: 12px;
}

.audit-entry > span:first-child {
  color: var(--accent-dark);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
}

.audit-entry time,
.empty-state {
  color: var(--muted);
}

.invite-result {
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--warning);
  background: #fff8dd;
}

.invite-result[hidden] {
  display: none;
}

.invite-result p {
  color: var(--muted);
  font-size: 12px;
}

.invite-result > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.invite-result input {
  min-width: 0;
  border: 1px solid var(--rule);
  background: white;
}

.team-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.team-columns h3 {
  margin-top: 10px;
  font-size: 18px;
}

.team-list {
  border-top: 1px solid var(--rule);
}

.team-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, auto) minmax(140px, auto);
  align-items: center;
  gap: 10px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rule);
}

.team-security,
.team-actions {
  display: grid;
  justify-items: start;
  gap: 5px;
}

.team-actions {
  justify-items: end;
}

.team-item > span:first-child {
  display: grid;
  gap: 3px;
}

.team-item small,
.team-item time {
  color: var(--muted);
  font-size: 10px;
}

.notification-button {
  display: inline-grid;
  min-width: 30px;
  height: 30px;
  place-items: center;
  padding: 0 7px;
  border: 1px solid var(--accent-dark);
  border-radius: 15px;
  background: var(--surface);
  color: var(--accent-dark);
  font-size: 11px;
  font-weight: 800;
}

.collaboration-workspace {
  margin-top: 28px;
  padding: 28px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.collaboration-empty {
  padding: 28px 0 4px;
  color: var(--muted);
}

.collaboration-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-top: 20px;
}

.collaboration-card {
  min-width: 0;
  padding: 20px;
  border: 1px solid var(--rule);
  background: var(--paper);
}

.collaboration-card h3 {
  font-size: 22px;
}

.attachments-card {
  grid-column: 1 / -1;
}

.messages-card {
  grid-column: 1 / -1;
}

.specifications-card,
.commercial-offers-card,
.catalog-provenance-card,
.dossier-card {
  grid-column: 1 / -1;
}

.specification-list,
.commercial-offer-list,
.dossier-export-list {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.catalog-provenance-list {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.catalog-provenance-item {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.catalog-provenance-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0 0;
}

.catalog-provenance-facts > div {
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--rule);
  background: var(--paper);
}

.catalog-provenance-facts dt {
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
}

.catalog-provenance-facts dd {
  display: grid;
  gap: 5px;
  margin: 7px 0 0;
  overflow-wrap: anywhere;
}

.catalog-provenance-facts small {
  color: var(--muted);
}

.catalog-provenance-hashes {
  margin-top: 12px;
}

.catalog-provenance-attributes {
  margin-top: 12px;
}

.catalog-provenance-attributes dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.catalog-provenance-attributes dt {
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
}

.catalog-provenance-attributes dd {
  margin: 4px 0 0;
  overflow-wrap: anywhere;
}

.catalog-provenance-hashes p {
  overflow-wrap: anywhere;
}

.catalog-provenance-hashes code {
  display: inline-block;
  max-width: 100%;
  margin: 3px 4px 3px 0;
  overflow-wrap: anywhere;
}

.specification-item {
  padding: 16px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.commercial-offer-item {
  padding: 16px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.commercial-offer-item[data-status="accepted"] {
  border-left: 4px solid var(--success);
}

.commercial-offer-item[data-status="rejected"] {
  border-left: 4px solid var(--danger);
}

.commercial-offer-item[data-status="superseded"] {
  opacity: 0.72;
}

.offer-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 12px 0;
  background: var(--rule);
}

.offer-facts div {
  min-width: 0;
  padding: 12px;
  background: var(--paper);
}

.offer-facts dt {
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
}

.offer-facts dd {
  margin: 6px 0 0;
  overflow-wrap: anywhere;
}

.commercial-offer-item code {
  overflow-wrap: anywhere;
}

.commercial-offer-editor,
.offer-match-actions {
  margin-top: 16px;
}

.offer-normalization-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 10px;
}

.offer-normalization-proof {
  margin: 14px 0;
  padding: 12px;
  border: 1px solid var(--rule);
  background: var(--paper);
}

.offer-normalization-proof dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.offer-normalization-proof dl div {
  min-width: 0;
}

.offer-normalization-proof dt,
.offer-normalization-proof small {
  color: var(--muted);
}

.offer-normalization-proof dd {
  margin: 4px 0 0;
  overflow-wrap: anywhere;
}

.offer-normalization-proof code {
  overflow-wrap: anywhere;
}

.offer-match-actions > div > ul {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
}

.offer-match-actions li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 12px;
  padding: 10px 0;
  border-top: 1px solid var(--rule);
}

.offer-match-actions li small {
  grid-column: 1 / -1;
  color: var(--muted);
}

.specification-item[data-status="approved"] {
  border-left: 4px solid var(--success);
}

.specification-item[data-status="rejected"] {
  border-left: 4px solid var(--danger);
}

.specification-item[data-status="superseded"] {
  opacity: 0.72;
}

.specification-details {
  margin: 12px 0;
}

.specification-details dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 12px 0 0;
  background: var(--rule);
}

.specification-details dl div {
  padding: 12px;
  background: var(--paper);
}

.specification-details dt {
  color: var(--muted);
  font-size: 10px;
  text-transform: uppercase;
}

.specification-details dd {
  margin: 6px 0 0;
  white-space: pre-wrap;
}

.specification-item code,
.dossier-export-item code {
  overflow-wrap: anywhere;
}

.specification-decisions {
  display: grid;
  gap: 8px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.specification-decisions li,
.dossier-export-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px 12px;
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid var(--rule);
}

.specification-decisions small,
.dossier-export-item small {
  grid-column: 1 / -1;
  color: var(--muted);
}

.dossier-export-item > span {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.specification-decision-controls,
.specification-editor {
  margin-top: 16px;
}

.specification-decision-controls > div {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

.message-policy,
#counterparty-connection {
  color: var(--muted);
  font-size: 12px;
}

.message-list {
  display: grid;
  max-height: 560px;
  gap: 12px;
  margin-top: 16px;
  overflow: auto;
}

.deal-message {
  padding: 16px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.deal-message > header,
.translation-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.deal-message-body,
.translation-block p {
  margin-top: 10px;
  white-space: pre-wrap;
}

.translation-block {
  margin-top: 14px;
  padding: 14px;
  border-left: 3px solid var(--accent);
  background: var(--paper);
}

.translation-form {
  margin-top: 12px;
}

.message-meta {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font-size: 10px;
}

.deal-message > header .message-meta {
  margin-top: 0;
}

.attachment-policy {
  color: var(--muted);
  font-size: 12px;
}

.attachment-list {
  border-top: 1px solid var(--rule);
}

.attachment-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rule);
}

.attachment-item > span:first-child {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.attachment-item strong,
.attachment-item small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.attachment-item small {
  color: var(--muted);
  font-size: 10px;
}

.attachment-item[data-scan-status="clean"] .status-chip {
  border-color: var(--success);
  color: var(--success);
}

.attachment-item[data-scan-status="rejected"] .status-chip {
  border-color: var(--danger);
  color: var(--danger);
}

.marketplace-legend {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-bottom: 28px;
  border: 1px solid var(--rule);
  background: var(--rule);
}

.marketplace-legend span {
  display: grid;
  gap: 5px;
  padding: 16px;
  background: var(--surface);
  color: var(--muted);
  font-size: 12px;
}

.marketplace-legend strong {
  color: var(--ink);
}

.marketplace-match-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0 0 28px;
  padding: 22px;
  border: 1px solid var(--rule-strong);
  background: #f3f6fb;
}

.marketplace-match-form h2,
.marketplace-match-form p {
  margin: 0;
}

.marketplace-match-form p {
  max-width: 780px;
  color: var(--muted);
}

.marketplace-match-form .button {
  align-self: end;
}

.match-status {
  min-height: 1.4em;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 11px;
}

.marketplace-list {
  display: grid;
  gap: 18px;
}

.marketplace-card {
  padding: 24px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.marketplace-card-head,
.marketplace-actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.marketplace-card h2 {
  margin: 12px 0 0;
  font-size: 26px;
}

.marketplace-card .freshness-note {
  margin: 0;
  text-align: right;
}

.match-outcome {
  display: inline-flex;
  margin-left: 8px;
  padding: 4px 7px;
  border: 1px solid currentColor;
  border-radius: 3px;
  font: 700 9px/1.2 "IBM Plex Mono", ui-monospace, monospace;
  text-transform: uppercase;
}

.match-outcome[data-outcome="supported"] {
  color: var(--success);
}

.match-outcome[data-outcome="conditional"] {
  color: var(--warning);
}

.match-outcome[data-outcome="unsupported"] {
  color: var(--danger);
}

.marketplace-match-explanation {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  padding: 16px;
  border-left: 3px solid var(--warning);
  background: var(--paper);
}

.marketplace-match-explanation p,
.marketplace-match-explanation dl {
  margin: 0;
}

.marketplace-match-explanation p,
.marketplace-match-explanation dd {
  color: var(--muted);
  font-size: 12px;
}

.marketplace-match-explanation dl {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
}

.marketplace-match-explanation dt {
  color: var(--accent-dark);
  font: 700 9px/1.4 "IBM Plex Mono", ui-monospace, monospace;
  text-transform: uppercase;
}

.marketplace-match-explanation dd {
  margin: 3px 0 0;
}

.marketplace-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 22px 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}

.marketplace-facts div {
  padding: 16px;
}

.marketplace-facts div + div {
  border-left: 1px solid var(--rule);
}

.marketplace-facts div:nth-child(n + 4) {
  border-top: 1px solid var(--rule);
}

.marketplace-facts div:nth-child(3n + 1) {
  border-left: 0;
}

.marketplace-facts dt {
  margin-bottom: 8px;
  color: var(--accent-dark);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 10px;
  text-transform: uppercase;
}

.marketplace-facts dd {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.guidance-catalog {
  margin-top: 32px;
  padding-top: 30px;
  border-top: 1px solid var(--rule);
}

.guidance-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.guidance-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  padding: 20px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.guidance-card[data-suggested="true"] {
  border-top: 4px solid var(--accent);
}

.guidance-card-head,
.guidance-meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--muted);
  font-size: 10px;
}

.guidance-card h3 {
  margin: 18px 0 10px;
  font-size: 20px;
}

.guidance-card > p {
  color: var(--muted);
  font-size: 13px;
}

.guidance-action {
  display: grid;
  gap: 6px;
  margin-top: auto;
  padding: 14px;
  border-left: 3px solid var(--warning);
  background: #fff8dd;
  font-size: 12px;
}

.guidance-meta {
  display: grid;
  margin-top: 16px;
}

.guidance-meta a {
  overflow-wrap: anywhere;
}

.guidance-version-form {
  margin-top: 20px;
}

.locale-editor {
  display: grid;
  grid-template-columns: 1fr 1.4fr 1.4fr;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--rule);
}

.locale-editor legend {
  padding-inline: 8px;
  color: var(--accent-dark);
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 11px;
  font-weight: 700;
}

.supplier-identity-form {
  margin-top: 22px;
}

.supplier-identity-role {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--rule);
  background: color-mix(in srgb, var(--paper) 86%, var(--surface) 14%);
}

.supplier-identity-role legend {
  padding-inline: 8px;
  color: var(--accent-dark);
  font: 700 11px/1.4 "IBM Plex Mono", ui-monospace, monospace;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.identity-role-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.identity-role-note {
  grid-column: 1 / -1;
}

.supplier-identity-role[data-mapping-status="verified"] {
  border-left: 4px solid var(--success);
}

.supplier-identity-role[data-mapping-status="unverified"] {
  border-left: 4px solid var(--warning);
}

.supplier-identity-role[data-mapping-status="not_applicable"] {
  border-left: 4px solid var(--rule-strong);
}

.supplier-identity-role [data-identity-field]:disabled {
  background: color-mix(in srgb, var(--surface) 90%, var(--paper) 10%);
  color: var(--muted);
}

.identity-role-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}

.identity-role-summary span {
  padding: 5px 8px;
  border: 1px solid var(--rule);
  border-radius: 999px;
  background: var(--surface);
  font-size: 10px;
}

.identity-dossier-meta {
  display: grid;
  gap: 5px;
}

.compact-form {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.comment-list,
.task-list {
  display: grid;
  max-height: 420px;
  gap: 9px;
  overflow: auto;
}

.comment-item,
.task-item {
  padding: 14px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.comment-item > div,
.task-item > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.comment-item p,
.task-item p {
  margin: 10px 0 0;
  white-space: pre-wrap;
}

.comment-item time,
.task-item small {
  color: var(--muted);
  font-size: 10px;
}

.task-item select {
  width: 100%;
  margin-top: 10px;
  min-height: 36px;
  border: 1px solid var(--rule);
  background: white;
}

.notification-dialog {
  width: min(640px, calc(100vw - 32px));
  max-height: min(760px, calc(100vh - 32px));
  padding: 0;
  border: 1px solid var(--ink);
  border-radius: var(--radius);
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 24px 80px rgba(23, 32, 42, 0.28);
}

.notification-dialog::backdrop {
  background: rgba(23, 32, 42, 0.62);
}

.notification-list {
  display: grid;
  gap: 10px;
  padding: 22px;
}

.notification-item {
  padding: 16px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.notification-item[data-read="false"] {
  border-left: 4px solid var(--accent);
}

.notification-item h3 {
  margin: 10px 0 7px;
  font-size: 18px;
}

.notification-item p {
  color: var(--muted);
}

.notification-item > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.notification-item time {
  color: var(--muted);
  font-size: 10px;
}

.session-management {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--rule);
  background: var(--surface);
}

.session-management h3 {
  font-size: 18px;
}

.session-list {
  border-top: 1px solid var(--rule);
}

.session-item {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rule);
}

.session-item > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.session-item small {
  overflow: hidden;
  color: var(--muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 1080px) {
  .runtime-badge {
    display: none;
  }

  .admin-layout,
  .review-item,
  .moderation-inbox-item,
  .collaboration-grid {
    grid-template-columns: 1fr;
  }

  .verification-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .verification-metrics article:nth-child(3) {
    border-top: 1px solid var(--rule);
    border-left: 0;
  }

  .verification-metrics article:nth-child(4) {
    border-top: 1px solid var(--rule);
  }
}

@media (max-width: 720px) {
  .marketplace-legend,
  .marketplace-facts,
  .marketplace-match-form {
    grid-template-columns: 1fr;
  }

  .marketplace-facts div + div {
    border-top: 1px solid var(--rule);
    border-left: 0;
  }

  .marketplace-card-head,
  .marketplace-actions {
    display: grid;
  }

  .marketplace-card .freshness-note {
    text-align: left;
  }

  .guidance-list {
    grid-template-columns: 1fr;
  }

  .locale-editor {
    grid-template-columns: 1fr;
  }

  .identity-role-grid {
    grid-template-columns: 1fr;
  }

  .supplier-identity-role {
    padding: 14px;
  }

  .verification-desk {
    gap: 18px;
    padding: 18px;
  }

  .verification-desk-head,
  .verification-inbox-head {
    display: grid;
    gap: 14px;
  }

  .verification-desk .freshness-note {
    max-width: none;
    text-align: left;
  }

  .verification-metrics {
    grid-template-columns: 1fr;
  }

  .verification-metrics article + article,
  .verification-metrics article:nth-child(4) {
    border-top: 1px solid var(--rule);
    border-left: 0;
  }

  .verification-tabs {
    width: 100%;
  }

  .moderation-inbox-item > .button,
  .moderation-load-more {
    width: 100%;
    min-height: 44px;
  }

  .admin-card {
    padding: 18px;
  }

  .review-decision > div,
  .publish-row,
  .audit-entry,
  .invite-result > div,
  .team-columns,
  .team-item,
  .session-item {
    display: grid;
    grid-template-columns: 1fr;
  }

  .attachment-item {
    grid-template-columns: 1fr;
  }

  .specification-details dl,
  .catalog-provenance-facts,
  .catalog-provenance-attributes dl,
  .offer-facts,
  .offer-normalization-controls,
  .offer-normalization-proof dl,
  .offer-match-actions li,
  .specification-decisions li,
  .dossier-export-item {
    grid-template-columns: 1fr;
  }

  .review-decision .button,
  .publish-row .button {
    width: 100%;
  }

  .collaboration-workspace,
  .collaboration-card {
    padding: 16px;
  }
}

/* Startup feedback stays outside the application panels so an import failure remains visible. */
.startup-status { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 16px 24px; padding: 16px 20px; border: 1px solid #c6a668; background: #fff5df; color: #513c17; }
.startup-status[hidden] { display: none; }
.startup-status p { margin: 0; }
@media (max-width: 680px) { .startup-status { flex-direction: column; align-items: stretch; margin: 12px; padding: 14px; } }

/* The beginner journey reuses the domain workspace rather than duplicating it. */
.buyer-context { display:flex; gap:8px; flex-wrap:wrap; margin:22px 0 16px; }
.buyer-context button { padding:10px 18px; border:1px solid #61717c; border-radius:6px; background:#fff; color:#152c34; font:inherit; cursor:pointer; }
.buyer-context button[aria-pressed="true"] { background:#173e46; color:#fff; border-color:#173e46; }
.hero-shell:has(.buyer-context) { display:block; min-height:0; padding-bottom:24px; }
.hero-shell:has(.buyer-context) .hero-copy { padding:36px 0 12px; border-right:0; }
.hero-copy:has(.buyer-context) h1 { max-width:26ch; font:650 clamp(34px,4.5vw,58px)/1.08 var(--buyer-font, "IBM Plex Sans", Inter, sans-serif); letter-spacing:-.035em; }
.hero-copy .supplier-search { margin:16px 0 12px; width:100%; max-width:860px; }
.hero-copy .supplier-search input { padding:14px; font-size:17px; border:1px solid #647780; border-radius:6px; }
.buyer-hint { font-size:14px; line-height:1.55; max-width:68ch; color:#425660; }
.buyer-help { margin-top:20px; max-width:70ch; line-height:1.6; }
.buyer-help summary,.buyer-route>summary { cursor:pointer; font-weight:650; padding:12px 0; }
.buyer-route { align-self:start; border-top:2px solid #bbc9cc; padding-top:8px; }
.buyer-route .decision-card { margin-top:12px; }
.buyer-request-dialog { width:min(680px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow-y:auto; border:2px solid #31545b; border-radius:12px; padding:28px; color:#132c33; background:#fff; }
.buyer-request-dialog::backdrop { background:rgba(11,28,34,.55); }
.buyer-dialog-header,.buyer-dialog-actions { display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.buyer-request-dialog h2 { font-size:28px; line-height:1.25; margin:14px 0 24px; }
.buyer-request-dialog fieldset { padding:0; margin:0; border:0; min-width:0; display:grid; gap:18px; }
.buyer-request-dialog fieldset[hidden] { display:none; }
.buyer-request-dialog input,.buyer-request-dialog select,.buyer-request-dialog textarea { width:100%; min-width:0; font:inherit; padding:12px; border:1px solid #6e8288; border-radius:6px; background:#fff; color:#132c33; }
.buyer-request-dialog :focus-visible,.buyer-context :focus-visible,.buyer-help summary:focus-visible,.buyer-route>summary:focus-visible { outline:3px solid #111; outline-offset:3px; }
.buyer-scope { margin:24px 0; padding:14px; border-left:3px solid #3e747c; background:#edf4f4; font-size:14px; line-height:1.55; }
.buyer-error { color:#8e241d; padding:12px; border:1px solid currentColor; line-height:1.5; }
.buyer-review { margin:0; display:grid; grid-template-columns:minmax(100px,1fr) minmax(0,2fr); gap:10px 20px; }
.buyer-review dt { font-weight:650; }
.buyer-review dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
@media (max-width:680px) {
  .buyer-request-dialog { padding:20px; }
  .buyer-request-dialog h2 { font-size:24px; }
  .buyer-dialog-actions .button { flex:1 1 130px; }
  .buyer-review { grid-template-columns:1fr; gap:5px; }
  .buyer-review dd { margin-bottom:12px; }
}

.language-switcher button { white-space:nowrap; flex-shrink:0; }
.buyer-local-workspace { border:2px solid #3e747c; background:#edf4f4; padding:24px; margin-bottom:28px; border-radius:8px; }
.buyer-local-workspace[hidden] { display:none; }
.buyer-local-workspace h2 { font-size:24px; overflow-wrap:anywhere; }

/* Comparison remains in document flow so it never covers mobile navigation or results. */
.quick-comparison-section { margin-top:24px; padding:18px; border:1px solid var(--rule); border-radius:8px; background:var(--surface); }
.quick-comparison-tray { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.quick-comparison-tray p { margin:0; }
.quick-selection { display:flex; flex-wrap:wrap; gap:8px; }
.quick-selection button,.quick-add-button { padding:10px 12px; border:1px solid var(--rule-strong); border-radius:6px; background:var(--surface); font:inherit; font-size:14px; }
.quick-add-button[aria-pressed="true"] { color:white; background:#173e46; }
.quick-supplier-row { display:grid; gap:6px; }
.quick-supplier-row>.supplier-row { width:100%; }
.quick-add-button { justify-self:end; }
.quick-comparison-dialog { width:min(1160px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:24px; overflow:auto; border:2px solid #31545b; border-radius:10px; background:var(--surface); color:var(--ink); }
.quick-comparison-dialog::backdrop { background:rgba(11,28,34,.55); }
.quick-comparison-dialog h2 { font-size:28px; }
.quick-table-scroll { max-width:100%; overflow:auto; margin:20px 0; border:1px solid var(--rule); }
.quick-table-scroll table { border-collapse:collapse; min-width:700px; width:100%; table-layout:fixed; }
.quick-table-scroll th,.quick-table-scroll td { padding:14px; vertical-align:top; text-align:start; border:1px solid var(--rule); overflow-wrap:anywhere; }
.quick-table-scroll th { background:#edf4f4; }
.quick-table-scroll small { display:block; margin-top:8px; font-weight:400; }
.quick-table-scroll caption { padding:12px; text-align:start; }
.quick-fact { display:grid; gap:6px; font-size:14px; line-height:1.5; }
.quick-fact details { font-size:13px; }
.quick-fact details p { white-space:pre-wrap; margin:12px 0; }
.quick-fact-status { display:block; }
.quick-fact-status.is-missing,.quick-fact-status.is-review { color:#87410d; }
.quick-fact-status.is-sourced { color:#176339; }
.quick-fact-status.is-demo { color:#614691; }
.quick-card-facts { margin:18px 0; display:grid; gap:12px; }
.quick-card-facts>div { display:grid; grid-template-columns:minmax(100px,1fr) minmax(0,2fr); gap:16px; border-top:1px solid var(--rule); padding-top:12px; }
.quick-card-facts dt { font-size:14px; font-weight:650; }
.quick-card-facts dd { margin:0; min-width:0; }
#quick-supplier-facts h3 { font-size:20px; margin:24px 0 12px; }
.quick-fingerprint { overflow-wrap:anywhere; font-size:12px; }
@media (max-width:680px) {
  .quick-comparison-dialog { padding:18px; }
  .quick-comparison-tray { align-items:stretch; flex-direction:column; }
  .quick-comparison-dialog h2 { font-size:24px; }
  .quick-card-facts>div { grid-template-columns:1fr; gap:6px; }
}
.quick-comparison-dialog>.buyer-dialog-header { position:sticky; top:0; z-index:3; padding:10px 0; background:var(--surface); }
.quick-table-scroll { max-height:60dvh; }
.quick-table-scroll thead th { position:sticky; top:0; z-index:1; }
.quick-table-scroll thead th:first-child { width:170px; }
/* Filters stay in document flow so long labels cannot cover mobile navigation. */
.catalog-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; gap: 16px; align-items: end; margin-block: 24px; }
.catalog-filters h3, .catalog-filters p { grid-column: 1 / -1; margin: 0; }
.catalog-filters p { font-size: 0.875rem; line-height: 1.5; }
.catalog-filters select { width: 100%; min-width: 0; }
@media (max-width: 760px) { .catalog-filters { grid-template-columns: minmax(0, 1fr); } }


.source-queue { margin-block: 1.5rem; padding: 1.5rem; border: 1px solid var(--line, #c8d0dc); background: var(--surface, #fff); border-radius: 12px; }
.source-queue-heading, .source-queue-create, .source-queue-toolbar { display: flex; align-items: end; gap: 1rem; justify-content: space-between; }
.source-queue-heading { align-items: start; }
.source-queue-heading h2 { margin: .3rem 0 .6rem; }
.source-queue-heading p { max-width: 70ch; }
.source-queue-mode { padding: .8rem 1rem; border-left: 3px solid #355b9b; background: #edf2fa; color: #253b5d; }
.source-queue-create { justify-content: start; margin-block: 1rem; }
.source-queue-create .field { flex: 1; max-width: 40rem; min-width: 0; }
.source-queue select { width: 100%; min-width: 0; }
.source-queue .button { white-space: normal; min-height: 44px; }
.source-queue-toolbar { border-bottom: 1px solid #c8d0dc; padding-block: 1rem; }
.source-queue-toolbar .field { min-width: 14rem; }
.source-queue-notice { min-height: 1.5em; color: #253b5d; }
.source-queue-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid #c8d0dc; }
.source-queue-row h3 { margin-block: .6rem .4rem; overflow-wrap: anywhere; }
.source-queue-row p { overflow-wrap: anywhere; }
.source-queue-next { max-width: 70ch; }
.source-queue-dates { font-size: .88rem; color: #46546b; }
.source-queue-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: start; }
.source-queue-history { grid-column: 1 / -1; border-left: 2px solid #bccbdc; padding-left: 1rem; }
.source-queue-history li { margin-bottom: .9rem; overflow-wrap: anywhere; }
.source-queue [data-source-state="failed"], .source-queue [data-source-state="blocked"] { background: #fff0db; color: #6a3a07; }
.source-queue [data-source-state="succeeded"] { background: #e5f4e9; color: #205a35; }
.source-queue :focus-visible { outline: 3px solid #255aba; outline-offset: 3px; }
@media (max-width: 640px) {
  .source-queue { padding: 1rem; }
  .source-queue-heading, .source-queue-create, .source-queue-toolbar { align-items: stretch; flex-direction: column; }
  .source-queue-row { grid-template-columns: minmax(0, 1fr); }
  .source-queue-toolbar .field { min-width: 0; }
  .source-queue-actions .button { flex: 1; }
}

/* Schedule settings keep the decision beside the source and collapse on phones. */
.source-refresh-form { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0; }
.source-refresh-wide { grid-column:1/-1; }
.source-refresh-form .field, .source-refresh-card > div { min-width:0; }
.source-refresh-form select, .source-refresh-form input, .source-refresh-form textarea, .source-refresh-card textarea { width:100%; box-sizing:border-box; }
.source-refresh-card { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:24px; padding:24px 0; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.source-refresh-card .field { margin-top:16px; }
@media (max-width:760px) { .source-refresh-form,.source-refresh-card { grid-template-columns:minmax(0,1fr); } }

/* Operator mappings remain readable as individual fields on small screens. */
.profile-form > .field, .profile-card > .field { margin:16px 0; }
.profile-field { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:16px 0; padding:16px; border:1px solid #d6dbe1; border-radius:8px; min-width:0; }
.profile-field .field,.profile-form .field { min-width:0; }
.profile-form select,.profile-form input:not([type=checkbox]),.profile-form textarea,.profile-card textarea { box-sizing:border-box; width:100%; }
.profile-card { padding:24px 0; border-top:1px solid #d6dbe1; overflow-wrap:anywhere; min-width:0; }
.profile-metadata { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:8px; }
.profile-metadata dd { margin:0; }
.profile-table-wrap { overflow-x:auto; max-width:100%; }
.profile-table-wrap table { width:100%; border-collapse:collapse; }
.profile-table-wrap th,.profile-table-wrap td { padding:10px; border-bottom:1px solid #d6dbe1; text-align:left; }
@media(max-width:760px) { .profile-field,.profile-metadata { grid-template-columns:minmax(0,1fr); } }

/* Preview excerpts are untrusted source text and must wrap inside small screens. */
.source-preview { margin: 18px 0; padding: 18px; border: 1px solid var(--line, #d9d5cd); border-radius: 12px; background: var(--surface, #fff); }
.source-preview code, .source-preview h5 { overflow-wrap: anywhere; }
.source-preview h5 { font-size: 1rem; margin: 0 0 8px; }
.preview-observation, .preview-issue { padding: 14px 0; border-top: 1px solid var(--line, #d9d5cd); }
.preview-issue { border-left: 3px solid #9a6600; padding-left: 12px; }
.preview-citation { margin: 12px 0; }
.preview-citation strong, .preview-citation code { display: block; }
.preview-citation pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .875rem; }
.source-preview select { width: 100%; min-width: 0; }

.extraction-job { border-top: 1px solid var(--line, #d9d5cd); padding: 18px 0; }
.extraction-job code { overflow-wrap: anywhere; }
#source-extraction-queue select { width: 100%; min-width: 0; }

.comparison-sides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.comparison-sides > * { min-width: 0; }
.comparison-change { border-top: 1px solid var(--line, #d9d5cd); padding: 16px 0; }
.comparison-sides .preview-observation { margin: 0; }
@media (max-width: 640px) { .comparison-sides { grid-template-columns: minmax(0, 1fr); } }
.observation-review-item { border-top: 1px solid var(--line, #d9d5cd); padding: 16px 0; overflow-wrap: anywhere; }
.observation-review-item form { margin: 12px 0; }
.observation-review-item input, .observation-review-item textarea { min-width: 0; max-width: 100%; }
.preparation-mappings { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 16px 0; }
.source-preview pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.offering-preparation input, .offering-preparation textarea, .offering-preparation select { min-width: 0; max-width: 100%; }
@media (max-width: 640px) { .preparation-mappings { grid-template-columns: minmax(0,1fr); } }

/* Revision comparisons wrap long identifiers and preserve small-screen reading order. */
.offering-revision-diff { display: grid; gap: 10px; margin: 14px 0; }
.offering-revision-diff > div { border-bottom: 1px solid var(--line, #dbe3ec); padding-bottom: 10px; }
.offering-revision-diff dt { font-weight: 700; }
.offering-revision-diff dd { margin: 6px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; overflow-wrap: anywhere; }
.offering-revision-history article { padding: 12px 0; border-bottom: 1px solid var(--line, #dbe3ec); overflow-wrap: anywhere; }
@media (max-width: 640px) { .offering-revision-diff dd { grid-template-columns: 1fr; } }

/* The active work area owns the viewport; the rail is navigation, not progress. */
.operator-workspace { display: grid; grid-template-columns: 230px minmax(0, 1fr); align-items: start; gap: 28px; }
.operator-navigation { position: sticky; top: 104px; padding: 12px 16px 16px 0; border-right: 1px solid var(--line, #d8d3c9); }
.operator-navigation p { font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin: 16px 0 8px; }
.operator-navigation button { display: block; width: 100%; border: 0; background: transparent; color: inherit; text-align: left; padding: 12px; border-radius: 8px; font: inherit; line-height: 1.4; cursor: pointer; }
.operator-navigation button:hover { background: #eee9df; }
.operator-navigation button[aria-current="page"] { background: #242a30; color: #fff; font-weight: 700; }
.operator-main { min-width: 0; }
.operator-context { margin-bottom: 24px; padding: 20px 0 24px; border-bottom: 1px solid var(--line, #d8d3c9); }
.operator-context h2 { font-size: clamp(1.4rem, 2.5vw, 2rem); margin: 0 0 10px; scroll-margin-top: 110px; }
.operator-context p { max-width: 70ch; line-height: 1.6; }
.operator-context small { display: block; max-width: 80ch; margin-top: 14px; color: #606467; line-height: 1.5; }
.operator-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.operator-mobile { display: none; }
.operator-schedule { margin: 24px 0; border-top: 1px solid var(--line, #d8d3c9); padding-top: 16px; }
.operator-schedule > summary { cursor: pointer; padding: 12px 0; font-weight: 700; }
.operator-main [data-operator-panel] > section { margin-top: 0; }
.operator-main [data-operator-panel] > * + * { margin-top: 24px; }
.operator-main .admin-layout { grid-template-columns: minmax(0,1fr); }
.operator-workspace[hidden], .operator-main [data-operator-panel][hidden] { display: none; }
@media (max-width: 850px) {
 .operator-workspace { display: block; }
 .operator-navigation { position: static; border-right: 0; padding: 0; }
 .operator-desktop { display: none; }
 .operator-mobile { display: grid; }
 .operator-context { padding-top: 12px; }
 .operator-actions .button { flex: 1 1 200px; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) { .operator-workspace * { scroll-behavior: auto; } }

.catalog-watch-manager { padding: 20px 22px; border-bottom: 1px solid var(--line, #d4d1ca); }
.catalog-watch-manager summary { cursor: pointer; font-weight: 700; }
.catalog-watch-manager fieldset { border: 0; padding: 0; margin: 18px 0; min-width: 0; }
.catalog-watch-manager legend { font-weight: 700; margin-bottom: 12px; }
.catalog-watch-manager .field { margin: 12px 0; }
.catalog-watch-manager select { width: 100%; min-width: 0; }
.watch-subscriptions article, .watch-changes article { padding: 18px 0; border-bottom: 1px solid var(--line, #d4d1ca); }
.watch-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.watch-notice { border-left: 3px solid #a0652c; padding: 10px 14px; background: #fbf3e7; }
.watch-event { margin-top: 20px; }
.watch-changes dl { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 8px 12px; }
.watch-changes dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.watch-changes dt { color: var(--muted, #60666d); }
.catalog-watch-manager h3, .catalog-watch-manager p, .catalog-watch-manager small { overflow-wrap: anywhere; }
@media (max-width: 620px) {
 .watch-actions { display: grid; }
 .catalog-watch-manager { padding: 14px 18px; }
 .watch-changes dl { grid-template-columns: minmax(0,1fr); }
}
.buyer-local-drafts { display: grid; gap: 12px; }
.buyer-draft-card { border: 1px solid var(--border, #dce0d8); border-radius: 10px; padding: 16px; overflow-wrap: anywhere; }
.buyer-draft-card h3 { margin: 0 0 8px; }
.buyer-draft-card p { font-size: 0.875rem; }
.buyer-draft-card .text-button { margin-inline-start: 16px; }
#buyer-draft-conflict[hidden] { display: none; }
.request-autosave { padding: 16px; border: 1px solid #a8b8b5; border-radius: 8px; overflow-wrap: anywhere; }
.request-autosave[hidden], .request-autosave [hidden] { display: none; }
.request-autosave [data-autosave-comparison] article { padding: 12px 0; border-top: 1px solid #ccd5d3; }
.request-autosave [data-autosave-comparison] p { white-space: pre-wrap; }
.purchase-folder-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 20px; }
.purchase-folder-card { border: 1px solid #ccd5d3; border-radius: 10px; padding: 20px; min-width: 0; overflow-wrap: anywhere; }
.purchase-folder-card h3 { margin: 0 0 10px; }
.purchase-folder-card p { font-size: .9rem; }
.purchase-folder-card button { margin: 4px 8px 4px 0; max-width: 100%; white-space: normal; }
.purchase-folder-next { display:flex; flex-wrap:wrap; gap:16px; align-items:center; padding:16px; background:#edf4f1; border-radius:8px; }
.calculation-context { padding:16px; margin:16px 0; border:1px solid #98aaa1; border-radius:8px; overflow-wrap:anywhere; }
.calculation-context[hidden] { display:none; }
@media(max-width:700px) { .purchase-folder-grid { grid-template-columns:1fr; } }

.calculation-context .button { margin: 4px 8px 4px 0; max-width: 100%; white-space: normal; }

/* The RFQ keeps a single form and one visible task; hidden steps retain values. */
.rfq-steps { scroll-margin-top:90px; display:flex; flex-wrap:wrap; gap:8px; border-bottom:1px solid var(--line, #c9c7c0); padding-bottom:12px; }
.rfq-steps button { flex:1 1 140px; min-height:44px; padding:10px 12px; background:transparent; color:inherit; border:1px solid currentColor; border-radius:6px; font:inherit; text-align:left; cursor:pointer; }
.rfq-steps button[aria-current="step"] { background:#1c242c; color:#fff; border-color:#1c242c; font-weight:700; }
.rfq-steps button:focus-visible,.rfq-step-panel:focus-visible { outline:3px solid #805530; outline-offset:3px; }
.rfq-step-panel[hidden] { display:none; }
.rfq-step-panel { min-width:0; scroll-margin-top:90px; }
.rfq-step-intro,.rfq-step-notice { margin:0; line-height:1.55; }
.rfq-step-notice { border-left:3px solid #805530; padding:10px 14px; background:#f0ece5; }
.rfq-step-actions { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.rfq-review { display:grid; gap:0; margin:0; }
.rfq-review > div { display:grid; grid-template-columns:minmax(120px,1fr) 2fr; gap:16px; padding:12px 0; border-bottom:1px solid #d0cdc6; }
.rfq-review dt { font-weight:600; }.rfq-review dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:720px){.rfq-steps{scroll-margin-top:74px;}.rfq-steps button{flex:1 1 74px;font-size:14px;padding:8px;}.rfq-review > div{grid-template-columns:1fr;gap:6px;}.rfq-step-panel{scroll-margin-top:74px;}}

.source-pdf-card { padding-block: 1.2rem; border-bottom: 1px solid #c8d0dc; overflow-wrap: anywhere; }
.source-pdf-page { margin-top: 1rem; padding: 1rem; border-left: 3px solid #355b9b; background: #f2f5f9; }
.source-pdf-card > .button { margin-top: .75rem; }
