/* CeibaBook v2.2 — catálogo cómodo, multi-vista y responsive */
header.bar{min-width:0}.search-container{min-width:190px}.search-container input{min-width:0;text-overflow:ellipsis}.bar-right{flex:0 0 auto}
@media(min-width:1180px){.search-container{max-width:370px;flex-basis:290px}}
#home{padding-top:72px}.hero-inner{padding:52px 20px 72px!important}.hero-ctas{align-items:center;justify-content:center;width:100%}.hero-ctas .pill-btn{min-width:220px;padding:0 22px!important;justify-content:center!important;gap:12px!important}.hero-ctas .pill-btn .disc{flex:0 0 40px}.stat-readout{flex-wrap:wrap;align-items:center}
@media(max-width:700px){#home{padding-top:64px}.hero-inner{padding:46px 16px 56px!important}.hero-ctas .pill-btn{width:min(100%,320px)!important}.stat-readout{gap:14px 24px}}
.catalog-commandbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0 12px;padding:10px;border:1px solid rgba(0,255,136,.14);border-radius:18px;background:linear-gradient(180deg,rgba(0,255,136,.045),rgba(0,0,0,.12));box-shadow:0 18px 44px rgba(0,0,0,.16)}
.catalog-filter-toggle,.catalog-view-switch button{height:40px;border:1px solid rgba(0,255,136,.18);border-radius:12px;background:rgba(255,255,255,.035);color:#eaf8f0;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 13px;transition:.2s}.catalog-filter-toggle:hover,.catalog-view-switch button:hover,.catalog-view-switch button.active{border-color:var(--neon-green);background:rgba(0,255,136,.1);color:var(--neon-green)}.catalog-filter-toggle b{min-width:20px;height:20px;display:grid;place-items:center;border-radius:999px;background:rgba(0,255,136,.16);font-size:10px;color:var(--neon-green)}
.catalog-sort-wrap{display:flex;align-items:center;gap:8px;margin-left:auto}.catalog-sort-wrap label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--color-sage)}.catalog-sort-wrap select{height:40px;border:1px solid rgba(0,255,136,.18);border-radius:12px;background:#0e1c15;color:#eaf8f0;padding:0 34px 0 12px;outline:0;color-scheme:dark}.catalog-sort-wrap select option{background:#0e1c15;color:#fff}.catalog-view-switch{display:flex;gap:5px}.catalog-view-switch button{width:40px;padding:0}
.catalog-filter-panel{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,.7fr);gap:14px;overflow:hidden;max-height:260px;opacity:1;transition:max-height .28s ease,opacity .2s ease,margin .28s ease;margin-bottom:12px}.catalog-filter-panel.collapsed{max-height:0;opacity:0;margin-bottom:0}.filter-group{border:1px solid rgba(0,255,136,.1);border-radius:16px;background:rgba(0,255,136,.025);padding:12px 13px;min-width:0}.filter-label{display:flex;align-items:center;gap:8px;margin-bottom:9px;color:#dbeae2;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.filter-label i{color:var(--neon-green)}
.filter-row{border:0!important;border-radius:0!important;background:transparent!important;padding:0!important;gap:7px!important}.filter-row button{border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.025);padding:8px 12px!important;font-size:11px!important}.filter-row button.active{color:#062016!important;border-color:transparent;background:var(--neon-green);box-shadow:0 6px 18px rgba(0,255,136,.13)}.filter-row button .pill-bg{display:none!important}
.catalog-language-row{margin:0!important;gap:7px!important}.catalog-language-row .lang-chip{padding:8px 12px!important;background:rgba(255,255,255,.025)!important;border-color:rgba(255,255,255,.09)!important}.catalog-language-row .lang-chip.active{background:var(--neon-green)!important;border-color:var(--neon-green)!important;color:#062016!important}
.catalog-results-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px}.catalog-results-head .cat-count{margin:0!important}.catalog-safe-cover-note{font-size:10px;color:rgba(255,255,255,.45);display:inline-flex;align-items:center;gap:6px}.catalog-safe-cover-note i{color:var(--neon-green)}
.grid-books{transition:.25s}.grid-books.catalog-view-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-books.catalog-view-shelf{grid-template-columns:repeat(2,minmax(0,1fr));padding:24px 18px 38px;border-radius:20px;background:linear-gradient(110deg,#321e11,#664326 4%,#704a2c 96%,#301c10);box-shadow:0 20px 55px rgba(0,0,0,.28),inset 0 2px rgba(255,255,255,.08);position:relative;overflow:hidden}.grid-books.catalog-view-shelf:after{content:"";position:absolute;left:10px;right:10px;bottom:15px;height:14px;border-radius:4px;background:linear-gradient(#9a693e,#60391f 70%,#321d10);box-shadow:0 9px 15px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.15)}.grid-books.catalog-view-shelf .book{z-index:2;transform-origin:bottom center}.grid-books.catalog-view-shelf .book:hover{transform:translateY(-8px) rotate(-.6deg)}
.grid-books.catalog-view-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.catalog-view-compact .book-front{padding:10px}.catalog-view-compact .cover-brand{font-size:6px}.catalog-view-compact .cover-medallion{width:46px;height:46px;font-size:16px}.catalog-view-compact .book-front h4{font-size:12px}.catalog-view-compact .hint{font-size:8px}
.grid-books.catalog-view-list{display:flex;flex-direction:column;gap:10px}.catalog-view-list .book{aspect-ratio:auto;min-height:150px}.catalog-view-list .book-flip{min-height:150px}.catalog-view-list .book-front{display:grid;grid-template-columns:96px 1fr 34px;grid-template-rows:auto 1fr auto;gap:8px 14px;padding:14px 16px}.catalog-view-list .cover-brand{grid-column:2;grid-row:1;position:static}.catalog-view-list .cover-medallion{grid-column:1;grid-row:1/4;width:82px;height:116px;border-radius:7px;margin:0;align-self:center}.catalog-view-list .cover-main{grid-column:2;grid-row:2;align-self:center}.catalog-view-list .cover-footer{grid-column:2;grid-row:3;position:static}.catalog-view-list .book-info-btn{grid-column:3;grid-row:1;position:static}.catalog-view-list .book-front h4{font-size:20px}.catalog-view-list .book-back{padding:18px 22px}
.generated-ceiba-cover{background:linear-gradient(145deg,var(--book-a,#47775d),var(--book-b,#15261c));overflow:hidden;isolation:isolate;box-shadow:inset 5px 0 0 rgba(0,0,0,.18),inset -1px 0 rgba(255,255,255,.1)}.generated-ceiba-cover:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.18),transparent 24%),linear-gradient(120deg,transparent 0 46%,rgba(255,255,255,.07) 47% 49%,transparent 50%);z-index:-1}.generated-ceiba-cover:after{content:"";position:absolute;inset:7px;border:1px solid rgba(255,255,255,.22);border-radius:10px;pointer-events:none}.cover-brand{font-size:7px;letter-spacing:.13em;font-weight:800;color:rgba(255,255,255,.76);display:flex;gap:5px;align-items:center;justify-content:space-between}.cover-brand span{font-size:5px;opacity:.66}.cover-medallion{width:72px;height:72px;border-radius:50%;border:1px solid rgba(255,255,255,.32);background:rgba(0,0,0,.15);display:grid;place-items:center;margin:auto;font-family:Georgia,serif;font-size:24px;font-weight:800;letter-spacing:.04em;color:#fff;box-shadow:inset 0 0 0 7px rgba(255,255,255,.035),0 8px 28px rgba(0,0,0,.24)}.cover-main{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.generated-ceiba-cover h4{font-family:Georgia,'Times New Roman',serif!important;text-shadow:0 2px 7px rgba(0,0,0,.26);font-size:18px!important;line-height:1.08!important}.generated-ceiba-cover .hint{font-size:9px;color:rgba(255,255,255,.76)}.cover-footer{display:flex;justify-content:space-between;align-items:center;font-size:8px;color:rgba(255,255,255,.65)}.cover-footer i{color:rgba(255,255,255,.75)}
.carousel-controls{margin-top:3rem!important;gap:3.4rem!important}.carousel-hint{margin-top:1.2rem!important}
@media(min-width:640px){.grid-books.catalog-view-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-books.catalog-view-shelf{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-books.catalog-view-compact{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:1024px){.grid-books.catalog-view-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-books.catalog-view-shelf{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-books.catalog-view-compact{grid-template-columns:repeat(7,minmax(0,1fr))}}
@media(max-width:760px){.catalog-commandbar{align-items:stretch}.catalog-sort-wrap{order:3;width:100%;margin:0}.catalog-sort-wrap select{flex:1}.catalog-filter-panel{grid-template-columns:1fr;max-height:440px}.catalog-filter-panel.collapsed{max-height:0}.catalog-view-switch{margin-left:auto}.catalog-safe-cover-note{display:none}.grid-books.catalog-view-shelf{padding:16px 9px 34px}.catalog-view-list .book-front{grid-template-columns:76px 1fr 30px}.catalog-view-list .cover-medallion{width:64px;height:96px}.catalog-view-list .book-front h4{font-size:16px}.carousel-controls{margin-top:2.4rem!important;gap:2.7rem!important}}
@media(max-width:420px){.catalog-filter-toggle span{display:none}.catalog-sort-wrap label{display:none}.catalog-view-switch button{width:36px}.grid-books.catalog-view-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.cover-medallion{width:58px;height:58px;font-size:18px}.generated-ceiba-cover h4{font-size:14px!important}}

/* ==========================================================
   v2.3 — WOOD SHELF / COMPACT CONTROLS (match Android v3.3)
   ========================================================== */
:root{--catalog-shelf-wood:#765035;--catalog-shelf-dark:#402817;--catalog-shelf-case:#5d3a24;--catalog-shelf-glow:rgba(255,255,255,.13);--catalog-shelf-row:286px}
html[data-shelf-theme="cedro"]{--catalog-shelf-wood:#765035;--catalog-shelf-dark:#402817;--catalog-shelf-case:#5d3a24}
html[data-shelf-theme="moderno"]{--catalog-shelf-wood:#c7b9a6;--catalog-shelf-dark:#887c6d;--catalog-shelf-case:#e5ded3}
html[data-shelf-theme="futurista"]{--catalog-shelf-wood:#0b6975;--catalog-shelf-dark:#042f37;--catalog-shelf-case:#071c28;--catalog-shelf-glow:rgba(0,229,255,.25)}
html[data-shelf-theme="selva"]{--catalog-shelf-wood:#4f6d39;--catalog-shelf-dark:#263d22;--catalog-shelf-case:#1c3520}
html[data-shelf-theme="cielo"]{--catalog-shelf-wood:#9fc9e5;--catalog-shelf-dark:#5e91b6;--catalog-shelf-case:#dceffd}
html[data-shelf-theme="espacial"]{--catalog-shelf-wood:#6f318d;--catalog-shelf-dark:#2a123e;--catalog-shelf-case:#120923;--catalog-shelf-glow:rgba(198,91,255,.25)}
html[data-shelf-theme="oceano"]{--catalog-shelf-wood:#13647a;--catalog-shelf-dark:#083747;--catalog-shelf-case:#082d3b}
html[data-shelf-theme="gotico"],html[data-shelf-theme="sombrio"]{--catalog-shelf-wood:#463832;--catalog-shelf-dark:#1d1715;--catalog-shelf-case:#181416}
html[data-shelf-theme="nordico"]{--catalog-shelf-wood:#d5c9b5;--catalog-shelf-dark:#a59a88;--catalog-shelf-case:#ece5db}
html[data-shelf-theme="neon"],html[data-shelf-theme="cyber"]{--catalog-shelf-wood:#6043a4;--catalog-shelf-dark:#181029;--catalog-shelf-case:#130b25;--catalog-shelf-glow:rgba(0,255,240,.25)}
html[data-shelf-theme="vintage"],html[data-shelf-theme="biblioteca"]{--catalog-shelf-wood:#8c6a47;--catalog-shelf-dark:#4d3824;--catalog-shelf-case:#6e5135}
html[data-shelf-theme="invierno"]{--catalog-shelf-wood:#cfe6f3;--catalog-shelf-dark:#8fb7ce;--catalog-shelf-case:#edf7fc}
html[data-shelf-theme="desierto"]{--catalog-shelf-wood:#b67b42;--catalog-shelf-dark:#79502b;--catalog-shelf-case:#c9985e}
html[data-shelf-theme="bosque"]{--catalog-shelf-wood:#513c66;--catalog-shelf-dark:#2c2038;--catalog-shelf-case:#2a1b40}
html[data-shelf-theme="industrial"]{--catalog-shelf-wood:#5e5851;--catalog-shelf-dark:#302d29;--catalog-shelf-case:#403c38}
html[data-shelf-theme="sakura"],html[data-shelf-theme="madres"]{--catalog-shelf-wood:#d69db3;--catalog-shelf-dark:#8e5d70;--catalog-shelf-case:#f0dbe3}
html[data-shelf-theme="halloween"]{--catalog-shelf-wood:#a05218;--catalog-shelf-dark:#2b1109;--catalog-shelf-case:#190d18}
html[data-shelf-theme="navidad"]{--catalog-shelf-wood:#7d2a30;--catalog-shelf-dark:#17351f;--catalog-shelf-case:#0f2517}
html[data-shelf-theme="padres"]{--catalog-shelf-wood:#35627d;--catalog-shelf-dark:#182d3e;--catalog-shelf-case:#213d50}
html[data-shelf-theme="primavera"]{--catalog-shelf-wood:#83ae5d;--catalog-shelf-dark:#3b6239;--catalog-shelf-case:#dceacb}

/* the old header search remains only as the internal search source; users use compact catalog search */
.header-search-legacy{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;margin:-1px!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.catalog-compact-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 10px;padding:0 2px}.catalog-compact-title{display:flex;flex-direction:column;min-width:0}.catalog-compact-title strong{font:800 clamp(20px,2vw,28px) 'Playfair Display',Georgia,serif;color:#f5fbf7}.catalog-compact-title small{font-size:10px;color:var(--color-sage);margin-top:2px}.catalog-compact-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.catalog-round-action{width:42px;height:42px;padding:0!important;border-radius:50%!important;border:1px solid rgba(0,255,136,.18)!important;background:rgba(255,255,255,.045)!important;color:#dce9e1!important;display:grid!important;place-items:center!important;position:relative;cursor:pointer;transition:.2s}.catalog-round-action:hover,.catalog-round-action[aria-expanded="true"]{border-color:var(--neon-green)!important;color:var(--neon-green)!important;background:rgba(0,255,136,.1)!important;transform:translateY(-1px)}.catalog-round-action b{position:absolute;right:-3px;top:-3px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--neon-green);color:#052016;font-size:8px;display:grid;place-items:center}.catalog-round-action b:empty,.catalog-round-action b:is(:not(:empty)){ }
.catalog-inline-search{display:flex;align-items:center;gap:7px;margin:0 0 10px;max-height:64px;opacity:1;overflow:hidden;transition:max-height .24s ease,opacity .18s ease,margin .24s ease}.catalog-inline-search.collapsed{max-height:0;opacity:0;margin-bottom:0}.catalog-inline-search input{flex:1;min-width:0;height:46px;border:1px solid rgba(0,255,136,.18);border-radius:15px;background:#101b15;color:#fff;padding:0 15px;font:500 13px Inter,sans-serif;outline:none}.catalog-inline-search input:focus{border-color:var(--neon-green);box-shadow:0 0 0 3px rgba(0,255,136,.08)}.catalog-inline-search button{width:46px;height:46px;border:0;border-radius:15px;background:var(--neon-green);color:#062016;cursor:pointer;font-size:16px}
.catalog-view-menu{position:relative}.catalog-view-switch{display:none;position:absolute;right:0;top:calc(100% + 8px);z-index:90;width:180px;padding:7px;background:#0d1812;border:1px solid rgba(0,255,136,.18);border-radius:15px;box-shadow:0 18px 45px rgba(0,0,0,.45);flex-direction:column;gap:3px}.catalog-view-switch.open{display:flex}.catalog-view-switch button{width:100%!important;height:38px!important;border:0!important;border-radius:10px!important;justify-content:flex-start!important;padding:0 11px!important;gap:9px!important;background:transparent!important;color:#d9e6de!important;font-size:11px}.catalog-view-switch button span{display:inline}.catalog-view-switch button:hover,.catalog-view-switch button.active{background:rgba(0,255,136,.1)!important;color:var(--neon-green)!important}
.catalog-filter-panel{grid-template-columns:minmax(180px,.55fr) minmax(0,1.4fr) minmax(170px,.45fr)!important;max-height:300px}.catalog-filter-panel.collapsed{max-height:0!important}.filter-group-wide{min-width:0}.catalog-sort-wrap{margin:0!important;display:block!important}.catalog-sort-wrap select{width:100%;height:38px}.catalog-results-head{margin:8px 0 9px}.catalog-safe-cover-note{display:none!important}

/* REAL BOOKCASE: frame + inner back + a wooden plank on every row */
.grid-books.catalog-view-shelf{--catalog-shelf-row:286px;display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;grid-auto-rows:var(--catalog-shelf-row)!important;gap:0!important;padding:17px 16px 0!important;border:18px solid var(--catalog-shelf-wood)!important;border-radius:13px!important;background-color:var(--catalog-shelf-case)!important;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--catalog-shelf-row) - 32px),rgba(0,0,0,.48) calc(var(--catalog-shelf-row) - 34px),var(--catalog-shelf-wood) calc(var(--catalog-shelf-row) - 31px),var(--catalog-shelf-dark) calc(var(--catalog-shelf-row) - 10px),var(--catalog-shelf-dark) var(--catalog-shelf-row))!important;box-shadow:0 28px 54px rgba(0,0,0,.42),inset 16px 0 24px -16px #000,inset -16px 0 24px -16px #000,inset 0 12px 18px -12px #000,0 0 0 5px var(--catalog-shelf-dark)!important;overflow:hidden;position:relative;isolation:isolate}.grid-books.catalog-view-shelf:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(92deg,rgba(255,255,255,.026) 0 1px,transparent 1px 7px);mix-blend-mode:overlay}.grid-books.catalog-view-shelf:after{display:none!important}.grid-books.catalog-view-shelf .book{align-self:end!important;justify-self:center!important;width:calc(100% - 10px)!important;max-width:145px!important;height:218px!important;min-height:218px!important;aspect-ratio:auto!important;margin:0 5px 40px!important;z-index:2!important;transform-origin:bottom center!important;filter:drop-shadow(0 8px 7px rgba(0,0,0,.34))}.grid-books.catalog-view-shelf .book:hover{transform:translateY(-12px) rotate(-1.2deg) scale(1.025)!important;z-index:8!important;filter:drop-shadow(0 18px 13px rgba(0,0,0,.46))}.grid-books.catalog-view-shelf .book-flip{height:100%!important;min-height:0!important;border-radius:4px 9px 8px 4px!important;overflow:visible}.grid-books.catalog-view-shelf .book-face{border-radius:4px 9px 8px 4px!important}.grid-books.catalog-view-shelf .book-front{padding:11px 9px!important;box-shadow:inset 7px 0 8px rgba(0,0,0,.16),inset -1px 0 rgba(255,255,255,.14),3px 3px 8px rgba(0,0,0,.32)!important}.grid-books.catalog-view-shelf .book-back{padding:12px!important}.grid-books.catalog-view-shelf .cover-brand{font-size:5.6px!important}.grid-books.catalog-view-shelf .cover-brand span{display:none}.grid-books.catalog-view-shelf .cover-medallion{width:54px!important;height:54px!important;font-size:17px!important}.grid-books.catalog-view-shelf .generated-ceiba-cover h4{font-size:14px!important;line-height:1.05!important}.grid-books.catalog-view-shelf .generated-ceiba-cover .hint{font-size:7.5px!important}.grid-books.catalog-view-shelf .cover-footer{font-size:6.5px!important}.grid-books.catalog-view-shelf .book-info-btn{width:27px!important;height:27px!important;right:6px!important;top:6px!important;font-size:11px!important}

/* grid/list remain useful but subordinate to shelf */
.grid-books.catalog-view-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}.grid-books.catalog-view-compact{grid-template-columns:repeat(auto-fit,minmax(115px,1fr))!important}

@media(max-width:1040px){.grid-books.catalog-view-shelf{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:700px){.catalog-filter-panel{grid-template-columns:1fr!important}.catalog-compact-toolbar{margin-top:12px}.grid-books.catalog-view-shelf{--catalog-shelf-row:235px;grid-template-columns:repeat(3,minmax(0,1fr))!important;border-width:12px!important;padding:9px 6px 0!important}.grid-books.catalog-view-shelf .book{height:174px!important;min-height:174px!important;max-width:116px!important;margin:0 3px 34px!important}.grid-books.catalog-view-shelf .cover-medallion{width:42px!important;height:42px!important;font-size:14px!important}.grid-books.catalog-view-shelf .generated-ceiba-cover h4{font-size:11px!important}.grid-books.catalog-view-shelf .generated-ceiba-cover .hint{font-size:6.8px!important}.cat-head{margin-bottom:2px}.cat-head .cat-lede{font-size:12px;line-height:1.55}.catalog-results-head{margin-top:4px}}
@media(max-width:360px){.grid-books.catalog-view-shelf{grid-template-columns:repeat(2,minmax(0,1fr))!important}.grid-books.catalog-view-shelf .book{max-width:132px!important;height:188px!important}.catalog-compact-title small{display:none}}

/* ==========================================================
   v2.4 — FULL CATALOG + CONTINUOUS SHELF + VERIFIED COVERS
   ========================================================== */
.grid-books.catalog-view-shelf{
  min-height:calc(var(--catalog-shelf-row) * 3 + 34px)!important;
  align-content:start!important;
  overflow:hidden!important;
  width:100%!important;
  max-width:100%!important;
}
.grid-books.catalog-view-shelf .book{min-width:0!important}
.real-cover-wrap{position:absolute;inset:0;overflow:hidden;border-radius:inherit;background:var(--book-b,#1b2d23)}
.real-book-cover{width:100%;height:100%;display:block;object-fit:cover;object-position:center;background:var(--book-b,#1b2d23)}
.real-cover-wrap .book-info-btn{z-index:4}
.cover-rights-chip{position:absolute;left:7px;bottom:7px;z-index:4;border-radius:999px;padding:4px 7px;background:rgba(5,12,8,.72);backdrop-filter:blur(6px);font-size:6px;letter-spacing:.08em;text-transform:uppercase;color:#dff5e8;border:1px solid rgba(255,255,255,.12)}
.cover-rights-chip.pending{color:#ffe6a8}
.catalog-request-spinner{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:catalogSpin .65s linear infinite;vertical-align:-2px;margin-right:6px}@keyframes catalogSpin{to{transform:rotate(360deg)}}
button.is-request-loading,.readbtn.is-request-loading{pointer-events:none;opacity:.72}
.catalog-import-hint{font-size:10px;color:rgba(255,255,255,.55);margin-left:auto}
@media(max-width:700px){.grid-books.catalog-view-shelf{min-height:calc(var(--catalog-shelf-row) * 3 + 24px)!important}}


/* ==========================================================
   v2.5 — cover integrity: never crop artwork; clean legal UI
   ========================================================== */
.book-cover-stack{position:absolute;inset:0;border-radius:inherit;overflow:hidden}
.book-cover-stack>.book-face{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;backface-visibility:visible!important}
.real-cover-layer{z-index:3!important;padding:0!important;background:#efe8dc!important}
.real-cover-wrap{display:flex!important;align-items:center!important;justify-content:center!important;background:linear-gradient(145deg,#f3ede2,#d8cebd)!important;padding:2px!important;overflow:hidden!important}
.real-book-cover{width:100%!important;height:100%!important;display:block!important;object-fit:contain!important;object-position:center center!important;background:#eee7db!important}
.cover-rights-chip{display:none!important}
.grid-books.catalog-view-shelf .real-cover-wrap{padding:1px!important;background:#e9e0d1!important}
.grid-books.catalog-view-shelf .real-book-cover{object-fit:contain!important}


/* v2.7.8 — coherent light-wood bookshelf in every catalog layout */
.grid-books.catalog-view-shelf,.grid-books.catalog-view-grid,.grid-books.catalog-view-compact,.grid-books.catalog-view-list{
  position:relative;overflow:hidden;padding:22px 26px 38px!important;border:12px solid #8a5b34;border-radius:20px;
  background-color:#d9b786!important;
  background-image:
    linear-gradient(90deg,rgba(101,64,35,.13),transparent 10%,rgba(255,255,255,.12) 48%,transparent 75%,rgba(105,65,35,.10)),
    repeating-linear-gradient(0deg,rgba(92,54,28,.045) 0 1px,transparent 1px 6px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 2px,transparent 2px 12px)!important;
  box-shadow:inset 18px 0 22px rgba(75,42,20,.18),inset -18px 0 22px rgba(75,42,20,.18),inset 0 13px 18px rgba(72,42,21,.12),0 16px 45px rgba(0,0,0,.28)!important;
}
.grid-books.catalog-view-shelf:before,.grid-books.catalog-view-grid:before,.grid-books.catalog-view-compact:before,.grid-books.catalog-view-list:before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:repeating-linear-gradient(to bottom,transparent 0 260px,rgba(70,38,17,.34) 260px 266px,#a97849 266px 279px,#744622 279px 286px,transparent 286px 300px);
}
.grid-books.catalog-view-shelf>* ,.grid-books.catalog-view-grid>* ,.grid-books.catalog-view-compact>* ,.grid-books.catalog-view-list>*{position:relative;z-index:1}
.catalog-view-list{gap:14px!important}.catalog-view-list .book{min-height:132px!important}.catalog-view-list .book-flip{min-height:132px!important}
.catalog-view-list .book-front{display:grid!important;grid-template-columns:82px minmax(0,1fr) 58px!important;align-items:center!important;min-height:132px!important;padding:12px 14px!important}
.catalog-view-list .ceiba-template-cover,.catalog-view-list .smart-original-cover{position:relative!important;grid-column:1;grid-row:1;width:72px!important;height:106px!important;object-fit:cover!important;border-radius:5px!important}
.catalog-view-list .ceiba-cover-title{grid-column:2;grid-row:1;position:static!important;align-self:center;background:transparent!important;padding:0 8px!important;color:#1c1812!important;text-shadow:none!important}
.catalog-view-list .ceiba-cover-title strong{font-size:18px!important;line-height:1.15!important;color:#1c1812!important}.catalog-view-list .ceiba-cover-title span{font-size:11px!important;color:#5c5146!important}
.catalog-view-list .book-info-btn{grid-column:3;grid-row:1;position:static!important;justify-self:end}.catalog-view-list .reading-progress-badge{grid-column:3;grid-row:1;position:static!important;justify-self:end;align-self:end}
.ceiba-template-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.smart-original-cover{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;z-index:2!important}
.ceiba-cover-title{position:absolute;left:8%;right:8%;bottom:8%;z-index:1;padding:9px 8px;border-radius:8px;background:rgba(0,0,0,.56);color:#fff;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.ceiba-cover-title strong{display:block;font-family:Georgia,serif;font-size:14px;line-height:1.12}.ceiba-cover-title span{display:block;margin-top:4px;font-size:8px;opacity:.85}
.reading-progress-badge{position:absolute;right:7px;bottom:7px;z-index:5;background:rgba(4,21,14,.82);border:1px solid rgba(0,232,137,.5);color:#80ffc1;border-radius:999px;padding:4px 7px;font-size:9px;font-weight:800;backdrop-filter:blur(5px)}
.catalog-progress-detail,.library-progress-line{display:block;margin-top:8px;color:#00c978;font-size:11px}.portal-books-grid .reading-progress-badge{display:block}
@media(max-width:700px){.grid-books.catalog-view-shelf,.grid-books.catalog-view-grid,.grid-books.catalog-view-compact,.grid-books.catalog-view-list{padding-left:12px!important;padding-right:12px!important;border-width:8px}.catalog-view-list .book-front{grid-template-columns:68px minmax(0,1fr) 44px!important}.catalog-view-list .ceiba-template-cover,.catalog-view-list .smart-original-cover{width:60px!important;height:90px!important}.catalog-view-list .ceiba-cover-title strong{font-size:15px!important}}

/* ==========================================================
   v2.7.9 — shelf always visible + cover-only titles + list progress
   ========================================================== */
.grid-books.catalog-view-shelf,
.grid-books.catalog-view-grid,
.grid-books.catalog-view-compact,
.grid-books.catalog-view-list{
  --shelf-row-h:292px;position:relative;overflow:hidden!important;padding:18px 18px 36px!important;
  border:12px solid #7e512f!important;border-radius:18px!important;background-color:#cda979!important;
  background-image:linear-gradient(90deg,rgba(77,45,22,.17),transparent 12%,rgba(255,255,255,.13) 49%,transparent 78%,rgba(78,45,23,.15)),repeating-linear-gradient(0deg,rgba(80,44,20,.055) 0 1px,transparent 1px 5px),repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 10px)!important;
  box-shadow:inset 18px 0 24px rgba(60,31,13,.20),inset -18px 0 24px rgba(60,31,13,.20),inset 0 14px 18px rgba(63,35,18,.12),0 18px 48px rgba(0,0,0,.28)!important;
}
.grid-books.catalog-view-shelf:before,.grid-books.catalog-view-grid:before,.grid-books.catalog-view-compact:before,.grid-books.catalog-view-list:before{content:""!important;position:absolute!important;inset:0!important;z-index:0!important;pointer-events:none!important;background:repeating-linear-gradient(to bottom,transparent 0 calc(var(--shelf-row-h) - 30px),rgba(67,35,16,.33) calc(var(--shelf-row-h) - 30px) calc(var(--shelf-row-h) - 25px),#b68558 calc(var(--shelf-row-h) - 25px) calc(var(--shelf-row-h) - 10px),#79502f calc(var(--shelf-row-h) - 10px) calc(var(--shelf-row-h) - 3px),transparent calc(var(--shelf-row-h) - 3px) var(--shelf-row-h))!important}
.grid-books.catalog-view-shelf>*,.grid-books.catalog-view-grid>*,.grid-books.catalog-view-compact>*,.grid-books.catalog-view-list>*{position:relative;z-index:1}
.catalog-view-grid .book,.catalog-view-compact .book{margin-bottom:32px!important;align-self:end!important;aspect-ratio:.66!important;min-height:230px!important}.catalog-view-compact .book{min-height:180px!important}.catalog-view-grid .book-flip,.catalog-view-compact .book-flip{height:100%!important}.catalog-view-grid .book-front,.catalog-view-compact .book-front{padding:0!important;overflow:hidden!important}
.ceiba-cover-title{position:absolute!important;left:7%!important;right:7%!important;bottom:7%!important;z-index:4!important;padding:8px 7px!important;border-radius:8px!important;background:rgba(0,0,0,.58)!important;color:#fff!important;text-align:center!important;text-shadow:0 1px 3px rgba(0,0,0,.72)!important;pointer-events:none!important}.ceiba-cover-title strong{display:block!important;font-family:Georgia,'Times New Roman',serif!important;font-size:14px!important;line-height:1.10!important;color:#fff!important}.ceiba-cover-title span{display:block!important;margin-top:4px!important;font-size:8px!important;color:rgba(255,255,255,.86)!important}.smart-original-cover{z-index:5!important}.book-info-btn{z-index:8!important}
.reading-progress-badge{display:none!important}.catalog-list-meta{display:none}.catalog-view-list{--shelf-row-h:162px;gap:10px!important}.catalog-view-list .book{min-height:142px!important;height:142px!important;margin:0 0 10px!important;aspect-ratio:auto!important}.catalog-view-list .book-flip{min-height:142px!important;height:142px!important}.catalog-view-list .book-front{display:grid!important;grid-template-columns:84px minmax(0,1fr) 36px!important;grid-template-rows:1fr!important;align-items:center!important;gap:12px!important;min-height:142px!important;height:142px!important;padding:10px 12px!important;background:rgba(24,18,13,.20)!important;overflow:visible!important}.catalog-view-list .ceiba-template-cover,.catalog-view-list .smart-original-cover{position:absolute!important;left:10px!important;top:10px!important;bottom:auto!important;width:78px!important;height:122px!important;object-fit:cover!important;border-radius:5px!important}.catalog-view-list .ceiba-cover-title{left:14px!important;right:auto!important;bottom:15px!important;width:70px!important;padding:5px 4px!important;border-radius:5px!important}.catalog-view-list .ceiba-cover-title strong{font-size:9px!important;line-height:1.05!important}.catalog-view-list .ceiba-cover-title span{font-size:6px!important;margin-top:2px!important}.catalog-view-list .catalog-list-meta{display:flex!important;grid-column:2;grid-row:1;flex-direction:column;align-self:center;min-width:0;color:#241c15;padding:5px 4px 5px 2px}.catalog-view-list .catalog-list-meta .meta-author{font:700 16px/1.2 Georgia,serif;color:#241c15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-view-list .catalog-list-meta .meta-sub{margin-top:5px;font-size:11px;color:#5a493c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-view-list .catalog-list-meta .meta-progress{margin-top:10px;display:flex;align-items:center;gap:8px;font-size:11px;font-weight:900;color:#096b47}.catalog-view-list .catalog-list-meta .meta-progress-bar{height:6px;flex:1;max-width:260px;border-radius:999px;background:rgba(0,0,0,.12);overflow:hidden}.catalog-view-list .catalog-list-meta .meta-progress-bar>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#00c978,#00f094)}.catalog-view-list .book-info-btn{grid-column:3!important;grid-row:1!important;position:static!important;justify-self:end!important;align-self:start!important}
.grid-books.catalog-view-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr))!important}.grid-books.catalog-view-compact{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))!important}
@media(max-width:760px){.grid-books.catalog-view-shelf,.grid-books.catalog-view-grid,.grid-books.catalog-view-compact,.grid-books.catalog-view-list{border-width:8px!important;padding:10px 9px 30px!important}.grid-books.catalog-view-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.grid-books.catalog-view-compact{grid-template-columns:repeat(4,minmax(0,1fr))!important}.catalog-view-list .book-front{grid-template-columns:68px minmax(0,1fr) 32px!important}.catalog-view-list .ceiba-template-cover,.catalog-view-list .smart-original-cover{width:62px!important;height:100px!important}.catalog-view-list .ceiba-cover-title{width:56px!important;left:13px!important;bottom:22px!important}.catalog-view-list .catalog-list-meta .meta-author{font-size:13px}}
@media(max-width:480px){.grid-books.catalog-view-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.grid-books.catalog-view-compact{grid-template-columns:repeat(3,minmax(0,1fr))!important}}


/* v2.8.1 — branded-cover fallback + richer CeibaBook metadata */
.ceiba-cover-title{
  left:6%!important;right:6%!important;bottom:5.5%!important;
  padding:32px 8px 9px!important;border-radius:8px!important;
  background:linear-gradient(to top,rgba(0,0,0,.86),rgba(0,0,0,.55) 58%,rgba(0,0,0,0))!important;
}
.ceiba-cover-title strong{font-size:clamp(10px,1.15vw,14px)!important;line-height:1.08!important;max-height:3.25em;overflow:hidden}
.ceiba-cover-title span{font-size:clamp(6px,.72vw,8px)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ceiba-cover-title small{display:block!important;margin-top:4px!important;font:700 6px/1.15 Inter,system-ui,sans-serif!important;letter-spacing:.05em!important;text-transform:uppercase!important;color:rgba(255,255,255,.68)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.catalog-view-list .ceiba-cover-title small{font-size:5px!important;margin-top:2px!important}
@media(max-width:700px){.ceiba-cover-title{left:5%!important;right:5%!important;padding:24px 5px 6px!important}.ceiba-cover-title strong{font-size:9px!important}.ceiba-cover-title span{font-size:6px!important}.ceiba-cover-title small{font-size:5px!important}}

/* ===== CeibaBook v3.1.0 — shelf depth + safe cover geometry ===== */
.grid-books.catalog-view-shelf{
  --shelf-row-h:286px;
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  padding:24px 22px 46px!important;
  border:16px solid #5a341d!important;
  border-top-color:#865b35!important;
  border-bottom-color:#3a2113!important;
  border-radius:18px!important;
  background:
    radial-gradient(ellipse at 50% 14%,rgba(255,204,139,.12),transparent 44%),
    repeating-linear-gradient(92deg,rgba(255,255,255,.024) 0 2px,rgba(0,0,0,.022) 2px 5px),
    linear-gradient(90deg,#2a160c 0,#4a2a17 6%,#59371f 50%,#472714 94%,#241208 100%)!important;
  box-shadow:
    0 28px 60px rgba(0,0,0,.55),
    0 8px 18px rgba(0,0,0,.38),
    inset 18px 0 26px -18px #000,
    inset -18px 0 26px -18px #000,
    inset 0 18px 24px -16px rgba(255,210,150,.28),
    inset 0 -22px 28px -18px #000!important;
  perspective:1100px!important;
}
.grid-books.catalog-view-shelf:before{
  content:""!important;position:absolute!important;inset:0!important;z-index:0!important;pointer-events:none!important;
  background:
    repeating-linear-gradient(to bottom,
      transparent 0 calc(var(--shelf-row-h) - 42px),
      rgba(0,0,0,.72) calc(var(--shelf-row-h) - 42px) calc(var(--shelf-row-h) - 36px),
      #a16d3e calc(var(--shelf-row-h) - 36px) calc(var(--shelf-row-h) - 25px),
      #714523 calc(var(--shelf-row-h) - 25px) calc(var(--shelf-row-h) - 10px),
      #3a2112 calc(var(--shelf-row-h) - 10px) calc(var(--shelf-row-h) - 3px),
      rgba(0,0,0,.35) calc(var(--shelf-row-h) - 3px) var(--shelf-row-h)),
    repeating-linear-gradient(8deg,rgba(255,255,255,.018) 0 1px,transparent 1px 7px)!important;
  box-shadow:inset 0 20px 24px -20px #000!important;
}
.grid-books.catalog-view-shelf:after{
  content:""!important;position:absolute!important;inset:8px!important;z-index:0!important;pointer-events:none!important;border-radius:7px!important;
  border:1px solid rgba(255,220,170,.13)!important;
  box-shadow:inset 0 0 34px rgba(0,0,0,.42)!important;
  background:transparent!important;
}
.grid-books.catalog-view-shelf>*{position:relative!important;z-index:2!important}
.grid-books.catalog-view-shelf .book{transform:translateZ(9px);filter:drop-shadow(0 9px 7px rgba(0,0,0,.42));}
.grid-books.catalog-view-shelf .book:hover{transform:translateY(-7px) translateZ(20px) rotateY(-1deg)!important}
.book-front{overflow:hidden!important}
.ceiba-template-cover{inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:50% 50%!important;transform:none!important;background:#101311!important}
.smart-original-cover,.real-book-cover{inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:50% 50%!important;transform:none!important;background:#111512!important}
.book:hover .book-front .smart-original-cover,.book:hover .book-front .real-book-cover{transform:none!important}
.ceiba-cover-title{left:8%!important;right:8%!important;width:auto!important;box-sizing:border-box!important;overflow:hidden!important}
.ceiba-cover-title strong,.ceiba-cover-title span,.ceiba-cover-title small{width:100%!important;text-align:center!important;overflow:hidden!important;text-overflow:ellipsis!important}
@media(max-width:760px){.grid-books.catalog-view-shelf{--shelf-row-h:226px;border-width:10px!important;padding:13px 10px 36px!important;border-radius:14px!important}}


/* v3.1.1 cover polish: keep cover art proportionate and keep fallback title in a small bottom band only */
.ceiba-template-cover,
.smart-original-cover,
.real-book-cover{
  object-fit:contain!important;
  object-position:50% 50%!important;
}
.ceiba-cover-title{
  left:7%!important;
  right:7%!important;
  bottom:8px!important;
  top:auto!important;
  width:auto!important;
  padding:14px 6px 7px!important;
  border-radius:0 0 8px 8px!important;
  background:linear-gradient(to top,rgba(0,0,0,.86),rgba(0,0,0,.72),rgba(0,0,0,0))!important;
  text-align:center!important;
  pointer-events:none!important;
}
.ceiba-cover-title strong{
  display:block!important;
  font-size:clamp(9px,1.02vw,12px)!important;
  line-height:1.08!important;
  max-height:2.18em!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.ceiba-cover-title span,
.ceiba-cover-title small{
  display:none!important;
}
.catalog-view-list .ceiba-cover-title{
  left:14px!important;
  right:auto!important;
  width:70px!important;
  bottom:12px!important;
  padding:10px 4px 5px!important;
  border-radius:0 0 5px 5px!important;
}
.catalog-view-list .ceiba-cover-title strong{
  font-size:8px!important;
  line-height:1.06!important;
  max-height:2.12em!important;
}
@media(max-width:760px){
  .catalog-view-list .ceiba-cover-title{width:56px!important;left:13px!important;bottom:18px!important}
}


/* v3.1.3 — corrected CeibaBook fallback templates: true optical centering + no stretching */
.ceiba-template-cover{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
  margin:0!important;
  padding:0!important;
}
.smart-original-cover,.real-book-cover{
  object-fit:contain!important;
  object-position:center center!important;
}
.ceiba-cover-title{
  left:7%!important;
  right:7%!important;
  bottom:7px!important;
  max-width:86%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}


/* ==========================================================
   v3.1.4 — FLIPHTML5-inspired wooden bookcase + clean covers
   Reference: real cabinet back, separate shelf lips, soft depth,
   and books standing on each plank instead of a flat decal.
   ========================================================== */
:root{
  --shelf-row-h:286px;
  --shelf-plank-top:color-mix(in srgb,var(--catalog-shelf-wood) 72%,#e6b98b 28%);
  --shelf-plank-face:color-mix(in srgb,var(--catalog-shelf-wood) 78%,#3c2112 22%);
  --shelf-plank-dark:color-mix(in srgb,var(--catalog-shelf-dark) 88%,#120905 12%);
  --shelf-back-light:color-mix(in srgb,var(--catalog-shelf-case) 86%,#d8a579 14%);
}
.grid-books.catalog-view-shelf{
  --catalog-shelf-row:286px!important;
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  grid-auto-rows:var(--catalog-shelf-row)!important;
  align-content:start!important;
  gap:0!important;
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  padding:18px 16px 0!important;
  border:10px solid color-mix(in srgb,var(--catalog-shelf-wood) 72%,#2e180e 28%)!important;
  border-radius:10px!important;
  background-color:var(--catalog-shelf-case)!important;
  background-image:
    /* shelf lips and their cast shadow */
    repeating-linear-gradient(
      to bottom,
      transparent 0,
      transparent calc(var(--catalog-shelf-row) - 43px),
      rgba(27,12,5,.46) calc(var(--catalog-shelf-row) - 43px),
      rgba(27,12,5,.18) calc(var(--catalog-shelf-row) - 36px),
      var(--shelf-plank-top) calc(var(--catalog-shelf-row) - 35px),
      var(--shelf-plank-top) calc(var(--catalog-shelf-row) - 29px),
      var(--shelf-plank-face) calc(var(--catalog-shelf-row) - 28px),
      var(--shelf-plank-face) calc(var(--catalog-shelf-row) - 12px),
      var(--shelf-plank-dark) calc(var(--catalog-shelf-row) - 11px),
      var(--shelf-plank-dark) var(--catalog-shelf-row)
    ),
    /* fine vertical wood seams/grain */
    repeating-linear-gradient(90deg,rgba(255,255,255,.030) 0 1px,transparent 1px 28px,rgba(0,0,0,.025) 29px 30px,transparent 31px 54px),
    /* broad cabinet lighting */
    linear-gradient(90deg,rgba(26,12,6,.45) 0%,rgba(255,255,255,.045) 5%,transparent 13% 87%,rgba(0,0,0,.12) 94%,rgba(20,9,4,.42) 100%),
    linear-gradient(180deg,var(--shelf-back-light),var(--catalog-shelf-case))!important;
  box-shadow:
    0 20px 42px rgba(0,0,0,.34),
    inset 0 12px 18px -16px rgba(0,0,0,.9),
    inset 18px 0 24px -22px rgba(0,0,0,.9),
    inset -18px 0 24px -22px rgba(0,0,0,.9)!important;
  perspective:1100px!important;
}
.grid-books.catalog-view-shelf::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  background:
    repeating-linear-gradient(4deg,transparent 0 22px,rgba(255,255,255,.017) 23px,transparent 25px 48px),
    radial-gradient(ellipse at 50% 4%,rgba(255,255,255,.07),transparent 42%)!important;
  mix-blend-mode:soft-light!important;
  opacity:.85!important;
}
.grid-books.catalog-view-shelf::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),inset 0 0 32px rgba(0,0,0,.16)!important;
  border-radius:2px!important;
  background:transparent!important;
}
.grid-books.catalog-view-shelf>*{position:relative!important;z-index:2!important}
.grid-books.catalog-view-shelf .book{
  align-self:end!important;
  justify-self:center!important;
  width:calc(100% - 14px)!important;
  max-width:142px!important;
  height:216px!important;
  min-height:216px!important;
  margin:0 7px 42px!important;
  transform-origin:50% 100%!important;
  filter:drop-shadow(3px 9px 7px rgba(28,11,4,.38))!important;
  transition:transform .22s ease,filter .22s ease!important;
}
.grid-books.catalog-view-shelf .book:hover{
  transform:translateY(-8px) rotateY(-2deg) scale(1.018)!important;
  filter:drop-shadow(7px 17px 11px rgba(20,8,3,.43))!important;
  z-index:8!important;
}
.grid-books.catalog-view-shelf .book-flip,
.grid-books.catalog-view-shelf .book-face{
  border-radius:3px 7px 6px 3px!important;
}
.grid-books.catalog-view-shelf .book-front{
  padding:0!important;
  overflow:hidden!important;
  box-shadow:
    inset 3px 0 3px rgba(255,255,255,.07),
    inset -1px 0 rgba(0,0,0,.12),
    1px 2px 3px rgba(0,0,0,.20)!important;
}
/* Original covers remain uncropped. Our own fallback template may fill its cover. */
.smart-original-cover,.real-book-cover{
  object-fit:contain!important;
  object-position:50% 50%!important;
  background:transparent!important;
}
.ceiba-template-cover{
  object-fit:cover!important;
  object-position:50% 50%!important;
  background:transparent!important;
}
/* No ugly black label/halo behind the title. Keep only a small clean title at the bottom. */
.ceiba-cover-title{
  left:10%!important;
  right:10%!important;
  bottom:8px!important;
  width:auto!important;
  max-width:none!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-shadow:none!important;
  color:#f7f2e8!important;
}
.ceiba-cover-title strong{
  display:block!important;
  max-height:2.2em!important;
  overflow:hidden!important;
  font:800 clamp(9px,.95vw,12px)/1.08 Georgia,'Times New Roman',serif!important;
  color:#f7f2e8!important;
  text-align:center!important;
  text-shadow:none!important;
}
.ceiba-cover-title span,.ceiba-cover-title small{display:none!important}
.catalog-view-list .ceiba-cover-title{
  left:15px!important;
  right:auto!important;
  bottom:15px!important;
  width:68px!important;
  padding:0!important;
  background:transparent!important;
}
.catalog-view-list .ceiba-cover-title strong{font-size:8px!important;line-height:1.05!important}
@media(max-width:1040px){
  .grid-books.catalog-view-shelf{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(max-width:700px){
  .grid-books.catalog-view-shelf{
    --catalog-shelf-row:236px!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    border-width:7px!important;
    padding:12px 7px 0!important;
    border-radius:8px!important;
  }
  .grid-books.catalog-view-shelf .book{
    height:176px!important;min-height:176px!important;max-width:116px!important;margin:0 4px 36px!important;
  }
  .ceiba-cover-title{bottom:7px!important;left:8%!important;right:8%!important}
  .ceiba-cover-title strong{font-size:9px!important}
}
@media(max-width:360px){
  .grid-books.catalog-view-shelf{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}


/* v3.1.6 — ONE COVER ONLY.
   When a real/original cover exists, do not show the CeibaBook fallback colors/template behind it. */
.book-front.has-original-cover{
  background:#171512!important;
}
.book-front.has-original-cover .ceiba-template-cover,
.book-front.has-original-cover .ceiba-cover-title{
  display:none!important;
}
.book-front.has-original-cover .smart-original-cover,
.book-front.has-original-cover .real-book-cover{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:50% 50%!important;
  background:#171512!important;
}


/* v3.1.7 — FINAL ONE-COVER WEB FIX
   A real cover fills the book; the CeibaBook template is only shown after an image error. */
.book-front.has-original-cover{background:#171512!important;overflow:hidden!important}
.book-front.has-original-cover::after{display:none!important}
.book-front.has-original-cover .ceiba-template-cover,
.book-front.has-original-cover .ceiba-cover-title{display:none!important}
.book-front.has-original-cover .smart-original-cover,
.book-front.has-original-cover .real-book-cover{
  position:absolute!important;
  inset:-1px!important;
  width:calc(100% + 2px)!important;
  height:calc(100% + 2px)!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center center!important;
  border:0!important;
  border-radius:inherit!important;
  background:transparent!important;
  transform:none!important;
  z-index:6!important;
}

/* v3.1.8 — full fallback book titles: never hide the next line */
.ceiba-cover-title{
  overflow:visible!important;
  bottom:5px!important;
}
.ceiba-cover-title strong{
  display:block!important;
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  hyphens:auto!important;
  -webkit-line-clamp:unset!important;
  line-clamp:unset!important;
  font-size:clamp(7.5px,.82vw,10px)!important;
  line-height:1.04!important;
}
.catalog-view-list .ceiba-cover-title strong{
  max-height:none!important;
  overflow:visible!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  font-size:7.5px!important;
  line-height:1.03!important;
}
@media(max-width:700px){
  .ceiba-cover-title strong{font-size:7.5px!important;line-height:1.03!important}
}


/* ==========================================================
   v3.2.2 — RAMON FIX: mismo estante (madera/borde/caja) en
   TODAS las organizaciones (cuadrícula, compacta, lista).
   Solo unifica el marco/caja; NO toca columnas ni tamaños de
   libro de cada modo, que siguen igual que antes.
   ========================================================== */
.grid-books.catalog-view-grid,
.grid-books.catalog-view-compact,
.grid-books.catalog-view-list{
  border:10px solid color-mix(in srgb,var(--catalog-shelf-wood) 72%,#2e180e 28%)!important;
  border-radius:10px!important;
  background-color:var(--catalog-shelf-case)!important;
  background-image:
    repeating-linear-gradient(90deg,rgba(255,255,255,.030) 0 1px,transparent 1px 28px,rgba(0,0,0,.025) 29px 30px,transparent 31px 54px),
    linear-gradient(90deg,rgba(26,12,6,.45) 0%,rgba(255,255,255,.045) 5%,transparent 13% 87%,rgba(0,0,0,.12) 94%,rgba(20,9,4,.42) 100%),
    linear-gradient(180deg,var(--shelf-back-light),var(--catalog-shelf-case))!important;
  box-shadow:
    0 20px 42px rgba(0,0,0,.34),
    inset 0 12px 18px -16px rgba(0,0,0,.9),
    inset 18px 0 24px -22px rgba(0,0,0,.9),
    inset -18px 0 24px -22px rgba(0,0,0,.9)!important;
}
@media(max-width:760px){
  .grid-books.catalog-view-grid,
  .grid-books.catalog-view-compact,
  .grid-books.catalog-view-list{
    border-width:7px!important;
  }
}


/* ==========================================================
   v3.2.3 — RAMON FIX: quitar la línea de "tabla de estante"
   vieja (repeating-linear-gradient a intervalo fijo) en
   Cuadrícula y Compacta. Esa línea se dibujaba cada ~292px
   fijos, pero los libros en esas 2 vistas tienen alto
   automático (según su contenido), así que la línea se iba
   desalineando cada vez más al bajar de nivel. El estante
   (modo Estante) NO se toca: su línea de nivel vive en otra
   regla que sí está sincronizada con el alto real de fila.
   ========================================================== */
.grid-books.catalog-view-grid:before,
.grid-books.catalog-view-compact:before,
.grid-books.catalog-view-list:before{
  content:none!important;
  background:none!important;
}


/* ==========================================================
   v3.2.4 — RAMON FIX: la línea de categoría/idioma en Lista
   (.meta-sub) usaba un café oscuro casi igual al fondo de la
   fila -> ilegible. Se aclara y se le da sombra para que
   contraste, sin tocar el título del autor ni la barra de
   progreso (esos ya se leían bien).
   ========================================================== */
.catalog-view-list .catalog-list-meta .meta-sub{
  color:#d8c7ae!important;
  text-shadow:0 1px 3px rgba(0,0,0,.6)!important;
}

/* ===== v3.2.4 SHELF-FIX: vista Lista — título, autor y progreso legibles, centrados en la fila (Francito) ===== */
.catalog-view-list .ceiba-cover-title{display:none!important}
.catalog-view-list .book-front{align-content:center!important}
.catalog-view-list .catalog-list-meta{justify-content:center!important;gap:2px!important}
.catalog-view-list .catalog-list-meta .meta-title{font:700 15px/1.22 Georgia,'Times New Roman',serif!important;color:#241c15!important;white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important}
.catalog-view-list .catalog-list-meta .meta-author{font:600 12px/1.2 Georgia,serif!important;font-style:italic!important;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.55)!important;margin-top:2px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.catalog-view-list .catalog-list-meta .meta-sub{margin-top:4px!important}
.catalog-view-list .catalog-list-meta .meta-progress{margin-top:8px!important}
@media(max-width:760px){
  .catalog-view-list .catalog-list-meta .meta-title{font-size:13px!important}
  .catalog-view-list .catalog-list-meta .meta-author{font-size:11px!important}
}


/* v3.3.1: shelf books sit on top of each wooden plank instead of overlapping its front edge. */
.grid-books.catalog-view-shelf .book{margin-bottom:52px!important;}
@media(max-width:760px){.grid-books.catalog-view-shelf .book{margin-bottom:46px!important;}}
