.book-search { margin-bottom: 1.25rem; min-width: 0; }
.book-search [hidden], .book-manual-fields[hidden] { display: none !important; }
.book-search label { display: block; margin-bottom: .5rem; font-weight: 600; }
.book-search input { width: 100%; box-sizing: border-box; }
.book-search-message, .book-search-credit { font-size: .8rem; color: var(--text-mid, #57534e); margin: .6rem 0; }
.book-search-credit a { text-decoration: underline; }
.book-search-results { list-style: none; padding: 0; margin: .5rem 0; max-height: 260px; overflow-y: auto; }
.book-search-result { display: block; width: 100%; text-align: left; padding: .8rem; border: 1px solid var(--border, #ddd); border-radius: 8px; background: var(--bg-raised, #fff); color: var(--text, #1e1b4b); cursor: pointer; margin-bottom: .35rem; font: inherit; }
.book-search-result strong, .book-search-result span { display: block; overflow-wrap: anywhere; }
.book-search-result span { font-size: .8rem; color: var(--text-mid, #57534e); margin-top: .2rem; }
.book-search-result:hover { background: var(--bg-hover, #eeedf5); }
.book-search button:focus-visible { outline: 2px solid var(--accent, #6d28d9); outline-offset: 2px; }
.book-search-link { background: none; border: 0; padding: .5rem 0; color: var(--accent, #6d28d9); text-decoration: underline; cursor: pointer; font: inherit; font-size: .85rem; }
.book-search-selected { padding: .85rem; border-left: 3px solid var(--accent, #6d28d9); margin: .75rem 0; overflow-wrap: anywhere; }
.book-search input[type="search"] { padding: .72rem 1rem; font: inherit; font-size: .9rem; color: var(--text, #1e1b4b); background: var(--bg, #f8f7fc); border: 1px solid var(--rule-strong, rgba(109,40,217,.15)); border-radius: 10px; }
.book-search input[type="search"]:focus-visible { outline: 2px solid var(--accent, #6d28d9); outline-offset: 2px; }
.book-manual-fields.shelf-field-wide { display: grid; gap: 1rem; }

/* Keep a visible results area ready before the first response arrives. */
.book-search-panel { margin-top: .6rem; padding: .85rem; border: 1px solid var(--rule-strong, rgba(109,40,217,.15)); border-radius: 12px; background: var(--bg-raised, #fff); box-shadow: 0 6px 20px rgba(30,27,75,.06); }
.book-search-panel .book-search-message { display: flex; align-items: center; gap: .6rem; margin: 0; min-height: 1.5rem; }
.book-search-panel .book-search-results { margin: .7rem 0 0; }
.book-search-panel .book-search-results:empty { display: none; }
.book-search-panel[data-loading] .book-search-message { color: var(--accent, #6d28d9); font-weight: 600; }
.book-search-panel[data-loading] .book-search-message::before { content: ''; flex: 0 0 14px; width: 14px; height: 14px; border: 2px solid rgba(109,40,217,.18); border-top-color: var(--accent, #6d28d9); border-radius: 50%; animation: book-search-spin .8s linear infinite; }
.book-search-skeleton { padding: .9rem .8rem; margin-bottom: .35rem; border: 1px solid var(--border, #ddd); border-radius: 8px; }
.book-search-skeleton span { display: block; height: .85rem; width: 68%; border-radius: 4px; background: linear-gradient(90deg, rgba(109,40,217,.06) 25%, rgba(109,40,217,.14) 50%, rgba(109,40,217,.06) 75%); background-size: 200% 100%; animation: book-search-shimmer 1.4s ease-in-out infinite; }
.book-search-skeleton span + span { width: 43%; height: .65rem; margin-top: .65rem; }
.book-search-skeleton:nth-child(2) span:first-child { width: 85%; }
@keyframes book-search-spin { to { transform: rotate(360deg); } }
@keyframes book-search-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .book-search-panel[data-loading] .book-search-message::before, .book-search-skeleton span { animation: none; } }
