/* 검색 팔레트 — Cmd/Ctrl+K, '/'. 색은 전부 테마 토큰(themes/*.css)만 쓴다. */

#search-overlay {
  position:fixed; inset:0; z-index:400;
  /* 원색 대신 --fg 를 반투명으로 섞는다 — 라이트/다크 테마 모두에서 배경과 대비가 유지된다 */
  background:color-mix(in srgb, var(--fg) 45%, transparent);
  display:flex; align-items:flex-start; justify-content:center;
  padding-top:12vh;
}

#search-panel {
  width:min(640px, 88vw); max-height:70vh;
  display:flex; flex-direction:column;
  background:var(--panel); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow-pill);
  overflow:hidden;
}

#search-head {
  display:flex; align-items:center; gap:12px;
  padding:14px 18px; border-bottom:1px solid var(--border);
}
#search-input {
  flex:1 1 auto; border:0; outline:0; background:transparent; color:var(--fg);
  font:inherit; font-size:18px;
}
#search-input::placeholder { color:var(--muted); }
#search-count { white-space:nowrap; }

#search-list { flex:1 1 auto; overflow-y:auto; padding:6px; }

.search-row {
  display:flex; align-items:flex-start; gap:12px;
  padding:10px 12px; border-radius:calc(var(--radius) - 4px);
  cursor:pointer;
}
.search-row.on, .search-row:hover { background:var(--bg); }

.search-no {
  flex:0 0 auto; min-width:2.2em; text-align:right;
  color:var(--muted); font-family:var(--font-mono); font-size:13px; padding-top:2px;
}

.search-body { flex:1 1 auto; min-width:0; }
.search-heading {
  font-weight:700; font-size:15px; color:var(--fg);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.search-snippet {
  margin-top:2px; font-size:13px; color:var(--muted); line-height:1.5;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.search-snippet mark {
  background:transparent; color:var(--accent); font-weight:700;
}

#search-empty { padding:24px 12px; text-align:center; color:var(--muted); }
#search-hint { padding:8px 18px; border-top:1px solid var(--border); }
