/* Only discovery forms, venue result collections and Rendezvous navigation. */
.nb-filters select,
.nb-guide-filter-form select,
.discovery-controls select,
select#discovery-category,
select#discovery-mood {
    color-scheme: dark !important;
    background-color:#122a2d !important;
    color:#f7ead8 !important;
    border:1px solid #c3a67f !important;
    -webkit-text-fill-color:#f7ead8;
}
.nb-filters select option,.nb-filters select optgroup,
.nb-guide-filter-form select option,.nb-guide-filter-form select optgroup,
.discovery-controls select option,.discovery-controls select optgroup,
select#discovery-category option, select#discovery-mood option {
    background:#122a2d !important;
    color:#f7ead8 !important;
    -webkit-text-fill-color:#f7ead8;
}
.nb-filters select:focus-visible,.nb-guide-filter-form select:focus-visible,.discovery-controls select:focus-visible {
    outline:2px solid #f4d6a7;outline-offset:2px;
}
.nb-place-collection { border:1px solid rgba(195,166,127,.46);padding:0 15px 16px;margin:18px 0 24px;background:#10251f; }
.nb-place-collection > summary {color:#f3dfbf;font:600 15px/1.5 Georgia,serif;cursor:pointer;padding:15px 4px;}
.nb-place-collection > summary:hover,.nb-place-collection > summary:focus-visible{color:#fff1d9;text-decoration:underline;}
.nb-place-collection:not([open]){padding-bottom:0}
.nb-rendezvous-types{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.nb-rendezvous-types a{border:1px solid #bda078;background:#132b2d;color:#e9d5b6;padding:11px 13px;text-decoration:none;font:600 12px Arial,sans-serif}
.nb-rendezvous-types a[aria-current="page"],.nb-rendezvous-types a:hover{background:#806146;color:#fff3e0}
.nb-guide-context{font:13px/1.65 Arial,sans-serif;color:#d5cabc;max-width:850px;margin:0 0 18px}

.nb-external-guides{margin:18px 0;border:1px solid rgba(195,166,127,.46);padding:0 15px;background:#10251f}
.nb-external-guides>summary{padding:15px 4px;cursor:pointer;color:#f3dfbf;font:600 15px/1.5 Georgia,serif}
.nb-external-guides .directory-services{margin:0 0 15px}

/* Unify the dropdown palette with the existing dark TICINO rooms. */
select, select option, select optgroup { color-scheme: dark; }
.nb-guide-districts a, .nb-rendezvous-types a { text-decoration: none; }
.nb-venue-grid .nb-card { max-width: 100%; }

/* FINAL place-card layout: separated, bounded, readable. */
.nb-place-collection .nb-card-grid.nb-venue-grid,
.nb-guide-directory .nb-card-grid.nb-venue-grid {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:24px 22px !important;
  align-items:start !important;
  padding:18px 0 10px;
}
.nb-venue-grid > .nb-card.nb-venue-card {
  box-sizing:border-box !important;
  min-width:0 !important;
  width:100% !important;
  max-width:100% !important;
  min-height:290px;
  max-height:410px;
  overflow-y:auto;
  overflow-x:hidden;
  display:flex;
  flex-direction:column;
  gap:9px;
  margin:0 !important;
  padding:20px !important;
  border:1px solid rgba(199,167,120,.52) !important;
  border-radius:3px;
  background:#0b1d16 !important;
  box-shadow:none !important;
  overflow-wrap:anywhere;
}
.nb-venue-grid .nb-venue-card h3 {
  font:400 clamp(19px,1.45vw,23px)/1.23 Georgia,'Times New Roman',serif !important;
  color:#cda0bf !important; /* Muted mauve, not oversized cream */
  margin:4px 0 5px !important;
  letter-spacing:0 !important;
  overflow-wrap:anywhere;
}
.nb-venue-grid .nb-venue-card p,
.nb-venue-grid .nb-venue-card a { margin:0 0 3px; line-height:1.55; }
.nb-venue-grid .nb-venue-card .nb-comment-thread {
  margin-top:auto;
  flex-shrink:0;
}
.nb-venue-grid .nb-venue-card:has(.nb-comment-thread[open]) {
  max-height:none !important;
  overflow:visible;
}
.nb-venue-description { margin:5px 0 8px; }
.nb-venue-description > summary {
  cursor:pointer;
  color:#d1b17b;
  font:600 12px/1.6 Arial,sans-serif;
  padding:7px 0;
}
.nb-venue-description > p { margin:8px 0; }
@media(max-width:1050px) {
 .nb-place-collection .nb-card-grid.nb-venue-grid,
 .nb-guide-directory .nb-card-grid.nb-venue-grid {
   grid-template-columns:repeat(2,minmax(0,1fr)) !important;
   gap:20px !important;
 }
}
@media(max-width:640px) {
 .nb-place-collection .nb-card-grid.nb-venue-grid,
 .nb-guide-directory .nb-card-grid.nb-venue-grid {
   grid-template-columns:minmax(0,1fr) !important;
   gap:18px !important;
 }
 .nb-venue-grid > .nb-card.nb-venue-card { min-height:0; max-height:400px; }
}

/* The only whole-directory disclosure is for external digital services (Grindr, etc.). */
.nb-place-collection.nb-always-open{display:block; padding:18px 16px 22px;}
.nb-place-collection.nb-always-open>.nb-results-counter{color:#d8ba87;margin:0 0 14px;font-size:13px;}
.nb-map-loader .nb-city-map-canvas{width:100%;min-height:340px;margin-top:12px;}
.nb-map-loader.nb-map-unselected{min-height:200px;display:flex;flex-direction:column;justify-content:center;}
.nb-map-loader.nb-map-unselected p{max-width:440px;}
.nb-world-panel #atlas-world{min-height:340px;}
/* Existing <details> on individual comments and optional long descriptions remain functional. */

/* Shared catalogue controls, scoped to the integrated existing routes. */
.nb-unified-catalogue .nb-count{flex-wrap:wrap;justify-content:flex-start;gap:12px 24px}
.nb-unified-catalogue .nb-guide-filter-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:end;margin:24px 0}
.nb-unified-catalogue .nb-guide-filter-form label{display:grid;gap:8px;font:12px/1.5 Arial,sans-serif;min-width:0}
.nb-unified-catalogue .nb-guide-filter-form input,.nb-unified-catalogue .nb-guide-filter-form select{box-sizing:border-box;width:100%;min-width:0;min-height:44px;padding:10px;background:#122a2d;color:#f7ead8;border:1px solid #c3a67f}
.nb-unified-catalogue .nb-guide-filter-form button{min-height:44px;padding:12px;cursor:pointer;background:#37472d;color:#f0d9aa;border:1px solid #beac79}
.nb-unified-catalogue .nb-guide-districts{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}
.nb-unified-catalogue .nb-guide-districts a{padding:10px 14px;border:1px solid #c3a67f;color:#f7ead8}
.nb-unified-catalogue .nb-venue-card:has(details[open]){max-height:none;overflow:visible}
.nb-unified-catalogue .nb-place-actions{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:760px){.nb-unified-catalogue .nb-guide-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.nb-unified-catalogue .nb-guide-filter-form{grid-template-columns:minmax(0,1fr)}}

.nb-catalogue-admin article {padding:1rem;margin:1rem 0;border:1px solid currentColor;border-radius:8px}
.nb-catalogue-admin pre {white-space:pre-wrap;overflow-wrap:anywhere;max-height:28rem;overflow:auto}
.nb-catalogue-admin nav {display:flex;gap:.7rem;flex-wrap:wrap;margin:1rem 0}
.nb-catalogue-admin input[type=checkbox] {width:auto;min-width:1.2rem;min-height:1.2rem}

/* TICINO uniform place cards — scoped to public venue result grids only.
 * The Destinations card typography is the reference; keep title serif,
 * supporting copy and category labels compact sans-serif. */
.nb-venue-grid > article.nb-card.nb-venue-card {
    gap:8px !important; padding:17px !important;
    min-height:0 !important; max-height:none !important;
    overflow:visible !important;
}
.nb-venue-grid > article.nb-venue-card > span:first-child {
    font:700 9px/1.5 Arial,Helvetica,sans-serif !important;
    letter-spacing:.1em !important; text-transform:uppercase;
    color:#d2b37c !important;
}
.nb-venue-grid > article.nb-venue-card h3 {
    font:400 22px/1.18 Georgia,serif !important;
    color:#d5a0bb !important; margin:4px 0 8px !important;
}
.nb-venue-grid > article.nb-venue-card p,
.nb-venue-grid > article.nb-venue-card .nb-place-actions,
.nb-venue-grid > article.nb-venue-card .nb-place-actions a {
    font:400 12px/1.6 Arial,Helvetica,sans-serif !important;
    color:#c4cfca !important; margin:0 !important;
}
.nb-venue-grid > article.nb-venue-card .nb-place-actions a {color:#e3bd84 !important;}
.nb-venue-grid > article.nb-venue-card .nb-comment-thread {
    font:400 12px/1.6 Arial,Helvetica,sans-serif !important;
    margin-top:12px !important;
}
.nb-venue-grid > article.nb-venue-card .nb-comment-thread > summary {
    font:600 12px/1.55 Arial,Helvetica,sans-serif !important;
    color:#ebddc6 !important;
}
/* Keep Italian first while long multilingual heading wraps naturally. */
.room-afterhours .nb-header h1 {
    font-size:clamp(38px,5vw,72px) !important;
    line-height:1.08 !important; max-width:1100px !important;
}
.nb-city-index .nb-city-pills {display:flex;flex-wrap:wrap;gap:8px;}
.nb-city-index .nb-city-pills a {text-decoration:none;}

/* New-server native option rendering: text remains visible before hover, keyboard selection and scroll. */
select, select option, select optgroup,
select:focus option, select:focus optgroup { background-color:#18252c!important; color:#f7eddf!important; color-scheme:dark; }
select option:checked { background-color:#6d5130!important; color:#fff6e6!important; }
select:disabled { color:#bbc4c6!important; }
