/* One location picker, with the same controls as the registration forms. */
.vol-map-picker { border: 1px solid var(--rule-strong); border-radius: .6rem; overflow: hidden; background: var(--ink); }
.vol-map [data-map-status] { padding: .75rem; color: var(--error); font-size: .875rem; }
.vol-picker-toolbar { display: none; }
.vol-picker-layout { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(18rem,.9fr); }
.vol-picker-map { position: relative; min-width: 0; min-height: 0; height: 31rem; overflow: hidden; background: var(--ink-2); }
.vol-picker-svg,.vol-picker-gl,.vol-picker-map .vol-picker-maplibre { position: absolute; inset: 0; width: 100%; height: 100%; }
.vol-picker-svg > svg { display: block; width: 100%; height: 100%; }
.vol-picker-svg[hidden],.vol-picker-gl[hidden],.vol-svg-marker[hidden] { display: none !important; }
.vol-picker-route { fill: none; stroke-width: 3; stroke-opacity: .8; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.vol-picker-route--trail { stroke: var(--trail); }.vol-picker-route--cursa { stroke: var(--cursa); }.vol-picker-route--caminada { stroke: var(--caminada); }
.vol-svg-marker { cursor: pointer; }.vol-svg-marker circle { fill: var(--ink); stroke: var(--text-dim); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.vol-svg-marker.is-selected circle,.vol-svg-marker:hover circle { fill: var(--accent); stroke: var(--accent); }
.vol-svg-marker text { fill: var(--text); font: 700 9px var(--font-body); text-anchor: middle; pointer-events: none; }
.vol-svg-marker.is-selected text { fill: var(--on-accent); }
.vol-picker-basemap { position: absolute; z-index: 2; inset: .75rem auto auto .75rem; display: flex; padding: .2rem; gap: .15rem; border: 1px solid var(--rule-strong); border-radius: .4rem; background: var(--ink); box-shadow: 0 2px 8px #0002; }
.vol-picker-basemap button,.vol-picker-switch button { min-height: 2.75rem; padding: .5rem .8rem; border: 0; border-radius: .25rem; background: transparent; color: var(--text-dim); font: inherit; font-size: .8rem; cursor: pointer; }
.vol-picker-basemap button[aria-pressed="true"],.vol-picker-switch button[aria-pressed="true"] { background: var(--reg-surface-selected); color: var(--text); }
.registration .vol-picker-maplibre .maplibregl-ctrl-group { border: 1px solid var(--rule-strong); border-radius: .4rem; background: var(--ink); box-shadow: 0 2px 8px #0002; overflow: hidden; }
.registration .vol-picker-maplibre .maplibregl-ctrl-group button { width: 2.75rem; height: 2.75rem; min-height: 2.75rem; background: transparent; border-color: var(--rule); }
.registration .vol-picker-maplibre .maplibregl-ctrl-group button:hover { background: var(--reg-surface-selected); }
.registration .vol-picker-maplibre .maplibregl-ctrl-icon { filter: invert(1); }
html[data-theme="day"] .registration .vol-picker-maplibre .maplibregl-ctrl-icon { filter: none; }
.vol-picker-maplibre .maplibregl-ctrl-attrib { font-size: 10px; }
.vol-picker-list { display: flex; flex-direction: column; min-width: 0; min-height: 0; height: 31rem; padding: 1rem; border-inline-start: 1px solid var(--rule); }
.vol-picker-search-label { position: relative; display: block; font-size: 0; }
.vol-search-with-icon > .cf-icon { position: absolute; inset: .8rem auto auto .85rem; color: var(--text-dim); }
.vol-picker-search { display: block; width: 100%; min-height: 2.9rem; padding: .65rem .8rem .65rem 2.65rem; border: 1px solid var(--rule-strong); border-radius: .4rem; background: var(--ink-2); color: var(--text); font: inherit; font-size: .875rem; }
.vol-picker-search:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.vol-picker-filters { display: flex; gap: .25rem; padding-block: .65rem; border-block-end: 1px solid var(--rule); }
.vol-picker-filters button { flex: 1; min-height: 2.75rem; padding: .4rem .25rem; border: 0; border-radius: .35rem; background: transparent; color: var(--text-dim); font: inherit; font-size: .75rem; cursor: pointer; }
.vol-picker-filters button[aria-pressed="true"] { background: var(--reg-surface-selected); color: var(--text); }
.vol-picker-points { flex: 1; min-height: 0; margin-block-start: .6rem; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--rule-strong) transparent; }
.vol-picker-row { border-block-end: 1px solid var(--rule); }
.vol-picker-point { display: flex; align-items: center; gap: .7rem; width: 100%; min-height: 44px; padding: .7rem .4rem; border: 0; border-radius: .25rem; background: none; color: var(--text); text-align: start; cursor: pointer; }
.vol-picker-point:hover { background: var(--ink-2); }
.vol-picker-point.is-selected { background: var(--reg-surface-selected); }
.vol-picker-point:disabled { opacity: .5; cursor: not-allowed; }
.vol-picker-number { display: grid; place-items: center; flex: 0 0 2rem; height: 2rem; color: var(--text-dim); font-size: .75rem; font-variant-numeric: tabular-nums; }
.vol-picker-copy { display: grid; min-width: 0; flex: 1; gap: .25rem; }.vol-picker-copy strong { font-size: .85rem; line-height: 1.35; font-weight: 600; }.vol-picker-copy > span { font-size: .75rem; color: var(--text-dim); }
.vol-point-check { display: grid; place-items: center; width: 1.25rem; height: 1.25rem; border: 1px solid var(--rule-strong); border-radius: .2rem; flex-shrink: 0; }.vol-point-check .cf-icon { width: .9rem; height: .9rem; visibility: hidden; }
.is-selected .vol-point-check { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }.is-selected .vol-point-check .cf-icon { visibility: visible; }
.vol-picker-empty { padding: 1rem; color: var(--text-dim); font-size: .875rem; }
.vol-picker-footer { padding: 1rem; border-block-start: 1px solid var(--rule); background: var(--ink-2); }
.vol-picker-selection { margin: 0 0 .65rem; color: var(--text-dim); font-size: .8rem; }
.vol-picker-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.vol-picker-chip { min-height: 2.75rem; padding: .4rem .7rem; border: 1px solid var(--rule-strong); border-radius: .35rem; background: var(--ink); color: var(--text); font: inherit; font-size: .75rem; text-align: start; cursor: pointer; }
.vol-picker-chip:hover { border-color: var(--accent); }
.registration .vol-map-pin { position: absolute; isolation: isolate; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--text); font: 600 .65rem var(--font-body); cursor: pointer; transition: color 180ms ease,opacity 180ms ease; }
.vol-map-pin::before { content: ''; position: absolute; z-index: -1; inset: .45rem; border: 1px solid var(--text-dim); border-radius: 50%; background: var(--ink); box-shadow: 0 1px 3px #0003; transition: background-color 180ms ease; }
.registration .vol-map-pin.is-selected { color: var(--on-accent); }.vol-map-pin.is-selected::before { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 2px var(--ink); }.vol-map-pin.is-full { opacity: .55; }.vol-map-pin.needs-review::before { border-style: dashed; }
.vol-map-pin:focus-visible { outline: 2px solid var(--accent); outline-offset: 0; }
@media(max-width:54rem) {
  .vol-picker-toolbar { display: block; padding: .4rem; border-block-end: 1px solid var(--rule); }
  .vol-picker-switch { display: flex; gap: .25rem; }.vol-picker-switch button { flex: 1; }
  .vol-picker-layout { display: block; }
  .vol-picker-map { height: auto; block-size: clamp(15rem,55vh,26rem); block-size: clamp(15rem,55svh,26rem); }
  .vol-picker-list { height: auto; block-size: clamp(18rem,58vh,27rem); block-size: clamp(18rem,58svh,27rem); border: 0; }
  .vol-map[data-mobile-view="map"] .vol-picker-list,.vol-map[data-mobile-view="list"] .vol-picker-map { display: none; }
  .vol-picker-search { font-size: 16px; }
}
@media(max-height:42rem) and (min-width:54.001rem) {
  .vol-picker-map,.vol-picker-list { height: auto; block-size: min(31rem,74vh); block-size: min(31rem,74svh); }
  .vol-picker-list { padding: .75rem; }
}

/* Filled posts stay visible, with a distinct unavailable marker. */
.vol-map-pin.is-full::after { content: '−'; position: absolute; inset: .1rem .05rem auto auto; display: grid; place-items: center; width: .8rem; height: .8rem; border-radius: 50%; background: var(--text-dim); color: var(--ink); font: 700 .75rem/1 var(--font-body); }
.vol-svg-marker.is-full { opacity: .5; }
.vol-picker-point.is-full:not(.is-selected) .vol-point-check { border-style: dashed; background: var(--ink-2); }
.vol-picker-point:disabled { opacity: 1; color: var(--text-dim); }
.vol-picker-point.is-full:not(.is-selected) .vol-picker-copy strong { color: var(--text-dim); }
.vol-picker-point.is-full:not(.is-selected) .vol-point-check::after { content: ''; width: .5rem; height: 1px; background: var(--text-dim); }
.vol-picker-point.is-full:not(.is-selected) .vol-point-check .cf-icon { display: none; }

.vol-picker-available { position: absolute; z-index: 2; inset: auto auto .75rem .75rem; display: flex; align-items: center; gap: .5rem; min-height: 2.75rem; padding: .6rem .85rem; border: 1px solid var(--rule-strong); border-radius: .4rem; background: var(--ink); color: var(--text); box-shadow: 0 2px 8px #0002; font: inherit; font-size: .8rem; cursor: pointer; }
.vol-picker-available::before { content: ''; width: .85rem; height: .85rem; border: 1px solid var(--text-dim); border-radius: .2rem; }
.vol-picker-available[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.vol-picker-available[aria-pressed="true"]::before { width: .35rem; height: .65rem; margin-inline: .2rem .3rem; margin-block-start: -.15rem; border: solid currentColor; border-width: 0 2px 2px 0; border-radius: 0; transform: rotate(45deg); }
@media(max-width:24rem) { .vol-picker-available { inset-block-end: 1.9rem; } }
.vol-picker-available--list { display:none; }
@media(max-width:54rem) {
  .vol-picker-available--list { display:flex; position:static; align-self:flex-start; margin-block:.6rem 0; flex-shrink:0; box-shadow:none; }
}

.vol-picker-copy strong .material-icon{margin-right:7px;color:var(--accent);vertical-align:middle}.vol-point-chips .material-icon{vertical-align:middle;margin-right:5px}.vol-location-badge{position:absolute;left:0;top:0;width:18px;height:18px;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);border:1px solid var(--ink);border-radius:50%;pointer-events:none}.vol-location-badge .material-icon{width:13px;height:13px}.vol-svg-location-icon{fill:var(--accent);stroke:none;pointer-events:none}
