/* A continuous cabinet: row heights keep each cover resting on the same wooden shelf. */
.eb-wood{--wood-row:224px;--wood-cell:136px;--wood-cover:164px;--wood-grain:repeating-linear-gradient(2deg,#b67f5614 0 1px,transparent 1px 5px,#4c271f12 5px 6px,transparent 6px 13px);min-width:0;border:8px solid #a87555;border-radius:12px;background:#593629;box-shadow:0 12px 30px #39201725,inset 0 0 0 1px #e6c199;color:#fff1d7;container:wood-cabinet / inline-size}
.eb-wood *{box-sizing:border-box}
.eb-wood [hidden]{display:none!important}
.eb-wood-top,.eb-wood-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:var(--wood-grain),linear-gradient(180deg,#e1b790,#b8825e 55%,#b87f59);color:#352018;padding:12px 16px;border-top:1px solid #f4d4ad;border-bottom:1px solid #562e21;box-shadow:inset 0 1px 0 #ffedd360}
.eb-wood-label{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;line-height:1.6}
.eb-wood-label>span{font-size:26px!important}.eb-wood-label strong{font-weight:700}.eb-wood-label small{font-size:12px;opacity:.85}
.eb-wood-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;flex:1 1 510px;justify-content:flex-end}
.eb-wood-tools label{min-width:0;flex:1 1 128px;max-width:210px;position:relative}
.eb-wood-tools .eb-wood-search{flex:1.4 1 150px;max-width:none}
.eb-wood .eb-wood-tools :is(input,select){display:block;width:100%;min-height:40px;min-width:0;border:1px solid #e8bf984d;border-radius:20px;background:#4c2e26;color:#fff0d9;padding:8px 13px;font:inherit;font-size:12px;box-shadow:inset 0 2px 5px #21130d55;outline-offset:2px}
.eb-wood .eb-wood-search input{padding-right:34px}.eb-wood-search>span:last-child{position:absolute;right:12px;top:5px;font-size:22px!important;color:#e7c49c;pointer-events:none}.eb-wood input::placeholder{color:#e9cbae;opacity:1}
.eb-wood-viewport{max-height:480px;overflow-y:auto;overscroll-behavior:contain;background:repeating-linear-gradient(91deg,#dfad7220 0 1px,transparent 1px 6px,#180e0718 6px 7px,transparent 7px 19px),linear-gradient(90deg,#4b2e25,#734b3a 45%,#503126);box-shadow:inset 10px 0 15px #1b0c0850,inset -10px 0 15px #1b0c0850;scrollbar-width:thin;scrollbar-color:#d7ad7f #4b2c22}
.eb-wood-books{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--wood-cell)),1fr));grid-auto-rows:var(--wood-row);gap:0;min-height:var(--wood-row);background:linear-gradient(180deg,#1d0d0859,transparent 28%,transparent 90%,#b78560 90%,#e6bd90 91%,#ab7351 95%,#573225 99%,#27140e);background-size:100% var(--wood-row)}
.eb-wood-book{position:relative;display:flex;align-items:flex-end;justify-content:center;min-width:0;padding:20px 15px calc(var(--wood-row) * .1)}
.eb-wood .eb-wood-cover{position:relative;display:flex;align-items:flex-end;justify-content:center;max-width:100%;width:110px;height:var(--wood-cover);color:#fff5e2;text-decoration:none;filter:drop-shadow(7px 4px 4px #1b0c0870);transition:transform .2s;transform-origin:50% 100%;border-radius:1px 3px 2px 1px}
.eb-wood-cover::before{content:"";position:absolute;top:3px;right:-4px;bottom:1px;width:5px;background:repeating-linear-gradient(90deg,#ece5d6 0 1px,#bfb4a1 1px 2px);border-radius:0 3px 2px 0;z-index:-1;transform:skewY(15deg)}
.eb-wood .eb-wood-cover>img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:bottom;border-radius:1px 3px 2px 1px;background:#eee7db}
.eb-wood .eb-wood-cover .eb-fallback-cover{width:110px;height:100%;min-height:0;padding:16px 12px;gap:0;justify-content:center;overflow:hidden;background:linear-gradient(110deg,#15372d,#365448);border-color:#c8ae79;box-shadow:inset 0 0 0 5px #254737,inset 0 0 0 6px #c8ae7977}
.eb-wood .eb-fallback-cover :is(span,small){display:none}.eb-wood .eb-fallback-cover strong{flex:none;max-height:100%;font-size:12px!important;color:#fff4d9;line-height:1.6;-webkit-line-clamp:4}
.eb-wood-book:nth-child(3n+2) .eb-fallback-cover{background:linear-gradient(110deg,#24384e,#405771);box-shadow:inset 0 0 0 5px #24384e,inset 0 0 0 6px #c8ae7977}.eb-wood-book:nth-child(3n) .eb-fallback-cover{background:linear-gradient(110deg,#512f31,#79514f);box-shadow:inset 0 0 0 5px #512f31,inset 0 0 0 6px #c8ae7977}
.eb-wood .eb-wood-cover:hover,.eb-wood .eb-wood-cover:focus-visible{transform:translateY(-5px) rotate(-2deg)}
.eb-wood-caption{position:absolute;left:-8px;right:-8px;bottom:0;padding:8px;background:#302019f2;color:#fff4dc;border:1px solid #d4ad76;border-radius:5px;font-size:11px!important;line-height:1.6;overflow-wrap:anywhere;opacity:0;pointer-events:none;transition:opacity .2s;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.eb-wood-cover:hover .eb-wood-caption,.eb-wood-cover:focus-visible .eb-wood-caption{opacity:1}
.eb-wood :is(a,input,select,button,.eb-wood-viewport):focus-visible{outline:3px solid #fff1b5;outline-offset:3px}
.eb-wood-bottom{padding-block:9px;justify-content:center;position:relative;gap:14px}.eb-wood-bottom output{padding:5px 18px;border-radius:20px;background:#4c2e26;color:#fff0d9;font-size:12px;border:1px solid #eac9a26b;text-align:center}
.eb-wood .eb-wood-bottom button{border:1px solid #65412d;border-radius:18px;background:#f1d2ab;color:#392317;padding:6px 13px;min-height:34px;font:inherit;font-size:12px;cursor:pointer}
.eb-wood-empty{padding:70px 20px;margin:0;text-align:center;color:#fff0d9;line-height:1.8;font-size:12px}
.eb-wood-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@container wood-cabinet (max-width:580px){.eb-wood-top{padding:12px;gap:10px}.eb-wood-label{width:100%;justify-content:center}.eb-wood-tools{flex-basis:100%;justify-content:center}.eb-wood-tools .eb-wood-search{flex-basis:100%}.eb-wood-books{--wood-cell:112px;--wood-row:200px;--wood-cover:142px}.eb-wood-book{padding-inline:12px}.eb-wood .eb-wood-cover{width:95px}.eb-wood-viewport{max-height:420px}}
@container wood-cabinet (max-width:300px){.eb-wood-tools label{max-width:none;flex-basis:100%}.eb-wood-label small{width:100%;text-align:center}.eb-wood-books{--wood-cell:95px;--wood-row:185px;--wood-cover:130px}.eb-wood-book{padding-inline:10px}.eb-wood .eb-wood-cover{width:84px}.eb-wood-viewport{max-height:390px}}
/* The editor's miniature uses the same wood tones without loading real books. */
.eb-wood-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:12px 14px 0;border:7px solid #b07d58;border-radius:6px;background:repeating-linear-gradient(92deg,#d1a47724 0 1px,transparent 1px 8px),#633f30}
.eb-wood-mini>span{display:flex;justify-content:center;align-items:end;height:80px;border-bottom:7px solid #b98a62;box-shadow:0 4px 3px #2c130e55;padding-bottom:3px}.eb-wood-mini i{display:block;width:30px;height:54px;background:#254a3e;border:1px solid #e2cc97;box-shadow:3px 1px 0 #ded5bc}.eb-wood-mini>span:nth-child(3n+2) i{background:#c6a870}.eb-wood-mini>span:nth-child(3n) i{background:#375876}
/* Only the cabinet changes color. Uploaded book covers retain their original colors. */
.eb-wood,.eb-wood-mini,.ebook-tone-swatch{--wood-frame:#a87555;--wood-surface:#b8825e;--wood-highlight:#e1b790;--wood-back:#734b3a;--wood-ink:#352018;--wood-well:#4c2e26;--wood-text:#fff0d9;--wood-grain:repeating-linear-gradient(2deg,#ffffff09 0 1px,transparent 1px 5px,#0000000a 5px 6px,transparent 6px 13px)}
.eb-wood{border-color:var(--wood-frame);background:var(--wood-back);color:var(--wood-text);box-shadow:0 12px 30px #211a1625,inset 0 0 0 1px var(--wood-highlight)}
.eb-wood-top,.eb-wood-bottom{background:var(--wood-grain),linear-gradient(180deg,color-mix(in srgb,var(--wood-surface) 88%,var(--wood-highlight)),var(--wood-surface) 60%,color-mix(in srgb,var(--wood-surface) 92%,black));color:var(--wood-ink);border-top-color:var(--wood-highlight);border-bottom-color:var(--wood-well)}
.eb-wood-label small{opacity:1}
.eb-wood .eb-wood-tools :is(input,select),.eb-wood-bottom output{background:var(--wood-well);color:var(--wood-text);border-color:color-mix(in srgb,var(--wood-highlight) 45%,transparent)}
.eb-wood .eb-wood-search>span:last-child,.eb-wood input::placeholder{color:var(--wood-text)}
.eb-wood-viewport{background:repeating-linear-gradient(91deg,#ffffff0d 0 1px,transparent 1px 6px,#00000012 6px 7px,transparent 7px 19px),linear-gradient(90deg,color-mix(in srgb,var(--wood-back) 70%,black),var(--wood-back) 45%,color-mix(in srgb,var(--wood-back) 75%,black));scrollbar-color:var(--wood-highlight) var(--wood-well)}
.eb-wood-books{background-image:linear-gradient(180deg,#00000040,transparent 28%,transparent 90%,var(--wood-surface) 90%,var(--wood-highlight) 91%,var(--wood-frame) 95%,var(--wood-well) 99%,#171717);background-size:100% var(--wood-row)}
.eb-wood .eb-wood-caption{background:var(--wood-well);color:var(--wood-text);border-color:var(--wood-highlight)}
.eb-wood .eb-wood-bottom button{background:var(--wood-surface);color:var(--wood-ink);border-color:var(--wood-well)}
.eb-wood-empty{color:var(--wood-text);background:var(--wood-well)}
.eb-wood :is(a,input,select,button,.eb-wood-viewport):focus-visible{outline-color:var(--wood-highlight)}
.eb-wood-mini{border-color:var(--wood-frame);background:repeating-linear-gradient(92deg,#ffffff12 0 1px,transparent 1px 8px),var(--wood-back)}
.eb-wood-mini>span{border-bottom-color:var(--wood-surface)}
.ebook-tone-picker{margin:18px 0;padding:15px;border:1px solid var(--admin-line,#d9dfd5);border-radius:12px;background:var(--admin-paper,#f8f8f1)}
.ebook-tone-picker h3{font-size:13px;margin:0 0 6px;font-weight:500;color:var(--admin-primary,#244b3b)}
.ebook-tone-picker>p{font-size:11px;color:var(--admin-muted,#68745f);line-height:1.8;margin:0 0 13px}
.ebook-tone-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ebook-tone-options button{position:relative;min-width:0;padding:7px;border:1px solid var(--admin-line,#d9dfd5);border-radius:9px;background:#fffefa;color:var(--admin-ink,#263c32);font:inherit;font-size:11px;cursor:pointer;text-align:center}
.ebook-tone-options button:hover{border-color:var(--admin-gold,#b49a63)}
.ebook-tone-options button[aria-pressed=true]{border-color:var(--admin-gold,#b49a63);box-shadow:0 0 0 1px var(--admin-gold,#b49a63);background:var(--admin-soft,#eef2eb)}
.ebook-tone-options button[aria-pressed=true]::after{content:'✓';position:absolute;top:5px;right:5px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--admin-primary,#244b3b);color:#fff;font-size:12px;box-shadow:0 1px 4px #0003}
.ebook-tone-options button:focus-visible{outline:2px solid var(--admin-primary,#244b3b);outline-offset:3px}
.ebook-tone-swatch{display:flex;align-items:flex-end;justify-content:center;gap:7px;height:49px;margin-bottom:6px;padding:8px 9px 0;border:4px solid var(--wood-frame);border-bottom:7px solid var(--wood-surface);border-radius:5px;background:linear-gradient(90deg,#0003,transparent),var(--wood-back)}
.ebook-tone-swatch i{display:block;width:13px;height:27px;border:1px solid #dbceab;background:#f1e5c9;box-shadow:2px 0 #aaa491}
.ebook-tone-swatch i:nth-child(2){height:32px;background:#294d3b}.ebook-tone-swatch i:nth-child(3){height:24px;background:#c2a167}
@media(prefers-reduced-motion:reduce){.eb-wood .eb-wood-cover,.eb-wood-caption{transition:none}.eb-wood .eb-wood-cover:hover,.eb-wood .eb-wood-cover:focus-visible{transform:none}}
@media(forced-colors:active){.eb-wood,.eb-wood-top,.eb-wood-bottom,.eb-wood-viewport,.eb-wood-books{background:Canvas;color:CanvasText;border-color:CanvasText}.eb-wood-cover{filter:none}.eb-wood-caption{background:Canvas;color:CanvasText;border-color:CanvasText}}
