/* Site search — loaded after styles.css, safely overrides */
.site-search {
  position: relative;
  flex: 1 1 320px;
  max-width: 520px;
  margin: 0 0.5rem;
}
.site-search input[type="search"] {
  width: 100%;
  padding: 0.5rem 0.75rem 0.5rem 2.15rem;
  border: 1px solid var(--c-border, #e2ded3);
  border-radius: var(--r-md, 10px);
  background: var(--c-surface-2, #f7f6f2)
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237a766a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3'/></svg>")
    no-repeat 0.7rem center;
  background-size: 15px 15px;
  font: inherit;
  font-size: var(--fs-200, 0.875rem);
  color: var(--c-text, #1c1b18);
  appearance: none;
  outline: none;
  transition: border-color 120ms ease, background-color 120ms ease, box-shadow 120ms ease;
}
.site-search input[type="search"]:focus {
  border-color: var(--c-brand, #2f3d7a);
  background-color: var(--c-surface, #fff);
  box-shadow: 0 0 0 3px var(--c-brand-soft, #eef1fb);
}
.site-search input[type="search"]::-webkit-search-cancel-button { cursor: pointer; }

.site-search-results {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  max-height: min(60vh, 480px);
  overflow-y: auto;
  background: var(--c-surface, #fff);
  border: 1px solid var(--c-border, #e2ded3);
  border-radius: var(--r-md, 10px);
  box-shadow: 0 12px 32px rgba(20, 20, 20, 0.16);
  z-index: 100;
  padding: 0.3rem;
}
.site-search-results[hidden] { display: none; }

.site-search-result {
  display: grid;
  grid-template-columns: auto 1fr auto;
  grid-template-areas:
    "kind title code"
    "kind crumbs crumbs";
  gap: 2px 10px;
  padding: 0.55rem 0.65rem;
  border-radius: var(--r-sm, 6px);
  text-decoration: none;
  color: var(--c-text, #1c1b18);
}
.site-search-result:hover,
.site-search-result.is-active {
  background: var(--c-brand-soft, #eef1fb);
  text-decoration: none;
}
.site-search-result-kind {
  grid-area: kind;
  align-self: center;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-brand, #2f3d7a);
  background: var(--c-brand-soft, #eef1fb);
  padding: 0.15rem 0.4rem;
  border-radius: 4px;
  white-space: nowrap;
}
.site-search-result.is-active .site-search-result-kind,
.site-search-result:hover .site-search-result-kind {
  background: var(--c-brand, #2f3d7a);
  color: var(--c-text-inverse, #fff);
}
.site-search-result-title {
  grid-area: title;
  font-weight: 600;
  font-size: var(--fs-200, 0.875rem);
  color: var(--c-text, #1c1b18);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-search-result-title mark {
  background: #fdf3a8;
  color: inherit;
  padding: 0 1px;
  border-radius: 2px;
}
.site-search-result-code {
  grid-area: code;
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 0.7rem;
  color: var(--c-text-3, #7a766a);
  align-self: center;
  white-space: nowrap;
}
.site-search-result-crumbs {
  grid-area: crumbs;
  font-size: 0.72rem;
  color: var(--c-text-3, #7a766a);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-search-msg {
  padding: 0.85rem;
  font-size: var(--fs-200, 0.875rem);
  color: var(--c-text-3, #7a766a);
  text-align: center;
}

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.topbar-inner > .brand { flex: 0 0 auto; }
.topbar-inner > .topnav { flex: 0 0 auto; }

@media (max-width: 860px) {
  .site-search { flex: 1 1 200px; max-width: none; }
}
@media (max-width: 720px) {
  .topbar-inner { flex-wrap: wrap; padding-block: 0.5rem; }
  .topbar-inner > .site-search {
    order: 3;
    flex: 1 1 100%;
    max-width: none;
    margin: 0.5rem 0 0;
  }
  .topbar-inner > .topnav { order: 2; }
}

@media (prefers-color-scheme: dark) {
  .site-search input[type="search"] {
    background-color: var(--c-surface-2, #1e2029);
    color: var(--c-text, #ecebe6);
  }
  .site-search-results {
    background: var(--c-surface, #171923);
    border-color: var(--c-border, #2a2d38);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6);
  }
  .site-search-result-title mark { background: #6b5b00; color: #fff; }
}
