.nlp-search-summary h2 { margin: 0 0 .75rem; font-size: 1rem; }
.nlp-filter-list { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.nlp-filter-list li { padding: .35rem .7rem; border-radius: 1rem; background: #edf6f5; color: #165b55; font-size: .85rem; }
.nlp-search-warnings { margin: .8rem 0 0; padding-left: 1.25rem; }
.nlp-search-warnings li + li { margin-top: .35rem; }
.nlp-management .panel { padding: 1.5rem; }
.nlp-management h2 { font-size: 1.1rem; margin: 0 0 1rem; }
.nlp-management .detail-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: 1rem 1.5rem; margin: 0 0 1rem; }
.nlp-management dt { color: var(--muted); font-size: .8rem; font-weight: 500; margin-bottom: .35rem; }
.nlp-management dd { margin: 0; font-size: .9rem; }
.nlp-management dd { overflow-wrap: anywhere; }
.nlp-management .nlp-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.nlp-management .nlp-notice { padding: .85rem 1rem; border-radius: .5rem; background: #f2f6fa; margin: 0; }
.nlp-management .nlp-notice[data-state="error"] { background: #fff1ee; color: #8b3024; }
.nlp-management .nlp-metrics { margin-top: 1rem; }
.nlp-management .nlp-metrics dd { font-variant-numeric: tabular-nums; }
.nlp-management .nlp-current { border-top: 4px solid var(--blue); }
.nlp-management .nlp-current h2 { font-size: 1.85rem; font-weight: 800; letter-spacing: -.035em; margin: .25rem 0; }
.nlp-management .nlp-current .eyebrow { margin: 0; }
.nlp-management .nlp-section-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; }
.nlp-management .nlp-section-heading h2, .nlp-management .nlp-section-heading h3 { margin: 0; }
.nlp-management .nlp-state, .nlp-management .nlp-current-marker { flex-shrink: 0; padding: .35rem .65rem; border-radius: .4rem; background: var(--wash); color: var(--ink); font-size: .75rem; font-weight: 750; }
.nlp-management .nlp-state[data-state="ready"], .nlp-management .nlp-current-marker { background: #edf6f5; color: #165b55; }
.nlp-management .nlp-state[data-state="pending"] { background: #fff6dc; color: #765408; }
.nlp-management .nlp-state[data-state="training"] { background: #e8f3fa; color: var(--blue); }
.nlp-management .nlp-state[data-state="failed"] { background: #fff1ee; color: var(--danger); }
.nlp-management .nlp-next > p { line-height: 1.6; }
.nlp-management .nlp-timeline { list-style: none; padding: 0; margin: 1.25rem 0 0; }
.nlp-management .nlp-timeline-item { position: relative; border-left: 2px solid var(--line); padding: 0 0 1.4rem 1.35rem; margin-left: .3rem; overflow-wrap: anywhere; }
.nlp-management .nlp-timeline-item:last-child { padding-bottom: .2rem; }
.nlp-management .nlp-timeline-item::before { content: ''; position: absolute; left: -.37rem; top: .25rem; height: .6rem; width: .6rem; border-radius: 50%; background: var(--blue); border: 2px solid white; box-shadow: 0 0 0 1px var(--line); }
.nlp-management .nlp-timeline-item[data-state="passed"]::before, .nlp-management .nlp-timeline-item[data-state="restored"]::before { background: #165b55; }
.nlp-management .nlp-timeline-item[data-state="failed"]::before, .nlp-management .nlp-timeline-item[data-state="rejected"]::before { background: var(--danger); }
.nlp-management .nlp-timeline-item h3 { font-size: .95rem; font-weight: 750; margin: 0 0 .35rem; }
.nlp-management .nlp-timeline-item p { margin: .4rem 0; font-size: .85rem; line-height: 1.55; }
.nlp-management .nlp-time { display: block; color: var(--muted); font-size: .75rem; font-variant-numeric: tabular-nums; }
.nlp-management .nlp-outcome { color: var(--muted); }
.nlp-management .nlp-failure-reason { color: var(--danger); }
.nlp-management .nlp-evaluation-summary { font-variant-numeric: tabular-nums; color: var(--muted); }
.nlp-management .nlp-empty { padding: 1rem; background: var(--wash); color: var(--muted); border-radius: .5rem; font-size: .85rem; }
.nlp-management .nlp-technical summary { cursor: pointer; font-size: .9rem; font-weight: 650; }
.nlp-management .nlp-technical summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.nlp-management .nlp-technical[open] summary { margin-bottom: 1.5rem; }
.catalogue-search:has(select[name="naturalLanguage"]) { grid-template-columns: minmax(12rem, 2fr) minmax(10rem, 1fr) minmax(12rem, 1fr) auto; }
@media (max-width: 900px) {
  .catalogue-search:has(select[name="naturalLanguage"]) { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .catalogue-search:has(select[name="naturalLanguage"]) { grid-template-columns: 1fr; }
  .nlp-management .panel { padding: 1rem; }
  .nlp-management .nlp-section-heading { align-items: flex-start; flex-wrap: wrap; }
}
