.search-dialog { width: min(40rem, calc(100vw - 2rem)); max-height: 80vh; margin: 10vh auto auto; padding: 0; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--bg); color: var(--text); font-family: var(--sans); }
.search-dialog::backdrop { background: rgb(0 0 0 / .6); }
.search-dialog form { display: flex; flex-direction: column; max-height: 80vh; }
.search-head { display: flex; gap: .5rem; align-items: center; padding: 1rem; border-bottom: 1px solid var(--rule); }
.search-input { flex: 1; min-width: 0; padding: .6rem .8rem; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--surface); color: var(--text); font: 1rem var(--sans); }
.search-input:focus-visible, .search-close:focus-visible, .search-results a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.search-close { padding: .5rem .8rem; border: 1px solid var(--rule); border-radius: var(--radius); background: transparent; color: var(--text); font: inherit; cursor: pointer; }
.search-status { margin: 0; padding: .6rem 1rem; color: var(--muted); font-size: .9rem; }
.search-results { list-style: none; margin: 0; padding: 0; overflow-y: auto; }
.search-results li { border-top: 1px solid var(--rule); }
.search-results a { display: block; padding: .8rem 1rem; color: var(--text); text-decoration: none; }
.search-results a:hover, .search-results a:focus { background: var(--surface); }
.search-where { display: block; color: var(--muted); font-size: .85rem; }
.search-title { display: block; font-weight: 600; }
.search-snippet { display: block; margin-top: .2rem; color: var(--muted); font-size: .9rem; }
.search-results mark { background: transparent; color: var(--accent); font-weight: 700; }
@media print { .search-toggle, .search-dialog { display: none !important; } }
