.books-page{max-width:1180px;margin-inline:auto;padding:24px 18px 48px;min-width:0}.books-heading{padding:24px 0 32px;max-width:720px}.books-heading h1{font-size:clamp(1.7rem,3vw,2.8rem);line-height:1.6}.books-page h2{font-size:1.25rem}.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:22px;margin:24px 0}.books-search,.books-actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.books-search label{flex:1;min-width:150px}.books-page label{display:grid;gap:7px;font-size:.9rem}.books-page input,.books-page select,.books-page textarea{width:100%;max-width:100%;border:1px solid var(--border,#ccd2d9);background:var(--surface,#fff);color:inherit;padding:10px 12px;border-radius:10px;font:inherit;min-height:44px}.books-page input[type=checkbox]{width:20px;min-height:20px}.books-page button,.books-page .button{min-height:44px}.book-card{border:1px solid var(--border,#dfe4e7);border-radius:16px;overflow:hidden;color:inherit;text-decoration:none;background:var(--surface,#fff);transition:transform .15s,box-shadow .15s}.book-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000010}.book-card-cover{background:var(--surface-soft,#edf0ed);display:grid;place-items:center;min-height:240px;padding:24px;color:var(--text-muted,#55645e);text-align:center}.book-card-cover img{max-width:100%;width:auto;height:240px;object-fit:contain;box-shadow:0 10px 20px #0002}.book-card-copy{padding:20px}.book-card-copy p{font-size:.9rem;line-height:1.9}.book-card-copy>p:nth-of-type(2){display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.book-hero{display:grid;grid-template-columns:260px minmax(0,1fr);gap:36px;padding:32px 0}.book-hero h1{font-size:clamp(1.5rem,3vw,2.5rem)}.book-hero p{line-height:1.9}.book-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:32px}.book-toc{border:1px solid var(--border,#ddd);border-radius:14px;padding:20px;align-self:start}.book-toc summary{padding:12px 0;cursor:pointer}.book-toc-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--border,#ddd);color:inherit;text-decoration:none}.book-toc small{font-size:.75rem;opacity:.75}.book-empty{padding:32px;border:1px solid var(--border,#ddd);border-radius:14px;text-align:center}.books-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.books-wide{grid-column:1/-1;min-width:0}.books-page .admin-panel{padding:22px;margin-block:20px}.books-page .rich-editor-surface{min-height:180px;max-height:520px;overflow:auto;border:1px solid var(--border,#ddd);border-radius:10px;padding:16px;line-height:2}.books-page .rich-editor-surface img,.book-reading article img{max-width:100%;height:auto}.book-cover-preview{width:130px;height:170px;object-fit:contain;display:block;margin-block:16px}.book-dialog{width:min(980px,96vw);max-height:92dvh;overflow:auto;background:var(--surface,#fff);color:inherit;border:1px solid var(--border,#ddd);border-radius:18px;padding:24px}.book-dialog::backdrop{background:#0009}.book-node{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--border,#ddd)}.book-node strong{flex:1;min-width:100px}.book-chapter{margin-block:24px}.books-page [data-progress]{position:sticky;bottom:10px;padding:12px;background:var(--surface,#fff);border:1px solid var(--border,#ddd);z-index:3}.books-page progress{width:100%}.books-page [role=status]:not(:empty){padding:10px;border-inline-start:3px solid #569077}.book-reading{max-width:1000px}.book-reading h1{margin-block:24px}.book-study-layout{display:grid;grid-template-columns:minmax(0,500px) minmax(180px,1fr);gap:20px}.book-study .board-shell{width:100%;aspect-ratio:1;border-radius:0}.book-study .chessboard{width:100%;height:100%}.book-study .move-list{max-height:320px;overflow:auto}.book-study .books-actions{margin-block:12px}.books-page :focus-visible{outline:3px solid #599b86;outline-offset:3px}.books-page [hidden]{display:none!important}@media(max-width:760px){.book-hero{grid-template-columns:100px minmax(0,1fr);gap:16px}.book-hero .book-card-cover{padding:10px;min-height:140px;align-self:start}.book-hero .book-card-cover img{height:130px;box-shadow:none}.book-detail-grid,.books-form,.book-study-layout{grid-template-columns:1fr}.books-page{padding:16px 12px 32px}.book-dialog{padding:16px}.book-toc{padding:14px}.book-study .move-list{max-height:160px}.books-actions{gap:8px}.books-page .admin-panel{padding:16px}.book-hero h1{font-size:1.4rem}}
.book-study-authoring{margin-block:1rem;padding:1rem;border:1px solid var(--border-color,rgba(128,128,128,.3));border-radius:14px;min-width:0}.book-study-authoring .books-actions{margin-block:.75rem}.book-study-authoring [data-study-summary]{font-size:.95rem;line-height:1.8}.book-study-authoring [data-study-raw]{margin-block:1rem}

.book-study-popup .tactic-composer-board-head>div,.book-study-popup .tactic-composer-side>header>div{display:grid;gap:.25rem;text-align:start}
.book-study-popup .tactic-composer-side>header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-block-end:.75rem}
.book-study-popup .tactic-composer-board-head>button,.book-study-popup [data-add-branch]{min-height:2.5rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;font:inherit}
.book-variant-editor,.book-study-variant{padding:20px;margin-block:20px;border:1px solid var(--border,#dfe4e7);border-radius:16px;background:var(--surface,#fff);min-width:0}.book-variant-editor h4{flex:1;margin:0;min-width:100px}.book-variant-editor>label,.book-variant-answer{margin-block:16px}.book-variant-editor details label{margin-block:12px}.book-variant-preview .editor-board-visual-actions{display:none}.book-variant-preview .editor-board-visual-card{max-width:420px}.book-check{display:flex!important;align-items:center;gap:8px}.book-variant-answer button{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:inherit;font:inherit}.book-answer-paths .active{border-color:var(--primary,#428b71);box-shadow:0 0 0 2px var(--primary,#428b71)}.book-section-nav{display:flex;flex-wrap:wrap;gap:14px;align-items:stretch;justify-content:space-between;border-top:1px solid var(--border);padding-top:24px;margin-top:32px}.book-section-nav a{display:grid;gap:5px;min-width:0;text-decoration:none;white-space:normal}.book-section-nav span,.book-section-nav small{font-weight:400}.book-save-spinner{width:18px;height:18px;display:inline-block;vertical-align:middle;margin-inline-start:8px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:book-spin .75s linear infinite}@keyframes book-spin{to{transform:rotate(360deg)}}@media(max-width:600px){.book-variant-editor,.book-study-variant{padding:14px}.book-section-nav>a{flex:1 1 100%}}@media(prefers-reduced-motion:reduce){.book-save-spinner{animation-duration:1.5s}}
/* Reading diagrams stay within a short desktop viewport. */
.book-reading{--reading-diagram-size:min(480px,max(240px,calc(100dvh - 280px)))}.book-reading .article-chess-board.article-board-enhanced{width:min(100%,calc(var(--reading-diagram-size) + 240px));margin:20px auto;padding:14px}.book-reading .article-board-widget{grid-template-columns:minmax(0,1fr) minmax(180px,210px);gap:14px}.book-reading .article-board-stage{width:min(100%,var(--reading-diagram-size));justify-self:center}.book-reading .article-board-stage .board-shell{width:100%;aspect-ratio:1}.book-reading .article-board-moves{max-height:var(--reading-diagram-size)}.book-reading .book-study .books-actions button{min-height:36px;padding:6px 10px;font-size:.82rem}.book-reading .book-study .books-actions .chess-icon-control{width:36px;padding:6px}.book-reading .book-section-nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"previous index next";align-items:stretch;direction:ltr}.book-reading .book-section-nav>a{direction:rtl;align-content:center;max-width:100%;font-size:.88rem}.book-section-previous{grid-area:previous;justify-self:start}.book-section-index{grid-area:index;justify-self:center}.book-section-next{grid-area:next;justify-self:end}.books-page .rich-editor-surface{font-weight:400}@media(max-width:900px){.book-reading .article-board-widget{grid-template-columns:1fr}.book-reading .article-board-side{max-height:150px;min-height:0}.book-reading .article-board-moves{max-height:150px}}@media(max-width:600px){.book-reading .book-section-nav{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"previous next" "index index"}.book-reading .book-section-nav>a{min-width:0;width:100%;justify-self:stretch}.book-reading .book-study .books-actions button{min-height:40px}.book-reading .book-study .books-actions .chess-icon-control{width:40px}}
.book-reading .article-body-content,.book-detail-grid>.article-body-content{font-weight:400}

/* Catalog: compact rows on phones, a quiet cover grid on wider screens. */
.book-catalog{padding-top:28px;max-width:1240px}
.book-catalog-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 32px;margin-bottom:24px;border:1px solid var(--brand-border,var(--border));border-radius:24px;background:linear-gradient(125deg,var(--brand-soft),var(--surface));overflow:hidden}
.book-catalog-heading h1{font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.5;margin:8px 0}
.book-catalog-heading p{margin:0;color:var(--muted-strong)}
.book-catalog-emblem{width:112px;flex:none;padding:14px;color:var(--link);transform:rotate(-6deg)}
.book-catalog-search{display:grid;grid-template-columns:minmax(0,2fr) minmax(140px,1fr) auto;gap:14px;padding:18px;border:1px solid var(--border);border-radius:18px;background:var(--surface)}
.book-catalog-search label{min-width:0;font-size:.78rem;color:var(--muted-strong)}
.book-catalog-search input{border-radius:10px;background:var(--surface-subtle,var(--surface));font-size:.88rem}
.book-search-input{display:block;position:relative}
.book-search-input svg{position:absolute;width:19px;height:19px;inset-inline-start:12px;top:50%;transform:translateY(-50%);pointer-events:none}
.book-search-input input{padding-inline-start:39px}
.book-catalog-results{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:28px}
.book-catalog-results h2{display:flex;align-items:center;gap:12px;margin:0;font-size:1.1rem}
.book-catalog-results h2 span{font-size:.75rem;font-weight:400;color:var(--muted)}
.book-catalog-clear{font-size:.78rem;color:var(--link);padding:8px 0;text-underline-offset:4px}
.book-catalog .books-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin:18px 0 24px}
.book-catalog .book-card{display:flex;flex-direction:column;min-width:0;border-radius:18px;box-shadow:var(--shadow-xs);background:var(--surface)}
.book-catalog .book-card-cover{height:224px;min-height:0;padding:16px;background:linear-gradient(145deg,var(--surface-subtle,var(--surface)),var(--brand-soft));overflow:hidden}
.book-catalog .book-card-cover img{width:100%;height:192px;object-fit:contain;box-shadow:none;filter:drop-shadow(0 7px 9px #0002)}
.book-cover-placeholder{display:grid;gap:8px;justify-items:center;color:var(--muted);font-size:.8rem}
.book-cover-placeholder svg{width:66px;height:66px;opacity:.7}
.book-catalog .book-card-copy{padding:18px;display:flex;flex:1;flex-direction:column;gap:6px;min-width:0;text-align:right}
.book-catalog .book-card-copy h2{font-size:1.02rem;line-height:1.8;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.book-catalog .book-card-copy p{margin:0;line-height:1.8;min-width:0}
.book-catalog .book-card-author{font-size:.77rem;color:var(--muted-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.book-catalog .book-card-copy .book-card-summary{font-size:.8rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.book-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-top:12px;margin-top:auto;font-size:.68rem;color:var(--muted-strong)}
.book-card-access{padding:3px 8px;border-radius:6px;background:var(--surface-subtle);white-space:nowrap}
.book-card-access.is-free{background:var(--brand-soft);color:var(--link)}
.book-catalog-pagination{min-height:64px;text-align:center}
.book-catalog-pagination nav{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.book-catalog-status{min-height:24px;font-size:.8rem;color:var(--muted)}
.book-catalog [data-catalog-sentinel]{height:1px}
.book-catalog [aria-disabled=true]{cursor:wait;opacity:.65}
@media(hover:hover){.book-catalog .book-card:hover{border-color:var(--brand-border);transform:translateY(-3px);box-shadow:var(--shadow-sm)}}
@media(max-width:600px),(max-width:900px) and (hover:none) and (pointer:coarse){
 .book-catalog.container{width:100%;padding:18px 14px 32px}
 .book-catalog-heading{padding:0 0 18px;margin:0;border:0;border-radius:0;background:none;gap:12px}
 .book-catalog-heading h1{font-size:1.35rem;line-height:1.6;margin:4px 0}
 .book-catalog-heading .eyebrow{font-size:.66rem}
 .book-catalog-heading p{font-size:.76rem}
 .book-catalog-emblem{width:62px;padding:5px}
 .book-catalog-search{grid-template-columns:minmax(0,1fr) auto;padding:12px;gap:10px;border-radius:14px}
 .book-catalog-search .book-catalog-query{grid-column:1/-1}
 .book-catalog-search label{gap:4px;font-size:.68rem}
 .book-catalog-search input{min-height:40px;padding-block:8px;font-size:.8rem}
 .book-catalog-search button{min-height:40px;padding:8px 14px;font-size:.8rem}
 .book-catalog-results{margin-top:22px}
 .book-catalog-results h2{font-size:.95rem;gap:8px}
 .book-catalog-results h2 span,.book-catalog-clear{font-size:.68rem}
 .book-catalog .books-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:10px 0 18px}
 .book-catalog .book-card{display:grid;direction:ltr;grid-template-columns:88px minmax(0,1fr);grid-template-areas:"cover copy";gap:14px;align-items:center;padding:14px 0;border:0;border-bottom:1px solid var(--border);border-radius:0;box-shadow:none;background:transparent;transform:none}
 .book-catalog .book-card-cover{grid-area:cover;width:88px;height:108px;padding:6px;border-radius:10px;direction:rtl}
 .book-catalog .book-card-cover img{height:96px;width:76px;filter:none}
 .book-catalog .book-card-copy{grid-area:copy;direction:rtl;padding:0;gap:3px;align-self:stretch}
 .book-catalog .book-card-copy h2{font-size:.88rem;line-height:1.7;-webkit-line-clamp:2}
 .book-catalog .book-card-author{font-size:.68rem}
 .book-catalog .book-card-copy .book-card-summary{font-size:.7rem;line-height:1.65;-webkit-line-clamp:1}
 .book-catalog .book-card-meta{padding-top:5px;gap:4px;font-size:.59rem}
 .book-catalog .book-card-access{padding:2px 5px}
 .book-catalog .book-cover-placeholder svg{width:40px;height:40px}
 .book-catalog .book-cover-placeholder{font-size:.62rem;gap:4px}

 /* Only the boards reach the screen edge; prose and controls retain padding. */
 html:has(.book-reading){scrollbar-gutter:auto}
 .book-reading.container{width:100%;padding-inline:0}
 .book-reading>nav.books-actions,.book-reading>h1,.book-reading>.book-empty,.book-reading>.book-section-nav{margin-inline:16px}
 .book-reading>.article-body-content{padding-inline:16px;min-width:0}
 .book-reading .article-chess-board.article-board-enhanced{width:calc(100% + 32px);max-width:none;margin:20px -16px;padding:0;border-inline:0;border-radius:0}
 .book-reading .article-board-widget{display:block;width:100%}
 .book-reading .article-board-stage{width:100%;max-width:none}
 .book-reading .article-board-stage .board-shell{width:100%;max-width:none;aspect-ratio:1}
 /* Chessground rounds its inline container size to a multiple of eight
    physical pixels. Override that rounding only on edge-to-edge boards. */
 .book-reading :is([data-article-board],.book-study-board) cg-container{width:100%!important;height:100%!important}
 .book-reading .article-board-player,.book-reading .article-board-caption,.book-reading .article-board-actions,.book-reading .article-board-side{margin-inline:16px}
 .book-reading .article-board-side{margin-block:12px}
 .book-reading .book-study>h2,.book-reading .book-study-variant>h3{margin-inline:16px}
 .book-reading .book-study-variant{padding:0;margin-block:24px;border-inline:0;border-radius:0;background:transparent}
 .book-reading .book-study-layout{display:block}
 .book-reading .book-study-layout>div:first-child>.books-actions{padding-inline:16px}
 .book-reading .book-study-layout>div:last-child{padding-inline:16px}
}



/* Publication state is visible only in the server-authorized admin projection. */
.book-publication-status{display:inline-flex;align-items:center;align-self:flex-start;gap:6px;max-width:100%;padding:4px 9px;border:1px solid var(--brand-border,var(--border));border-radius:7px;background:var(--brand-soft,var(--surface));color:var(--muted-strong);font-size:.72rem;font-weight:400;line-height:1.7}
.book-preview-notice{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:14px 18px;margin-block:16px;border:1px solid var(--brand-border,var(--border));border-radius:12px;background:var(--brand-soft,var(--surface));font-size:.85rem;line-height:1.9;min-width:0}
.book-preview-notice strong{white-space:nowrap}.book-preview-notice span{flex:1 1 220px;min-width:0}.book-preview-notice a{color:var(--link);text-underline-offset:4px}.book-chapter-heading{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-block:14px}.book-chapter-heading h3{margin:0}.book-chapter.is-unpublished{padding-inline-start:14px;border-inline-start:3px solid var(--brand-border,var(--border))}.book-toc summary .book-publication-status{margin-inline:6px;font-size:.66rem}
@media(max-width:600px){.book-preview-notice{padding:12px;font-size:.78rem}.book-reading>.book-preview-notice{margin-inline:16px}}
