.book-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin:2.5rem 0 1.5rem; }
.book-list-page { background:#eef4f6; }
.book-list-page header { background:rgba(238,244,246,.88); }
.book-list-page footer { background:rgba(255,255,255,.42); }
.book-heading h1 { margin:.15rem 0 .5rem; font-size:clamp(2.25rem,6vw,4.5rem); line-height:.95; }
.book-catalogue { margin-bottom:3rem; background:#fff; border:1px solid #dcd8ce; border-radius:28px; box-shadow:0 20px 55px rgba(45,42,34,.08); overflow:hidden; }
.book-toolbar { display:grid; grid-template-columns:1fr auto; align-items:end; gap:1rem; padding:1.2rem; background:#f6f3ec; border-bottom:1px solid #e3ded3; }
.book-toolbar label { display:grid; gap:.35rem; color:#666055; font-size:.75rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.book-toolbar input { min-height:46px; border:1px solid #d4cec2; border-radius:13px; padding:.65rem .85rem; background:#fff; color:#25231e; font:inherit; font-size:1rem; letter-spacing:0; text-transform:none; }
.book-toolbar button { min-height:46px; border:0; border-radius:13px; padding:.65rem 1rem; background:#164f69; color:#fff; font-weight:800; cursor:pointer; }
.book-summary { display:flex; justify-content:space-between; gap:1rem; padding:1rem 1.2rem; color:#625d53; border-bottom:1px solid #ebe7de; }
.book-tabs { display:flex; gap:.45rem; overflow-x:auto; padding:1rem 1rem 0; scrollbar-width:thin; }
.book-tabs button { flex:0 0 auto; border:1px solid #cbc5ba; border-bottom:0; border-radius:13px 13px 0 0; padding:.7rem .9rem; background:#f2efe8; color:#514c43; font-weight:750; cursor:pointer; }
.book-tabs button[aria-selected="true"] { background:#164f69; border-color:#164f69; color:#fff; }
.book-panel { display:grid; gap:.8rem; padding:1rem; background:#f8f6f1; border-top:3px solid #164f69; }
.book-panel[hidden] { display:none; }
.book-series { border:1px solid #d9d5cb; border-radius:16px; background:#fff; overflow:hidden; }
.book-series summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; cursor:pointer; list-style:none; }
.book-series summary::-webkit-details-marker { display:none; }
.book-series summary>span { display:grid; gap:.25rem; min-width:0; }
.book-series summary strong { color:#24221e; font-size:1.05rem; }
.book-series summary small { color:#6d675c; }
.book-series summary>b { flex:0 0 auto; padding:.3rem .65rem; border-radius:999px; background:#dbeef5; color:#164f69; font-size:.78rem; }
.book-series[open] summary { background:#e5f2f7; }
.book-volumes { display:grid; grid-template-columns:repeat(auto-fit,minmax(235px,1fr)); gap:.7rem; padding:1rem; border-top:1px solid #dce7e9; }
.book-volume { display:grid; grid-template-columns:auto 1fr; gap:.75rem; padding:.85rem; border-radius:12px; background:#0b415a; color:#d9f2fc; }
.book-volume-number { align-self:start; padding:.25rem .45rem; border-radius:7px; background:#89cff0; color:#073248; font-size:.8rem; }
.book-volume>div { display:grid; gap:.25rem; min-width:0; }
.book-volume b { color:#fff; }
.book-volume span,.book-volume small { color:#b9dce9; overflow-wrap:anywhere; }
.book-empty { padding:2rem; text-align:center; color:#6a6459; }
.book-loading { min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.55rem; padding:2rem; text-align:center; color:#625d53; }
.book-loading[hidden] { display:none; }
.book-loading.error { color:#963c35; background:#fff6f4; }
.book-spinner { width:30px; height:30px; border:3px solid #d5d0c5; border-top-color:#164f69; border-radius:50%; animation:book-spin .8s linear infinite; }
@keyframes book-spin { to { transform:rotate(360deg); } }
@media (max-width:700px) {
  .book-heading { align-items:flex-start; flex-direction:column; gap:1rem; }
  .book-toolbar { grid-template-columns:1fr; }
  .book-toolbar button { width:100%; }
  .book-summary { align-items:flex-start; flex-direction:column; }
  .book-series summary { align-items:flex-start; }
  .book-volumes { grid-template-columns:1fr; }
}

/* Preserve the original catalogue's broad sky-blue identity inside Consus. */
.book-catalogue { background:#fafdfe; border-color:#cfdee4; box-shadow:0 15px 42px rgba(38,65,76,.07); }
.book-toolbar { background:#fafdfe; border-bottom-color:#d4e2e7; }
.book-toolbar input { border-color:#cfd7dc; }
.book-toolbar input:focus { outline:3px solid rgba(137,207,240,.38); border-color:#56add3; }
.book-toolbar button { background:#0b415a; }
.book-summary { background:#fafdfe; border-bottom:0; color:#414f56; }
.book-tabs { gap:0; padding:0 1rem; border-bottom:1px solid #cbdce3; background:#fafdfe; }
.book-tabs button { margin-bottom:-1px; border:1px solid transparent; border-bottom-color:#cbdce3; border-radius:7px 7px 0 0; padding:.85rem 1rem; background:#fafdfe; color:#53666f; font-weight:600; }
.book-tabs button:hover { color:#0b415a; background:#f3fbfe; }
.book-tabs button[aria-selected="true"] { border-color:#b9d1dc #b9d1dc #e8f4f8; background:#e8f4f8; color:#163e50; }
.book-panel { gap:1.15rem; padding:1.4rem 1rem 1.8rem; border-top:0; background:#fafdfe; }
.book-series { border:1px solid #bcdce9; border-left:5px solid #4aaed3; border-radius:9px; background:#e5f4fa; box-shadow:0 5px 16px rgba(11,65,90,.045); }
.book-series summary { min-height:92px; padding:1.1rem 1rem; }
.book-series summary>span { gap:1.45rem; }
.book-series summary strong { color:#173747; font-size:1rem; }
.book-series summary small { padding-left:2rem; color:#536f7b; font-size:.94rem; }
.book-series summary>b { background:#dff2f9; color:#0b5c7c; }
.book-series[open] summary { background:#daeff7; border-bottom:1px solid #bcdce9; }
.book-volumes { border-top:0; background:#edf8fb; }
.book-volume { border:1px solid #cce6f0; background:#fff; color:#375d6d; box-shadow:0 4px 12px rgba(11,65,90,.04); }
.book-volume-number { background:#bfe5f4; color:#0b4f6a; }
.book-volume b { color:#173747; }
.book-volume span,.book-volume small { color:#587786; }
@media (max-width:700px) {
  .book-tabs { padding-inline:.35rem; }
  .book-tabs button { padding:.72rem .78rem; }
  .book-panel { padding:1rem .7rem 1.3rem; }
  .book-series summary { min-height:82px; }
  .book-series summary>span { gap:.65rem; }
  .book-series summary small { padding-left:.65rem; }
}
