/* Private prospecting workspace. Scoped to Search so public pages and billing remain untouched. */
.cdl-prospecting {
    display: grid;
    gap: var(--cdl-space-5);
}

.cdl-search-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--cdl-space-5);
    align-items: end;
    padding: clamp(var(--cdl-space-5), 4vw, var(--cdl-space-8));
    color: #fff;
    background:
        radial-gradient(circle at 88% 10%, rgb(255 255 255 / 0.18), transparent 29%),
        linear-gradient(135deg, var(--cdl-hero-grad-start), var(--cdl-hero-grad-mid) 58%, var(--cdl-hero-grad-end));
    border-radius: var(--cdl-radius-hero);
    box-shadow: var(--cdl-shadow-raised);
}

.cdl-search-eyebrow,
.cdl-search-stat__label,
.cdl-search-chip__label,
.cdl-search-result__label,
.cdl-search-definition__label {
    margin: 0;
    font-size: var(--cdl-text-12);
    font-weight: 700;
    letter-spacing: var(--cdl-tracking-caps);
    line-height: 1.3;
    text-transform: uppercase;
}

.cdl-search-eyebrow { color: rgb(255 255 255 / 0.72); }

.cdl-search-hero__title {
    max-width: 20ch;
    margin: var(--cdl-space-2) 0 0;
    color: #fff;
    font-family: var(--cdl-font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    letter-spacing: -0.035em;
    line-height: var(--cdl-leading-tight);
}

.cdl-search-hero__summary {
    max-width: 42rem;
    margin: var(--cdl-space-3) 0 0;
    color: rgb(255 255 255 / 0.84);
    font-size: var(--cdl-text-16);
    line-height: var(--cdl-leading-body);
}

.cdl-search-hero__actions,
.cdl-search-filter__actions,
.cdl-search-export__actions,
.cdl-search-results__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cdl-space-2);
    align-items: center;
}

.cdl-search-hero .cdl-action--quiet { color: #fff; }
.cdl-search-hero .cdl-action--quiet:hover { color: #fff; background: rgb(255 255 255 / 0.12); border-color: rgb(255 255 255 / 0.22); }
.cdl-search-hero .cdl-action--light { color: var(--cdl-information); }

.cdl-search-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--cdl-space-4);
}

.cdl-search-stat {
    min-width: 0;
    padding: var(--cdl-space-4);
    color: var(--cdl-ink);
    background: var(--cdl-surface);
    border: 1px solid var(--cdl-border);
    border-radius: var(--cdl-radius-panel);
    box-shadow: var(--cdl-shadow-panel);
}

.cdl-search-stat__label,
.cdl-search-definition__label { color: var(--cdl-muted); }
.cdl-search-stat__value { display: block; margin-top: var(--cdl-space-1); color: var(--cdl-ink); font-family: var(--cdl-font-display); font-size: var(--cdl-text-24); font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; }
.cdl-search-stat__detail { display: block; margin-top: var(--cdl-space-1); color: var(--cdl-muted); font-size: var(--cdl-text-12); line-height: 1.4; }

.cdl-search-badge {
    display: inline-flex;
    min-height: 1.75rem;
    gap: 0.3rem;
    align-items: center;
    padding: 0.25rem 0.55rem;
    color: var(--cdl-muted);
    font-size: var(--cdl-text-12);
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    background: var(--cdl-surface-subtle);
    border: 1px solid var(--cdl-border);
    border-radius: var(--cdl-radius-pill);
}

.cdl-search-badge--positive { color: var(--cdl-positive); background: var(--cdl-positive-tint); border-color: color-mix(in srgb, var(--cdl-positive) 30%, var(--cdl-border)); }
.cdl-search-badge--warning { color: var(--cdl-warning); background: var(--cdl-warning-tint); border-color: color-mix(in srgb, var(--cdl-warning) 34%, var(--cdl-border)); }

.cdl-search-filter .cdl-panel__body { padding: var(--cdl-space-5); }
.cdl-search-filter__form .form-label { margin-bottom: var(--cdl-space-1); color: var(--cdl-ink); font-size: var(--cdl-text-14); font-weight: 700; }
.cdl-search-filter__form .form-text { color: var(--cdl-muted); font-size: var(--cdl-text-12); line-height: 1.35; }
.cdl-search-filter__form :is(.form-control, .form-select) { min-height: var(--cdl-touch-target); color: var(--cdl-ink); border-color: var(--cdl-border-strong); border-radius: var(--cdl-radius-control); }
.cdl-search-filter__form :is(.form-control, .form-select):focus { border-color: var(--cdl-brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cdl-brand) 15%, transparent); }
.cdl-search-filter__form .form-check-input { width: 1.2rem; height: 1.2rem; margin-top: 0.1rem; border-color: var(--cdl-border-strong); }
.cdl-search-filter__form .form-check-input:checked { background-color: var(--cdl-brand); border-color: var(--cdl-brand); }

.cdl-search-advanced-toggle {
    display: inline-flex;
    min-height: var(--cdl-touch-target);
    gap: var(--cdl-space-2);
    align-items: center;
    padding: 0.5rem 0.75rem;
    color: var(--cdl-brand-deep);
    font: inherit;
    font-size: var(--cdl-text-14);
    font-weight: 700;
    background: var(--cdl-brand-tint);
    border: 1px solid color-mix(in srgb, var(--cdl-brand) 22%, var(--cdl-border));
    border-radius: var(--cdl-radius-control);
}

.cdl-search-advanced-toggle:hover { color: var(--cdl-brand-deep); background: color-mix(in srgb, var(--cdl-brand-tint) 70%, #fff); }
.cdl-search-advanced-toggle .advanced-chevron { transition: transform var(--cdl-motion-base) var(--cdl-ease-standard); }
.cdl-search-advanced-toggle[aria-expanded="true"] .advanced-chevron { transform: rotate(180deg); }
.cdl-search-advanced { padding: var(--cdl-space-4); background: var(--cdl-surface-subtle); border: 1px solid var(--cdl-border); border-radius: var(--cdl-radius-control); }
.cdl-search-advanced__group { margin: 0; color: var(--cdl-ink); font-family: var(--cdl-font-display); font-size: var(--cdl-text-16); font-weight: 700; }

.cdl-search-chip-area { display: grid; gap: var(--cdl-space-3); padding: var(--cdl-space-4); background: var(--cdl-surface-subtle); border: 1px solid var(--cdl-border); border-radius: var(--cdl-radius-control); }
.cdl-search-chip-area__heading { display: flex; flex-wrap: wrap; gap: var(--cdl-space-2); align-items: baseline; justify-content: space-between; }
.cdl-search-chip-area__heading h2 { margin: 0; color: var(--cdl-ink); font-family: var(--cdl-font-display); font-size: var(--cdl-text-16); font-weight: 700; }
.cdl-search-chip-area__hint { margin: 0; color: var(--cdl-muted); font-size: var(--cdl-text-12); }
.cdl-search-chip-list { display: flex; flex-wrap: wrap; gap: var(--cdl-space-2); margin: 0; padding: 0; list-style: none; }
.cdl-search-chip { display: inline-flex; min-width: 0; gap: var(--cdl-space-2); align-items: baseline; padding: 0.375rem 0.625rem; color: var(--cdl-ink); background: var(--cdl-surface); border: 1px solid var(--cdl-border); border-radius: var(--cdl-radius-pill); }
.cdl-search-chip__label { color: var(--cdl-muted); letter-spacing: 0.045em; }
.cdl-search-chip__value { max-width: 28rem; overflow: hidden; font-size: var(--cdl-text-12); font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }

.cdl-search-alert { display: flex; flex-wrap: wrap; gap: var(--cdl-space-3); align-items: center; justify-content: space-between; padding: var(--cdl-space-4); color: var(--cdl-ink); background: var(--cdl-warning-tint); border: 1px solid color-mix(in srgb, var(--cdl-warning) 34%, var(--cdl-border)); border-radius: var(--cdl-radius-control); }
.cdl-search-alert--info { background: var(--cdl-information-tint); border-color: color-mix(in srgb, var(--cdl-information) 28%, var(--cdl-border)); }
.cdl-search-alert__copy { display: flex; gap: var(--cdl-space-2); align-items: flex-start; font-size: var(--cdl-text-14); line-height: var(--cdl-leading-body); }
.cdl-search-alert__copy i { margin-top: 0.1rem; color: var(--cdl-warning); }
.cdl-search-alert--info .cdl-search-alert__copy i { color: var(--cdl-information); }

.cdl-search-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.32fr); gap: var(--cdl-space-5); align-items: start; }
.cdl-search-results { min-width: 0; }
.cdl-search-rail { position: sticky; top: calc(4.5rem + var(--cdl-space-4)); display: grid; gap: var(--cdl-space-4); }

.cdl-search-export__summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cdl-space-3); }
.cdl-search-export__metric { min-width: 0; padding: var(--cdl-space-3); background: var(--cdl-surface-subtle); border-radius: var(--cdl-radius-control); }
.cdl-search-export__metric strong { display: block; margin-top: var(--cdl-space-1); color: var(--cdl-ink); font-family: var(--cdl-font-display); font-size: var(--cdl-text-20); font-variant-numeric: tabular-nums; letter-spacing: -0.025em; line-height: 1.1; }
.cdl-search-export__metric span { display: block; color: var(--cdl-muted); font-size: var(--cdl-text-12); font-weight: 700; letter-spacing: 0.045em; text-transform: uppercase; }
.cdl-search-export__cost-note { margin: var(--cdl-space-4) 0 0; color: var(--cdl-muted); font-size: var(--cdl-text-12); line-height: var(--cdl-leading-body); }
.cdl-search-export__form { display: grid; gap: var(--cdl-space-3); margin-top: var(--cdl-space-4); }
.cdl-search-export__field { display: grid; gap: var(--cdl-space-1); }
.cdl-search-export__field label { color: var(--cdl-muted); font-size: var(--cdl-text-12); font-weight: 700; }
.cdl-search-export__field .form-select { min-height: var(--cdl-touch-target); border-color: var(--cdl-border-strong); border-radius: var(--cdl-radius-control); }
.cdl-search-export__submit { width: 100%; }

.cdl-search-results__toolbar { justify-content: space-between; margin-bottom: var(--cdl-space-3); }
.cdl-search-results__heading { margin: 0; color: var(--cdl-ink); font-family: var(--cdl-font-display); font-size: var(--cdl-text-20); font-weight: 700; letter-spacing: -0.02em; }
.cdl-search-results__meta { color: var(--cdl-muted); font-size: var(--cdl-text-12); }
.cdl-search-results__table { margin: 0; }
.cdl-search-results__table th { padding: var(--cdl-space-3) var(--cdl-space-4); color: var(--cdl-muted); font-size: var(--cdl-text-12); font-weight: 700; letter-spacing: 0.045em; text-transform: uppercase; white-space: nowrap; background: var(--cdl-surface-subtle); }
.cdl-search-results__table td { padding: var(--cdl-space-4); vertical-align: middle; border-color: var(--cdl-border); }
.cdl-search-results__table tr:last-child td { border-bottom: 0; }
.cdl-search-result__company { min-width: 14rem; }
.cdl-search-result__company a { color: var(--cdl-ink); font-family: var(--cdl-font-display); font-size: var(--cdl-text-16); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.cdl-search-result__company a:hover { color: var(--cdl-brand); }
.cdl-search-result__number { margin-top: var(--cdl-space-1); color: var(--cdl-muted); font-size: var(--cdl-text-12); font-variant-numeric: tabular-nums; }
.cdl-search-result__metric { display: inline-flex; min-width: 2.4rem; justify-content: center; padding: 0.28rem 0.45rem; color: var(--cdl-brand-deep); font-size: var(--cdl-text-14); font-variant-numeric: tabular-nums; font-weight: 700; background: var(--cdl-brand-tint); border-radius: var(--cdl-radius-pill); }
.cdl-search-result__muted { color: var(--cdl-muted); font-size: var(--cdl-text-14); }

.cdl-search-definition-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cdl-space-3); margin: 0; }
.cdl-search-definition { padding: var(--cdl-space-3); background: var(--cdl-surface-subtle); border-radius: var(--cdl-radius-control); }
.cdl-search-definition dd { margin: var(--cdl-space-1) 0 0; color: var(--cdl-muted); font-size: var(--cdl-text-12); line-height: var(--cdl-leading-body); }

.cdl-prospecting[aria-busy="true"] .cdl-search-filter { opacity: 0.76; }
.cdl-search-loading { display: none; }
.cdl-prospecting[aria-busy="true"] .cdl-search-loading { display: inline-flex; gap: var(--cdl-space-2); align-items: center; }
.cdl-prospecting[aria-busy="true"] .cdl-search-submit-copy { display: none; }

@media (max-width: 74.99rem) {
    .cdl-search-workspace { grid-template-columns: 1fr; }
    .cdl-search-rail { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cdl-search-rail > :last-child { grid-column: 1 / -1; }
}

@media (max-width: 61.99rem) {
    .cdl-search-hero { grid-template-columns: 1fr; align-items: start; }
    .cdl-search-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cdl-search-stat:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .cdl-search-rail { grid-template-columns: 1fr; }
    .cdl-search-rail > :last-child { grid-column: auto; }
    .cdl-search-export__submit { position: sticky; z-index: var(--cdl-z-sticky); bottom: calc(var(--cdl-space-3) + env(safe-area-inset-bottom)); box-shadow: var(--cdl-shadow-raised); }
}

@media (max-width: 47.99rem) {
    .cdl-search-filter .cdl-panel__body { padding: var(--cdl-space-4); }
    .cdl-search-hero__actions .cdl-action { width: 100%; }
    .cdl-search-chip__value { max-width: 13rem; }
    .cdl-search-results__table,
    .cdl-search-results__table tbody,
    .cdl-search-results__table tr,
    .cdl-search-results__table td { display: block; width: 100%; }
    .cdl-search-results__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .cdl-search-results__table { padding: var(--cdl-space-3); }
    .cdl-search-results__table tr { margin-bottom: var(--cdl-space-3); padding: var(--cdl-space-4); background: var(--cdl-surface); border: 1px solid var(--cdl-border); border-radius: var(--cdl-radius-control); }
    .cdl-search-results__table tr:last-child { margin-bottom: 0; }
    .cdl-search-results__table td { display: grid; grid-template-columns: minmax(6.5rem, 0.75fr) minmax(0, 1fr); gap: var(--cdl-space-3); align-items: center; padding: var(--cdl-space-2) 0; border: 0; }
    .cdl-search-results__table td::before { content: attr(data-label); color: var(--cdl-muted); font-size: var(--cdl-text-12); font-weight: 700; letter-spacing: 0.045em; text-transform: uppercase; }
    /* Stacked cards are one label/value definition grid: numeric columns drop their
       table alignment so every value shares the same left edge as the other rows.
       !important is required to outrank Bootstrap's .text-end/.text-center utilities. */
    .cdl-search-results__table td.text-end,
    .cdl-search-results__table td.text-center { text-align: start !important; }
    .cdl-search-results__table td.cdl-search-result__company { display: block; padding-top: 0; }
    .cdl-search-results__table td.cdl-search-result__company::before { display: none; }
    .cdl-search-definition-list { grid-template-columns: 1fr; }
}

@media (max-width: 25rem) {
    .cdl-search-stat-grid { grid-template-columns: 1fr; }
    .cdl-search-stat:last-child:nth-child(odd) { grid-column: auto; }
}

/* ============================================================================
   APPENDED — search polish wave 2 (append-only section).
   Desktop scroll-container sizing for wide result tables; the mobile layout
   above already stacks rows into cards. Do not modify lines above.
   ============================================================================ */
@media (min-width: 48rem) {
    .cdl-search-results__table { min-width: 56rem; }
}

.cdl-search-results .cdl-table-scroll:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--cdl-brand) 48%, transparent);
    outline-offset: -3px;
}

/* ============================================================================
   APPENDED — global-search facet + result polish (append-only section).
   Facet panel collapse/sticky summary, capped facet groups, code chips,
   non-wrapping country cell and the branded pager.
   ============================================================================ */

/* Facet panel summary: "Refine results" on desktop, sticky "Filters" bar with an
   active-filter count on small screens (the panel itself starts collapsed there). */
.cdl-gsearch-facets__count {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    color: var(--cdl-brand-deep);
    font-size: var(--cdl-text-12);
    font-weight: 700;
    line-height: 1.4;
    background: var(--cdl-brand-tint);
    border-radius: var(--cdl-radius-pill);
}

@media (min-width: 62rem) {
    .cdl-gsearch-facets__title--narrow { display: none; }
}

@media (max-width: 61.99rem) {
    .cdl-gsearch-facets__title--wide { display: none; }

    /* .cdl-panel's overflow:hidden would defeat position:sticky on the summary. */
    .cdl-gsearch-facets { overflow: visible; }

    .cdl-gsearch-facets > summary {
        position: sticky;
        top: calc(4.5rem + var(--cdl-space-2)); /* clears the sticky site header */
        z-index: var(--cdl-z-sticky);
        background: var(--cdl-surface);
        border-radius: var(--cdl-radius-panel);
    }
}

/* Capped facet groups: buckets beyond the first 8 sit behind a "Show all (N)"
   disclosure whose expanded list scrolls instead of growing unbounded. */
.cdl-gsearch-facet-more > summary {
    display: inline-flex;
    gap: var(--cdl-space-1);
    align-items: center;
    margin-top: 0.25rem;
    padding: 0.25rem 0.5rem;
    color: var(--cdl-brand);
    font-size: var(--cdl-text-12);
    font-weight: 700;
    cursor: pointer;
    border-radius: calc(var(--cdl-radius-control) - 0.25rem);
}

.cdl-gsearch-facet-more > summary:hover { background: var(--cdl-brand-tint); }

.cdl-gsearch-facet-list--overflow {
    max-height: 16rem;
    margin-top: 0.125rem;
    overflow-y: auto;
}

/* Raw NAICS/SIC fallbacks render as muted code chips, never as bare prose. */
.cdl-gsearch-code {
    display: inline-block;
    padding: 0.125rem 0.375rem;
    color: var(--cdl-muted);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: var(--cdl-text-12);
    background: var(--cdl-surface-subtle);
    border-radius: 0.25rem;
}

/* Country name + ISO code stay on one line in result rows. */
.cdl-gsearch-country { white-space: nowrap; }

/* Branded prev/next pager: outlined quiet actions around "Page N of M";
   the edge pages keep both controls visible but inert. */
.cdl-gsearch-pager {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cdl-space-2);
    align-items: center;
    justify-content: space-between;
    margin-top: var(--cdl-space-4);
}

.cdl-gsearch-pager__page {
    color: var(--cdl-muted);
    font-size: var(--cdl-text-12);
    font-variant-numeric: tabular-nums;
}

.cdl-gsearch-pager__action { border-color: var(--cdl-border-strong); }

.cdl-gsearch-pager__action[aria-disabled="true"] {
    color: var(--cdl-muted-subtle, var(--cdl-muted));
    pointer-events: none;
    opacity: 0.55;
}
