/* Airbnb search measurements: 4:3 photos, 24px card gap, 48px split gap,
   48px outer gutters, 40px map controls and 24px map radius. */
.ip-discovery-body { --ip-workspace-topbar-height:80px; background:var(--ip-color-page); }
.ip-discovery-body .ip-home-canvas { min-height:100dvh; background:var(--ip-color-page) var(--ip-surface-texture) repeat; background-blend-mode:var(--ip-surface-texture-blend); }
.ip-discovery-body .ip-workspace-topbar { border-bottom:0; }
.ip-discovery-search-slot { height:0; }
.ip-discovery { color:var(--ip-color-text); }
.ip-discovery [hidden] { display:none !important; }
.ip-discovery button { font-family:inherit; cursor:pointer; }
.ip-discovery .ip-discovery-filter-button,.ip-discovery .ip-discovery-chip { flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; gap:8px; height:34px; min-height:34px; padding:0 14px; border:1px solid var(--ip-color-border); border-radius:24px; background:var(--ip-color-surface); color:var(--ip-color-text); font-size:13px; font-weight:600; white-space:nowrap; transition:background 150ms,border-color 150ms; }
.ip-discovery-filter-button .ip-icon { width:16px; height:16px; }
.ip-discovery-filter-button [data-filter-count] { display:grid; place-items:center; width:18px; height:18px; border-radius:50%; background:var(--ip-color-action); color:var(--ip-color-on-action); font-size:11px; }
.ip-discovery-filter-button [hidden] { display:none; }
.ip-discovery .ip-discovery-chip[aria-pressed=true],.ip-discovery .ip-discovery-filter-button.is-active { border-color:var(--ip-color-action); background:var(--ip-color-action-soft); color:var(--ip-color-action); }
.ip-discovery-layout { display:grid; grid-template-columns:minmax(0,calc(60% - 12px)) minmax(0,1fr); gap:48px; padding:24px 48px; align-items:start; }
/* Recover the 64px rail from the outside gutters: at 1366px the photos
   remain 358.8 × 269.1 and the map 465.4 × (viewport height - 200). */
.ip-discovery-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; min-height:70px; }
.ip-discovery-heading-copy { min-width:0; }
.ip-discovery-heading .ip-discovery-filter-button { min-height:40px; margin-top:0; }
.ip-discovery-heading h1 { margin:0; font-size:20px; font-weight:750; line-height:24px; letter-spacing:-.4px; }
.ip-discovery-heading { scroll-margin-top:160px; }
.ip-discovery-heading p { margin:6px 0 20px; font-size:13px; color:var(--ip-color-text-muted); line-height:20px; }
.ip-discovery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
.ip-discovery-card { position:relative; min-width:0; }
.ip-discovery-card__link { display:block; color:inherit; text-decoration:none; }
.ip-discovery-card__photo { position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:20px; background:var(--ip-color-surface-related); }
.ip-discovery-card__photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform 220ms ease; }
.ip-discovery-card__photo.is-logo img { padding:28px; object-fit:contain; box-sizing:border-box; }
.ip-discovery-ong-logo { display:none; }
/* Desktop ONG cards always retain their logo, independently of the cover.
   Real galleries take precedence over the decorative fallback illustration. */
@media(min-width:1024px) {
  .ip-discovery-gallery__slide.is-ong-placeholder { background:#f3f1eb url('../images/ong-placeholder.svg') center / cover no-repeat; }
  .ip-discovery-card__photo .is-ong-placeholder > img,
  .ip-discovery-card__photo.is-logo .is-ong-placeholder > img { display:none; }
  .ip-discovery-ong-logo { display:block; position:absolute; z-index:1; bottom:20px; left:20px; width:clamp(72px,22%,88px); aspect-ratio:1; box-sizing:border-box; border:2px solid #fff; border-radius:14px; background:#fff; overflow:hidden; }
  .ip-discovery-card__photo .ip-discovery-ong-logo > img,
  .ip-discovery-card__photo.is-logo .ip-discovery-ong-logo > img { display:block; width:100%; height:100%; padding:0; border:0; border-radius:inherit; object-fit:contain; }
  .ip-discovery-card__photo .is-ong-placeholder > .ip-icon { inset:auto; left:24px; bottom:24px; width:72px; height:72px; box-sizing:border-box; padding:18px; border-radius:16px; background:#fff; color:#746759; }
}
.ip-discovery-card__photo > .ip-icon { position:absolute; width:48px; height:48px; inset:0; margin:auto; color:var(--ip-color-text-muted); opacity:.55; }
.ip-discovery-card h2 { margin:12px 0 3px; font-size:15px; font-weight:700; line-height:21px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.ip-discovery-card p { margin:0; color:var(--ip-color-text-muted); font-size:14px; line-height:21px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ip-discovery-card__kind { position:absolute; z-index:1; left:12px; top:12px; max-width:calc(100% - 64px); padding:5px 10px; border-radius:20px; background:#fff; color:#29272d; font-size:12px; font-weight:650; line-height:18px; box-shadow:0 2px 8px #00000012; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.ip-discovery .ip-discovery-save { position:absolute; top:8px; right:8px; display:grid; place-items:center; width:40px; height:40px; padding:8px; border:0; border-radius:50%; background:transparent; color:#fff; z-index:2; }
.ip-discovery-save .ip-icon { width:24px; height:24px; fill:#0006; filter:drop-shadow(0 1px 2px #0005); }
.ip-discovery-save[aria-pressed=true] .ip-icon { fill:var(--ip-purple-500); }
.ip-discovery .ip-discovery-photo-arrow { position:absolute; top:calc(50% - 16px); width:32px; height:32px; border:0; border-radius:50%; display:grid; place-items:center; background:#fff; color:#222; box-shadow:0 2px 6px #0002; opacity:0; transition:opacity 150ms; z-index:2; padding:7px; }
.ip-discovery-photo-arrow--prev { left:12px; }.ip-discovery-photo-arrow--next { right:12px; }
.ip-discovery-card:hover .ip-discovery-photo-arrow,.ip-discovery-card:focus-within .ip-discovery-photo-arrow { opacity:1; }
.ip-discovery-photo-dots { position:absolute; display:flex; gap:4px; bottom:12px; left:50%; transform:translateX(-50%); }
.ip-discovery-photo-dots i { width:5px; height:5px; border-radius:50%; background:#ffffff80; box-shadow:0 1px 2px #0005; }.ip-discovery-photo-dots i.is-active { background:white; }
.ip-discovery-map-panel { position:sticky; top:calc(var(--ip-workspace-topbar-height) + 24px); height:calc(100dvh - var(--ip-workspace-topbar-height) - 48px); min-height:300px; margin-top:0; border-radius:24px; overflow:hidden; isolation:isolate; background:#cbe8ee; }
.ip-discovery-map { position:absolute; inset:0; }
.ip-discovery-map-status { position:absolute; top:50%; left:24px; right:24px; transform:translateY(-50%); padding:16px; border-radius:16px; background:#fff; color:#48434d; text-align:center; font-size:14px; box-shadow:0 4px 12px #0001; }
.ip-discovery-map-controls { position:absolute; right:16px; top:16px; display:grid; justify-items:center; gap:16px; }
.ip-discovery-map-controls button { display:grid; place-items:center; width:40px; height:40px; padding:10px; border:0; border-radius:50%!important; background:#fff; color:#222; box-shadow:0 3px 12px #0002; }
.ip-discovery-map-controls button:disabled { opacity:.4; cursor:default; }
.ip-discovery-map-controls .ip-icon { width:20px; height:20px; }
.ip-discovery-map-zoom { border-radius:24px; overflow:hidden; box-shadow:0 3px 12px #0002; }
.ip-discovery-map-zoom button { box-shadow:none; border-radius:0!important; }.ip-discovery-map-zoom button+button { border-top:1px solid #eee; height:41px; }
.ip-discovery .ip-discovery-pin { position:absolute; transform:translate(-50%,-50%); width:44px; height:32px; display:grid; place-items:center; padding:6px 12px; border:0; border-radius:20px; box-shadow:0 2px 5px #0004; background:#fff; color:#28252d; font-weight:750; font-size:14px; transition:background 150ms,color 150ms; }
.ip-discovery-pin .ip-icon { width:20px; height:20px; }.ip-discovery .ip-discovery-pin.is-active,.ip-discovery .ip-discovery-pin:hover { background:var(--ip-purple-600); color:white; z-index:5; }
.ip-discovery .ip-discovery-area { position:absolute; top:16px; left:50%; transform:translateX(-50%); white-space:nowrap; display:flex; gap:8px; align-items:center; background:#fff; color:#222; height:40px; border:0; border-radius:20px; padding:0 16px; box-shadow:0 3px 12px #0002; font-size:12px; font-weight:650; }.ip-discovery-area .ip-icon { width:15px; }
.ip-discovery-map-preview { position:absolute; left:20px; right:20px; bottom:36px; background:var(--ip-color-surface); padding:12px; border-radius:20px; box-shadow:0 6px 24px #0003; max-height:300px; overflow:auto; }
.ip-discovery-map-preview>a { display:flex; align-items:center; gap:12px; padding:6px; color:var(--ip-color-text); text-decoration:none; font-size:14px; font-weight:650; }.ip-discovery-map-preview img { width:72px; height:60px; border-radius:10px; object-fit:cover; }.ip-discovery-map-preview small { display:block; color:var(--ip-color-text-muted); margin-top:4px; font-size:12px; font-weight:400; }
.ip-discovery .ip-discovery-map-panel.is-fullscreen { position:fixed; z-index:500; inset:16px; height:auto; margin:0; }
body.ip-map-expanded { overflow:hidden; }
.ip-discovery-pagination { display:flex; align-items:center; justify-content:center; gap:8px; margin:40px 0 16px; }.ip-discovery-pagination button { width:36px; height:36px; display:grid; place-items:center; padding:8px; border:0; border-radius:50%; background:transparent; color:var(--ip-color-text); font-weight:650; }.ip-discovery-pagination button[aria-current=page] { background:var(--ip-color-action); color:var(--ip-color-on-action); }
.ip-discovery-empty { padding:48px 0; text-align:center; }.ip-discovery-empty h2 { font-size:20px; }.ip-discovery-empty p { font-size:14px; color:var(--ip-color-text-muted); margin:12px 0 24px; }
.ip-discovery-skeleton { aspect-ratio:4/3; border-radius:20px; background:var(--ip-color-surface-related); animation:ip-discovery-pulse 1.5s ease infinite; }
.ip-discovery .ip-discovery-view { display:none; }
.ip-discovery .ip-discovery-dialog { width:568px; max-width:calc(100% - 32px); max-height:calc(100dvh - 80px); padding:0; border:0; border-radius:24px; color:var(--ip-color-text); background:var(--ip-color-surface); box-shadow:0 16px 64px #0003; overflow:hidden; margin:auto; }
.ip-discovery-dialog::backdrop { background:#0006; }.ip-discovery-dialog[open] { display:flex; flex-direction:column; animation:ip-home-panel-in 180ms ease-out; }
.ip-discovery-dialog header { position:relative; flex-shrink:0; display:flex; align-items:center; justify-content:center; height:64px; border-bottom:1px solid var(--ip-color-border); }.ip-discovery-dialog header h2 { margin:0; font-size:16px; font-weight:700; }
.ip-discovery-dialog .ip-discovery-dialog-close { position:absolute; right:12px; left:auto; width:44px; height:44px; padding:12px; border:0; border-radius:50%; background:transparent; color:inherit; }
.ip-discovery-dialog form { min-height:0; display:flex; flex-direction:column; margin:0; }.ip-discovery-dialog-body { overflow:auto; padding:0 24px; overscroll-behavior:contain; }
.ip-discovery-dialog fieldset { min-width:0; margin:0; padding:24px 0; border:0; border-bottom:1px solid var(--ip-color-border); }.ip-discovery-dialog legend { float:left; width:100%; padding:0; margin:0 0 16px; font-size:18px; font-weight:700; }.ip-discovery-dialog legend+* { clear:both; }
.ip-discovery-filter-options { display:flex; flex-wrap:wrap; gap:10px; }.ip-discovery .ip-discovery-filter-options button { height:44px; padding-inline:20px; font-weight:500; }
.ip-discovery-dialog .ip-input { width:100%; font-size:14px; min-height:48px; background:var(--ip-color-surface); color:var(--ip-color-text); border:1px solid var(--ip-color-border); border-radius:12px; padding:12px; box-sizing:border-box; }
.ip-discovery-check { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:15px; }.ip-discovery-check input { width:22px; height:22px; accent-color:var(--ip-color-action); }
.ip-discovery-dialog footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 24px; border-top:1px solid var(--ip-color-border); }.ip-discovery-clear { padding:10px 0; border:0; background:transparent; text-decoration:underline; color:var(--ip-color-text); font-weight:650; font-size:14px; }
.ip-discovery [hidden] { display:none!important; }
@keyframes ip-discovery-pulse { 50%{opacity:.45;} }
/* Wide desktop keeps two 4:3 cards, with more room allocated to the map. */
@media(min-width:1440px) {
  .ip-discovery-layout,.ip-public-home.is-collapsed .ip-discovery-layout { grid-template-columns:minmax(0,calc(50% - 29px)) minmax(0,1fr); padding-inline:48px; }
}
@media(max-width:1199px) and (min-width:768px) { .ip-discovery-layout { padding-inline:24px; gap:24px; grid-template-columns:55% minmax(0,1fr); }.ip-discovery-grid { gap:28px 16px; }.ip-discovery-heading h1 { font-size:18px; } }
@media(max-width:767px) {
  .ip-discovery-body { --ip-workspace-topbar-height:72px; }.ip-discovery .ip-discovery-filter-button { height:40px; min-width:40px; padding:0 10px; }.ip-discovery-heading .ip-discovery-filter-button { width:auto; min-width:44px; height:44px; } .ip-discovery-filter-button>span:first-of-type { display:none; }
  .ip-discovery-layout { display:flex; flex-direction:column; padding:0 0 100px; gap:0; }.ip-discovery-results { position:relative; z-index:1; width:100%; box-sizing:border-box; padding:24px; margin-top:-24px; border-radius:24px 24px 0 0; background:var(--ip-color-surface); }.ip-discovery-heading { min-height:64px; text-align:left; gap:12px; }.ip-discovery-heading h1 { font-size:18px; line-height:25px; }.ip-discovery-grid { grid-template-columns:1fr; gap:28px; }.ip-discovery-card h2 { font-size:16px; }.ip-discovery-card__photo { border-radius:20px; }.ip-discovery-photo-arrow { opacity:1!important; }
  .ip-discovery-map-panel { display:block; position:relative; order:-1; top:auto; width:100%; height:320px; min-height:0; margin:0; border-radius:0; }.ip-discovery.is-map-view .ip-discovery-map-panel { display:block; position:fixed; z-index:100; inset:var(--ip-workspace-topbar-height) 0 0; height:auto; min-height:0; margin:0; border-radius:0; }.ip-discovery.is-map-view .ip-discovery-results { display:block; position:fixed; z-index:180; top:calc(var(--ip-workspace-topbar-height) + 16px); left:16px; width:auto; padding:0; margin:0; background:transparent; }
  .ip-discovery.is-map-view .ip-discovery-results > :not(.ip-discovery-heading),.ip-discovery.is-map-view .ip-discovery-heading-copy { display:none!important; }
  .ip-discovery.is-map-view .ip-discovery-heading { min-height:0; }
  .ip-discovery .ip-discovery-view { position:fixed; z-index:195; bottom:24px; left:50%; transform:translateX(-50%); display:flex; align-items:center; justify-content:center; gap:10px; height:48px; padding:0 22px; border:0; border-radius:24px; background:var(--ip-purple-700); color:#fff; box-shadow:0 4px 18px #0003; font-size:14px; font-weight:650; white-space:nowrap; }.ip-discovery-view .ip-icon { width:18px; height:18px; }
  .ip-discovery-map-preview { bottom:88px; left:16px; right:16px; }.ip-discovery .ip-discovery-area { top:16px; left:16px; transform:none; }.ip-discovery .ip-discovery-dialog { width:100%; max-width:100%; max-height:90dvh; margin:auto 0 0; border-radius:24px 24px 0 0; }.ip-discovery-dialog footer { padding-bottom:max(16px,env(safe-area-inset-bottom)); }.ip-discovery-map-controls button { width:40px; height:40px; }
}
@media(prefers-reduced-motion:reduce) { .ip-discovery * { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

.ip-discovery-dialog .ip-button { background:var(--ip-color-action); color:var(--ip-color-on-action); border-color:var(--ip-color-action); }

.ip-discovery-map-zoom button { --ip-button-radius:0px; }
.ip-discovery-map-controls>button,.ip-discovery-pagination button,.ip-discovery-photo-arrow { --ip-button-radius:50%; }
.ip-discovery-filter-button,.ip-discovery-chip,.ip-discovery-view { --ip-button-radius:24px; }

@media(max-width:767px) { .ip-discovery-dialog .ip-input { font-size:16px; } }

.ip-discovery-gallery { display:flex; width:100%; height:100%; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; border-radius:inherit; }
.ip-discovery-gallery::-webkit-scrollbar { display:none; }
.ip-discovery-gallery__slide { position:relative; flex:0 0 100%; min-width:0; height:100%; scroll-snap-align:start; scroll-snap-stop:always; }
.ip-discovery-gallery__slide>.ip-icon { position:absolute; inset:0; margin:auto; width:48px; height:48px; color:var(--ip-color-text-muted); }
.ip-discovery-gallery.is-dragging { scroll-snap-type:none; cursor:grabbing; user-select:none; }
.ip-discovery-card__photo img.is-fallback-logo { object-fit:contain; padding:28px; box-sizing:border-box; }
.ip-discovery-photo-dots,.ip-discovery-card__kind { pointer-events:none; }
.ip-discovery .ip-discovery-quick-select { flex-shrink:0; width:auto; max-width:220px; min-height:34px; height:34px; padding:0 30px 0 14px; border:1px solid var(--ip-color-border); border-radius:20px; background-color:var(--ip-color-surface); color:var(--ip-color-text); font-family:inherit; font-size:13px; font-weight:600; cursor:pointer; }
.ip-discovery .ip-discovery-quick-select.is-active { border-color:var(--ip-color-action); background-color:var(--ip-color-action-soft); color:var(--ip-color-action); }
.ip-discovery-gallery__slide:focus-visible { outline:3px solid var(--ip-color-action); outline-offset:-3px; border-radius:20px; }
@media(max-width:767px) { .ip-discovery .ip-discovery-quick-select { font-size:16px; max-width:190px; } }

/* Desktop filter band mirrors the public header; mobile keeps its current control. */
.ip-discovery-toolbar { display:none; }
@media(min-width:1024px) {
  .ip-discovery { --ip-discovery-filter-ink:#222; --ip-discovery-filter-border:#ddd; }
  [data-theme="dark"] .ip-discovery { --ip-discovery-filter-ink:var(--ip-color-text); --ip-discovery-filter-border:var(--ip-color-border-strong); }
  .ip-discovery-body .ip-public-workspace .ip-workspace-topbar { background:var(--ip-surface-texture),linear-gradient(var(--ip-public-header-start),var(--ip-public-header-middle)); }
  .ip-discovery-toolbar { display:flex; justify-content:center; position:sticky; top:var(--ip-workspace-topbar-height); z-index:110; height:56px; padding:0 48px 16px; box-sizing:border-box; background:var(--ip-surface-texture),linear-gradient(var(--ip-public-header-middle),var(--ip-public-header-end)); border-bottom:1px solid var(--ip-color-border); }
  .ip-discovery-toolbar__inner { display:flex; align-items:center; gap:12px; width:max-content; max-width:100%; overflow-x:auto; scrollbar-width:none; }
  .ip-discovery-toolbar__inner::-webkit-scrollbar { display:none; }
  .ip-discovery-quick { display:flex; flex:none; align-items:center; gap:8px; padding-left:12px; border-left:1px solid var(--ip-color-border); }
  .ip-discovery-quick:empty { display:none; }
  .ip-discovery .ip-discovery-toolbar .ip-discovery-chip { width:144px; padding-inline:12px; overflow:hidden; text-overflow:ellipsis; display:block; font-weight:500; }
  .ip-discovery .ip-discovery-toolbar .ip-discovery-filter-button { min-width:96px; font-weight:500; }
  .ip-discovery :is(.ip-discovery-chip,.ip-discovery-filter-button) { border-color:var(--ip-discovery-filter-border); color:var(--ip-discovery-filter-ink); }
  .ip-discovery :is(.ip-discovery-chip[aria-pressed=true],.ip-discovery-filter-button.is-active) { border:1px solid var(--ip-discovery-filter-ink); background:var(--ip-color-surface); color:var(--ip-discovery-filter-ink); }
  .ip-discovery .ip-discovery-filter-button [data-filter-count] { background:var(--ip-discovery-filter-ink); color:var(--ip-color-surface); }
  .ip-discovery-heading > .ip-discovery-filter-button { display:none; }
  .ip-discovery-heading h1 { font-weight:600; }
  .ip-discovery-card h2 { font-weight:600; }
  .ip-discovery-map-panel { top:calc(var(--ip-workspace-topbar-height) + 96px); height:calc(100dvh - var(--ip-workspace-topbar-height) - 120px); margin-top:16px; }
  .ip-discovery-heading { scroll-margin-top:calc(var(--ip-workspace-topbar-height) + 80px); }
}

/* ONG filters: a compact anchored list and the shared switch control. */
.ip-discovery .ip-discovery-toolbar .ip-discovery-dropdown-trigger {
  display:inline-flex; justify-content:space-between; gap:8px;
}
.ip-discovery-dropdown-trigger > span { overflow:hidden; text-overflow:ellipsis; }
.ip-discovery-dropdown-trigger > .ip-icon { flex:none; width:14px; height:14px; }
.ip-discovery-select-menu {
  position:fixed; inset:auto; width:256px; max-height:320px; margin:0; padding:8px;
  box-sizing:border-box; overflow-y:auto; overscroll-behavior:contain;
  border:1px solid var(--ip-color-border); border-radius:16px;
  background:var(--ip-color-surface); color:var(--ip-color-text);
  box-shadow:0 8px 32px #0002;
}
.ip-discovery-select-menu:popover-open { animation:ip-discovery-select-in 160ms ease-out; }
.ip-discovery .ip-discovery-select-option {
  --ip-button-radius:10px; display:flex; align-items:center; justify-content:space-between;
  width:100%; min-height:42px; padding:10px 12px; border:0; border-radius:10px;
  background:transparent; color:inherit; font-size:14px; font-weight:500; text-align:left;
}
.ip-discovery-select-option .ip-icon { width:16px; height:16px; }
.ip-discovery .ip-discovery-select-option:is(:hover,:focus-visible,[aria-selected="true"]) { background:var(--ip-color-surface-subtle); }
.ip-discovery .ip-discovery-select-option:focus-visible { outline:2px solid var(--ip-color-text); outline-offset:-2px; }
.ip-discovery-toggle-row { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:48px; margin:0; font-size:15px; font-weight:500; cursor:pointer; }
.ip-discovery-toggle-row + .ip-discovery-toggle-row { margin-top:12px; }
.ip-discovery-toggle-row .ip-profile-switch { position:relative; display:inline-flex; flex:none; width:var(--ip-switch-width); height:var(--ip-switch-height); margin:0; padding:0; }
.ip-discovery-toggle-row input { position:absolute; inset:0; width:100%; height:100%; opacity:0; margin:0; cursor:pointer; }
.ip-discovery-toggle-row .ip-profile-switch__control { display:block; border-radius:999px; pointer-events:none; transition:background 180ms ease; }
.ip-discovery-toggle-row .ip-profile-switch__control::after { content:""; position:absolute; border-radius:50%; transition:transform 180ms ease; }
.ip-discovery-toggle-row input:focus-visible + .ip-profile-switch__control { outline:2px solid var(--ip-color-text); outline-offset:4px; }
.ip-discovery-toggle-row:has(input:disabled) { color:var(--ip-color-text-muted); cursor:default; }
.ip-discovery-toggle-row input:disabled { cursor:default; }
.ip-discovery-filter-status { margin:12px 0 0; color:var(--ip-color-text-muted); font-size:13px; line-height:1.5; }
.ip-discovery-filter-status button { padding:0; border:0; background:transparent; color:var(--ip-color-text); text-decoration:underline; font:inherit; }
.ip-discovery .ip-discovery-dropdown-trigger:disabled { color:var(--ip-color-text-muted); cursor:default; opacity:.65; }
@keyframes ip-discovery-select-in { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
@media(min-width:1024px) {
  .ip-discovery-dialog.is-refined header h2 { font-size:18px; font-weight:600; }
  .ip-discovery-dialog .ip-discovery-dialog-close:hover { background:var(--ip-color-surface-subtle); }
  .ip-discovery-dialog.is-refined .ip-discovery-dialog-body { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:16px; align-content:start; }
  .ip-discovery-dialog.is-refined [data-filter-extra] { display:contents; }
  .ip-discovery-dialog.is-refined fieldset { grid-column:1 / -1; position:relative; padding:20px 0; }
  .ip-discovery-dialog.is-refined :is([data-filter-group="species"],[data-filter-group="size"],[data-filter-group="sex"],[data-filter-group="plan"],[data-filter-zone]) { grid-column:auto; }
  .ip-discovery-dialog.is-refined legend { float:left; box-sizing:border-box; font-size:16px; font-weight:600; line-height:1.5; margin:0 0 12px; }
  .ip-discovery-dialog.is-refined fieldset:has([data-filter-category]) legend { padding-right:60px; }
  .ip-discovery-dialog.is-refined [data-filter-ong] { border-bottom:0; }
  .ip-preview .ip-discovery-dialog.is-refined :is(input,select).ip-input { height:48px; min-height:48px; padding:12px 14px; border-radius:12px; font-size:15px; font-weight:400; line-height:22px; box-shadow:none; }
  /* Override the global important focus ring with one equally visible inset ring. */
  .ip-preview .ip-discovery-dialog.is-refined :is(input,select).ip-input:focus { outline:2px solid var(--ip-color-text)!important; outline-offset:-2px!important; border-color:var(--ip-color-text); box-shadow:none; }
  .ip-preview .ip-discovery-dialog.is-refined input.ip-input[aria-invalid="true"]:focus { outline-color:var(--ip-color-danger)!important; border-color:var(--ip-color-danger); }
  .ip-preview .ip-discovery-dialog.is-refined select.ip-input { padding-right:32px; cursor:pointer; }
  .ip-discovery-dialog.is-refined [data-filter-category] { display:grid; grid-template-columns:repeat(auto-fit,minmax(112px,1fr)); gap:8px; }
  .ip-discovery-dialog.is-refined .ip-discovery-filter-tile {
    --ip-button-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
    width:100%; min-height:84px; height:auto; padding:14px 8px; white-space:normal;
    border-radius:12px; border-color:var(--ip-color-border); font-size:13px; font-weight:500;
    background:var(--ip-color-surface); color:var(--ip-color-text);
    transition:background-color 160ms ease,border-color 160ms ease;
  }
  .ip-discovery-dialog.is-refined .ip-discovery-filter-tile .ip-icon { flex:none; width:24px; height:24px; }
  .ip-discovery-dialog.is-refined .ip-discovery-filter-tile.is-any { position:absolute; top:16px; right:0; width:auto; min-height:32px; padding:4px 0 4px 12px; border:0; background:transparent; color:var(--ip-color-text-muted); font-size:13px; text-decoration:underline; text-underline-offset:3px; }
  .ip-discovery-dialog.is-refined .ip-discovery-filter-tile:hover { border-color:var(--ip-color-text); }
  .ip-discovery-dialog.is-refined .ip-discovery-filter-tile:not(.is-any)[aria-pressed="true"] { border:1px solid var(--ip-color-text); background:var(--ip-color-surface-subtle); color:var(--ip-color-text); }
  .ip-discovery-dialog.is-refined .ip-discovery-filter-tile:focus-visible { outline:2px solid var(--ip-color-text); outline-offset:3px; }
  .ip-discovery-dialog.is-refined .ip-discovery-toggle-row { font-size:15px; font-weight:400; min-height:44px; }
  .ip-discovery-dialog.is-refined .ip-discovery-toggle-row + .ip-discovery-toggle-row { margin-top:8px; }
  .ip-discovery-dialog.is-refined footer .ip-button { --ip-button-radius:20px; min-height:46px; padding:12px 20px; font-size:14px; font-weight:600; }
  .ip-discovery-dialog.is-lost :is([data-filter-case-kind-options],[data-filter-case-chip-options],[data-filter-date-mode]) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .ip-discovery-dialog.is-lost :is([data-filter-case-kind-options],[data-filter-case-chip-options],[data-filter-date-mode]) .ip-discovery-chip { --ip-button-radius:12px; width:100%; height:44px; padding:8px; border-radius:12px; font-size:14px; }
  .ip-discovery-date-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:16px; }
  .ip-discovery-date-field { display:grid; gap:8px; min-width:0; font-size:14px; }
  .ip-discovery-date-field:only-child { grid-column:1 / -1; }
  .ip-discovery-dialog [data-filter-date-error] { margin:12px 0 0; }
}
@media(prefers-reduced-motion:reduce) {
  .ip-discovery-select-menu:popover-open { animation:none; }
  .ip-discovery-toggle-row .ip-profile-switch__control,
  .ip-discovery-toggle-row .ip-profile-switch__control::after { transition:none; }
}

/* Volunteering uses the same neutral filter shell, with a compact duration graph. */
.ip-discovery-filter-caption { margin:0 0 12px; color:var(--ip-color-text-muted); font-size:13px; line-height:1.5; clear:both; }
.ip-discovery-duration-chart { display:flex; align-items:flex-end; gap:4px; height:88px; padding:12px 12px 0; clear:both; }
.ip-discovery-duration-bar { flex:1; min-width:0; min-height:2px; border-radius:4px 4px 0 0; background:var(--ip-color-border-strong); transition:background-color 160ms ease; }
.ip-discovery-duration-bar.is-selected { background:var(--ip-color-action); }
.ip-discovery-duration-range { position:relative; height:32px; margin:0 12px 18px; --duration-start:0%; --duration-end:100%; }
.ip-discovery-duration-track { position:absolute; inset:0 0 auto; height:3px; border-radius:2px; background:linear-gradient(to right,var(--ip-color-border-strong) var(--duration-start),var(--ip-color-action) var(--duration-start),var(--ip-color-action) var(--duration-end),var(--ip-color-border-strong) var(--duration-end)); }
.ip-discovery-duration-range input[type="range"] { position:absolute; inset:-11px -12px auto; margin:0; width:calc(100% + 24px); height:26px; padding:0; border:0; background:transparent; appearance:none; -webkit-appearance:none; pointer-events:none; box-shadow:none; }
.ip-discovery-duration-range input[type="range"]::-webkit-slider-runnable-track { height:3px; background:transparent; }
.ip-discovery-duration-range input[type="range"]::-moz-range-track { height:3px; background:transparent; }
.ip-discovery-duration-range input[type="range"]::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; pointer-events:auto; width:26px; height:26px; margin-top:-11px; border:1px solid var(--ip-color-text); border-radius:50%; background:var(--ip-color-surface); box-shadow:0 2px 5px rgb(0 0 0 / .12); cursor:ew-resize; }
.ip-discovery-duration-range input[type="range"]::-moz-range-thumb { pointer-events:auto; width:24px; height:24px; border:1px solid var(--ip-color-text); border-radius:50%; background:var(--ip-color-surface); box-shadow:0 2px 5px rgb(0 0 0 / .12); cursor:ew-resize; }
.ip-discovery-duration-range input[type="range"]:focus-visible { outline:none!important; }
.ip-discovery-duration-range input[type="range"]:focus-visible::-webkit-slider-thumb { outline:3px solid var(--ip-color-action); outline-offset:3px; }
.ip-discovery-duration-range input[type="range"]:focus-visible::-moz-range-thumb { outline:3px solid var(--ip-color-action); outline-offset:3px; }
.ip-discovery-duration-range input[type="range"]:disabled { opacity:.45; }
.ip-discovery-duration-inputs { display:grid; grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr); align-items:end; gap:12px; }
.ip-discovery-duration-inputs label { display:grid; gap:8px; font-size:14px; min-width:0; }
.ip-discovery-duration-inputs > span { align-self:end; padding-bottom:13px; text-align:center; color:var(--ip-color-text-muted); }
.ip-discovery-duration-inputs + .ip-discovery-filter-caption { margin:12px 0 0; }
@media(min-width:1024px) {
  .ip-discovery-dialog.is-opportunity [data-filter-category] { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ip-discovery-dialog.is-opportunity :is([data-filter-date-mode],[data-filter-group="modality"] .ip-discovery-filter-options) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .ip-discovery-dialog.is-opportunity :is([data-filter-date-mode],[data-filter-group="modality"] .ip-discovery-filter-options) .ip-discovery-chip { --ip-button-radius:12px; width:100%; min-height:44px; padding:8px; border-radius:12px; font-size:14px; }
  .ip-discovery-dialog.is-opportunity [data-filter-zone] { grid-column:1 / -1; border-bottom:0; }
  .ip-discovery-dialog.is-opportunity [data-filter-children] { padding:20px 0; }
  .ip-discovery-dialog.is-opportunity [data-filter-children] .screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; clip:rect(0,0,0,0); overflow:hidden; }
}
@media(prefers-reduced-motion:reduce) { .ip-discovery-duration-bar { transition:none; } }

@media(min-width:1024px) {
  .ip-discovery-dialog:is(.is-need,.is-business) [data-filter-category] { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ip-discovery-dialog.is-need [data-filter-urgency] { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
  .ip-discovery-dialog.is-need [data-filter-date-mode] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .ip-discovery-dialog.is-need :is([data-filter-urgency],[data-filter-date-mode]) .ip-discovery-chip { --ip-button-radius:12px; width:100%; min-height:44px; padding:8px; border-radius:12px; font-size:14px; }
  .ip-discovery-dialog.is-need [data-filter-zone] { grid-column:1 / -1; border-bottom:0; }
}
@media(min-width:1024px) {
  .ip-discovery-dialog.is-business :is([data-filter-group="species"],[data-filter-zone]) { order:1; border-bottom:0; }
}

/* Complete the same desktop filter system for the remaining public listings. */
@media(min-width:1024px) {
  .ip-discovery-dialog.is-refined [data-filter-context]:not([hidden]) { display:contents; }
  .ip-discovery-dialog:is(.is-event,.is-health,.is-colony,.is-emergency) [data-filter-category] { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .ip-discovery-dialog:is(.is-event,.is-health,.is-emergency) :is([data-filter-date-mode],[data-filter-group="blood_direction"] .ip-discovery-filter-options,[data-filter-group="emergency_state"] .ip-discovery-filter-options) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .ip-discovery-dialog.is-health [data-filter-urgency] { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
  .ip-discovery-dialog:is(.is-event,.is-health,.is-emergency) :is([data-filter-date-mode],[data-filter-urgency],[data-filter-group="blood_direction"],[data-filter-group="emergency_state"]) .ip-discovery-chip { --ip-button-radius:12px; width:100%; min-height:44px; padding:8px; border-radius:12px; font-size:14px; }
  .ip-discovery-dialog:is(.is-event,.is-health,.is-colony,.is-emergency) [data-filter-zone] { grid-column:1 / -1; border-bottom:0; }
}
