.keyword-editor {
  display: grid;
  gap: var(--space-2);
}

.keyword-editor-toggle { display: none; }

.keyword-editor-label {
  color: var(--color-ink-soft);
  font-size: var(--text-xs);
  font-weight: 750;
}

.keyword-chip-box {
  align-items: center;
  background: var(--color-surface);
  border: 1px solid var(--color-line-strong);
  border-radius: var(--radius-md);
  cursor: text;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  max-height: 15rem;
  min-height: 92px;
  overflow-y: auto;
  padding: var(--space-3);
}

.keyword-chip-box:focus-within {
  border-color: var(--color-seccol);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-seccol) 20%, transparent);
}

.keyword-chip {
  align-items: center;
  background: var(--color-seccol);
  border: 1px solid color-mix(in srgb, var(--color-seccol) 82%, #9f3500);
  border-radius: var(--radius-pill);
  color: #fff;
  display: inline-flex;
  font-size: var(--text-xs);
  font-weight: 750;
  gap: .35rem;
  line-height: 1.25;
  max-width: 100%;
  padding: .4rem .45rem .4rem .7rem;
}

.keyword-chip > span {
  color: #fff;
  overflow: hidden;
  text-overflow: ellipsis;
}

.keyword-chip button {
  align-items: center;
  background: rgba(80, 20, 0, .18);
  border: 0;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  font: inherit;
  height: 1.35rem;
  justify-content: center;
  padding: 0;
  width: 1.35rem;
}

.keyword-chip button:hover,
.keyword-chip button:focus-visible {
  background: rgba(80, 20, 0, .34);
  outline: 2px solid #fff;
  outline-offset: 1px;
}

.keyword-chip-input {
  border: 0 !important;
  box-shadow: none !important;
  flex: 1 1 15rem;
  min-height: 2rem;
  min-width: 10rem;
  padding: .25rem !important;
}

.keyword-toolbar,
.keyword-editor-meta,
.tender-quality-grid {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.keyword-toolbar button {
  min-height: 44px;
}

.keyword-editor-meta {
  color: var(--color-muted);
  font-size: var(--text-xs);
  justify-content: space-between;
}

.keyword-report {
  min-height: 1.2em;
}

.keyword-report.success { color: var(--color-success); }
.keyword-report.warning { color: var(--color-warning); }

.tender-quality-card {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  flex: 1 1 12rem;
  padding: var(--space-3);
}

.tender-quality-card strong,
.tender-quality-card small {
  display: block;
}

.tender-quality-card strong {
  color: var(--color-teal-800);
  font-size: 1.15rem;
}

.tender-quality-card small {
  color: var(--color-muted);
  font-size: var(--text-xs);
  margin-top: var(--space-1);
}

.result-feedback {
  align-items: center;
  display: flex;
  gap: .25rem;
  margin-top: .35rem;
}

.result-feedback button {
  min-height: 32px;
  min-width: 32px;
}

.result-feedback button[aria-pressed="true"] {
  background: var(--color-seccol-soft);
  border-color: var(--color-seccol);
  color: #9d3808;
}

.tender-object-cell { display: grid; gap: var(--space-2); min-width: 19rem; }
.tender-adherence { align-content: start; display: grid; gap: .25rem; min-width: 8.25rem; }
.tender-adherence .score { align-items: center; background: var(--color-surface-soft); border: 1px solid var(--color-line-strong); border-radius: var(--radius-pill); color: var(--color-ink); display: inline-flex; font-size: .875rem; font-variant-numeric: tabular-nums; font-weight: 850; height: auto; justify-content: center; line-height: 1; min-height: 2rem; padding: .45rem .6rem; width: fit-content; }
.tender-adherence .score.high { background: color-mix(in srgb, var(--color-success) 12%, var(--color-surface)); border-color: color-mix(in srgb, var(--color-success) 52%, var(--color-line)); color: var(--color-success); }
.tender-adherence > strong { color: var(--color-ink); font-size: var(--text-xs); line-height: 1.25; }
.tender-adherence > small { color: var(--color-muted); font-size: .625rem; line-height: 1.35; }
.tender-adherence.is-review .score { background: color-mix(in srgb, var(--color-warning) 10%, var(--color-surface)); border-color: color-mix(in srgb, var(--color-warning) 48%, var(--color-line)); color: var(--color-warning); }
.tender-object-label { color: var(--color-muted); font-size: .625rem; font-weight: 800; letter-spacing: .08em; }
.tender-object-preview { color: var(--color-ink); font-size: .8125rem; font-weight: 700; line-height: 1.45; margin: 0; }
.tender-object-full { color: var(--color-seccol); font-size: var(--text-xs); }
.tender-object-full summary { cursor: pointer; font-weight: 750; min-height: 28px; }
.tender-object-full p { color: var(--color-ink); font-size: var(--text-xs); line-height: 1.5; margin: var(--space-2) 0 0; overflow-wrap: anywhere; }
.tender-catalog-relation { background: var(--color-surface-soft); border-left: 3px solid var(--color-success); display: grid; gap: .15rem; padding: .45rem .55rem; }
.tender-catalog-relation.is-unmatched { border-left-color: var(--color-muted); }
.tender-catalog-relation b { color: var(--color-ink-soft); font-size: .625rem; letter-spacing: .03em; }
.tender-catalog-relation span, .tender-match-criteria { color: var(--color-muted); font-size: var(--text-xs); line-height: 1.35; overflow-wrap: anywhere; }

.tender-coverage-panel {
  border-left: 4px solid var(--color-success);
  margin-top: var(--space-4);
}

.tender-coverage-panel.warning { border-left-color: var(--color-warning); }
.tender-coverage-panel.error { border-left-color: var(--color-danger); }

.tender-coverage-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 0 var(--space-4) var(--space-4);
}

.tender-coverage-grid small,
.tender-coverage-grid strong,
.coverage-exception span,
.coverage-exception small { display: block; }

.tender-coverage-grid small,
.coverage-exception small { color: var(--color-muted); font-size: var(--text-xs); }

.tender-coverage-grid strong { margin-top: var(--space-1); }

.coverage-exception {
  background: var(--color-surface-soft);
  border-radius: var(--radius-md);
  margin: 0 var(--space-4) var(--space-4);
  padding: var(--space-3);
}

.coverage-exception.error { background: color-mix(in srgb, var(--color-danger) 8%, var(--color-surface)); }
.coverage-exception span { margin: var(--space-1) 0; overflow-wrap: anywhere; }

.deterministic-extraction { border-left: 4px solid var(--color-success); }
.deterministic-extraction.has-critical { border-left-color: var(--color-danger); }

.extraction-summary {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
}

.extraction-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: 1fr 1fr;
}

.extraction-grid > div,
.extraction-exceptions {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  padding: var(--space-3);
}

.extraction-grid li span,
.extraction-grid li small,
.extraction-exceptions article span { display: block; }
.extraction-grid li span { margin-top: var(--space-1); overflow-wrap: anywhere; }

.extraction-exceptions {
  border-color: color-mix(in srgb, var(--color-danger) 45%, var(--color-line));
  margin-top: var(--space-3);
}

.extraction-exceptions article {
  align-items: center;
  border-top: 1px solid var(--color-line);
  display: flex;
  gap: var(--space-3);
  justify-content: space-between;
  padding: var(--space-3) 0;
}

.extraction-exceptions article button { flex: 0 0 auto; min-height: 44px; }

.tender-exception-center { border-left: 4px solid var(--color-success); }
.tender-exception-center.has-critical { border-left-color: var(--color-danger); }

.tender-exception-list {
  display: grid;
  gap: var(--space-2);
}

.tender-exception-list button {
  align-items: center;
  background: var(--color-surface-soft);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  color: var(--color-ink);
  display: grid;
  gap: var(--space-3);
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  min-height: 56px;
  padding: var(--space-3);
  text-align: left;
  width: 100%;
}

.tender-exception-list button:hover,
.tender-exception-list button:focus-visible {
  border-color: var(--color-danger);
}

.tender-exception-list span,
.tender-exception-list small { display: block; }
.tender-exception-list small { margin-top: var(--space-1); overflow-wrap: anywhere; }

.tender-detail-dialog { width: min(1100px, calc(100vw - 2rem)); max-height: min(92vh, 960px); }
.tender-action { align-items: center; display: inline-flex; gap: .25rem; min-height: 2.75rem; white-space: nowrap; }
.tender-action-convert { color: var(--color-success); }
.tender-action-discard { color: var(--color-danger); }
.tender-action:disabled { cursor: wait; opacity: .6; }
.tender-detail-content { display: grid; gap: var(--space-4); }
.tender-detail-hero { align-items: flex-start; background: linear-gradient(135deg, var(--color-surface-soft), var(--color-surface)); border: 1px solid var(--color-line); border-radius: var(--radius-lg); display: flex; gap: var(--space-4); justify-content: space-between; padding: clamp(1rem, 3vw, 1.5rem); }
.tender-detail-hero-copy { min-width: 0; }
.tender-detail-hero h3 { font-size: clamp(1.25rem, 2.4vw, 1.8rem); line-height: 1.2; margin: var(--space-2) 0; overflow-wrap: anywhere; }
.tender-detail-hero .secondary { flex: 0 0 auto; }
.tender-detail-context { display: grid; gap: var(--space-3); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tender-detail-context > div { background: var(--color-surface); border: 1px solid var(--color-line); border-radius: var(--radius-md); min-width: 0; padding: var(--space-3); }
.tender-detail-context small { color: var(--color-muted); display: block; font-size: var(--text-xs); font-weight: 750; }
.tender-detail-context strong { display: block; margin-top: .35rem; overflow-wrap: anywhere; }
.tender-document-hub { border-top: 3px solid var(--color-seccol); }
.tender-document-card { align-items: center; display: flex; gap: var(--space-3); justify-content: space-between; }
.tender-document-card-main { display: grid; gap: .25rem; min-width: 0; }
.tender-document-card-main strong, .tender-document-card-main span { overflow-wrap: anywhere; }
.tender-document-card-main span:not(.eyebrow) { color: var(--color-muted); font-size: var(--text-xs); }
.tender-document-card-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--space-2); }
.tender-viewer-dialog { height: min(92vh, 900px); width: min(1200px, calc(100vw - 2rem)); }
.tender-viewer-shell { display: grid; grid-template-rows: auto 1fr; height: 100%; min-height: 0; }
.tender-viewer-head { align-items: center; border-bottom: 1px solid var(--color-line); display: flex; gap: var(--space-3); justify-content: space-between; padding: var(--space-3) var(--space-4); }
.tender-viewer-head h2 { font-size: 1rem; margin: .15rem 0 0; max-width: 42vw; overflow-wrap: anywhere; }
.tender-viewer-actions { align-items: center; display: flex; flex-wrap: wrap; gap: .4rem; justify-content: flex-end; }
.tender-viewer-actions button, .tender-viewer-actions a { min-height: 40px; }
.tender-viewer-status { align-items: center; background: var(--color-surface-soft); color: var(--color-muted); display: flex; justify-content: center; min-height: 12rem; padding: var(--space-4); text-align: center; }
.tender-viewer-status.error { color: var(--color-danger); }
#tenderViewerFrame { background: #26313b; border: 0; display: block; height: 100%; min-height: 30rem; width: 100%; }
#tenderViewerFrame.hidden { display: none; }

@media (max-width: 760px) {
  .tender-detail-dialog, .tender-viewer-dialog { width: calc(100vw - 1rem); }
  .tender-detail-hero { flex-direction: column; }
  .tender-detail-hero .secondary { width: 100%; }
  .tender-detail-context { grid-template-columns: 1fr 1fr; }
  .tender-document-card { align-items: stretch; flex-direction: column; }
  .tender-document-card-actions a, .tender-document-card-actions button { flex: 1; }
  .tender-viewer-head { align-items: flex-start; flex-direction: column; }
  .tender-viewer-actions { width: 100%; }
  .tender-viewer-actions a, .tender-viewer-actions button { flex: 1; }
  #tenderViewerFrame { min-height: 24rem; }
}

@media (max-width: 430px) {
  .tender-detail-context { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .tender-hero { align-items: stretch; flex-direction: column; gap: var(--space-3); }
  .tender-hero .source-count { order: -1; display: flex; align-items: baseline; gap: var(--space-2); text-align: left; }
  .tender-hero .source-count small { display: inline; }
  .tender-hero h2 { font-size: 1.25rem; line-height: 1.3; }
  .tender-search-head { align-items: flex-start; flex-direction: column; }
  .tender-search-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .keywords-field,
  .tender-run { grid-column: 1 / -1; }
  .tender-run { width: 100%; margin-bottom: 0; }
  .keyword-editor-toggle {
    width: 100%;
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--color-line-strong);
    border-radius: var(--radius-md);
    color: var(--color-ink);
    background: var(--color-surface-subtle);
    text-align: left;
  }
  .keyword-editor-toggle span,
  .keyword-editor-toggle b,
  .keyword-editor-toggle small { display: block; }
  .keyword-editor-toggle b { font-size: .75rem; }
  .keyword-editor-toggle small { margin-top: 3px; color: var(--color-muted); font-size: .625rem; }
  .keyword-editor-toggle strong { color: var(--color-seccol); font-size: .6875rem; text-align: right; }
  .keyword-editor-toggle::after { content: "−"; color: var(--color-seccol); font-weight: 900; }
  .keyword-editor.is-collapsed .keyword-editor-toggle::after { content: "+"; }
  .keyword-editor.is-collapsed > :not(.keyword-editor-toggle):not(.visually-hidden) { display: none; }
  .keyword-editor-label { display: none; }
  .keyword-chip-box { max-height: 12rem; min-height: 100px; }
  .keyword-toolbar { display: grid; grid-template-columns: 1fr 1fr; }
  .keyword-toolbar button:first-of-type { grid-column: 1 / -1; }
  .keyword-toolbar button { width: 100%; }
  .tender-coverage-grid { grid-template-columns: 1fr 1fr; }
  .extraction-grid { grid-template-columns: 1fr; }
  .extraction-exceptions article { align-items: stretch; flex-direction: column; }
  .tender-exception-list button { align-items: stretch; grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .tender-coverage-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .keyword-chip-box { scroll-behavior: auto; }
}
