body { display: block; height: auto; min-height: 100vh; overflow-y: auto; }
header { display: flex; flex-wrap: wrap; gap: 16px; padding: 18px 24px; }
.search-brand { font-weight: 700; font-size: 20px; color: var(--text); text-decoration: none; }
header nav { display: flex; flex-wrap: wrap; gap: 16px; }
.search-main { display: block; max-width: 960px; margin: auto; padding: 32px 24px; }
.search-main h1 { font-size: clamp(24px, 4vw, 36px); line-height: 1.2; }
.search-main p { line-height: 1.6; }
#search-form { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; margin: 24px 0; }
#search-form div:first-child { flex: 1 1 280px; }
#search-form label { display: block; margin-bottom: 8px; font-weight: 600; }
#search-form input, #search-form select, .search-main button { min-height: 44px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--card); color: var(--text); font: inherit; }
#search-form input { width: 100%; box-sizing: border-box; }
.search-main button { cursor: pointer; font-weight: 600; }
.search-main button:disabled { cursor: wait; opacity: .65; }
.search-main :focus-visible, header a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
#search-results { list-style: none; margin: 0; padding: 0; }
#search-results li { border-top: 1px solid var(--line); padding: 20px 0; overflow-wrap: anywhere; }
#search-results h2 { margin: 0 0 6px; font-size: 20px; }
#search-results p { margin: 4px 0; }
.search-type { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.search-provenance { font-size: 13px; color: var(--muted); }
#search-error { padding: 14px; border: 1px solid var(--line); border-radius: 6px; }
[hidden] { display: none !important; }
