/* Shared search/control geometry. Uses the validated Step 4 palette, not a theme reset. */
:root { --swop-control-height:44px; --swop-control-radius:12px; --swop-control-gap:8px; }
body .swop-search-line { display:flex;flex-direction:row;align-items:stretch;gap:var(--swop-control-gap);min-width:0; }
body .swop-search-line>input:not([type=hidden]) { flex:1 1 180px;width:0; }
body :is(.swop-search,.filter-bar-inner,.mob-filter-popup,.users-search-tools,.heart-causes,.heart-association-search-form) :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select) {
  box-sizing:border-box;min-width:0;max-width:100%;height:var(--swop-control-height);min-height:var(--swop-control-height);
  padding:10px 12px;border:1px solid var(--swop-border);border-radius:var(--swop-control-radius);
  font-family:inherit;font-size:14px;line-height:22px;color:var(--swop-text);background-color:var(--swop-bg);
}
body :is(.swop-search,.filter-bar-inner) button:not(.autocomplete-option):not(.filter-reset),
body :is(.users-favorites-control,.users-geo-details>summary,.category-pill,.category-chip,.cat-chip,.feed-tabs a,.loan-kind-tabs a) {
  box-sizing:border-box;min-height:var(--swop-control-height);border-radius:var(--swop-control-radius);
  font-family:inherit;font-size:14px;line-height:22px;gap:var(--swop-control-gap);
}
body .swop-search-line>button { display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:10px 16px;border:1px solid var(--swop-gold-action);white-space:normal; }
body .swop-search-line>button>i { font-size:15px;line-height:1;flex-shrink:0; }
body .users-query-row.swop-search-line>button { width:44px;flex-basis:44px;padding:0; }
body .swop-search input[type=search] { appearance:none;-webkit-appearance:none; }
body .mob-filter-overlay { z-index:1600; }
body.swop-filter-open{overflow:hidden;touch-action:none}
body .mob-filter-popup { padding-bottom:calc(20px + env(safe-area-inset-bottom,0px)); }
body .mob-filter-popup .btn-full {
  box-sizing:border-box;min-height:var(--swop-control-height);padding:10px 12px;
  border-width:1px;border-style:solid;border-radius:var(--swop-control-radius);
  font-family:inherit;font-size:14px;line-height:22px;
}
body .swop-search :is(input,select):disabled { opacity:.6;cursor:not-allowed; }
body :is(.swop-search,.filter-bar-inner,.mob-filter-popup,.users-search-tools,.heart-association-search-form) :is(input,select,button,a):focus-visible { outline:2px solid var(--swop-focus);outline-offset:2px; }
body .feed-filters.swop-search { gap:var(--swop-control-gap); }
body :is(.feed-filters,.heart-association-search-form,.users-search-tools,.filter-bar-inner) :is(button,.btn-primary,.btn-outline){box-sizing:border-box;min-height:var(--swop-control-height);border-radius:var(--swop-control-radius);font-family:inherit;line-height:1.25;white-space:normal}
body :is(.feed-filters,.heart-association-search-form) label{min-width:0}
.desktop-filter-label{display:flex;align-items:center;gap:7px;margin:0 0 8px;color:var(--swop-text);font-size:14px;font-weight:800}.desktop-active-filter-chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 0 10px}.desktop-active-filter-chips span{padding:4px 9px;border:1px solid rgba(195,159,73,.34);border-radius:999px;background:var(--swop-gold-soft);color:var(--swop-text-secondary);font-size:12px}
body .messages-page-wrap .conv-panel-header { padding-left:20px; }
@media(min-width:1100px) {
  body .filter-bar-desktop .filter-bar-inner { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:8px; }
  body .filter-bar-desktop .filter-group { min-width:0;padding:0 8px;gap:5px; }
  body .filter-bar-desktop .filter-group label { display:flex;align-items:center;gap:4px;min-width:0;font-size:10px;font-weight:750;white-space:nowrap; }
  body .filter-bar-desktop .filter-group .filter-select { width:100%;min-width:0!important;padding-inline:3px;font-size:12px; }
  body .filter-bar-desktop .filter-group .autocomplete-wrap { width:100%;min-width:0; }
  body .filter-bar-desktop .filter-reset { width:auto!important;min-width:112px!important;height:44px!important;border-radius:12px!important;padding:0 10px!important; }
}

/* Annonces / Découvrir — une seule commande visuelle par filtre sur Desktop. */
@media(min-width:768px) {
  body .filter-bar-desktop.listing-filter-bar { padding:10px 0;background:var(--sand-page,var(--swop-bg)); }
  body .filter-bar-desktop.listing-filter-bar .desktop-filter-label,
  body .filter-bar-desktop.listing-filter-bar .desktop-active-filter-chips { display:none; }
  body .filter-bar-desktop.listing-filter-bar .filter-bar-inner {
    display:grid;
    grid-template-columns:minmax(104px,.9fr) minmax(126px,1.1fr) minmax(142px,1.25fr) minmax(118px,1fr) minmax(112px,.95fr) 44px;
    align-items:center;
    gap:8px;
    flex-wrap:nowrap;
  }
  body .filter-bar-desktop.listing-filter-bar .filter-group {
    position:relative;
    display:block;
    min-width:0;
    height:44px;
    padding:0;
    border:0;
    border-radius:12px;
    background:transparent;
  }
  body .filter-bar-desktop.listing-filter-bar .filter-group label {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  body .filter-bar-desktop.listing-filter-bar .filter-group .filter-select {
    width:100%;
    min-width:0!important;
    height:44px;
    padding:9px 30px 9px 12px;
    border:1px solid var(--swop-border);
    border-radius:12px;
    background-color:var(--sand-control,var(--swop-taupe-light));
    color:var(--swop-text);
    font-size:13px;
    font-weight:650;
    box-shadow:0 1px 0 rgba(79,69,53,.03);
  }
  body .filter-bar-desktop.listing-filter-bar .filter-group .filter-select:hover { border-color:rgba(195,159,73,.65); }
  body .filter-bar-desktop.listing-filter-bar .filter-group .filter-select:focus { border-color:var(--swop-gold-action);box-shadow:0 0 0 3px rgba(195,159,73,.14); }
  body .filter-bar-desktop.listing-filter-bar .filter-group .filter-select option { background:#FFF9EF;color:var(--swop-text); }
  body .filter-bar-desktop.listing-filter-bar .filter-group .autocomplete-wrap { width:100%;min-width:0; }
  body .filter-bar-desktop.listing-filter-bar .filter-group .autocomplete-list {
    top:calc(100% + 6px);
    border-color:var(--swop-border);
    border-radius:12px;
    background:#FFF9EF;
    box-shadow:0 12px 28px rgba(65,55,42,.13);
  }
  body .filter-bar-desktop.listing-filter-bar .filter-reset {
    width:44px!important;
    min-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    padding:0!important;
    border-radius:12px!important;
    background:#fff;
  }
  body .filter-bar-desktop.listing-filter-bar .filter-reset span { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap; }
}
@media(min-width:768px) and (max-width:940px) {
  body .filter-bar-desktop.listing-filter-bar .filter-bar-inner {
    grid-template-columns:minmax(92px,.85fr) minmax(108px,1fr) minmax(120px,1.15fr) minmax(104px,.95fr) minmax(96px,.9fr) 40px;
    gap:6px;
  }
  body .filter-bar-desktop.listing-filter-bar .filter-group .filter-select { padding-inline:9px 24px;font-size:12px; }
  body .filter-bar-desktop.listing-filter-bar .filter-reset { width:40px!important;min-width:40px!important; }
}
@media(min-width:768px) and (max-width:1099px) {
  body .filter-bar-desktop .filter-bar-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:8px}
  body .filter-bar-desktop .filter-group{min-width:0;padding:0 8px}
  body .filter-bar-desktop .filter-group .filter-select{width:100%;min-width:0!important}
  body .filter-bar-desktop .filter-reset{width:100%!important;min-height:44px!important}
}
@media(max-width:767px) {
  .desktop-filter-label,.desktop-active-filter-chips{display:none}
  body :is(.swop-search,.filter-bar-inner,.mob-filter-popup,.users-search-tools,.heart-association-search-form) :is(input:not([type=hidden]),select) { font-size:16px; }
}
@media(max-width:420px) {
  body .swop-search-line:not(.users-query-row) { flex-direction:column;flex-wrap:nowrap; }
  body .swop-search-line:not(.users-query-row)>input:not([type=hidden]) { flex:0 0 auto;width:100%; }
  body .swop-search-line:not(.users-query-row)>button { flex:0 0 auto;width:100%; }
}
