.am-catalog-selector [hidden] { display: none !important; }
.am-catalog-selector {
    display: flex; flex-direction: column; gap: 1rem; min-width: 0;
    margin-block: .75rem; padding-block: 1rem .25rem;
    border-top: 1px solid var(--am-border, #e2e8f0);
}
/* Supplier headings already have their own divider and spacing. Keep that one only. */
.am-catalog-selector-supplier { border-top: 0; padding-top: 0; margin-top: 0; }
.am-project-catalog-section + .am-project-catalog-section { margin-top: 3rem; }
.am-project-catalog-section .am-project-choice-heading { flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-bottom: 0; }
.am-project-catalog-section .am-project-choice-heading h3 {
    font-size: 1.25rem; font-weight: 700; line-height: 1.3; color: var(--am-navy, #08285a);
}
.am-project-catalog-section .am-catalog-requirement {
    display: inline-flex; align-items: center; padding: .3rem .65rem; border-radius: 2rem;
    font-size: .75rem; font-weight: 600; line-height: 1.4; white-space: nowrap;
    color: var(--am-text-muted, #64748b); background: var(--am-slate-50, #f8fafc);
}
.am-project-catalog-section .am-catalog-requirement-required {
    color: var(--am-teal, #007da9); background: var(--am-teal-light, #e7f7fb);
}
.am-catalog-selector > * { margin: 0 !important; }
.am-catalog-selector .form-label { display: block; margin-bottom: .5rem; font-size: .875rem; font-weight: 600; line-height: 1.5; }
.am-catalog-selector .am-catalog-selection { display: grid; gap: .5rem; }
.am-catalog-selector .am-catalog-options { padding: .25rem; }
.am-catalog-selector [data-catalog-browse] { align-self: flex-start; }
.am-catalog-selector + .field-validation-error { display: block; margin-top: .5rem; }
.am-catalog-selector [data-catalog-option] { min-width: 0; width: 100%; margin: 0; align-items: center; cursor: pointer; font-size: .875rem; line-height: 1.5; }
.am-catalog-option-name { flex: 1; min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.am-catalog-selector [data-catalog-option] .form-check-input { flex-shrink: 0; }
.am-catalog-selector :is(input, select, button, summary):focus-visible {
    outline: 2px solid var(--am-teal, #007da9); outline-offset: 2px;
}
.am-catalog-selector :is(.form-control, .form-select):focus {
    border-color: var(--am-teal, #007da9); box-shadow: 0 0 0 .2rem rgba(0, 125, 169, .18);
}
.am-catalog-suggestion summary { cursor: pointer; color: var(--am-teal, #007da9); line-height: 1.5; }
.am-catalog-review :is(input, select, button):focus-visible,
.am-catalog-review-filter :is(select, button):focus-visible {
    outline: 2px solid var(--am-teal, #007da9); outline-offset: 2px;
}
.am-catalog-review { padding: clamp(1rem, 3vw, 1.5rem); min-width: 0; overflow-wrap: anywhere; }
.am-catalog-review-title { font-size: 1.25rem; font-weight: 700; line-height: 1.35; color: var(--am-navy, #08285a); margin: 0 0 .5rem; }
.am-catalog-review-badges { display: flex; flex-wrap: wrap; gap: .4rem; }
.am-catalog-review-badge { padding: .25rem .6rem; border-radius: 2rem; background: #f1f5f9; color: #475569; font-size: .75rem; font-weight: 600; }
.am-catalog-review-status-pending { background: #fff5d6; color: #805b00; }
.am-catalog-review-status-approved { background: #e7f7f1; color: #166344; }
.am-catalog-review-status-rejected { background: #fcecec; color: #9b3030; }
.am-catalog-review-meta { display: flex; flex-wrap: wrap; gap: .25rem 1rem; color: var(--am-text-muted, #64748b); font-size: .8rem; margin: .75rem 0 1.25rem; }
.am-catalog-review-comparison h3 { font-size: .875rem; font-weight: 700; margin: 0 0 .5rem; }
.am-catalog-review-comparison p { margin-bottom: 1rem; }
.am-catalog-review-candidates { font-size: .875rem; padding-left: 1.25rem; margin: 0 0 .5rem; }
.am-catalog-review-candidates li + li { margin-top: .35rem; }
.am-catalog-review-actions .form-select { max-width: 100%; }
@media (max-width: 575.98px) {
    .am-project-catalog-section + .am-project-catalog-section { margin-top: 2rem; }
    .am-project-catalog-section .am-project-choice-heading h3 { font-size: 1.125rem; }
    .am-catalog-search-controls { flex-wrap: wrap; }
    .am-catalog-search-controls [data-catalog-search] { flex: 1 1 10rem; width: auto; }
    .am-catalog-selector .am-project-choice-grid,
    .am-catalog-selector .am-company-option-grid { grid-template-columns: minmax(0, 1fr); }
}
.am-catalog-chips { display: flex; flex-wrap: wrap; gap: .375rem; margin-top: .375rem; }
.am-catalog-chip {
    display: inline-flex; align-items: center; gap: .5rem;
    border: 1px solid var(--am-primary-border, #b9cce5); border-radius: 2rem; padding: .3rem .65rem;
    background: var(--am-primary-light, #eef5ff); color: var(--am-primary-hover, #244b7d);
    font-size: .875rem; line-height: 1.4; max-width: 100%; text-align: left; overflow-wrap: anywhere;
}
.am-catalog-chip:hover { border-color: var(--am-primary-hover, #416ca4); }
.am-catalog-chip span { flex-shrink: 0; }
.am-catalog-chip:disabled { opacity: .65; }
.am-catalog-selector [data-catalog-search] { min-width: 0; }
/* Keep result scrolling and let wheel gestures continue to the document at either boundary. */
.am-catalog-selector .am-catalog-options { max-height: 22rem; overflow-y: auto; overscroll-behavior-y: auto; }
.am-catalog-selector [data-catalog-option].am-catalog-option-selected {
    background: var(--am-primary-light, #eef5ff); box-shadow: inset 0 0 0 2px var(--am-primary-border, #416ca4); border-radius: .375rem;
}
.am-catalog-selector [data-catalog-option]:has(.form-check-input:focus-visible),
.am-catalog-chip:focus-visible { outline: 2px solid var(--am-teal, #007da9); outline-offset: 2px; }
