/* Public idea discovery (search / filters / sort / pagination) — js/discovery.js.
   Uses the site theme variables (style.css :root / site_theme) and the same dark
   page surface as the other customer pages; nothing here hardcodes a brand colour
   beyond the readable on-dark greys already used site-wide. */
.disc { max-width: 1100px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 32px) 56px; }
.disc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.disc-toolbar { display: flex; flex-wrap: wrap; gap: 10px 12px; align-items: flex-end; margin-bottom: 12px; }
.disc-search { position: relative; flex: 1 1 260px; min-width: 0; }
.disc-search input {
  width: 100%; box-sizing: border-box; padding: 11px 40px 11px 14px; font: inherit; font-size: 0.95rem;
  border: 1.5px solid var(--line-dark, #26364d); border-radius: 10px; background: var(--surface-dark, #09192c); color: #fff;
}
.disc-search input::placeholder { color: #8fa0b8; }
.disc-search input:focus { outline: none; border-color: var(--gold-light, #cda856); box-shadow: 0 0 0 3px rgba(205,168,86,0.22); }
.disc-clear {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border: 0; border-radius: 50%;
  background: transparent; color: #c3c9dc; font-size: 1.3rem; line-height: 1; cursor: pointer;
}
.disc-clear:hover, .disc-clear:focus-visible { background: rgba(255,255,255,0.12); color: #fff; }

.disc-field { display: flex; flex-direction: column; gap: 4px; font-size: 0.78rem; color: #a9b4c8; min-width: 0; }
.disc-field select {
  padding: 10px 12px; font: inherit; font-size: 0.9rem; border: 1.5px solid var(--line-dark, #26364d); border-radius: 10px;
  background: var(--surface-dark, #09192c); color: #fff; max-width: 100%;
}
.disc-field select:focus { outline: none; border-color: var(--gold-light, #cda856); box-shadow: 0 0 0 3px rgba(205,168,86,0.22); }

.disc-btn {
  padding: 10px 16px; font: inherit; font-size: 0.9rem; font-weight: 600; cursor: pointer; border-radius: 10px;
  border: 1.5px solid var(--line-dark, #26364d); background: transparent; color: #fff;
}
.disc-btn:hover:not(:disabled) { border-color: var(--gold-light, #cda856); }
.disc-btn:focus-visible { outline: 2.5px solid var(--gold-light, #cda856); outline-offset: 2px; }
.disc-btn:disabled { opacity: 0.45; cursor: not-allowed; }
.disc-btn-quiet { border-color: transparent; color: var(--gold-light, #cda856); padding-inline: 8px; }
.disc-count { color: var(--gold-light, #cda856); }

.disc-filters {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 12px; align-items: end;
  padding: 14px; margin-bottom: 12px; border: 1px solid var(--line-dark, #26364d); border-radius: 12px; background: rgba(255,255,255,0.03);
}
.disc-filters[hidden], .disc-premium[hidden], .disc-empty[hidden], .disc-clear[hidden] { display: none; }

.disc-status { margin: 4px 0 8px; font-size: 0.85rem; color: #a9b4c8; min-height: 1.2em; }
.disc-pager { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; justify-content: space-between; margin: 8px 0 16px; }
.disc-pager:empty { display: none; }
.disc-page-info { font-size: 0.9rem; color: #c3c9dc; text-align: center; flex: 1 1 auto; }

.disc-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: clamp(14px, 2vw, 22px); }
.disc-results[aria-busy="true"] { opacity: 0.55; transition: opacity 0.15s; }
.disc-card {
  display: flex; flex-direction: column; min-width: 0; overflow: hidden;
  border: 1px solid var(--line-dark, #26364d); border-radius: 14px; background: var(--surface-dark, #09192c);
}
.disc-card-img { display: block; aspect-ratio: 16 / 9; background: rgba(255,255,255,0.04); overflow: hidden; }
.disc-card-img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.disc-card-body { display: flex; flex-direction: column; gap: 8px; padding: 16px; flex: 1; }
.disc-card-title { margin: 0; font-size: 1.05rem; line-height: 1.3; }
.disc-card-title a { color: #fff; text-decoration: none; }
.disc-card-title a:hover { text-decoration: underline; }
.disc-card-hook { margin: 0; color: #c3c9dc; font-size: 0.9rem; line-height: 1.5; overflow-wrap: anywhere; }
.disc-chips { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.disc-chip { padding: 3px 10px; border-radius: 999px; font-size: 0.75rem; color: #c3c9dc; border: 1px solid var(--line-dark, #26364d); }
.disc-chip-price { color: var(--gold-light, #cda856); border-color: var(--gold-light, #cda856); }
.disc-card-cta { margin-top: auto; align-self: flex-start; }

/* Facet filters (Capital From/To range, Team options): rendered from the API's filters.facets. */
.disc-facet { grid-column: 1 / -1; margin: 0; padding: 0; border: 0; min-width: 0; }
.disc-facet > legend { padding: 0; margin-bottom: 6px; font-size: 0.78rem; color: #a9b4c8; }
.disc-range-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 12px; }
.disc-range .disc-field input {
  width: 100%; box-sizing: border-box; min-height: 44px; padding: 9px 12px; border-radius: 10px;
  border: 1px solid var(--line-dark, #26364d); background: rgba(255,255,255,0.06); color: #fff; font: inherit;
}
.disc-range .disc-field input:focus { outline: none; border-color: var(--gold-light, #cda856); box-shadow: 0 0 0 3px rgba(205,168,86,0.22); }
.disc-hint { margin: 6px 0 0; font-size: 0.78rem; color: #a9b4c8; }
.disc-facet-error { margin: 4px 0 0; min-height: 1.1em; font-size: 0.82rem; color: #ffb4a8; }
.disc-options { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; }
.disc-options > legend { flex-basis: 100%; }
.disc-check { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 0.9rem; color: #dfe4f0; cursor: pointer; }
.disc-check input { width: 18px; height: 18px; accent-color: var(--gold-light, #cda856); }
.disc-empty { text-align: center; padding: 36px 16px; color: #c3c9dc; }
.disc-premium { padding: 22px; margin-bottom: 18px; border: 1px solid var(--gold-light, #cda856); border-radius: 14px; background: rgba(205,168,86,0.06); color: #c3c9dc; }
.disc-premium h2 { margin: 0 0 8px; color: #fff; font-size: 1.15rem; }

@media (max-width: 560px) {
  .disc-toolbar > .disc-field, .disc-toolbar > .disc-btn { flex: 1 1 calc(50% - 8px); }
  .disc-toolbar > .disc-field select { width: 100%; }
  .disc-pager { justify-content: center; }
  .disc-page-info { order: -1; flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) { .disc-results[aria-busy="true"] { transition: none; } }
