/* ---------------------------------------------------------------------------
Shared Search Modal — used by all tool search features
--------------------------------------------------------------------------- */
.search-modal{
background:var(--color-card);
border-radius:8px;
width:95vw;
max-width:1200px;
height:85vh;
display:flex;
flex-direction:column;
overflow:hidden;
}

.search-modal__header{
display:flex;
align-items:center;
justify-content:space-between;
padding:12px 16px;
border-bottom:1px solid var(--color-border);
}

.search-modal__header h3{
margin:0;
font-size:1.1rem;
color:var(--color-text);
}

.search-modal__close{
background:none;
border:none;
cursor:pointer;
color:var(--color-muted);
font-size:1.2rem;
padding:4px 8px;
line-height:1;
}

.search-modal__close:hover{
color:var(--color-text);
}

.search-modal__content{
flex:1;
display:flex;
flex-direction:column;
overflow:hidden;
min-height:0;
}

.search-modal__bar{
display:flex;
gap:8px;
padding:10px 16px;
border-bottom:1px solid var(--color-border);
position:sticky;
top:0;
background:var(--color-card);
z-index:2;
}

.search-modal__input{
flex:1;
padding:6px 10px;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-input-bg);
color:var(--color-text);
font-family:var(--font-body);
font-size:0.85rem;
}

.search-modal__input::placeholder{
color:var(--color-muted);
}

.search-modal__filter-btn{
padding:6px 12px;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-input-bg);
color:var(--color-text);
font-family:var(--font-body);
cursor:pointer;
font-size:0.8rem;
white-space:nowrap;
}

.search-modal__filter-btn:hover{
border-color:var(--color-primary);
}

.search-modal__filter-badge{
background:var(--color-primary);
color:#fff;
font-size:0.65rem;
padding:1px 5px;
border-radius:8px;
margin-left:4px;
}

.search-modal__filters{
padding:10px 16px;
border-bottom:1px solid var(--color-border);
background:var(--color-background);
display:grid;
grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
gap:8px;
}

.search-modal__filter-group label{
display:block;
font-size:0.7rem;
font-weight:600;
color:var(--color-muted);
margin-bottom:3px;
text-transform:uppercase;
letter-spacing:0.03em;
}

.search-modal__filter-group select{
width:100%;
padding:4px 6px;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-input-bg);
color:var(--color-text);
font-family:var(--font-body);
font-size:0.8rem;
}

.search-modal__filter-actions{
grid-column:1 / -1;
display:flex;
gap:8px;
justify-content:flex-end;
padding-top:4px;
}

.search-modal__filter-actions button{
padding:4px 12px;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-input-bg);
color:var(--color-text);
font-family:var(--font-body);
cursor:pointer;
font-size:0.75rem;
}

.search-modal__filter-actions button:hover{
border-color:var(--color-primary);
}

.search-modal__toggle{
display:inline-flex;
align-items:center;
gap:6px;
cursor:pointer;
font-size:0.8rem;
color:var(--color-text);
padding:3px 0;
user-select:none;
}

.search-modal__toggle-indicator{
display:inline-block;
width:28px;
height:16px;
border:1px solid var(--color-border);
border-radius:8px;
background:var(--color-input-bg);
position:relative;
transition:background 0.15s,border-color 0.15s;
}

.search-modal__toggle-indicator::after{
content:'';
position:absolute;
top:2px;
left:2px;
width:10px;
height:10px;
border-radius:50%;
background:var(--color-muted);
transition:transform 0.15s,background 0.15s;
}

.search-modal__toggle[data-state="on"] .search-modal__toggle-indicator{
background:var(--color-primary);
border-color:var(--color-primary);
}

.search-modal__toggle[data-state="on"] .search-modal__toggle-indicator::after{
transform:translateX(12px);
background:#fff;
}

.search-modal__sort-header{
display:flex;
padding:4px 16px;
border-bottom:1px solid var(--color-border);
font-size:0.7rem;
font-weight:600;
color:var(--color-muted);
text-transform:uppercase;
letter-spacing:0.03em;
position:sticky;
top:0;
background:var(--color-card);
z-index:1;
}

.search-modal__sort-col{
cursor:pointer;
user-select:none;
padding:4px 0;
}

.search-modal__sort-col:hover{
color:var(--color-text);
}

.search-modal__sort-col--nosort{
cursor:default;
}

.search-modal__sort-col--nosort:hover{
color:var(--color-muted);
}

.search-modal__results{
flex:1;
overflow-y:auto;
min-height:0;
}

.search-modal__row{
display:flex;
align-items:center;
padding:6px 16px;
border-bottom:1px solid var(--color-border);
cursor:pointer;
transition:background 0.1s;
gap:8px;
font-size:0.85rem;
color:var(--color-text);
}

.search-modal__row:hover{
background:var(--color-input-bg);
}

.search-modal__row-badge{
font-size:0.6rem;
padding:1px 5px;
border-radius:8px;
background:var(--color-primary);
color:#fff;
margin-left:6px;
white-space:nowrap;
}

.search-modal__pagination{
display:flex;
align-items:center;
justify-content:space-between;
padding:8px 16px;
border-top:1px solid var(--color-border);
font-size:0.75rem;
color:var(--color-muted);
}

.search-modal__pagination-controls{
display:flex;
align-items:center;
gap:4px;
}

.search-modal__pagination-controls button{
padding:3px 8px;
border:1px solid var(--color-border);
border-radius:var(--radius);
background:var(--color-input-bg);
color:var(--color-text);
font-family:var(--font-body);
cursor:pointer;
font-size:0.75rem;
}

.search-modal__pagination-controls button:disabled{
opacity:0.3;
cursor:not-allowed;
}

.search-modal__pagination-controls button:hover:not(:disabled){
border-color:var(--color-primary);
}

.search-modal__empty{
text-align:center;
padding:40px 16px;
color:var(--color-muted);
font-size:0.9rem;
}

.search-modal__clear-link{
color:var(--color-primary);
cursor:pointer;
text-decoration:underline;
}

.search-modal__loading{
text-align:center;
padding:40px 16px;
color:var(--color-muted);
font-size:0.9rem;
}

@media (max-width:600px){
.search-modal__filter-btn{
min-height:44px;
}

.search-modal__row{
min-height:44px;
}

}

