/* ==========================================================================
   Assignment 3 deliverable: SearchOverlay styles (header search affordance).
   Consumes C2 tokens from /assets/tokens.css only; defines no properties.
   ========================================================================== */

.search-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--z-overlay);
  background: var(--color-overlay);
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 12vh var(--page-gutter) 0;
}
.search-box {
  width: min(40rem, 100%);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}
.search-field { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-3) var(--sp-3); }
.search-field svg { width: 18px; height: 18px; color: var(--color-text-muted); flex: none; }
.search-field input {
  flex: 1;
  border: 0;
  outline: 0;
  background: none;
  font-size: var(--text-base);
  color: var(--color-text);
}
.search-field input:focus-visible { outline: none; }
.search-box:focus-within { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.search-field kbd {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-sm);
  padding: 2px 6px;
}
.search-results { max-height: 20rem; overflow-y: auto; border-top: 1px solid var(--color-border); }
.search-results:empty { display: none; }
.search-hit {
  display: flex;
  align-items: baseline;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  text-decoration: none;
  color: var(--color-text);
}
.search-hit:hover, .search-hit:focus-visible { background: var(--color-accent-soft); outline: none; }
.search-hit .hit-type {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-meta);
  color: var(--color-secondary);
  flex: none;
  width: 5rem;
}
.search-hit .hit-title { font-size: var(--text-sm); }
.search-hit .hit-desc { font-size: var(--text-xs); color: var(--color-text-muted); }
.search-empty { padding: var(--sp-3); font-size: var(--text-sm); color: var(--color-text-muted); }
.search-note {
  margin: 0;
  padding: var(--sp-2) var(--sp-3);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-meta);
  color: var(--color-text-muted);
  border-top: 1px solid var(--color-border);
}
