/* ============================================================
   Site-wide search overlay (client-side). meridian tokens.
   ============================================================ */
.search-trigger { display: inline-flex; align-items: center; gap: 8px; margin-left: 18px; padding: 9px 13px; border: 1px solid var(--line); background: var(--paper); color: var(--grey); font: 500 12.5px/1 var(--sans); cursor: pointer; border-radius: 999px; transition: border-color .2s, color .2s; }
.search-trigger:hover { border-color: var(--ink); color: var(--ink); }
.search-trigger svg { width: 15px; height: 15px; }
.search-trigger kbd { display: inline-block; padding: 2px 6px; border: 1px solid var(--line); border-radius: 4px; font: 600 10px/1 var(--sans); color: var(--grey); }
@media (max-width: 900px) { .search-trigger kbd { display: none; } .search-trigger { margin-left: 8px; padding: 9px; } .search-trigger .search-trigger-label { display: none; } }

.search-overlay { position: fixed; inset: 0; z-index: 2000; display: none; padding: clamp(40px, 10vh, 120px) 20px 20px; background: rgba(7,21,37,.5); backdrop-filter: blur(4px); }
.search-overlay.is-open { display: block; }
.search-modal { max-width: 640px; margin: 0 auto; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 30px 90px rgba(4,16,30,.3); overflow: hidden; }
.search-inputwrap { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.search-inputwrap svg { width: 18px; height: 18px; color: var(--grey); flex: none; }
.search-input { flex: 1; border: 0; outline: none; background: none; font: 500 17px/1.2 var(--sans); color: var(--ink); }
.search-esc { border: 1px solid var(--line); border-radius: 4px; background: none; padding: 4px 8px; font: 600 10px/1 var(--sans); color: var(--grey); cursor: pointer; }
.search-results { max-height: 56vh; overflow-y: auto; }
.search-result { display: flex; align-items: center; gap: 14px; padding: 13px 20px; text-decoration: none; color: var(--ink); border-bottom: 1px solid var(--mist); }
.search-result:last-child { border-bottom: 0; }
.search-result.is-active, .search-result:hover { background: var(--mist); }
.search-result-body { flex: 1 1 auto; min-width: 0; }
.search-result-title { display: block; font: 600 14.5px/1.3 var(--sans); color: var(--ink); }
.search-result-title mark { background: rgba(31,103,233,.16); color: inherit; padding: 0 1px; }
.search-result-desc { display: block; margin-top: 3px; color: var(--grey); font: 400 12.5px/1.45 var(--sans); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.search-result-type { flex: 0 0 auto; align-self: center; font: 700 9px/1 var(--sans); letter-spacing: .1em; text-transform: uppercase; color: var(--blue); border: 1px solid var(--line); padding: 5px 8px; border-radius: 999px; white-space: nowrap; }
.search-empty { padding: 34px 20px; text-align: center; color: var(--grey); font-size: 14px; }
.search-hint { padding: 14px 20px; color: var(--grey); font: 500 11.5px/1.5 var(--sans); border-top: 1px solid var(--mist); display: flex; gap: 16px; flex-wrap: wrap; }
.search-hint span b { color: var(--ink); font-weight: 600; }
@media (prefers-reduced-motion: no-preference) { .search-overlay.is-open .search-modal { animation: searchIn .2s ease; } }
@keyframes searchIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
