.search-select-source{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none}.select-search-input{width:100%;height:48px;padding:13px 14px;color:var(--ink);border:1px solid #d8e2eb;border-radius:10px;outline:0;background:#fbfcfd;font-size:12px}.select-search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(23,63,117,.1)}[data-site-theme=dark] .select-search-input{color:var(--ink);border-color:var(--line);background:#101925}

/* Vanilla searchable select (site filters) */
.ss{position:relative;flex:1;min-width:0;display:flex;align-items:center}
.ss-native{position:absolute!important;width:1px;height:1px;margin:0;padding:0;opacity:0;pointer-events:none}
.ss-field{width:100%;display:flex;align-items:center;gap:6px;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;text-align:left;cursor:pointer}
.ss-field-text{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ss-field::after{content:"";flex:0 0 auto;width:8px;height:8px;border-right:2px solid #8795a5;border-bottom:2px solid #8795a5;transform:rotate(45deg) translateY(-2px)}
.ss.is-open .ss-field::after{transform:rotate(-135deg) translateY(-1px)}
.ss-panel{position:absolute;z-index:60;top:calc(100% + 10px);left:0;min-width:220px;max-width:min(320px,80vw);padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 22px 50px rgba(17,43,78,.16)}
.ss-search{width:100%;height:38px;padding:8px 10px;margin-bottom:6px;border:1px solid var(--line);border-radius:8px;font-size:12px;outline:0;background:#fff;color:var(--ink)}
.ss-search:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(23,63,117,.1)}
.ss-list{max-height:240px;overflow:auto;margin:0;padding:0;list-style:none}
.ss-list li{padding:9px 10px;border-radius:8px;font-size:12px;cursor:pointer}
.ss-list li:hover{background:var(--surface)}
.ss-list li.is-active{color:var(--primary);font-weight:700;background:#eef4fa}
.ss-list .ss-empty{color:var(--muted);cursor:default}
.ss-list .ss-empty:hover{background:none}
.ss.is-disabled .ss-field{cursor:not-allowed}
[data-site-theme=dark] .ss-panel{background:#172332;border-color:var(--line)}
[data-site-theme=dark] .ss-search{background:#101925;border-color:var(--line)}
[data-site-theme=dark] .ss-list li:hover{background:#101925}
[data-site-theme=dark] .ss-list li.is-active{background:#12233a}

/* Searchable select inside .form-grid forms (border lives on the select itself there, so the wrapper needs it once the select is hidden) */
.form-grid .ss{width:100%;height:48px;padding:0 14px;border:1px solid #d8e2eb;border-radius:10px;background:#fbfcfd;transition:.2s}
.form-grid .ss:focus-within,.form-grid .ss.is-open{border-color:var(--primary);box-shadow:0 0 0 3px rgba(23,63,117,.1);background:#fff}
.form-grid .ss.is-invalid{border-color:#dc2626;background:#fff7f7;box-shadow:0 0 0 3px rgba(220,38,38,.08)}
.form-grid .ss.is-disabled{opacity:.6;background:#f1f3f5;cursor:not-allowed}
.form-grid .ss .ss-field{height:100%;font-size:12px}
[data-site-theme=dark] .form-grid .ss{background:#101925;border-color:var(--line)}
[data-site-theme=dark] .form-grid .ss.is-disabled{background:#0b131d}

/* The open list is always exactly as wide as the bordered field it belongs to — the same
   width as every plain input next to it. -1px covers the field's own 1px border. */
.ss-panel{left:-1px;right:-1px;width:auto;min-width:0;max-width:none;top:calc(100% + 6px)}
.ss-list li{overflow-wrap:anywhere}
/* In the filter bar the border sits on the <label> around the select, so the list anchors to that box. */
.filter-bar label{position:relative}
.filter-bar label>.ss{position:static}
