/* Search and contract reading surfaces. Uses the application's shared palette. */
.discovery-heading { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin:1rem 0 1.5rem; }
.discovery-heading h1 { font-size:clamp(1.5rem,3vw,2rem); line-height:1.2; margin:0 0 .6rem; letter-spacing:-.025em; }
.discovery-heading p { color:var(--text-secondary); font-size:.9rem; margin:0; }
.discovery-heading .discovery-eyebrow { font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; font-weight:600; margin-bottom:.65rem; }
.discovery-free,.discovery-return { font-size:.8rem; color:var(--text-secondary); max-width:190px; }
.discovery-free { border-left:3px solid var(--almond-silk); padding-left:1rem; }
.discovery-search-form { margin-bottom:1rem; }
.discovery-search.search-page { margin:0; min-width:0; }
.discovery-search-shell { width:100%; max-width:1152px; margin-inline:auto; padding:1.25rem 1rem 2rem; }
.discovery-coverage { margin:.75rem 0 0; color:var(--text-secondary); font-size:.8rem; }
.discovery-coverage summary { width:fit-content; max-width:100%; cursor:pointer; padding:.35rem 0; line-height:1.5; }
.discovery-coverage p { max-width:65ch; margin:.25rem 0 .75rem 1rem; line-height:1.5; }
.discovery-search .search-bar { border:1px solid var(--border); box-shadow:var(--shadow-sm); border-radius:var(--radius-md); }
.discovery-search .search-bar-input { font-size:1rem; padding:1rem .5rem; min-width:0; }
.discovery-search .search-bar-btn { min-height:44px; font-size:.9rem; }
.discovery-filters { margin-top:.75rem; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-md); }
.discovery-filters summary { cursor:pointer; padding:1rem; font-size:.9rem; font-weight:600; color:var(--text-primary); }
.discovery-filters summary span { color:var(--text-secondary); font-weight:400; font-size:.8rem; margin-left:.65rem; }
.discovery-search .filters-bar { border:0; box-shadow:none; padding:0 1rem 1rem; margin:0; }
.discovery-search .filters-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.discovery-search .filter-lbl { font-size:.75rem; color:var(--text-secondary); text-transform:none; letter-spacing:0; margin-bottom:.3rem; }
.discovery-search .filter-ctl { min-height:44px; font-size:.875rem; border:1px solid var(--border); background:var(--seashell); padding:.6rem .7rem; }
.discovery-date-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; max-width:440px; margin-top:1rem; }
.discovery-search .filters-actions { gap:1rem; margin-top:1rem; padding-top:1rem; }
.discovery-search .amount-chip,.discovery-search .btn-apply,.discovery-search .btn-clear { font-size:.78rem; min-height:38px; display:inline-flex; align-items:center; padding:.5rem .65rem; }
.discovery-search .amount-chips-lbl { font-size:.75rem; color:var(--text-secondary); }
.discovery-search .custom-amount-input { font-size:.85rem; min-height:40px; width:7rem; }
.discovery-search .results-header { margin:1.5rem 0 1rem; gap:1rem; }
.discovery-search .results-header-right { flex-wrap:wrap; gap:.5rem; }
.discovery-search .results-label { font-size:.9rem; }
.discovery-search .results-count { font-size:.85rem; padding:.35rem .65rem; }
.discovery-search .results-action { min-height:40px; font-size:.8rem; padding:.5rem .7rem; }
.discovery-search .results-action-alert { background:var(--space-indigo); border-color:var(--space-indigo); }
.discovery-search .contracts-grid { gap:1rem; }
.discovery-search .contract-card { border-color:var(--border); box-shadow:var(--shadow-xs); border-radius:var(--radius-lg); }
.discovery-search .card-top { padding:.75rem 1rem 0; border:0; gap:.5rem; justify-content:flex-start; }
.discovery-search .bookmark-icon { margin-left:auto; flex-shrink:0; width:40px; height:40px; color:var(--text-secondary); }
.discovery-search .bookmark-icon svg { width:18px; height:18px; }
.discovery-search .card-body { padding:.6rem 1rem 1rem; }
.discovery-search .card-title { font-size:1rem; font-weight:600; line-height:1.5; -webkit-line-clamp:3; margin:0 0 .65rem; }
.discovery-search .card-buyer { font-size:.8rem; line-height:1.5; white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; margin:0; }
.discovery-card-value { display:flex; justify-content:space-between; gap:1rem; padding:0 1rem 1rem; }
.discovery-field-label { display:block; color:var(--text-secondary); font-size:.7rem; margin-bottom:.3rem; font-weight:400; }
.discovery-search .card-amount { font-size:1.15rem; color:var(--text-primary); font-variant-numeric:tabular-nums; }
.discovery-search .card-currency { font-size:.9rem; opacity:1; }
.discovery-search .card-date { font-size:.8rem; color:var(--text-secondary); }
.discovery-published { text-align:right; }
.discovery-search .card-footer { flex-direction:row; justify-content:space-between; align-items:center; padding:.75rem 1rem; background:var(--seashell); gap:1rem; }
.discovery-search .card-meta { flex-wrap:wrap; min-width:0; }
.discovery-search .card-cpv { color:var(--text-secondary); font-size:.72rem; overflow-wrap:anywhere; }
.discovery-search .contract-type-badge,.discovery-search .status-badge,.discovery-search .deadline-badge { font-size:.7rem; padding:.3rem .5rem; }
.discovery-detail-link { font-size:.75rem; color:var(--text-primary); white-space:nowrap; font-weight:600; }
.discovery-search .pagination-btn { min-height:44px; display:inline-flex; align-items:center; }
.discovery-contract { gap:1rem; }
.discovery-contract .breadcrumbs { font-size:.75rem; overflow:hidden; }
.discovery-contract .breadcrumbs > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.discovery-contract .contract-detail-header { padding:2rem; border-radius:var(--radius-lg); }
.discovery-contract .contract-detail-header h1 { font-size:clamp(1.25rem,2.5vw,1.85rem); line-height:1.4; max-width:950px; }
.discovery-header-buyer { color:var(--seashell); font-size:.95rem; margin:0; }
.discovery-contract .contract-header-meta { margin-top:1.5rem; gap:1rem 3rem; border-top:1px solid var(--lilac-ash); padding-top:1rem; }
.discovery-contract .header-amount,.discovery-contract .header-date { display:block; color:var(--surface); }
.discovery-contract .header-amount svg,.discovery-contract .header-date svg { display:none; }
.discovery-hero-label { display:block; font-size:.75rem; font-weight:400; color:var(--seashell); margin-bottom:.4rem; }
.discovery-contract .anon-signup-banner { margin:0; }
.discovery-contract .anon-signup-banner-icon { display:none; }
.discovery-contract .status-banner { margin:0; padding:1rem; border-radius:var(--radius-md); flex-wrap:wrap; gap:1rem; }
.discovery-section-nav { display:flex; flex-wrap:wrap; gap:.35rem; padding:.4rem 0; border-bottom:1px solid var(--border); }
.discovery-section-nav a { padding:.65rem .8rem; font-size:.8rem; color:var(--text-secondary); border-radius:var(--radius-sm); }
.discovery-section-nav a:hover { background:var(--surface); color:var(--text-primary); }
.discovery-contract .contract-grid { gap:1rem; margin:0; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
.discovery-contract .card { padding:1.5rem; border-radius:var(--radius-lg); border-color:var(--border); }
.discovery-contract .card-header h2 { font-size:1rem; }
.discovery-contract .detail-list { font-size:.875rem; }
.discovery-contract .detail-list dd,.discovery-contract .org-name,.discovery-contract .contact-link { overflow-wrap:anywhere; min-width:0; }
.discovery-contract section[id],.discovery-contract form[id] { scroll-margin-top:6rem; }
.discovery-section-intro { font-size:.85rem; color:var(--text-secondary); margin:0 0 1rem; }
.discovery-lot { display:flex; justify-content:space-between; gap:1.5rem; padding:1rem 0; border-top:1px solid var(--border); }
.discovery-lot h3 { font-size:.95rem; margin:0 0 .5rem; }
.discovery-lot p { font-size:.85rem; color:var(--text-secondary); }
.discovery-lot-budget { white-space:nowrap; text-align:right; font-size:.9rem; font-weight:600; }
.discovery-lot-count { margin-left:.4rem; font-size:.8rem; color:var(--text-secondary); }
.discovery-search :focus-visible,.discovery-contract :focus-visible { outline:2px solid var(--dusty-grape); outline-offset:3px; }
@media(max-width:767px) {
 .discovery-search-shell { padding:1rem 1rem 2rem; }
 .discovery-heading { display:block; margin:.5rem 0 1.25rem; }
 .discovery-heading .discovery-free,.discovery-return { display:block; max-width:none; margin-top:.8rem; }
 .discovery-filters summary span { display:none; }
 .discovery-search .filters-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .discovery-search .filter-ctl,.discovery-search .custom-amount-input { font-size:16px; }
 .discovery-search .results-header-right { width:100%; }
 .discovery-search .results-header-left { flex-wrap:wrap; }
 .discovery-search .results-action { flex:1 1 auto; justify-content:center; text-align:center; }
 .discovery-contract .contract-grid { grid-template-columns:minmax(0,1fr); }
 .discovery-contract .contract-detail-header,.discovery-contract .card { padding:1.25rem; }
 .discovery-contract .breadcrumb { display:flex; gap:.75rem; flex-wrap:wrap; }
 .discovery-contract .status-banner { align-items:flex-start; }
 .discovery-contract .deadline-info { flex-wrap:wrap; }
 .discovery-lot { display:block; }
 .discovery-lot-budget { text-align:left; margin-top:.75rem; }
}
@media(max-width:400px) { .discovery-search .filters-grid { grid-template-columns:minmax(0,1fr); } .discovery-search .card-top { flex-wrap:wrap; } }
.discovery-alert-note { margin:-.25rem 0 1rem; color:var(--text-secondary); font-size:.75rem; line-height:1.5; }
/* Global header/card rules also match semantic elements inside these pages. */
.discovery-search .discovery-heading { position:static; background:none; box-shadow:none; backdrop-filter:none; border:0; padding:0; z-index:auto; }
.discovery-search .contract-card { padding:0; margin:0; }
.discovery-search .contract-card::before { display:none; }
.discovery-contract .anon-signup-banner { background:var(--seashell); border:1px solid var(--border); }
.discovery-contract .header-amount { font-variant-numeric:tabular-nums; }
.discovery-contract .similar-alert-card .text-muted { color:var(--text-secondary); }
/* Bookmark endpoints swap in the shared button variant after saving. */
.discovery-search .card-top .bookmark-btn { margin-left:auto; flex-shrink:0; width:40px; height:40px; padding:.5rem; border:0; background:transparent; box-shadow:none; color:var(--text-primary); }
.discovery-search .card-top .bookmark-btn svg { width:18px; height:18px; }
.discovery-return a { display:block; padding:.3rem 0; color:var(--text-secondary); }
.discovery-source { color:var(--text-secondary); font-size:.85rem; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.discovery-source summary { cursor:pointer; font-weight:600; padding:1rem .5rem; color:var(--text-primary); }
.discovery-source-content { padding:0 .5rem 1rem; max-width:800px; }
.discovery-source-content p { margin-bottom:.75rem; }
.discovery-source-content > a { display:inline-block; text-decoration:underline; margin-bottom:1rem; color:var(--text-primary); }
.discovery-source-content .detail-list { margin:0; }
.discovery-contract .status-banner .deadline-date,.discovery-contract .status-banner .deadline-label { color:var(--text-primary); }
.discovery-contract .status-banner .deadline-countdown { color:var(--text-primary); background:var(--surface); }
.discovery-contract .card-header h2 { color:var(--text-secondary); letter-spacing:.035em; }
/* Named searches share the discovery typography and quiet card surfaces. */
.saved-search-page { max-width:960px; margin:0 auto; padding:1.5rem 1rem 3rem; }
.saved-search-new { max-width:760px; }
.saved-back { display:inline-block; font-size:.85rem; color:var(--text-secondary); margin-bottom:1.5rem; }
.saved-page-heading { margin-bottom:1.5rem; }
.saved-page-heading h1 { font-size:clamp(1.5rem,3vw,2rem); line-height:1.25; letter-spacing:-.025em; margin:0 0 .7rem; }
.saved-page-heading p { font-size:.9rem; color:var(--text-secondary); margin:0; }
.saved-page-heading .discovery-eyebrow { font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.07em; margin-bottom:.6rem; }
.saved-search-panel { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:1.5rem; margin-bottom:1rem; box-shadow:var(--shadow-xs); }
.saved-search-panel h2 { font-size:1rem; margin:0 0 1rem; line-height:1.5; }
.saved-filter-summary { display:flex; flex-wrap:wrap; gap:.65rem; margin:0 0 1rem; }
.saved-filter-summary > div { max-width:100%; background:var(--seashell); border:1px solid var(--border-light); border-radius:var(--radius-sm); padding:.5rem .7rem; }
.saved-filter-summary dt { font-size:.68rem; color:var(--text-secondary); margin-bottom:.2rem; }
.saved-filter-summary dd { margin:0; font-size:.85rem; color:var(--text-primary); overflow-wrap:anywhere; }
.saved-preview { font-size:.8rem; color:var(--text-primary); text-decoration:underline; }
.saved-name-form label,.saved-rename-form label { display:block; font-size:.85rem; font-weight:600; margin-bottom:.5rem; }
.saved-name-form input[type="text"],.saved-rename-form input { display:block; min-width:0; width:100%; min-height:44px; border:1px solid var(--border); border-radius:var(--radius-sm); padding:.65rem .75rem; font-size:1rem; background:var(--surface); color:var(--text-primary); }
.saved-form-hint,.saved-filter-empty { font-size:.8rem; line-height:1.6; color:var(--text-secondary); margin:.65rem 0 0; }
.saved-form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.25rem; margin-top:1.25rem; }
.saved-form-actions > a { font-size:.85rem; color:var(--text-secondary); }
.saved-form-error { padding:.75rem; margin:0 0 1rem; border-left:3px solid var(--error); color:var(--text-primary); background:var(--error-bg); font-size:.85rem; }
.saved-search-list { padding:0; margin:0; list-style:none; }
.saved-list-toolbar { margin-bottom:1.25rem; }
.saved-search-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.saved-search-heading h2 { min-width:0; margin:0; font-size:1.1rem; overflow-wrap:anywhere; }
.saved-search-heading h2 a { color:var(--text-primary); }
.saved-open { flex-shrink:0; font-size:.8rem; }
.saved-manage { border-top:1px solid var(--border); padding-top:.75rem; margin-top:1rem; }
.saved-manage summary { cursor:pointer; font-size:.8rem; color:var(--text-secondary); padding:.25rem 0; }
.saved-manage-content { padding-top:1rem; }
.saved-rename-row { display:flex; gap:.75rem; align-items:center; }
.saved-rename-row .btn { flex-shrink:0; }
.saved-delete { margin-top:1rem; padding:.5rem 0; font-size:.8rem; color:var(--text-secondary); background:none; border:0; text-decoration:underline; cursor:pointer; }
.saved-empty { padding:2rem; }
.saved-empty p { font-size:.9rem; color:var(--text-secondary); margin-bottom:1.25rem; }
.saved-search-page :focus-visible { outline:2px solid var(--dusty-grape); outline-offset:3px; }
@media(max-width:640px) {
 .discovery-search .guest-alert-input,.discovery-contract .guest-alert-input { flex:0 0 auto; height:44px; min-height:44px; font-size:16px; }
 .saved-search-page { padding:1rem 0 2rem; }
 .saved-search-panel { padding:1.25rem; }
 .saved-search-heading,.saved-rename-row { flex-direction:column; align-items:stretch; }
 .saved-open { align-self:flex-start; }
}
