.discovery { max-width: 104rem; margin: 0 auto; padding: 1.6rem 1.6rem 3.2rem; font-size: 1.5rem; line-height: 1.6; }
.discovery-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.2rem 2rem; margin-bottom: 2.4rem; }
.discovery-heading h1 { margin: 0 0 .6rem; font-size: 3.2rem; font-weight: 800; letter-spacing: -.06rem; }
.discovery-heading p { margin: 0; color: #b8c3d5; font-size: 1.4rem; }
.discovery-list-link { display: inline-flex; align-items: center; gap: 1.2rem; min-height: 4.4rem; font-size: 1.3rem; font-weight: 700; }
.discovery-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1.6rem; margin: 0 0 2.4rem; padding: 2rem; border: 1px solid #485369; border-radius: 1.6rem; background: #303849; }
.discovery-field { flex: 1 1 18rem; min-width: 0; }
.discovery-field--query { flex: 3 1 30rem; }
.discovery-field label { display: block; margin-bottom: .8rem; color: #cad2df; font-size: 1.2rem; font-weight: 700; }
.discovery-search { position: relative; }
.discovery-search svg { position: absolute; top: 1.5rem; left: 1.4rem; width: 2rem; height: 2rem; color: #aeb9ce; pointer-events: none; }
.discovery-field input, .discovery-field select { width: 100%; min-width: 0; min-height: 5rem; margin: 0; padding: 1.2rem; border: 1px solid #8390a6; border-radius: 1rem; background: #262e3c; color: #f0f3f8; font: inherit; font-size: 16px; line-height: 1.5; color-scheme: dark; }
.discovery-field input { padding-left: 4.2rem; }
.discovery-field input::placeholder { color: #aeb9ce; opacity: 1; }
.discovery-field select { cursor: pointer; }
.discovery-field .errorlist { margin: .8rem 0 0; color: #ffb4be; font-size: 1.3rem; line-height: 1.5; list-style: none; }
.discovery-filter-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .8rem 1.6rem; min-width: 0; max-width: 100%; }
.discovery-submit { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.2rem; min-width: 0; min-height: 5rem; padding: 1.2rem 1.4rem; border: 0; border-radius: 1rem; background: #f8ec26; color: #232834; font: inherit; font-weight: 800; cursor: pointer; }
.discovery-submit:hover { background: #fff46a; }
.discovery-filter-actions a { display: inline-flex; align-items: center; min-height: 4.4rem; font-size: 1.2rem; }
.discovery-content { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: 2.4rem; }
.discovery-map-panel { grid-column: 2; grid-row: 1; position: sticky; top: 1.6rem; min-width: 0; overflow: hidden; border: 1px solid #485369; border-radius: 1.6rem; background: #303849; }
.discovery-map-panel > summary { min-height: 4.4rem; padding: 1.2rem 1.6rem; font-weight: 700; cursor: pointer; overflow-wrap: anywhere; }
.discovery-map-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .8rem; padding: 1.2rem 1.6rem; }
.discovery-map-heading h2 { margin: 0; font-size: 1.5rem; font-weight: 700; }
#find-location { display: inline-flex; align-items: center; gap: .6rem; min-height: 4.4rem; padding: .8rem 0; border: 0; background: transparent; color: #f8ec26; font: inherit; font-size: 1.2rem; font-weight: 700; cursor: pointer; }
#find-location[hidden] { display: none; }
#find-location svg { width: 1.8rem; height: 1.8rem; flex: 0 0 auto; }
.discovery .discovery-map { position: relative; width: 100%; height: 46rem; min-height: 0; background: #262e3c; }
.discovery-map-fallback { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.6rem; height: 100%; padding: 2.4rem; color: #b8c3d5; text-align: center; }
.discovery-map-fallback svg { width: 4rem; height: 4rem; color: #f8ec26; }
.discovery-map-fallback p { max-width: 24rem; margin: 0; font-size: 1.4rem; }
.leaflet-container .discovery-map-fallback { display: none; }
#map-status { margin: 0; padding: 1.2rem 1.6rem; color: #b8c3d5; font-size: 1.1rem; line-height: 1.6; }
.discovery-results { grid-column: 1; grid-row: 1; min-width: 0; scroll-margin-top: 2rem; }
.discovery-results-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .4rem 1.2rem; margin-bottom: 1.2rem; }
.discovery-results-heading h2 { margin: 0; font-size: 1.8rem; font-weight: 700; }
.discovery-results-heading > span { color: #b8c3d5; font-size: 1.2rem; }
.discovery .connector-list { display: grid; gap: 1.2rem; margin: 0; padding: 0; list-style: none; }
.connector-card { position: relative; min-width: 0; padding: 2rem; border: 1px solid #485369; border-radius: 1.6rem; background: #303849; }
.connector-card:hover, .connector-card:focus-within { border-color: #a7a65a; background: #343d4e; }
.connector-card-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .8rem; margin-bottom: 1rem; }
.connector-card h3 { margin: 0; font-size: 1.8rem; font-weight: 800; line-height: 1.4; }
.connector-link { color: #f0f3f8; }
.connector-link > span { color: #aeb9ce; }
.connector-link::after { position: absolute; inset: 0; border-radius: 1.6rem; content: ""; }
.connector-link:focus-visible::after { outline: 3px solid #ffdc3a; outline-offset: 3px; }
.connector-status { display: inline-flex; align-items: center; gap: .6rem; padding: .4rem .8rem; border-radius: 999px; font-size: 1.2rem; font-weight: 700; }
.connector-status > span { width: .6rem; height: .6rem; flex: 0 0 auto; border-radius: 50%; background: currentColor; }
.connector-status--available { color: #9ce2c2; background: #9ce2c210; }
.connector-status--rented { color: #f5d994; background: #f5d99410; }
.connector-status--offline { color: #c3cbd9; background: #c3cbd910; }
.connector-address { margin: 0; color: #cad2df; font-size: 1.4rem; line-height: 1.6; }
.connector-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: 1.6rem; margin: 1.6rem 0; padding-top: 1.6rem; border-top: 1px solid #485369; }
.connector-specs dt { margin: 0 0 .4rem; color: #b8c3d5; font-size: 1.2rem; }
.connector-specs dd { margin: 0; font-size: 1.8rem; font-weight: 700; line-height: 1.5; }
.connector-specs dd span { color: #b8c3d5; font-size: 1.2rem; font-weight: 400; }
.connector-card-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .8rem; }
.connector-demo { padding: .2rem .8rem; border: 1px solid #f8ec2640; border-radius: .6rem; color: #f8ec26; font-size: 1.1rem; font-weight: 700; }
.connector-card-action { display: inline-flex; align-items: center; gap: 1rem; margin-left: auto; color: #f8ec26; font-size: 1.2rem; font-weight: 700; }
.connector-card-action > span { font-size: 1.7rem; }
.discovery-empty { padding: 2.4rem; border: 1px dashed #718097; border-radius: 1.6rem; }
.discovery-empty h3 { margin: 0 0 .8rem; font-size: 1.6rem; font-weight: 700; }
.discovery-empty p { margin: 0 0 1.2rem; color: #b8c3d5; font-size: 1.3rem; }
.discovery-empty a { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.6rem; min-height: 4.4rem; font-size: 1.3rem; font-weight: 700; }
.discovery a, .discovery button, .discovery input, .discovery select { transition-property: color, background-color, border-color; }
@media (max-width: 767.98px) {
    .discovery { padding-top: .8rem; }
    .discovery-heading { margin-bottom: 1.6rem; gap: .4rem; }
    .discovery-heading h1 { font-size: 2.6rem; }
    .discovery-heading p { font-size: 1.3rem; }
    .discovery-list-link { min-height: 4.4rem; font-size: 1.2rem; }
    .discovery-filters { gap: 1.2rem; margin-bottom: 1.6rem; padding: 1.6rem; }
    .discovery-field { flex: 1 1 12rem; }
    .discovery-field--query { flex-basis: 100%; }
    .discovery-filter-actions { flex: 1 1 auto; gap: .4rem 1.2rem; }
    .discovery-submit { flex: 1; }
    .discovery-content { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
    .discovery-map-panel { grid-column: 1; grid-row: 1; position: static; }
    .discovery .discovery-map { height: 25rem; }
    .discovery-results { grid-column: 1; grid-row: 2; }
    .connector-card { padding: 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
    .discovery a, .discovery button, .discovery input, .discovery select { transition: none; }
}
