/* Search is a progressive enhancement of the ordinary GET form. */
.search-panel { position:relative; z-index:2; padding:16px; border:1px solid var(--color-rule); background:var(--color-paper-2); border-radius:var(--radius-card); }
.server-search { display:block; }
.search-primary { display:grid; grid-template-columns:minmax(250px,2fr) minmax(160px,1fr) minmax(160px,1fr) auto; gap:12px; align-items:end; }
.server-search input,.server-search select,.picker-trigger { height:40px; min-height:40px; font-size:14px; }
.search-primary .search-submit { height:40px; min-height:40px; padding:8px 18px; }
.search-primary label,.mode-filter>label { font-size:13px; font-weight:600; }
.name-search { position:relative; }
.search-input-wrap { position:relative; }
.search-input-wrap>svg { width:17px; height:17px; fill:none; stroke:var(--color-muted); stroke-width:1.7; position:absolute; left:12px; top:12px; pointer-events:none; }
.search-input-wrap input { padding-left:38px; width:100%; }
.picker-trigger { display:flex; align-items:center; gap:8px; width:100%; min-width:0; border:1px solid var(--color-control-edge); border-radius:var(--radius-input); background:var(--color-paper); color:var(--color-ink); padding:8px 10px; text-align:left; cursor:pointer; }
.picker-trigger span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }
.picker-trigger::after { content:""; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin:0 3px 4px 6px; }
.picker-trigger[data-selected="true"] { border-color:var(--color-accent); color:var(--color-accent); }
.picker-trigger img { width:22px; height:16px; object-fit:cover; }
.picker-trigger[data-kind="map"] img { width:30px; height:22px; }
.search-facets { margin-top:14px; border-top:1px solid var(--color-rule); padding-top:12px; }
.mode-filter { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.mode-filter>label { width:48px; flex-shrink:0; }
.mode-filter>select,.mode-filter>.picker-trigger { width:175px; flex-shrink:0; height:34px; min-height:34px; }
.mode-shortcuts { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.mode-shortcuts button { border:1px solid transparent; background:none; padding:6px 9px; font-size:13px; color:var(--color-accent); border-radius:3px; cursor:pointer; min-height:32px; }
.mode-shortcuts button[aria-pressed="true"] { border-color:var(--color-accent); background:var(--color-paper); }
.option-filters { display:flex; gap:6px; flex-wrap:wrap; border:0; margin:10px 0 0; padding:0; min-width:0; }
.options-toggle { display:none; }
.option-filters legend { float:left; width:58px; font-size:13px; font-weight:600; padding-top:7px; }
.filter-chip { display:flex; align-items:center; gap:6px; background:var(--color-paper); border:1px solid var(--color-rule); border-radius:3px; padding:5px 9px; min-height:32px; font-size:13px; cursor:pointer; color:var(--color-ink-2); }
.filter-chip input { width:14px; height:14px; min-height:0; accent-color:var(--color-accent); margin:0; }
.filter-chip:has(:checked) { color:var(--color-accent); border-color:var(--color-accent); }
.search-bottom { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin-top:12px; }
.search-bottom>a { margin-left:auto; font-size:13px; }
.search-advanced { display:contents; }
.search-advanced>summary { cursor:pointer; font-size:13px; color:var(--color-accent); min-height:30px; padding-block:5px; }
.search-advanced[open]>.advanced-grid { order:4; flex:0 0 100%; }
.advanced-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding-top:12px; border-top:1px solid var(--color-rule); }
.range-filter { display:flex; gap:8px; border:0; padding:0; margin:0; min-width:0; }
.range-filter legend { font-size:13px; font-weight:600; margin-bottom:4px; }
.range-filter label { position:relative; min-width:0; }
.range-filter label span { position:absolute; top:11px; left:9px; font-size:12px; color:var(--color-muted); }
.range-filter input { width:100%; padding-left:30px; }
.option-note { grid-column:1/-1; font-size:12px; color:var(--color-muted); margin:0; }
.search-sort { display:flex; gap:6px; align-items:center; font-size:13px; }
.search-sort select { height:30px; min-height:30px; padding:3px 28px 3px 7px; font-size:13px; width:auto; }
.active-filters { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.active-filters button { display:inline-flex; align-items:center; gap:7px; border:1px solid var(--color-rule); background:var(--color-paper); color:var(--color-ink-2); border-radius:3px; padding:4px 8px; min-height:30px; font-size:12px; cursor:pointer; }
.active-filters button::after { content:"×"; color:var(--color-accent); font-size:17px; }
.search-status { margin:0; font-size:13px; color:var(--color-muted); }
.search-status:not(:empty) { margin-top:10px; }
.search-status[data-error="true"] { color:var(--color-error); }
.results[aria-busy="true"] { opacity:.65; }

.filter-dialog { width:min(700px,calc(100vw - 32px)); max-height:min(640px,calc(100dvh - 40px)); padding:0; overflow:hidden; color:var(--color-ink); background:var(--color-paper); border:1px solid var(--color-rule); border-radius:6px; box-shadow:0 14px 70px #15263b33; }
.filter-dialog::backdrop { background:#17223877; }
.dialog-shell { display:flex; flex-direction:column; max-height:inherit; }
.dialog-head,.dialog-search,.dialog-foot { flex-shrink:0; }
.dialog-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px 12px; }
.dialog-head h2 { margin:0; font-size:20px; }
.dialog-close { width:36px; height:36px; flex-shrink:0; border:0; border-radius:3px; background:var(--color-paper-2); color:var(--color-muted); cursor:pointer; font-size:24px; }
.dialog-search { padding:0 20px 12px; }
.dialog-search input { width:100%; height:40px; }
.dialog-choices { overflow:auto; overscroll-behavior:contain; padding:0 20px 16px; min-height:90px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; gap:5px; }
.dialog-choice { display:flex; align-items:center; gap:9px; min-height:42px; border:1px solid var(--color-rule); border-radius:3px; background:var(--color-paper); padding:8px 10px; text-align:left; font-size:14px; color:var(--color-ink); cursor:pointer; min-width:0; }
.dialog-choice:hover { background:var(--color-paper-2); border-color:var(--color-control-edge); }
.dialog-choice[aria-pressed="true"] { border-color:var(--color-accent); background:var(--color-paper-3); }
.dialog-choice img { width:22px; height:16px; object-fit:cover; flex-shrink:0; }
.dialog-choice[data-map] img { width:56px; height:42px; border-radius:2px; }
.dialog-choice .choice-name { min-width:0; flex:1; overflow-wrap:anywhere; }
.dialog-choice .choice-count { color:var(--color-muted); font-size:12px; font-variant-numeric:tabular-nums; }
.dialog-empty { grid-column:1/-1; color:var(--color-muted); margin:16px 0; font-size:14px; }
.dialog-foot { border-top:1px solid var(--color-rule); padding:10px 20px; color:var(--color-muted); font-size:12px; margin:0; }

.live-search { position:absolute; z-index:20; top:calc(100% + 6px); left:0; width:max(100%,550px); max-width:calc(100vw - 60px); border:1px solid var(--color-control-edge); border-radius:4px; background:var(--color-paper); box-shadow:0 12px 32px #17223826; overflow:hidden; }
.live-heading { display:flex; justify-content:space-between; padding:9px 12px; font-size:12px; background:var(--color-paper-2); color:var(--color-muted); }
#live-options { max-height:360px; overflow:auto; overscroll-behavior:contain; }
.live-result { display:grid; grid-template-columns:68px minmax(0,1fr) auto; gap:10px; padding:9px 12px; text-decoration:none; color:var(--color-ink); border-bottom:1px solid var(--color-rule); align-items:center; }
.live-result:hover,.live-result[aria-selected="true"] { background:var(--color-paper-3); }
.live-result>.map-thumb { width:68px; height:51px; border-radius:2px; object-fit:cover; }
.live-result-body { min-width:0; }
.live-result-name { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; font-weight:600; color:var(--color-accent); }
.live-result-meta { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--color-muted); margin-top:4px; }
.live-result-meta code { font-size:11px; }
.live-result-meta img { width:16px; height:12px; object-fit:cover; }
.live-result-map { font-size:12px; color:var(--color-muted); margin-top:2px; display:block; }
.live-result-players { align-self:center; text-align:right; white-space:nowrap; font-size:13px; font-variant-numeric:tabular-nums; }
.live-result-players small { display:block; font-size:11px; color:var(--color-muted); }
.live-message { padding:12px; font-size:13px; margin:0; color:var(--color-muted); }
.live-message:empty { display:none; }
.live-all { display:block; width:100%; border:0; background:var(--color-paper-2); color:var(--color-accent); min-height:38px; padding:8px 12px; text-align:left; font-size:13px; cursor:pointer; }
[hidden] { display:none !important; }
@media(max-width:1050px) {
 .search-primary { grid-template-columns:repeat(2,minmax(0,1fr)) auto; }
 .search-primary .name-search { grid-column:1/-1; }
 .advanced-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
 .search-panel { padding:10px; }
 .search-primary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .search-primary .name-search { grid-column:1/-1; }
 .search-primary .search-submit { grid-column:1/-1; width:100%; }
 .search-facets { margin-top:10px; padding-top:9px; }
 .mode-filter { gap:6px; }
 .mode-filter>label { width:auto; margin-right:6px; }
 .mode-filter>.picker-trigger { flex:1; }
 .mode-shortcuts { display:none; }
 .option-filters { gap:5px; }
 .options-toggle { display:flex; align-items:center; gap:8px; width:100%; min-height:36px; margin-top:7px; border:0; padding:4px 0; background:none; color:var(--color-accent); font-size:13px; text-align:left; cursor:pointer; }
 .options-toggle::after { content:"⌄"; font-size:16px; }
 .options-toggle[aria-expanded="true"]::after { transform:rotate(180deg); }
 .options-disclosure[data-collapsed="true"] .option-filters { display:none; }
 .options-disclosure:has(.options-toggle:not([hidden])) .option-filters legend { display:none; }
 .option-filters legend { float:none; width:100%; padding:0; margin-bottom:5px; }
 .filter-chip { font-size:12px; padding:6px 7px; min-height:34px; }
 .search-bottom { gap:7px 12px; }
 .search-bottom>a { font-size:12px; }
 .search-sort label { display:none; }
 .search-sort { order:3; width:100%; }
 .search-sort select { width:100%; }
 .advanced-grid { gap:10px; }
 .filter-dialog { width:calc(100vw - 20px); max-height:calc(100dvh - 24px); border-radius:5px; }
 .dialog-head { padding:12px; }
 .dialog-search { padding:0 12px 10px; }
 .dialog-choices { padding:0 12px 12px; grid-template-columns:1fr; }
 .dialog-choice { min-height:44px; }
 .dialog-foot { padding:9px 12px; }
 .live-search { width:100%; max-width:none; }
 .live-result { grid-template-columns:52px minmax(0,1fr) auto; gap:7px; padding:8px; }
 .live-result>.map-thumb { width:52px; height:42px; }
 .live-result-name { font-size:12px; }
 .live-result-meta { gap:4px; }
 .live-result-meta code { font-size:10px; }
 .live-result-players { font-size:12px; }
 #live-options { max-height:260px; }
}
