/* Static ambient gradients avoid animated blur work over large virtualized shelves. */
body {
    background-image: radial-gradient(ellipse at 12% 4%, rgb(94 106 210 / 10%), transparent 46%), radial-gradient(ellipse at 88% 20%, rgb(26 160 151 / 7%), transparent 40%);
    background-attachment: fixed;
}
.sidebar { background: color-mix(in srgb, var(--bg-secondary) 90%, transparent); backdrop-filter: blur(14px); }
.card { box-shadow: 0 8px 28px rgb(0 0 0 / 7%); }
.catalog-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; margin-bottom: 1.25rem; }
.catalog-toolbar .form-control { width: auto; min-width: 180px; max-width: 100%; flex: 1 1 200px; }
.audiobook-library-toolbar { max-width: 520px; }
.book-groups-grid { display: grid; gap: 20px; }
.book-group-card { width: 100%; border: 1px solid var(--border-color); border-radius: 16px; padding: 14px; text-align: left; color: var(--text-primary); background: color-mix(in srgb, var(--bg-card) 88%, transparent); cursor: pointer; overflow: hidden; transition: border-color .18s, background .18s; }
.book-group-card:hover, .book-group-card:focus-visible { border-color: var(--accent); background: var(--bg-card); outline: 2px solid var(--accent); outline-offset: 2px; }
.cover-stack { position: relative; display: block; width: 100%; aspect-ratio: 1.5; margin-bottom: 12px; }
.cover-stack img { position: absolute; top: 0; left: calc(var(--stack-index) * var(--stack-step)); width: 66.6667%; height: 100%; object-fit: cover; border-radius: 10px; box-shadow: 4px 3px 12px rgb(0 0 0 / 30%); }
.cover-stack-empty { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 10px; font-size: 3rem; background: linear-gradient(135deg, var(--accent-light), var(--bg-secondary)); }
.book-group-name { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 1rem; font-weight: 650; height: 3rem; }
.book-group-count { color: var(--text-secondary); font-size: .85rem; }
.group-detail-heading { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; margin-bottom: 1rem; }
.group-detail-heading > div { flex: 1 1 240px; }
.group-detail-heading p { color: var(--text-secondary); }
.group-description { flex-basis: 100%; }
.book-groups-view .book-card { position: relative; }
.book-groups-view .book-fav-btn { color: #f8fafc; font-size: 1.05rem; }
.book-groups-view .book-fav-btn.is-fav { color: #ff87af; }
.book-tile-open { display: block; width: 100%; border: 0; padding: 0; text-align: left; color: inherit; background: transparent; cursor: pointer; font: inherit; }
.book-tile-open .book-cover, .book-tile-open .book-info, .book-tile-open .book-author, .book-tile-open .book-series { display: block; }
.book-tile-open:focus-visible { outline: 3px solid var(--accent); outline-offset: -3px; }
.collection-remove { width: 100%; }
.radio-station-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(0, min(100%, 280px))); justify-content: start; gap: 1rem; }
.radio-station-grid > .radio-station-card { display: flex; flex-direction: column; justify-content: flex-start; gap: .65rem; min-width: 0; margin-bottom: 0; border: 1px solid var(--border-color); border-radius: 18px; padding: 1rem; background: linear-gradient(135deg, color-mix(in srgb, var(--bg-card) 88%, transparent), var(--bg-secondary)); box-shadow: 0 10px 26px rgb(0 0 0 / 10%); }
.radio-station-heading { gap: .65rem; }
.radio-station-identity, .radio-station-labels, .radio-station-card > div { min-width: 0; }
.radio-station-labels h4, .radio-station-labels > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.radio-station-card.is-playing { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), 0 10px 30px rgb(94 106 210 / 15%); }
.radio-favorite { display: inline-grid; place-items: center; flex-shrink: 0; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--border-color); background: var(--bg-secondary); color: var(--text-secondary); cursor: pointer; }
.radio-favorite svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.radio-favorite.is-favorite { color: #ff87af; background: rgb(235 77 131 / 13%); border-color: rgb(235 77 131 / 35%); }
.radio-favorite.is-favorite svg { fill: currentColor; }
.radio-station-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .65rem; margin-top: auto; padding-top: .65rem; border-top: 1px solid var(--border-color); }
.radio-delete { display: inline-flex; align-items: center; gap: .4rem; padding: .55rem .65rem; min-height: 38px; border-radius: 9px; border: 1px solid rgb(239 68 68 / 40%); background: rgb(239 68 68 / 12%); color: #ff9a9a; font-weight: 600; cursor: pointer; }
.radio-delete svg { width: 17px; height: 17px; stroke: currentColor; stroke-width: 1.8; fill: none; stroke-linecap: round; }
.radio-delete:hover { background: rgb(239 68 68 / 24%); }
.radio-delete:focus-visible, .radio-favorite:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
[data-theme="light"] .radio-delete { color: #a51c2d; }
[data-theme="light"] .radio-favorite.is-favorite { color: #b91c5b; }
@media (prefers-reduced-motion: reduce) { .book-group-card { transition: none; } }
@media (max-width: 600px) { .sidebar { backdrop-filter: none; } .radio-station-card { padding: 1rem; } }
.genre-picker { position: relative; min-width: min(220px, 100%); width: 260px; max-width: 100%; flex: 0 1 260px; }
.genre-picker > label { display: block; margin-bottom: .3rem; }
.genre-picker-field { display: flex; align-items: stretch; }
.genre-picker-field input { min-width: 0; width: 100%; border-radius: 8px 0 0 8px; }
.genre-picker .genre-picker-field > button { color: var(--text-primary); background: var(--bg-card); border: 1px solid var(--border-color); border-left: 0; border-radius: 0 8px 8px 0; padding: 0; margin: 0; flex: 0 0 38px; display: grid; place-items: center; line-height: 1; align-self: stretch; cursor: pointer; }
.genre-picker-options { position: absolute; top: 100%; left: 0; right: 0; z-index: 30; max-height: 280px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--border-color); border-radius: 10px; padding: .3rem; background: var(--bg-secondary); box-shadow: 0 12px 35px rgb(0 0 0 / 30%); }
.genre-picker-options > button { display: block; width: 100%; border: 0; border-radius: 5px; background: transparent; color: var(--text-primary); text-align: left; padding: .5rem .65rem; cursor: pointer; }
.genre-picker-options > button:hover, .genre-picker-options > button.is-active { background: var(--accent-light); }
.genre-picker-options > p { padding: .6rem; color: var(--text-secondary); }

.genre-picker-field > button svg { display: block; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.track-artwork { position: relative; display: inline-grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; overflow: hidden; border-radius: 6px; background: linear-gradient(135deg, var(--accent-light), var(--bg-secondary)); color: var(--text-secondary); }
.track-artwork > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.track-artwork > img[hidden] { display: none; }
.music-song-title { display: flex; align-items: center; gap: .75rem; }
.music-track-heading { grid-template-columns: 42px auto minmax(0, 1fr) auto; align-items: center; }
.music-playlist-header-art { width: 210px; max-width: 100%; margin-top: 1rem; }
.global-queue-song > .track-artwork { flex: 0 0 38px; width: 38px; height: 38px; }
.global-queue-song > .track-artwork img { width: 100%; height: 100%; }

.music-recommendation-track .track-artwork > img { width: 100%; height: 100%; }

.cover-stack img[hidden] { display: none; }

.music-edit-metadata, .music-online-cover { margin-block:.4rem; margin-inline-end:.5rem; }

.music-release-choice { display: flex; align-items: center; gap: 1rem; text-align: left; }
.music-release-thumb { position: relative; flex: 0 0 76px; height: 76px; display: grid; place-items: center; border-radius: .5rem; background: var(--bg-secondary); overflow: hidden; font-size: 2rem; }
.music-release-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: var(--bg-secondary); }
.music-release-caption { display: flex; flex-direction: column; min-width: 0; gap: .2rem; }

.reading-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.reading-filters { display:flex; flex-wrap:wrap; align-items:end; gap:1rem; padding:1.5rem; }
.reading-filters label { display:flex; flex-direction:column; gap:.5rem; flex:1 1 12rem; }
.reading-shelf { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:1.3rem; margin:1.5rem 0; }
.reading-book { display:flex; flex-direction:column; gap:.4rem; text-align:left; text-decoration:none; padding:.8rem; color:var(--text-primary); border:1px solid var(--border-color); border-radius:1rem; background:var(--bg-secondary); min-width:0; }
.reading-book strong { overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.reading-book small { color:var(--text-secondary); }
.reading-cover { position:relative; display:grid; place-items:center; width:100%; aspect-ratio:3/4; overflow:hidden; border-radius:.6rem; background:linear-gradient(140deg,#5550a0,#25283d); font-size:3rem; }
.reading-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:#171924; }
.book-badge-series { background:rgba(15,23,42,.88); backdrop-filter:blur(6px); color:#fff; border:1px solid rgba(99,102,241,.7); padding:2px 7px; border-radius:4px; font-size:.68rem; font-weight:700; display:inline-flex; align-items:center; gap:.25rem; box-shadow:0 2px 8px rgba(0,0,0,.5); letter-spacing:.2px; }
.reading-cover>.book-badge-series { position:absolute; top:6px; left:6px; z-index:2; box-sizing:border-box; max-width:calc(100% - 2.5rem); display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reading-toolbar { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; position:sticky; top:0; z-index:5; padding:1rem; background:var(--bg-secondary); border-radius:.8rem; }
.reading-toolbar strong { flex:1 1 15rem; }
.reading-toolbar label { display:flex; align-items:center; gap:.5rem; }
.reading-toolbar input { width:5rem; }
.reading-canvas { margin:1rem auto; max-width:1100px; text-align:center; }
.reading-canvas img { max-width:100%; height:auto; }
.reading-canvas iframe { width:100%; height:calc(100vh - 240px); min-height:500px; border:0; background:#fcfaf4; border-radius:.7rem; }
.reading-metadata { margin:1rem 0; padding:1.5rem; }
.reading-metadata form { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem; }
.reading-metadata label { display:flex; flex-direction:column; gap:.4rem; }
.reading-bookmarks { padding:1rem; }
.reading-key { display:flex; align-items:center; gap:1rem; padding:1rem; border-bottom:1px solid var(--border-color); }
.reader-secret { display:flex; flex-direction:column; gap:1rem; padding:1rem; }
.reader-secret label { display:flex; flex-direction:column; gap:.5rem; }
.reading-load-more { display:block; margin:1rem auto; }
@media(max-width:600px) { .reading-heading { align-items:start; flex-direction:column; } .reading-shelf { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.reading-filters input, .reading-filters select, .reading-toolbar input, .reading-toolbar select, .reading-metadata input, .reading-metadata textarea, .reader-secret input {
    min-height:42px; padding:.6rem .75rem; border:1px solid var(--border-color); border-radius:.55rem; background:var(--bg-tertiary, #222634); color:var(--text-primary); font:inherit; min-width:0;
}
.reading-filters select, .reading-filters input { width:100%; }
.reading-book progress { width:100%; height:5px; margin-top:auto; accent-color:var(--accent); border:0; }
.reading-book progress::-webkit-progress-bar { background:#303448; border-radius:3px; }
.reading-book progress::-webkit-progress-value { background:var(--accent); border-radius:3px; }
.reading-canvas.fit-page img { max-height:calc(100vh - 240px); width:auto; max-width:100%; }
.reading-info { margin:1rem 0; padding:1rem; }
.reading-info dl { display:grid; grid-template-columns: minmax(6rem,auto) 1fr; gap:.4rem 1rem; }
.reading-info dd { margin:0; overflow-wrap:anywhere; }

.reading-reader-title { flex:1 1 14rem; font-size:1rem; margin:0; }

/* Shared reading-library interactions: virtual shelf and a stable detail split. */
.reading-library .reading-shelf { display:block; min-width:0; margin:1.5rem 0; }
.reading-catalog-row { display:grid; gap:20px; align-items:stretch; }
.reading-catalog-row .reading-book { width:100%; cursor:pointer; font:inherit; }
.reading-book.selected,.reading-metadata-result.selected { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.reading-layout { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; min-width:0; }
.reading-layout.has-detail { grid-template-columns:minmax(0,1fr) 14px minmax(0,var(--detail-width,480px)); }
.reading-size span { display:flex; align-items:center; gap:.75rem; }
.reading-size input { min-width:5rem; width:100%; accent-color:var(--accent); }
.reading-size output { font-size:.8rem; min-width:3rem; }
.reading-splitter { cursor:col-resize; touch-action:none; display:flex; justify-content:center; align-self:stretch; min-height:24rem; }
.reading-splitter span { width:3px; margin:1.5rem 0; border-radius:3px; background:var(--border-color); }
.reading-splitter:hover span { background:var(--accent); }
.reading-detail-panel { position:sticky; top:1rem; max-height:calc(100vh - 2rem); overflow:auto; padding:1.25rem; margin:1.5rem 0; background:var(--bg-secondary); border:1px solid var(--border-color); border-radius:1rem; min-width:0; animation:reading-detail-enter .2s ease-out; }
.reading-detail-heading { position:sticky; top:-1.25rem; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:1rem 0; margin-top:-1rem; background:var(--bg-secondary); }
.reading-detail-heading h2 { font-size:1rem; margin:0; }
.reading-detail-summary { display:flex; align-items:start; gap:1rem; margin:1rem 0; }
.reading-detail-summary>img { width:28%; max-height:200px; object-fit:contain; border-radius:.5rem; }
.reading-detail-summary>div { min-width:0; flex:1; overflow-wrap:anywhere; }
.reading-detail-summary h3 { margin-top:0; }
.reading-detail-summary progress { width:100%; }
.reading-detail-field,.reading-detail-form label { display:flex; flex-direction:column; gap:.4rem; min-width:0; margin:.7rem 0; }
.reading-detail-field select,.reading-detail-form input,.reading-detail-form textarea,.reading-detail-form select { width:100%; padding:.65rem; border:1px solid var(--border-color); border-radius:.4rem; background:var(--bg-primary); color:var(--text-primary); min-width:0; }
.reading-detail-form textarea { min-height:10rem; resize:vertical; }
.reading-detail-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.reading-metadata-layout { container-type:inline-size; }
.reading-detail-data { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem 1.25rem; margin:1.25rem 0; }
.reading-detail-data>div { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:baseline; gap:.4rem .65rem; min-width:0; }
.reading-detail-data dt { color:var(--text-secondary); }
.reading-detail-data>.reading-detail-identifiers { grid-column:2; }
@container(max-width:360px) { .reading-detail-data { grid-template-columns:minmax(0,1fr); } .reading-detail-data>.reading-detail-identifiers { grid-column:auto; } }
.reading-detail-data dd { margin:0; overflow-wrap:anywhere; }
.reading-description { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.65; }
.reading-online { margin-top:1.5rem; padding-top:1rem; border-top:1px solid var(--border-color); }
.reading-online>p { font-size:.85rem; color:var(--text-secondary); }
.reading-metadata-results { display:grid; gap:.6rem; margin:1rem 0; }
.reading-metadata-result { display:flex; align-items:start; gap:.75rem; width:100%; text-align:left; padding:.65rem; border:1px solid var(--border-color); border-radius:.5rem; background:var(--bg-primary); color:var(--text-primary); cursor:pointer; }
.reading-metadata-result img { width:64px; max-height:96px; object-fit:contain; }
.reading-metadata-result span { min-width:0; overflow-wrap:anywhere; }
.reading-metadata-result small { display:block; margin-top:.3rem; color:var(--text-secondary); }
.reading-metadata-preview { padding:1rem; background:var(--bg-primary); border-radius:.6rem; }
.reading-check { display:flex; align-items:center; gap:.5rem; margin:1rem 0; }
.reading-cover-upload { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.reading-cover-upload input { max-width:100%; }
.reading-detail-busy { position:sticky; bottom:0; display:flex; align-items:center; justify-content:center; gap:.7rem; padding:1rem; background:var(--bg-secondary); }
@keyframes reading-detail-enter { from { opacity:0; transform:translateX(20px); } to { opacity:1; transform:translateX(0); } }
@media(prefers-reduced-motion:reduce) { .reading-detail-panel { animation:none; } }
@media(max-width:850px) { .reading-layout.has-detail { grid-template-columns:minmax(0,1fr); } .reading-splitter { display:none; } .reading-detail-panel { position:fixed; inset:1rem; margin:0; max-height:calc(100dvh - 2rem); z-index:900; box-shadow:0 0 0 100vmax #0008; } .reading-heading { align-items:start; flex-wrap:wrap; } }

.reading-shelf-controls { display:flex; align-items:end; flex-wrap:wrap; gap:.75rem; padding:1rem; margin:1rem 0; }
.reading-shelf-controls>label,.reading-shelf-create label { display:flex; flex-direction:column; gap:.4rem; min-width:0; }
.reading-shelf-controls select,.reading-shelf-controls input { padding:.6rem; border:1px solid var(--border-color); border-radius:.4rem; background:var(--bg-primary); color:var(--text-primary); min-width:0; max-width:100%; }
.reading-shelf-controls>label { flex:1 1 14rem; }
.reading-shelf-create { width:100%; display:flex; align-items:end; flex-wrap:wrap; gap:.75rem; }
.reading-shelf-create label { flex:1 1 12rem; }
.reading-shelf-controls>.reading-detail-form { width:100%; }
.reading-shelf-controls>[role=alertdialog] { width:100%; padding:1rem; border:1px solid var(--border-color); border-radius:.5rem; }

.reading-book-shell { min-width:0; display:flex; flex-direction:column; gap:.5rem; }
.reading-book-shell>.reading-book { flex:1; }
.reading-shelf-item-actions { display:flex; gap:.3rem; flex-wrap:wrap; }

/* One compact size control for every cover shelf. */
.cover-size-control,.music-library .cover-size-control { display:flex; flex-direction:column; gap:.5rem; width:160px; flex:0 0 160px; min-width:0; margin:0; font-size:.9rem; }
.cover-size-track { display:flex; align-items:center; gap:.5rem; height:42px; }
.cover-size-control input[type=range],.music-library .cover-size-control input[type=range],.reading-filters .cover-size-control input[type=range] { flex:1; width:110px; min-width:0; min-height:0; height:20px; margin:0; padding:0; border:0; border-radius:0; background:transparent; accent-color:var(--accent); cursor:pointer; }
.cover-size-control output { flex:0 0 42px; font-size:.75rem; color:var(--text-secondary); text-align:right; }
.reading-library>.reading-catalog-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:.75rem; padding:1rem 1.25rem; margin:1.25rem 0; }
.reading-catalog-toolbar>.reading-filters { display:contents; }
.reading-catalog-toolbar>.reading-filters>label { flex:0 1 175px; width:175px; min-width:140px; white-space:nowrap; }
.reading-catalog-toolbar>.reading-filters>label:nth-child(2) { flex-basis:190px; width:190px; }
.reading-catalog-toolbar>.reading-filters>.cover-size-control { flex:0 0 160px; width:160px; min-width:0; }
.reading-catalog-toolbar .reading-shelf-controls-compact { display:contents; }
.reading-catalog-toolbar .reading-shelf-controls-compact>label { flex:0 1 205px; width:205px; min-width:170px; white-space:nowrap; }
.reading-catalog-toolbar .reading-shelf-controls-compact>form,.reading-catalog-toolbar .reading-shelf-controls-compact>[role=alertdialog],.reading-catalog-toolbar .reading-shelf-controls-compact>p { flex-basis:100%; }
.reading-catalog-toolbar .btn { white-space:nowrap; }
.catalog-dialog { width:min(720px,calc(100vw - 2rem)); max-width:none; max-height:calc(100dvh - 2rem); padding:0; margin:auto; border:1px solid var(--border-color); border-radius:14px; background:var(--bg-card); color:var(--text-primary); box-shadow:0 24px 80px #0008; overflow:hidden; }
.catalog-dialog[open] { display:flex; flex-direction:column; }
.catalog-dialog::backdrop { background:#000a; backdrop-filter:blur(4px); }
body:has(.catalog-dialog[open]) { overflow:hidden; }
.catalog-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.25rem; border-bottom:1px solid var(--border-color); flex-shrink:0; }
.catalog-dialog-heading h2 { font-size:1.1rem; margin:0; }
.catalog-dialog-body { padding:1.25rem; overflow:auto; overscroll-behavior:contain; min-height:0; }
.catalog-dialog .reading-online { margin:0; padding:0; border:0; }
.catalog-dialog .reading-online>h3,.catalog-dialog .reading-detail-form>h3 { display:none; }
.catalog-dialog .reading-detail-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem 1rem; }
.catalog-dialog .reading-detail-form>label { margin:0; }
.catalog-dialog .reading-detail-form>label:first-of-type,.catalog-dialog .reading-detail-form>label:has(textarea),.catalog-dialog .reading-detail-form>.reading-detail-actions { grid-column:1/-1; }
@media(max-width:560px) { .reading-catalog-toolbar>.reading-filters>label,.reading-catalog-toolbar .reading-shelf-controls-compact>label { flex:1 1 150px; max-width:100%; } .reading-catalog-toolbar>.reading-filters>.cover-size-control { flex:0 0 160px; } .catalog-dialog .reading-detail-form { grid-template-columns:minmax(0,1fr); } .catalog-dialog-heading,.catalog-dialog-body { padding:1rem; } }

.reading-catalog-toolbar label { font-size:.9rem; }
.reading-catalog-toolbar select,.reading-catalog-toolbar input:not([type=range]),.reading-catalog-toolbar .btn { min-height:42px; }

/* Grow to available width, retain useful minimums and wrap without horizontal overflow. */
.reading-catalog-toolbar>.reading-filters>label { flex:1 1 175px; width:auto; max-width:300px; }
.reading-catalog-toolbar>.reading-filters>label:nth-child(2) { flex:1.4 1 200px; width:auto; max-width:420px; }
.reading-catalog-toolbar .reading-shelf-controls-compact>label { flex:1.2 1 205px; width:auto; max-width:340px; }
.catalog-filter-options { min-width:0; }
.catalog-filter-options>summary { cursor:pointer; padding:.7rem .8rem; border:1px solid var(--border-color); border-radius:8px; white-space:nowrap; }
.catalog-filter-options[open] { flex:1 0 100%; order:5; }
.catalog-filter-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr)); align-items:end; gap:.8rem; padding:.8rem 0; }
.catalog-filter-fields label { display:flex; flex-direction:column; gap:.45rem; min-width:0; }
.catalog-filter-fields input:not([type=checkbox]),.catalog-filter-fields select { box-sizing:border-box; width:100%; min-width:0; }
.catalog-filter-fields label.reading-check { flex-direction:row; align-items:center; min-height:42px; }
.reading-catalog-toolbar .catalog-filter-fields input[type=checkbox],.catalog-filter-fields input[type=checkbox] { flex:0 0 18px; width:18px; height:18px; min-width:18px; min-height:18px; margin:0; padding:0; accent-color:var(--accent); }
.catalog-filter-fields label.reading-check { justify-content:flex-start; gap:.5rem; white-space:normal; }
.reading-maintenance-actions { display:flex; flex-wrap:wrap; gap:.6rem; margin:0 0 1rem; }
.reading-review-group { border:1px solid var(--border-color); padding:1rem; margin:1rem 0; border-radius:10px; }
.reading-review-books { display:grid; gap:.6rem; margin:1rem 0; }
.reading-review-book { display:flex; align-items:center; gap:.7rem; padding:.5rem; border:1px solid var(--border-color); border-radius:8px; }
.reading-review-book img { width:54px; height:72px; object-fit:contain; }
.reading-review-book span { min-width:0; overflow-wrap:anywhere; }
.reading-review-book small { display:block; color:var(--text-secondary); }
@media(max-width:560px) { .reading-library>.reading-catalog-toolbar { padding:.8rem; } .reading-catalog-toolbar>.reading-filters>label,.reading-catalog-toolbar .reading-shelf-controls-compact>label { max-width:none; } .reading-review-group { padding:.6rem; } }

/* Align checkbox rows with the input row, without inherited label margins. */
.catalog-filter-fields label.reading-check { margin:0; box-sizing:border-box; align-self:end; min-height:42px; line-height:1.4; }
.reading-review-pagination { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; margin:1.25rem 0 0; }
.reading-review-pagination>span { display:flex; align-items:center; min-height:42px; }
.reading-duplicate-confirm { border:1px solid var(--danger); border-radius:8px; padding:1rem; margin-top:1rem; }
.reading-duplicate-confirm .reading-check { margin:.75rem 0; }
.reading-review-book input { flex:0 0 auto; width:18px; height:18px; margin:0; }
.reading-review-book .btn { margin-left:auto; }
.podcast-refresh-notice { margin:0 0 1.5rem; }

.reading-review-loading { display:flex; align-items:center; gap:.65rem; margin:1rem 0; }
.reading-review-spinner { width:20px; height:20px; border:3px solid var(--border-color); border-top-color:var(--accent); border-radius:50%; animation:reading-review-spin .8s linear infinite; }
@keyframes reading-review-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .reading-review-spinner { animation:none; } }

.reading-series-actions { align-items:end; }
.reading-series-actions>.btn { flex:0 0 auto; align-self:end; box-sizing:border-box; height:42px; min-height:42px; padding:.55rem 1rem; }
.reading-series-actions>.reading-detail-field { margin:0; }
.reading-series-help { display:block; margin:.5rem 0 1rem; color:var(--text-secondary); }
.reading-review-intro { margin:0 0 1rem; }
.reading-organization-help { margin:0 0 1.25rem; color:var(--text-secondary); }
.reading-organization-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem 1rem; margin:1.25rem 0; }
.reading-organization-actions>.btn { flex:0 0 auto; min-height:42px; }
.reading-organization-actions>.btn:disabled { opacity:.5; cursor:not-allowed; }
.reading-organization-actions>span { color:var(--text-secondary); }
.reading-organization-selection { margin:1.25rem 0 0; }
.reading-organization-proposal>.reading-check { margin:0; align-items:center; }
.reading-organization-evidence { margin:.65rem 0 1rem; color:var(--text-secondary); font-size:.9rem; }
.reading-organization-proposal .catalog-filter-fields { grid-template-columns:minmax(0,2fr) minmax(0,2fr) minmax(5rem,1fr); }
.reading-organization-proposal .catalog-filter-fields input { box-sizing:border-box; min-height:42px; padding:.65rem; border:1px solid var(--border-color); border-radius:8px; background:var(--bg-secondary); color:var(--text-primary); font:inherit; }
.reading-organization-empty { margin:1.25rem 0; padding:1rem; border:1px solid var(--border-color); border-radius:8px; }
@media(max-width:560px) { .reading-organization-proposal .catalog-filter-fields { grid-template-columns:minmax(0,1fr); } }
.reading-filter-toggle { flex:0 0 auto; }
.reading-expanded-filters { flex:1 0 100%; width:100%; order:10; }

.reading-title-summary { margin:1rem 0; }
.reading-title-row .reading-check { margin:0 0 .5rem; }
.reading-retag-options { padding:1rem; border:1px solid var(--border-color); border-radius:8px; margin:1rem 0; }
.reading-retag-options p { margin:.75rem 0; }
.reading-retag-options>.btn { margin-top:1rem; }
.reading-retag-path { overflow-wrap:anywhere; }

.reading-expanded-filters input:not([type=checkbox]),.reading-expanded-filters select,.reading-detail-field input { box-sizing:border-box; min-height:42px; width:100%; padding:.65rem; border:1px solid var(--border-color); border-radius:8px; background:var(--bg-secondary); color:var(--text-primary); font:inherit; }

.retag-progress-overlay { position:fixed; inset:0; z-index:2500; display:grid; place-items:center; padding:1.5rem; background:rgb(8 12 22 / 70%); backdrop-filter:blur(6px); cursor:progress; }
.retag-progress-card { display:flex; flex-direction:column; align-items:center; gap:1rem; padding:2rem; max-width:28rem; border:1px solid var(--border-color); border-radius:16px; background:var(--bg-secondary); text-align:center; }
.retag-progress-card .reading-review-spinner { width:52px; height:52px; border-width:4px; }
.reading-maintenance-progress-status { display:flex; flex-direction:column; align-items:center; gap:1rem; overflow-wrap:anywhere; }
.reading-maintenance-progress .retag-progress-card { box-sizing:border-box; max-width:min(28rem,100%); }
.reading-maintenance-progress button { cursor:pointer; }
.catalog-favorite { min-height:36px; align-self:flex-start; white-space:nowrap; }
.reading-book-shell, .book-group-shell { position:relative; }
.reading-book-shell > .catalog-favorite, .book-group-shell > .catalog-favorite { position:absolute; top:.5rem; right:.5rem; z-index:1; }

/* One visual language for media navigation, favorites, and library selection. */
.catalog-view-tabs.catalog-view-tabs { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; width:fit-content; max-width:100%; padding:.3rem; border:1px solid var(--border-color); border-radius:9px; background:var(--bg-secondary); margin:.75rem 0; }
.catalog-view-tabs.catalog-view-tabs .btn { display:inline-flex; align-items:center; justify-content:center; gap:.35rem; min-height:34px; padding:.4rem .75rem; white-space:nowrap; }
.favorite-button.favorite-button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 32px; width:32px; height:32px; min-width:32px; min-height:32px; max-height:32px; padding:0; border:1px solid transparent; border-radius:50%; color:#f8fafc; background:rgb(0 0 0 / 65%); backdrop-filter:blur(4px); cursor:pointer; vertical-align:middle; }
.favorite-button.favorite-button svg { width:19px; height:19px; fill:currentColor; stroke:none; pointer-events:none; }
.favorite-button.favorite-button[aria-pressed=true] { color:#ff87af; background:rgb(100 22 48 / 85%); border-color:rgb(225 29 72 / 60%); }
.favorite-button.favorite-button.is-overlay { position:absolute; top:6px; right:6px; z-index:2; }
.favorite-button.favorite-button.is-inline { position:static; margin:0; }
.favorite-button:hover { transform:scale(1.08); }
.favorite-button:focus-visible { outline:2px solid var(--accent);outline-offset:3px; }
.favorite-button:disabled { opacity:.55;cursor:progress; }
.reading-series-actions>.favorite-button { align-self:end; }
.library-multi-select { position:relative; min-width:160px; max-width:340px; flex:1 1 200px; display:flex; flex-direction:column; gap:.3rem; }
.library-selection-toggle { display:flex; align-items:center; justify-content:space-between; gap:.75rem; width:100%; min-height:42px; padding:.5rem .7rem; border:1px solid var(--border-color); border-radius:7px; color:var(--text-primary); background:var(--bg-secondary); text-align:left; cursor:pointer; }
.library-selection-toggle>span:first-child { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.library-selection-options { position:absolute; top:100%; left:0; z-index:50; min-width:100%; width:max-content; max-width:min(360px,calc(100vw - 2.5rem)); max-height:330px; overflow:auto; margin-top:.25rem; padding:.65rem; border:1px solid var(--border-color); border-radius:9px; background:var(--bg-card); box-shadow:0 12px 32px #0008; }
.library-selection-options label { display:flex!important; flex-direction:row!important; align-items:center; gap:.65rem; padding:.5rem .35rem; margin:0; cursor:pointer; white-space:normal!important; }
.library-selection-options input[type=checkbox] { flex:0 0 18px; width:18px; height:18px; min-width:18px; min-height:18px; margin:0; padding:0; accent-color:var(--accent); }
.library-selection-options .btn { margin-top:.5rem; }
.library-selection-toggle:focus-visible { outline:2px solid var(--accent);outline-offset:2px; }
.reading-catalog-toolbar .library-multi-select { flex:1 1 175px; max-width:300px; }
@media(forced-colors:active) { .favorite-button.favorite-button { border:1px solid ButtonText;background:ButtonFace;color:ButtonText; } .favorite-button[aria-pressed=true] { outline:2px solid Highlight; } }

.catalog-heading, .catalog-heading-actions { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.catalog-heading-actions { justify-content:flex-end; }
@media(max-width:700px) { .catalog-heading-actions { justify-content:flex-start; } }

/* A filter label must not inherit a 12rem flex basis inside this column. */
.library-multi-select>label { display:block; flex:0 0 auto; margin:0; }
.library-selection-toggle { box-sizing:border-box; font:inherit; }
.library-selection-options label { flex:0 0 auto; }
.library-selection-options.library-selection-options input[type=checkbox] { box-sizing:border-box; width:18px; height:18px; min-height:18px; max-height:18px; }

.reading-batch-options,.reading-batch-actions { display:flex; flex-wrap:wrap; align-items:end; gap:.75rem; margin:1rem 0; }
.reading-batch-options>label:not(.reading-check) { display:flex;flex-direction:column;gap:.4rem; }
.reading-batch-options select { min-height:42px;padding:.6rem;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px; }
.reading-batch-options .reading-check { margin:0;min-height:42px; }
.reading-batch-heading { display:flex;align-items:center;gap:.8rem; }
.reading-batch-heading p { margin:.4rem 0; }
.reading-batch-current-cover { width:48px;height:64px;object-fit:contain; }
.reading-batch-preview { display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:1rem;align-items:start;margin-top:1rem; }
.reading-batch-candidate-cover { display:block;width:100%;max-height:220px;object-fit:contain;margin-bottom:.75rem; }
.reading-batch-description { max-height:220px;overflow:auto;white-space:pre-wrap; }
.reading-batch-book .reading-check { display:flex;align-items:center;gap:.5rem;margin:.65rem 0; }
.reading-batch-book input[type=checkbox],.reading-batch-options input[type=checkbox] { width:18px;height:18px;flex:0 0 18px;margin:0; }
.reading-batch-overlay { position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:1rem;background:rgb(8 12 22 / 70%);backdrop-filter:blur(5px); }
@media(max-width:560px) { .reading-batch-preview {grid-template-columns:minmax(0,1fr);} .reading-batch-candidate-cover {max-width:180px;} }

.reading-batch-preview a { color:var(--accent); }
.reading-batch-actions .btn:disabled { opacity:.55;cursor:not-allowed; }

/* Google Books settings: align controls with the input instead of stretching. */
.reading-provider-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .75rem;
    margin: 1rem 0;
}
.reading-provider-actions label {
    flex: 0 1 28rem;
    min-width: 0;
    margin: 0;
}
.reading-provider-actions input { width: 100%; }
.reading-provider-actions .btn { align-self: flex-end; }

/* Keep reading controls beside the cover and review actions in one aligned row. */
.reading-detail-summary .reading-detail-field { margin:.65rem 0 .5rem; }
.reading-book-actions { align-items:stretch; flex-wrap:nowrap; margin:.5rem 0 0; padding-bottom:.25rem; }
.reading-book-actions>.btn { flex:1 1 auto; min-width:0; display:inline-flex; align-items:center; justify-content:center; line-height:1.2; min-height:42px; box-sizing:border-box; padding:.5rem .7rem; white-space:normal; font-size:.85rem; }
.reading-book-actions>.favorite-button { flex-shrink:0; align-self:center; }
.reading-candidate-preview { padding:0; background:transparent; }
.reading-candidate-summary { display:flex; align-items:start; gap:1rem; }
.reading-candidate-summary>img { width:80px; max-height:120px; object-fit:contain; flex-shrink:0; border-radius:.3rem; }
.reading-candidate-summary>div { min-width:0; overflow-wrap:anywhere; }
.reading-candidate-summary h3 { margin:0 0 .5rem; }
.reading-candidate-languages { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.reading-candidate-options { display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; margin:1rem 0; }
.reading-candidate-options .reading-check { margin:0; }
.reading-candidate-actions { display:flex; align-items:stretch; flex-wrap:nowrap; gap:.5rem; padding:.5rem 0; margin-top:1rem; }
.reading-candidate-actions>.btn { flex:1 1 0; min-width:0; display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; min-height:42px; padding:.5rem .6rem; white-space:normal; line-height:1.2; font-size:.85rem; }
@media(max-width:560px) { .reading-candidate-languages { grid-template-columns:minmax(0,1fr); gap:0; } }
@media(max-width:560px) {
    .reading-detail-summary { display:grid; grid-template-columns:80px minmax(0,1fr); gap:.5rem 1rem; }
    .reading-detail-summary>img { width:80px; grid-column:1; grid-row:1/span 4; max-height:150px; }
    .reading-detail-summary>div { display:contents; }
    .reading-detail-summary>div>h3,.reading-detail-summary>div>p,.reading-detail-summary>div>small,.reading-detail-summary>div>progress { grid-column:2; margin:0; }
    .reading-detail-summary>div>.reading-detail-field,.reading-detail-summary>div>.reading-book-actions { grid-column:1/-1; }
}

.reading-editor-cover { margin:0 0 1.25rem; padding-bottom:1rem; border-bottom:1px solid var(--border-color); }
.reading-editor-cover h3 { margin:0 0 .75rem; font-size:1rem; }
.reading-editor-cover>div { display:flex; align-items:start; gap:1rem; min-width:0; }
.reading-editor-cover img { width:72px; max-height:108px; object-fit:contain; border-radius:.4rem; flex-shrink:0; }
.reading-editor-cover>div>div { display:flex; flex-direction:column; align-items:start; gap:.75rem; min-width:0; flex:1; }
.reading-editor-cover .reading-cover-upload { display:flex; flex-direction:column; gap:.4rem; max-width:100%; min-width:0; }
.reading-editor-cover input[type=file] { max-width:100%; min-width:0; width:100%; }
.reading-editor-cover [role=status] { margin:.75rem 0 0; }
