:root{
  --bg:#f6f8fc;
  --paper:#ffffff;
  --paper2:#fbfcff;
  --text:#131722;
  --muted:#687083;
  --line:#e7eaf0;
  --line2:#d9dee8;
  --primary:#4f46e5;
  --primary2:#7c3aed;
  --accent:#f59e0b;
  --green:#10b981;
  --danger:#dc2626;
  --soft:#eef2ff;
  --soft2:#f1f5f9;
  --radius:20px;
  --radius2:28px;
  --shadow:0 22px 70px rgba(38,48,87,.10);
  --shadow2:0 12px 34px rgba(38,48,87,.07);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:
    radial-gradient(circle at 12% 8%,rgba(79,70,229,.08),transparent 28%),
    radial-gradient(circle at 92% 10%,rgba(245,158,11,.08),transparent 24%),
    var(--bg);
  color:var(--text);
  font-family:Manrope,Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
a{color:inherit}
img{max-width:100%}
.top-strip{
  min-height:34px;
  background:linear-gradient(90deg,#111827,#2f246d 58%,#111827);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:7px clamp(18px,4vw,56px);
  font-size:12px;
  font-weight:700;
  letter-spacing:-.01em;
}
.top-strip .dot{display:inline-block;width:7px;height:7px;border-radius:999px;background:var(--accent);margin-right:8px;vertical-align:1px;box-shadow:0 0 0 4px rgba(245,158,11,.18)}
.topbar{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
  min-height:72px;
  padding:12px clamp(18px,4vw,56px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.brand{
  font-weight:900;
  color:var(--text);
  text-decoration:none;
  font-size:20px;
  letter-spacing:-.045em;
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
  white-space:nowrap;
}
.brand-logo{height:38px;max-width:190px;object-fit:contain;display:block}
.brand-mark{
  width:42px;height:42px;border-radius:15px;
  background:linear-gradient(135deg,var(--primary),var(--primary2));
  color:#fff;display:inline-flex;align-items:center;justify-content:center;
  font-weight:900;font-size:16px;box-shadow:0 12px 26px rgba(79,70,229,.25)
}
.topbar nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;min-width:0}
.topbar nav a{color:var(--text);text-decoration:none;font-size:14px;font-weight:850;padding:9px 12px;border-radius:999px;white-space:nowrap}
.topbar nav a:hover{background:var(--soft);color:var(--primary)}
.container{width:min(1320px,calc(100% - 48px));margin:38px auto 110px;min-width:0}

/* Typography */
h1,h2,h3{color:var(--text);letter-spacing:-.055em;font-weight:900;margin-top:0}
h1{font-size:clamp(38px,5.4vw,66px);line-height:1;margin:0 0 18px}
h2{font-size:clamp(25px,3vw,36px);line-height:1.08;margin:0 0 14px}
h3{font-size:20px;line-height:1.16;margin:0 0 8px}
p{margin-top:0}.muted{color:var(--muted)}
.admin-main h1{font-size:clamp(34px,4vw,52px);line-height:1.04;margin:0 0 22px;letter-spacing:-.06em}
.admin-main h2{font-size:clamp(24px,2.4vw,32px);line-height:1.12;margin:34px 0 14px;letter-spacing:-.045em}
.admin-main h3{font-size:19px}

/* Public homepage */
.home-hero{min-height:390px;border-radius:34px;padding:58px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:30px;align-items:center;background:radial-gradient(circle at 18% 10%,#fff 0,#fff8ee 26%,transparent 56%),linear-gradient(135deg,#fff,#f7f8ff);border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;position:relative}
.home-hero:after{content:"";position:absolute;right:-120px;top:-120px;width:310px;height:310px;border-radius:50%;background:rgba(79,70,229,.07)}
.hero-copy{position:relative;z-index:1;text-align:center;max-width:780px;margin:auto}
.hero-text{font-size:17px;max-width:680px;margin:0 auto 26px}.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(79,70,229,.18);background:rgba(238,242,255,.85);border-radius:999px;padding:7px 12px;font-size:12px;color:var(--primary);font-weight:900;margin-bottom:18px}.pill:before{content:"✦";font-size:12px;color:var(--accent)}
.hero-panel{position:relative;z-index:1;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow2);border-radius:28px;padding:28px;backdrop-filter:blur(16px)}
.hero-panel .panel-label{font-size:12px;color:#667085;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.hero-panel strong{display:block;font-size:62px;line-height:1;letter-spacing:-.08em;margin:10px 0 8px;color:var(--primary)}.mini-lines{display:grid;gap:8px;margin-top:24px}.mini-lines span{height:9px;border-radius:999px;background:#edf0f3}.mini-lines span:nth-child(2){width:76%;background:#ede9fe}.mini-lines span:nth-child(3){width:54%;background:#fef3c7}
.search-box{width:min(610px,100%);margin:0 auto;display:grid;grid-template-columns:1fr auto;gap:10px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:8px;box-shadow:0 12px 32px rgba(38,48,87,.07)}
.search-box input{border:0;background:transparent;padding:12px 14px}.search-box input:focus{outline:0;box-shadow:none}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:48px 0 20px}.section-head p{margin:5px 0 0}.library-head{margin-top:58px}
.magazine-featured{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.feature-card{min-height:292px;border-radius:24px;overflow:hidden;position:relative;background:#e9ecef;box-shadow:var(--shadow2);border:1px solid var(--line)}.feature-card.large{grid-column:span 2}.feature-card img,.cover-fallback{width:100%;height:100%;min-height:292px;display:block;object-fit:cover;background:linear-gradient(135deg,#e5e7eb,#f9fafb)}.cover-fallback:before{content:"Book";display:grid;place-items:center;height:100%;min-height:inherit;color:#98a2b3;font-weight:900;letter-spacing:.04em}.glass-info{position:absolute;left:18px;right:18px;bottom:18px;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.9);backdrop-filter:blur(18px);border-radius:22px;padding:18px;box-shadow:0 16px 38px rgba(15,23,42,.11)}.glass-info span,.book-meta span{display:inline-flex;align-items:center;border:1px solid rgba(79,70,229,.13);background:#f8f9ff;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:900;color:var(--primary);margin-bottom:10px}.glass-info p{margin:0;color:#667085;font-size:13px}.round-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff!important;border-radius:999px;padding:8px 13px;font-weight:900;font-size:12px}.round-link.light{background:#fff;color:var(--text)!important;border:1px solid var(--line)}
.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:22px}.library-card{background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow2);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.library-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.cover-link{display:block;text-decoration:none}.book-cover{aspect-ratio:4/3;background:#e8ebf0;display:block;width:100%;object-fit:cover}.book-info{padding:20px}.book-info p{margin:0}.book-meta{display:flex;gap:7px;flex-wrap:wrap}.book-meta span{margin:0 0 9px}

/* Forms, buttons and cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.btn,button,input[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff!important;border:0;border-radius:999px;padding:12px 18px;text-decoration:none;font-weight:900;cursor:pointer;font-size:14px;line-height:1;box-shadow:0 10px 22px rgba(79,70,229,.18)}
.btn:hover,button:hover,input[type=submit]:hover{filter:brightness(.98);transform:translateY(-1px)}
.btn.secondary,button.secondary{background:#fff;color:var(--text)!important;border:1px solid var(--line);box-shadow:none}.btn.small,button.small{padding:9px 13px;border-radius:999px;font-size:13px}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:15px}.actions h1,.actions h2{margin:0}.actions form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0}.actions select{width:auto;min-width:160px}.actions .btn,.actions button{flex:0 0 auto}
form{display:grid;gap:16px}label{font-weight:900;font-size:13px;color:#252833;letter-spacing:-.01em}label small{display:block;color:var(--muted);font-weight:650;margin:3px 0 7px}input,select,textarea{width:100%;border:1px solid var(--line2);background:#fff;border-radius:15px;padding:12px 14px;font:inherit;color:var(--text);outline:0;min-height:46px}input[type=file]{padding:10px;background:#fff}input:focus,select:focus,textarea:focus{border-color:rgba(79,70,229,.48);box-shadow:0 0 0 4px rgba(79,70,229,.08)}textarea{min-height:132px;resize:vertical}.form-card{max-width:590px;margin:42px auto;background:#fff;border:1px solid var(--line);border-radius:28px;padding:32px;box-shadow:var(--shadow)}.install-card{max-width:720px}.notice{padding:12px 14px;border-radius:15px;margin:0 0 18px;border:1px solid;font-weight:750}.notice.ok{background:#ecfdf3;color:#05603a;border-color:#abefc6}.notice.err{background:#fef3f2;color:#912018;border-color:#fecdca}.notice.info{background:#eff8ff;color:#175cd3;border-color:#b2ddff}
.card{background:var(--paper);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow2);padding:26px}.settings-card{padding:30px}.settings-card h2:first-of-type{margin-top:0}.settings-card p{margin-bottom:18px}

/* Tables */
.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow2);max-width:100%}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:17px 18px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;vertical-align:middle}th{color:#475467;background:linear-gradient(180deg,#fff,#fafbff);font-weight:900;white-space:nowrap}tr:last-child td{border-bottom:0}td{color:#1f2937}.cover-preview{width:82px;height:106px;object-fit:cover;border-radius:14px;background:#eef2f7;border:1px solid var(--line)}

/* Admin */
.admin-layout{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:30px;align-items:start}.admin-main{min-width:0}.sidebar{position:sticky;top:104px;align-self:start;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:26px;padding:16px;box-shadow:var(--shadow2);backdrop-filter:blur(14px)}.sidebar a{display:flex;align-items:center;gap:10px;padding:13px 14px;border-radius:16px;color:var(--text);text-decoration:none;font-weight:900;margin:2px 0}.sidebar a:before{content:"";width:7px;height:7px;border-radius:50%;background:#cbd5e1}.sidebar a:hover,.sidebar a.active{background:var(--soft);color:var(--primary)}.sidebar a.active:before,.sidebar a:hover:before{background:var(--primary)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.stat{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow2);position:relative;overflow:hidden}.stat:after{content:"";position:absolute;right:-28px;top:-28px;width:90px;height:90px;border-radius:50%;background:rgba(79,70,229,.08)}.stat strong{font-size:34px;display:block;letter-spacing:-.06em;color:var(--primary)}

/* Reader */
.reader{background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.reader-cover{width:100%;max-height:84vh;object-fit:contain;background:#f3f4f6}.page{padding:clamp(24px,5vw,58px);border-top:1px solid var(--line);min-height:350px}.page.full_image{padding:0}.page.full_image img{width:100%;display:block}.page.image img{max-width:100%;border-radius:22px;display:block;margin:auto}.page.image_text{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center}.page.image_text img{width:100%;border-radius:22px}.page-body{font-size:clamp(17px,2.2vw,23px);line-height:1.75}.progress-bar{height:8px;background:#eef0f5;border-radius:999px;overflow:hidden;position:sticky;top:72px;z-index:10}.progress-bar span{display:block;background:linear-gradient(90deg,var(--primary),var(--accent));height:100%;width:0}.player{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);width:min(760px,92vw);background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;padding:10px;display:grid;grid-template-columns:1fr 2fr;gap:10px;z-index:50}.player audio{width:100%}.empty{padding:36px;background:#fff;border:1px dashed #cfd4dc;border-radius:22px;text-align:center;color:var(--muted);font-weight:800}
.brand-preview-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.brand-preview{min-height:118px;border:1px dashed var(--line2);border-radius:18px;background:linear-gradient(180deg,#fff,#fbfcff);padding:16px;display:flex;gap:12px;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:var(--muted);font-weight:800}.brand-preview img{max-width:220px;max-height:74px;object-fit:contain}.small-preview img{width:50px;height:50px;object-fit:contain}

@media(max-width:1080px){.container{width:min(100% - 36px,1320px)}.admin-layout{grid-template-columns:1fr}.sidebar{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}.home-hero{grid-template-columns:1fr;padding:38px}.hero-panel{display:none}.magazine-featured{grid-template-columns:1fr 1fr}.feature-card.large{grid-column:span 2}.grid.two{grid-template-columns:1fr}.page.image_text{grid-template-columns:1fr}}
@media(max-width:720px){.top-strip{align-items:flex-start;flex-direction:column;gap:4px}.topbar{align-items:flex-start;flex-direction:column}.topbar nav{justify-content:flex-start}.brand{font-size:18px}.container{width:min(100% - 28px,1320px);margin-top:24px}.admin-main h1,h1{font-size:38px}.home-hero{padding:26px;border-radius:26px;min-height:auto}.search-box{grid-template-columns:1fr}.magazine-featured{grid-template-columns:1fr}.feature-card.large{grid-column:auto}.book-grid{grid-template-columns:1fr}.section-head{align-items:flex-start;flex-direction:column}.player{grid-template-columns:1fr}.brand-preview-row{grid-template-columns:1fr}table{min-width:680px}.card,.settings-card{padding:22px}.form-card{padding:24px}}

/* UI update: cleaner spacing, active colors, real-library shelf */
:root{
  --bg:#f7f7fb;
  --paper:#ffffff;
  --text:#101828;
  --muted:#667085;
  --line:#e6e8ef;
  --line2:#d8ddea;
  --primary:#6254ff;
  --primary2:#9b5cff;
  --accent:#ffb020;
  --blue:#0ea5e9;
  --pink:#ec4899;
  --green:#16a34a;
  --soft:#f1efff;
  --soft-blue:#edf8ff;
  --shadow:0 24px 72px rgba(16,24,40,.09);
  --shadow2:0 12px 32px rgba(16,24,40,.065);
}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(circle at 15% 0,rgba(98,84,255,.09),transparent 26%),radial-gradient(circle at 90% 5%,rgba(255,176,32,.10),transparent 24%),var(--bg);}
h1,h2,h3,.brand,.btn,button,label,th,.sidebar a{font-family:"Plus Jakarta Sans",Inter,system-ui,sans-serif;}
.top-strip{background:linear-gradient(90deg,#111827,#4c1d95 52%,#0f172a);min-height:30px;padding-top:6px;padding-bottom:6px}
.topbar{min-height:78px;padding-top:14px;padding-bottom:14px;background:rgba(255,255,255,.92)}
.topbar nav{gap:10px}
.topbar nav a{position:relative;padding:10px 15px;color:#1f2937;transition:.18s ease}
.topbar nav a.active{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;box-shadow:0 10px 24px rgba(98,84,255,.22)}
.topbar nav a.active:hover{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary2))}
.brand-mark{background:linear-gradient(135deg,#111827,#6254ff);border-radius:14px}
.container{margin-top:34px}
.admin-layout{grid-template-columns:minmax(230px,280px) minmax(0,1fr);gap:34px}
.sidebar{padding:18px;border-radius:28px}.sidebar a{padding:14px 16px;margin:4px 0;color:#202838}.sidebar a.active{background:linear-gradient(135deg,rgba(98,84,255,.12),rgba(14,165,233,.10));color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}
.admin-main h1{font-size:clamp(34px,3.4vw,50px);margin-bottom:8px}.admin-main h2{font-size:clamp(22px,2vw,30px)}
.admin-head-row{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:24px}.admin-head-row.compact{margin-bottom:18px}.admin-head-row p{margin:0}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--primary);background:var(--soft);border:1px solid rgba(98,84,255,.12);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}.eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}
.admin-section-head{margin:30px 0 14px}
.btn,button,input[type=submit]{background:linear-gradient(135deg,var(--primary),var(--primary2));box-shadow:0 10px 22px rgba(98,84,255,.18)}
.btn.secondary,button.secondary{background:#fff;color:#202838!important;border:1px solid var(--line)}
.card,.table-wrap,.stat,.sidebar{box-shadow:var(--shadow2)}
.table-wrap{border-radius:24px}th,td{padding:15px 18px}th{color:#475467;background:linear-gradient(180deg,#fff,#f8f9ff)}
.is-hidden{display:none!important}.load-more-wrap{display:flex;justify-content:center;margin-top:16px}
.status-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.status-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;line-height:1;border:1px solid transparent;white-space:nowrap}.status-chip.on{background:#ecfdf3;color:#067647;border-color:#abefc6}.status-chip.off{background:#f2f4f7;color:#475467;border-color:#e4e7ec}.status-chip.featured{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.status-chip.locked{background:#eef2ff;color:#3730a3;border-color:#c7d2fe}.status-chip.free{background:#ecfeff;color:#0e7490;border-color:#a5f3fc}.status-chip.soft{background:#f4f3ff;color:#5925dc;border-color:#d9d6fe}
.toggle-btn.selected{background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff!important}.toggle-btn.selected-warm{background:linear-gradient(135deg,#f97316,#f59e0b);color:#fff!important}.toggle-btn.selected-dark{background:linear-gradient(135deg,#111827,#4f46e5);color:#fff!important}.toggle-btn.selected-green{background:linear-gradient(135deg,#0891b2,#22d3ee);color:#fff!important}.toggle-btn.muted-toggle{background:#fff!important;color:#344054!important;border:1px solid var(--line);box-shadow:none}.danger-text{color:#b42318!important}.book-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:16px}.book-actions form{margin:0}.book-actions button,.book-actions .btn{white-space:nowrap}
.books-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:20px}.admin-book-card{background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow2);overflow:hidden;display:grid;grid-template-columns:132px minmax(0,1fr);min-height:210px;transition:.18s ease}.admin-book-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.admin-book-cover{position:relative;background:#eef1f7;min-height:100%}.admin-book-cover img,.admin-book-cover .cover-fallback{width:100%;height:100%;min-height:210px;object-fit:cover}.float-chip{position:absolute;left:10px;top:10px;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.9);border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900;color:#475467}.float-chip.featured{color:#c2410c;background:rgba(255,247,237,.9)}.admin-book-body{padding:18px;min-width:0}.admin-book-body h3{margin-bottom:4px}.slug-line{font-size:12px;margin-bottom:10px}.book-admin-meta{display:flex;gap:8px;flex-wrap:wrap}.book-admin-meta span{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:7px 9px;color:#475467;font-weight:850;font-size:12px}
.actions[style*="justify-content:space-between"]{margin-bottom:18px}
input[type="checkbox"]{width:18px;min-height:18px;accent-color:var(--primary)}.actions label:has(input[type="checkbox"]){background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 12px;display:inline-flex;align-items:center;gap:8px}.actions label:has(input[type="checkbox"]:checked){background:var(--soft);color:var(--primary);border-color:rgba(98,84,255,.25)}

/* My Books: real library shelf */
.my-library-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:24px;align-items:center;background:linear-gradient(135deg,#fff,#faf8ff);border:1px solid var(--line);border-radius:34px;padding:36px;box-shadow:var(--shadow);margin-bottom:32px}.my-library-hero h1{margin-bottom:10px}.mini-search{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px}.mini-search input{max-width:360px;background:#fff}.library-stats-card{background:rgba(255,255,255,.82);border:1px solid var(--line);border-radius:26px;padding:20px;display:grid;gap:12px;box-shadow:var(--shadow2)}.library-stats-card>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:10px}.library-stats-card>div:last-child{border-bottom:0;padding-bottom:0}.library-stats-card strong{font-family:"Plus Jakarta Sans";font-size:28px;color:var(--primary)}.real-shelf{background:linear-gradient(180deg,#fff,#fbfbff);border:1px solid var(--line);border-radius:32px;padding:28px;box-shadow:var(--shadow2)}.shelf-top{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.shelf-top p{margin:0}.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:24px;position:relative}.shelf-book{position:relative;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:0 8px 24px rgba(16,24,40,.06);overflow:hidden;transition:.18s ease}.shelf-book:after{content:"";position:absolute;left:14px;right:14px;bottom:-8px;height:12px;background:rgba(16,24,40,.10);filter:blur(12px);border-radius:50%;z-index:-1}.shelf-book:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.shelf-cover{display:block;background:#e9edf5;padding:16px 16px 0;text-decoration:none}.shelf-cover img,.shelf-cover .cover-fallback{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:16px 16px 6px 6px;box-shadow:0 18px 36px rgba(16,24,40,.16);background:#f3f4f6}.shelf-info{padding:18px}.shelf-info h3{min-height:46px}.read-progress{height:8px;background:#eef0f6;border-radius:999px;overflow:hidden;margin:14px 0 8px}.read-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:inherit}.shelf-foot{display:flex;align-items:center;justify-content:space-between;color:#667085;font-weight:800;font-size:12px;margin-bottom:14px}

/* Reader image reliability and layout */
.reader-shell{max-width:1120px;margin:0 auto}.reader-titlebar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:18px}.reader-titlebar h1{font-size:clamp(30px,4vw,52px);margin:0}.reader{border-radius:30px}.page.image_text{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:38px}.page-image{margin:0}.page-image img,.page.image img,.page.image_text img{width:100%;max-height:78vh;object-fit:contain;background:#f8fafc;border:1px solid var(--line);border-radius:22px}.page.image .image-only{display:grid;gap:18px}.image-error-box{display:grid;place-items:center;text-align:center;min-height:170px;border:1px dashed #fda29b;background:#fff6f5;color:#b42318;border-radius:18px;padding:16px;font-weight:850}.reader-cover{background:#f8fafc}.locked-book{text-align:center}

@media(max-width:980px){.admin-head-row,.my-library-hero,.reader-titlebar{grid-template-columns:1fr;display:grid;align-items:start}.books-admin-grid{grid-template-columns:1fr}.admin-book-card{grid-template-columns:110px minmax(0,1fr)}.my-library-hero{padding:28px}.page.image_text{grid-template-columns:1fr}.topbar nav a{padding:9px 12px}}
@media(max-width:640px){.admin-book-card{grid-template-columns:1fr}.admin-book-cover img,.admin-book-cover .cover-fallback{height:240px;min-height:240px}.books-admin-grid{gap:16px}.book-actions{gap:7px}.real-shelf{padding:18px}.shelf-grid{grid-template-columns:1fr}.my-library-hero{border-radius:26px;padding:22px}.mini-search{display:grid;grid-template-columns:1fr}.mini-search input{max-width:none}.library-stats-card{grid-template-columns:1fr}.topbar nav{width:100%;overflow:auto;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:2px}.topbar nav a{flex:0 0 auto}.topbar{gap:10px}.top-strip{display:none}}

/* 20260705-4: cleaner sidebar, book-spread reader and page builder */
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;}
h1,h2,h3,.brand,.btn,button,label,th,.sidebar a,.reader-count,.reader-meta-card strong{font-family:Sora,Inter,system-ui,sans-serif;}
.sidebar a{gap:0;padding-left:18px;position:relative;overflow:hidden}.sidebar a:before{display:none!important}.sidebar a.active{background:linear-gradient(135deg,rgba(99,102,241,.14),rgba(236,72,153,.10));color:#4f46e5;box-shadow:none}.sidebar a.active:after{content:"";position:absolute;left:0;top:12px;bottom:12px;width:5px;border-radius:999px;background:linear-gradient(180deg,#6366f1,#ec4899)}.sidebar a:hover{background:#f6f4ff;color:#4f46e5}.admin-layout{align-items:flex-start}.topbar nav a.active{background:linear-gradient(135deg,#4f46e5,#ec4899)}

.page-builder-card{display:grid;gap:22px}.page-builder-title h2{margin-bottom:6px}.spread-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.mini-page-form{background:linear-gradient(180deg,#fff,#fbfcff);border:1px solid var(--line);border-radius:24px;padding:20px;display:grid;gap:14px}.mini-page-form.left-page-form{box-shadow:inset 0 0 0 1px rgba(99,102,241,.06)}.mini-page-form.right-page-form{box-shadow:inset 0 0 0 1px rgba(236,72,153,.06)}.mini-page-label{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:12px}.mini-page-label span{font-family:Sora,Inter,sans-serif;font-weight:900;color:#111827}.mini-page-label small{color:#687083;font-weight:750;text-align:right}.current-media{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:10px;color:#667085;font-weight:800}.current-media img{width:72px;height:72px;object-fit:cover;border-radius:12px}.advanced-details{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.advanced-details summary{cursor:pointer;font-weight:900;color:#4f46e5}.page-head-actions{align-items:flex-start!important}

.reader-shell.book-mode{max-width:min(1420px,100%);margin:0 auto}.book-mode .reader-titlebar{align-items:center}.reader-meta-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px 18px;min-width:190px;box-shadow:var(--shadow2);display:grid;gap:2px}.reader-meta-card span{color:#667085;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.reader-meta-card strong{font-size:24px;color:#4f46e5;letter-spacing:-.04em}.reader-controls{display:flex;align-items:center;justify-content:center;gap:14px;margin:8px 0 14px}.reader-count{background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 15px;color:#344054;font-weight:900;min-width:84px;text-align:center;box-shadow:var(--shadow2)}.book-mode .progress-bar{height:7px;margin-bottom:16px;top:78px;background:#e9edf7}.book-mode .progress-bar span{background:linear-gradient(90deg,#4f46e5,#ec4899,#f59e0b)}
.reader.book-swipe{display:flex;gap:18px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;background:transparent;border:0;box-shadow:none;border-radius:0;padding:4px 4px 22px;height:min(78vh,780px);min-height:540px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.reader.book-swipe::-webkit-scrollbar{height:10px}.reader.book-swipe::-webkit-scrollbar-thumb{background:#d5d8e2;border-radius:999px}.page-spread{flex:0 0 100%;scroll-snap-align:start;background:linear-gradient(90deg,#fff 0,#fff 49.7%,#eef1f7 50%,#fff 50.3%,#fff 100%);border:1px solid var(--line);border-radius:32px;box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden;min-width:0}.page-spread.single{display:block;background:#fff}.single-page{height:100%;display:grid;place-items:center;background:#fff}.book-panel{min-width:0;padding:clamp(22px,3vw,42px);height:100%;display:flex;flex-direction:column;justify-content:center;gap:18px;overflow:auto}.book-panel.right-panel{background:linear-gradient(180deg,#fff,#fbfbff)}.book-panel.left-panel{background:#fff}.panel-image{margin:0;display:grid;place-items:center;min-height:0}.panel-image img{width:100%;max-height:calc(min(78vh,780px) - 100px);object-fit:contain;border:1px solid var(--line);border-radius:24px;background:#f8fafc;box-shadow:0 14px 42px rgba(16,24,40,.08)}.panel-image:only-child img,.panel-image img.reader-cover{max-height:100%}.panel-copy{max-width:720px;margin:0 auto;width:100%}.panel-copy h2{font-size:clamp(24px,3vw,42px);margin-bottom:18px;color:#111827}.book-panel.panel-image .panel-image img{border:0;box-shadow:none}.book-panel.panel-full_image,.book-panel.panel-image{padding:clamp(16px,2vw,28px)}.book-panel.panel-full_image .panel-image img,.book-panel.panel-image .panel-image img{max-height:calc(min(78vh,780px) - 60px)}.page-body{font-size:clamp(17px,1.6vw,24px);line-height:1.75;color:#202838}.empty-panel{border:1px dashed #d0d5dd;background:#f8fafc;border-radius:20px;color:#98a2b3;font-weight:850;display:grid;place-items:center;min-height:180px;text-align:center;padding:20px}.cover-spread .single-page{padding:clamp(18px,3vw,36px);background:linear-gradient(135deg,#f8fafc,#fff)}.reader-cover{width:100%;height:100%;max-height:calc(min(78vh,780px) - 70px);object-fit:contain;border-radius:24px;background:#fff}.single-page .single-panel{width:100%;height:100%;max-width:980px;margin:auto}.single-page .single-panel .panel-image img{max-height:calc(min(78vh,780px) - 90px)}

@media(max-width:980px){.spread-admin-grid{grid-template-columns:1fr}.reader.book-swipe{height:min(76vh,720px);min-height:500px}.page-spread{grid-template-columns:1fr 1fr}.book-panel{padding:22px}.panel-copy h2{font-size:28px}.page-body{font-size:17px}.reader-controls{justify-content:space-between}.reader-meta-card{min-width:160px}}
@media(max-width:720px){.book-mode .reader-titlebar{grid-template-columns:1fr}.reader-controls{gap:8px}.reader-controls .btn{padding:10px 12px;font-size:12px}.reader.book-swipe{height:72vh;min-height:500px;gap:12px}.page-spread{grid-template-columns:1fr;background:#fff}.book-panel{height:50%;min-height:250px;border-bottom:1px solid var(--line);justify-content:center}.book-panel.right-panel{border-bottom:0}.panel-image img{max-height:240px}.page-spread.single .single-page,.single-page{height:100%}.reader-meta-card{width:100%}.mini-page-label{display:grid}.mini-page-label small{text-align:left}.reader-count{padding:9px 12px}}

/* 20260705-6: uploaded image manager */
.media-stats .stat strong{font-size:clamp(24px,3vw,34px)}
.media-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 20px;padding:16px 18px}
.media-filter-tabs{display:flex;gap:8px;flex-wrap:wrap}.media-filter-tabs a{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;text-decoration:none;font-weight:900;color:#344054;background:#f8fafc;border:1px solid var(--line)}.media-filter-tabs a.active{background:linear-gradient(135deg,#4f46e5,#ec4899);color:#fff;border-color:transparent;box-shadow:0 12px 30px rgba(79,70,229,.20)}
.media-search-row{display:flex;align-items:center;gap:10px;flex:1;justify-content:flex-end}.media-search-row input{max-width:360px}.btn.ghost{background:transparent;color:#4f46e5;border:1px solid transparent;box-shadow:none}.btn.danger{background:linear-gradient(135deg,#dc2626,#f97316);color:#fff}.media-clean-form{display:grid;gap:18px}.media-action-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.media-card{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:var(--shadow2);display:flex;flex-direction:column;min-width:0}.media-card.is-unused{border-color:#fed7aa}.media-card.is-used{border-color:#d1fadf}.media-thumb-wrap{position:relative;background:#f2f4f7;aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden}.media-thumb-wrap img{width:100%;height:100%;object-fit:contain;background:linear-gradient(135deg,#f8fafc,#fff)}.media-thumb-wrap .status-chip{position:absolute;right:12px;top:12px;box-shadow:0 8px 22px rgba(16,24,40,.12)}.media-check{position:absolute;left:12px;top:12px;z-index:2;cursor:pointer}.media-check input{position:absolute;opacity:0}.media-check span{display:block;width:30px;height:30px;border-radius:10px;background:#fff;border:2px solid #d0d5dd;box-shadow:0 8px 22px rgba(16,24,40,.12)}.media-check input:checked+span{background:linear-gradient(135deg,#4f46e5,#ec4899);border-color:transparent}.media-check input:checked+span:after{content:'✓';display:grid;place-items:center;color:#fff;font-weight:900;height:100%}.media-info{padding:16px;display:grid;gap:10px}.media-info h3{font-size:15px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-path{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.media-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:#667085;font-weight:800;border-top:1px solid var(--line);padding-top:10px}.usage-details{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:10px 12px}.usage-details summary{cursor:pointer;font-weight:900;color:#067647}.usage-details ul{margin:8px 0 0;padding-left:18px;color:#344054;font-size:12px}.usage-details li+li{margin-top:5px}
@media(max-width:820px){.media-toolbar{display:grid}.media-search-row{justify-content:stretch}.media-search-row input{max-width:none}.media-action-row{display:grid}.media-grid{grid-template-columns:1fr}}

/* 20260705-8: protected reader, no-copy deterrents and fullscreen page mode */
body.reading-protected .reader-shell,
body.reading-protected .reader-shell *{
  -webkit-user-select:none;
  user-select:none;
}
body.reading-protected .reader-shell img{
  -webkit-user-drag:none;
  user-drag:none;
}
.reader-shell.book-mode{position:relative;}
.reader-icon-btn{
  width:42px;
  height:42px;
  border:1px solid rgba(79,70,229,.20);
  border-radius:14px;
  background:linear-gradient(135deg,#ffffff,#eef2ff);
  color:var(--primary);
  display:inline-grid;
  place-items:center;
  font-size:20px;
  line-height:1;
  font-weight:900;
  cursor:pointer;
  box-shadow:var(--shadow2);
  transition:.18s ease;
}
.reader-icon-btn:hover{transform:translateY(-1px);background:linear-gradient(135deg,#eef2ff,#fff7ed);color:#7c3aed}
.reader-controls .btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.reader-shell .reader-titlebar,
.reader-shell .reader-controls,
.reader-shell .progress-bar,
.reader-shell .reader{position:relative;z-index:5}
.reader-watermark{
  position:absolute;
  inset:84px 18px 18px;
  pointer-events:none;
  z-index:4;
  display:grid;
  place-items:center;
  color:#111827;
  opacity:.045;
  font-size:clamp(30px,6vw,96px);
  font-weight:950;
  letter-spacing:-.06em;
  transform:rotate(-18deg);
  text-align:center;
  white-space:pre-wrap;
  line-height:1.1;
  mix-blend-mode:multiply;
}
.privacy-shield{
  position:absolute;
  inset:0;
  z-index:1000;
  border-radius:inherit;
  background:rgba(246,248,252,.94);
  backdrop-filter:blur(18px);
  color:#111827;
  display:grid;
  place-items:center;
  text-align:center;
  padding:28px;
  opacity:0;
  visibility:hidden;
  transition:.18s ease;
}
.privacy-shield strong{display:block;font-family:Sora,Manrope,Inter,sans-serif;font-size:clamp(24px,4vw,48px);letter-spacing:-.06em;margin-bottom:8px}
.privacy-shield span{display:block;color:var(--muted);font-weight:850}
.reader-shell.privacy-on .privacy-shield{opacity:1;visibility:visible}
.reader-shell.book-mode.is-fullscreen,
.reader-shell.book-mode:fullscreen,
.reader-shell.book-mode:-webkit-full-screen{
  width:100vw;
  height:100vh;
  max-width:none;
  margin:0;
  padding:18px;
  overflow:hidden;
  background:radial-gradient(circle at 15% 10%,rgba(79,70,229,.10),transparent 28%),linear-gradient(135deg,#f8fafc,#ffffff 48%,#fff7ed);
  display:grid;
  grid-template-rows:auto auto auto minmax(0,1fr);
}
.reader-shell.book-mode.is-fullscreen .reader-titlebar,
.reader-shell.book-mode:fullscreen .reader-titlebar,
.reader-shell.book-mode:-webkit-full-screen .reader-titlebar{
  margin-bottom:10px;
  align-items:center;
}
.reader-shell.book-mode.is-fullscreen .reader-titlebar h1,
.reader-shell.book-mode:fullscreen .reader-titlebar h1,
.reader-shell.book-mode:-webkit-full-screen .reader-titlebar h1{
  font-size:clamp(22px,3vw,38px);
}
.reader-shell.book-mode.is-fullscreen .reader-titlebar p,
.reader-shell.book-mode:fullscreen .reader-titlebar p,
.reader-shell.book-mode:-webkit-full-screen .reader-titlebar p{
  display:none;
}
.reader-shell.book-mode.is-fullscreen .reader-meta-card,
.reader-shell.book-mode:fullscreen .reader-meta-card,
.reader-shell.book-mode:-webkit-full-screen .reader-meta-card{
  padding:10px 14px;
  min-width:150px;
}
.reader-shell.book-mode.is-fullscreen .reader-controls,
.reader-shell.book-mode:fullscreen .reader-controls,
.reader-shell.book-mode:-webkit-full-screen .reader-controls{
  margin:4px 0 10px;
}
.reader-shell.book-mode.is-fullscreen .book-swipe,
.reader-shell.book-mode:fullscreen .book-swipe,
.reader-shell.book-mode:-webkit-full-screen .book-swipe{
  height:auto;
  min-height:0;
  max-height:none;
  padding-bottom:12px;
}
.reader-shell.book-mode.is-fullscreen .page-spread,
.reader-shell.book-mode:fullscreen .page-spread,
.reader-shell.book-mode:-webkit-full-screen .page-spread{
  border-radius:24px;
}
.reader-shell.book-mode.is-fullscreen .panel-image img,
.reader-shell.book-mode:fullscreen .panel-image img,
.reader-shell.book-mode:-webkit-full-screen .panel-image img{
  max-height:calc(100vh - 230px);
}
.reader-shell.book-mode.is-fullscreen .reader-cover,
.reader-shell.book-mode:fullscreen .reader-cover,
.reader-shell.book-mode:-webkit-full-screen .reader-cover{
  max-height:calc(100vh - 210px);
}
.reader-shell.book-mode.is-fullscreen .reader-watermark,
.reader-shell.book-mode:fullscreen .reader-watermark,
.reader-shell.book-mode:-webkit-full-screen .reader-watermark{
  inset:110px 20px 20px;
  opacity:.04;
}
body.reader-fullscreen-active .player{display:none}
body.privacy-print-block .reader-shell{display:none!important}
body.privacy-print-block:before{content:'Protected book reading cannot be printed.';display:grid;place-items:center;min-height:80vh;font:900 28px/1.3 Inter,system-ui;color:#111827;text-align:center;padding:40px}
@media print{
  .reader-shell{display:none!important}
  body:before{content:'Protected book reading cannot be printed.';display:block!important;font:900 24px/1.4 Arial,sans-serif;color:#111827;padding:40px;text-align:center}
}
@media(max-width:720px){
  .reader-icon-btn{width:38px;height:38px;border-radius:12px;font-size:18px}
  .reader-watermark{font-size:34px;opacity:.035}
  .reader-shell.book-mode.is-fullscreen,
  .reader-shell.book-mode:fullscreen,
  .reader-shell.book-mode:-webkit-full-screen{padding:12px}
  .reader-shell.book-mode.is-fullscreen .reader-titlebar,
  .reader-shell.book-mode:fullscreen .reader-titlebar,
  .reader-shell.book-mode:-webkit-full-screen .reader-titlebar{display:none}
  .reader-shell.book-mode.is-fullscreen .panel-image img,
  .reader-shell.book-mode:fullscreen .panel-image img,
  .reader-shell.book-mode:-webkit-full-screen .panel-image img{max-height:calc(50vh - 80px)}
}
body.reading-protected .reader-shell{ -webkit-touch-callout:none; }

/* 20260705-9: stable fullscreen + page navigation fix */
.reader-controls{
  position:relative;
  z-index:30;
  flex-wrap:wrap;
  padding:10px 12px;
  border-radius:24px;
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(14px);
  border:1px solid rgba(99,102,241,.12);
  box-shadow:0 18px 44px rgba(16,24,40,.08);
  width:max-content;
  max-width:100%;
  margin-left:auto;
  margin-right:auto;
}
.reader-controls .btn,
.reader-controls .btn.small{
  min-width:118px;
  position:relative;
  z-index:40;
}
.reader-icon-btn{
  width:48px;
  height:48px;
  min-width:48px;
  border:2px solid rgba(255,255,255,.88);
  border-radius:16px;
  background:linear-gradient(135deg,#111827,#4f46e5)!important;
  color:#fff!important;
  font-size:24px;
  box-shadow:0 18px 40px rgba(79,70,229,.28),0 0 0 4px rgba(79,70,229,.10);
  text-shadow:0 1px 2px rgba(0,0,0,.22);
}
.reader-icon-btn:hover,
.reader-icon-btn.is-active{
  background:linear-gradient(135deg,#4f46e5,#ec4899)!important;
  color:#fff!important;
  transform:translateY(-1px) scale(1.02);
}
.reader-count{
  background:#111827;
  color:#fff;
  border-color:#111827;
}
.reader.book-swipe{
  scroll-padding-left:0;
  touch-action:pan-y pan-x;
}
.page-spread.is-active-page{
  outline:3px solid rgba(79,70,229,.18);
  outline-offset:-3px;
}
.reader-shell.book-mode.is-fullscreen{
  position:fixed;
  inset:0;
  z-index:999999;
}
.reader-shell.book-mode.is-fullscreen,
.reader-shell.book-mode:fullscreen,
.reader-shell.book-mode:-webkit-full-screen{
  grid-template-rows:auto auto auto minmax(0,1fr)!important;
  box-sizing:border-box;
}
.reader-shell.book-mode.is-fullscreen .reader-controls,
.reader-shell.book-mode:fullscreen .reader-controls,
.reader-shell.book-mode:-webkit-full-screen .reader-controls{
  position:sticky;
  top:0;
  z-index:999;
  margin:0 auto 10px;
  background:rgba(17,24,39,.88);
  border-color:rgba(255,255,255,.18);
  box-shadow:0 22px 60px rgba(0,0,0,.24);
}
.reader-shell.book-mode.is-fullscreen .reader-controls .btn,
.reader-shell.book-mode:fullscreen .reader-controls .btn,
.reader-shell.book-mode:-webkit-full-screen .reader-controls .btn{
  background:#fff;
  color:#111827;
  box-shadow:none;
}
.reader-shell.book-mode.is-fullscreen .reader-controls .btn.secondary,
.reader-shell.book-mode:fullscreen .reader-controls .btn.secondary,
.reader-shell.book-mode:-webkit-full-screen .reader-controls .btn.secondary{
  background:rgba(255,255,255,.14);
  color:#fff;
  border-color:rgba(255,255,255,.28);
}
.reader-shell.book-mode.is-fullscreen .reader-count,
.reader-shell.book-mode:fullscreen .reader-count,
.reader-shell.book-mode:-webkit-full-screen .reader-count{
  background:rgba(255,255,255,.16);
  color:#fff;
  border-color:rgba(255,255,255,.20);
}
.reader-shell.book-mode.is-fullscreen .reader-icon-btn,
.reader-shell.book-mode:fullscreen .reader-icon-btn,
.reader-shell.book-mode:-webkit-full-screen .reader-icon-btn{
  background:linear-gradient(135deg,#f59e0b,#ec4899)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.45);
  box-shadow:0 14px 34px rgba(236,72,153,.30),0 0 0 4px rgba(255,255,255,.12);
}
.reader-shell.book-mode.is-fullscreen .book-swipe,
.reader-shell.book-mode:fullscreen .book-swipe,
.reader-shell.book-mode:-webkit-full-screen .book-swipe{
  width:100%;
  min-width:0;
}
body.reader-fullscreen-active{
  overflow:hidden!important;
}
@media(max-width:720px){
  .reader-controls{width:100%;justify-content:center;gap:8px;padding:8px;border-radius:18px}
  .reader-controls .btn,.reader-controls .btn.small{min-width:96px;padding:10px 12px}
  .reader-count{order:4;width:100%;max-width:120px;margin:0 auto}
  .reader-icon-btn{width:44px;height:44px;min-width:44px;font-size:22px}
  .reader-shell.book-mode.is-fullscreen .reader-controls,
  .reader-shell.book-mode:fullscreen .reader-controls,
  .reader-shell.book-mode:-webkit-full-screen .reader-controls{display:flex!important}
}

/* 20260705-10: admin clear cache and stronger reader controls */
.sidebar-cache-form{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:grid;gap:7px}
.cache-clear-btn{width:100%;border:0;border-radius:16px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-weight:900;padding:12px 14px;cursor:pointer;box-shadow:0 14px 34px rgba(79,70,229,.20);font-family:Sora,Inter,system-ui,sans-serif}
.cache-clear-btn:hover{transform:translateY(-1px);box-shadow:0 18px 42px rgba(79,70,229,.26)}
.sidebar-cache-form small{color:#667085;font-size:11px;font-weight:800;text-align:center}
.reader-controls button{pointer-events:auto!important}
.reader-icon-btn{background:linear-gradient(135deg,#0f172a,#4f46e5)!important;color:#fff!important;border-color:rgba(255,255,255,.9)!important;position:relative;z-index:80!important}
.reader-icon-btn:focus-visible,.reader-controls .btn:focus-visible{outline:4px solid rgba(79,70,229,.24);outline-offset:3px}
.reader.book-swipe{scroll-snap-stop:always}
.page-spread{scroll-snap-stop:always}
.reader-shell.book-mode.is-fullscreen .top-strip,.reader-shell.book-mode.is-fullscreen .topbar{display:none!important}
@media(max-width:720px){.sidebar-cache-form{margin-top:12px}.cache-clear-btn{padding:11px 12px}.reader-controls .btn,.reader-controls .btn.small{min-width:92px}}


/* 20260705-11: full-screen button as text + high contrast reader controls */
.fullscreen-text-btn{
  min-width:132px!important;
  white-space:nowrap;
  background:linear-gradient(135deg,#111827,#4f46e5)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.72)!important;
  box-shadow:0 14px 34px rgba(79,70,229,.22)!important;
}
.fullscreen-text-btn:hover,
.fullscreen-text-btn.is-active{
  background:linear-gradient(135deg,#f59e0b,#ec4899)!important;
  color:#fff!important;
  transform:translateY(-1px);
}
.reader-shell.book-mode.is-fullscreen .reader-controls,
.reader-shell.book-mode:fullscreen .reader-controls,
.reader-shell.book-mode:-webkit-full-screen .reader-controls{
  position:sticky!important;
  top:12px!important;
  z-index:1000000!important;
  background:#0f172a!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.26)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.42)!important;
  backdrop-filter:none!important;
  padding:12px 14px!important;
  gap:12px!important;
}
.reader-shell.book-mode.is-fullscreen .reader-controls .btn,
.reader-shell.book-mode:fullscreen .reader-controls .btn,
.reader-shell.book-mode:-webkit-full-screen .reader-controls .btn{
  border:1px solid rgba(255,255,255,.22)!important;
  text-shadow:none!important;
  box-shadow:0 12px 28px rgba(0,0,0,.22)!important;
  font-weight:900!important;
}
.reader-shell.book-mode.is-fullscreen [data-reader-prev],
.reader-shell.book-mode:fullscreen [data-reader-prev],
.reader-shell.book-mode:-webkit-full-screen [data-reader-prev]{
  background:#fff!important;
  color:#0f172a!important;
}
.reader-shell.book-mode.is-fullscreen [data-reader-next],
.reader-shell.book-mode:fullscreen [data-reader-next],
.reader-shell.book-mode:-webkit-full-screen [data-reader-next]{
  background:linear-gradient(135deg,#4f46e5,#7c3aed)!important;
  color:#fff!important;
}
.reader-shell.book-mode.is-fullscreen [data-reader-fullscreen],
.reader-shell.book-mode:fullscreen [data-reader-fullscreen],
.reader-shell.book-mode:-webkit-full-screen [data-reader-fullscreen]{
  min-width:156px!important;
  background:linear-gradient(135deg,#f59e0b,#f97316)!important;
  color:#111827!important;
  border-color:rgba(255,255,255,.40)!important;
}
.reader-shell.book-mode.is-fullscreen [data-reader-fullscreen].is-active,
.reader-shell.book-mode:fullscreen [data-reader-fullscreen].is-active,
.reader-shell.book-mode:-webkit-full-screen [data-reader-fullscreen].is-active{
  background:linear-gradient(135deg,#f97316,#ef4444)!important;
  color:#fff!important;
}
.reader-shell.book-mode.is-fullscreen .reader-count,
.reader-shell.book-mode:fullscreen .reader-count,
.reader-shell.book-mode:-webkit-full-screen .reader-count{
  background:#fff!important;
  color:#0f172a!important;
  border-color:rgba(255,255,255,.30)!important;
  box-shadow:0 12px 28px rgba(0,0,0,.22)!important;
}
.reader-shell.book-mode.is-fullscreen .reader-controls .btn:disabled,
.reader-shell.book-mode:fullscreen .reader-controls .btn:disabled,
.reader-shell.book-mode:-webkit-full-screen .reader-controls .btn:disabled{
  opacity:.48!important;
  filter:grayscale(.2)!important;
}
@media(max-width:720px){
  .fullscreen-text-btn{min-width:120px!important;}
  .reader-shell.book-mode.is-fullscreen .reader-controls,
  .reader-shell.book-mode:fullscreen .reader-controls,
  .reader-shell.book-mode:-webkit-full-screen .reader-controls{
    top:8px!important;
    gap:8px!important;
  }
  .reader-shell.book-mode.is-fullscreen [data-reader-fullscreen],
  .reader-shell.book-mode:fullscreen [data-reader-fullscreen],
  .reader-shell.book-mode:-webkit-full-screen [data-reader-fullscreen]{
    min-width:142px!important;
  }
}

/* 20260706-1: visible swipe progress line above book pages */
.book-mode .progress-bar,
.reader-shell.book-mode .progress-bar{
  position:sticky!important;
  top:82px!important;
  z-index:999999!important;
  height:16px!important;
  padding:4px!important;
  margin:0 10px 20px!important;
  background:#ffffff!important;
  border:1px solid rgba(79,70,229,.22)!important;
  border-radius:999px!important;
  box-shadow:0 14px 34px rgba(16,24,40,.14)!important;
  overflow:hidden!important;
  pointer-events:none!important;
  isolation:isolate!important;
}
.book-mode .progress-bar:after,
.reader-shell.book-mode .progress-bar:after{
  content:"Swipe progress";
  position:absolute;
  right:10px;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  font-size:9px;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:900;
  color:#667085;
  background:rgba(255,255,255,.88);
  border-radius:999px;
  padding:3px 7px;
}
.book-mode .progress-bar span,
.reader-shell.book-mode .progress-bar span{
  position:relative;
  z-index:2;
  display:block!important;
  height:100%!important;
  min-width:10px;
  border-radius:999px!important;
  background:linear-gradient(90deg,#4f46e5,#ec4899,#f59e0b)!important;
  box-shadow:0 0 22px rgba(236,72,153,.22)!important;
  transition:width .22s ease!important;
}
.reader-shell.book-mode .reader,
.reader-shell.book-mode .book-swipe{
  position:relative;
  z-index:1!important;
}
.reader-shell.book-mode.is-fullscreen .progress-bar,
.reader-shell.book-mode:fullscreen .progress-bar,
.reader-shell.book-mode:-webkit-full-screen .progress-bar{
  top:calc(18px + var(--reader-controls-h, 58px))!important;
  margin:0 auto 12px!important;
  width:min(980px,calc(100% - 28px))!important;
  height:18px!important;
  background:#ffffff!important;
  border:1px solid rgba(255,255,255,.62)!important;
  box-shadow:0 18px 50px rgba(0,0,0,.34)!important;
}
.reader-shell.book-mode.is-fullscreen .progress-bar:after,
.reader-shell.book-mode:fullscreen .progress-bar:after,
.reader-shell.book-mode:-webkit-full-screen .progress-bar:after{
  color:#0f172a;
  background:rgba(255,255,255,.92);
}
@media(max-width:720px){
  .book-mode .progress-bar,
  .reader-shell.book-mode .progress-bar{
    top:12px!important;
    height:15px!important;
    margin:0 4px 14px!important;
  }
  .book-mode .progress-bar:after,
  .reader-shell.book-mode .progress-bar:after{
    content:"Swipe";
    font-size:8px;
    right:7px;
    padding:2px 6px;
  }
  .reader-shell.book-mode.is-fullscreen .progress-bar,
  .reader-shell.book-mode:fullscreen .progress-bar,
  .reader-shell.book-mode:-webkit-full-screen .progress-bar{
    top:calc(16px + var(--reader-controls-h, 98px))!important;
    width:calc(100% - 20px)!important;
    margin-bottom:10px!important;
  }
}

/* 20260706-2: auth button contrast + OTP/forgot password UX */
.topbar nav a.btn,
.topbar nav a.btn.small,
.topbar nav a.btn:hover,
.topbar nav a.btn.small:hover{
  background:linear-gradient(135deg,#4f46e5,#7c3aed)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 12px 26px rgba(79,70,229,.24)!important;
}
.topbar nav a.btn:hover,
.topbar nav a.btn.small:hover,
.form-card button:hover,
.auth-card button:hover,
.auth-button-row button:hover{
  background:linear-gradient(135deg,#111827,#4f46e5)!important;
  color:#fff!important;
  filter:none!important;
  text-shadow:none!important;
}
.auth-card{
  overflow:hidden;
  position:relative;
}
.auth-card:before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:7px;
  background:linear-gradient(90deg,#4f46e5,#ec4899,#f59e0b);
}
.auth-links{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:4px;
}
.auth-links a{
  color:#4f46e5;
  font-weight:900;
  text-decoration:none;
}
.auth-links a:hover{
  color:#111827;
  text-decoration:underline;
}
.auth-button-row{
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}
.auth-button-row button{
  min-width:150px;
}
.email-help{
  margin-top:2px!important;
}
.email-test-box{
  border:1px solid var(--line);
  background:linear-gradient(135deg,#ffffff,#fbfbff);
  border-radius:20px;
  padding:18px;
  display:grid;
  gap:14px;
}
.mail-status{
  border-radius:18px;
  padding:14px 16px;
  border:1px solid var(--line);
  font-weight:800;
}
.mail-status.ok{
  background:#ecfdf3;
  color:#05603a;
  border-color:#abefc6;
}
.mail-status.bad{
  background:#fef3f2;
  color:#912018;
  border-color:#fecdca;
}
.mail-status span{
  font-weight:700;
}
@media(max-width:640px){
  .auth-button-row button{width:100%;}
  .auth-links{display:grid;gap:8px;}
}

/* 20260706-3: clearer OTP resend and account deletion UX */
.verify-card .resend-otp-btn{
  border:1px solid rgba(79,70,229,.24)!important;
  background:#ffffff!important;
  color:#4f46e5!important;
  box-shadow:0 10px 24px rgba(79,70,229,.10)!important;
}
.verify-card .resend-otp-btn:hover{
  background:linear-gradient(135deg,#4f46e5,#7c3aed)!important;
  color:#fff!important;
}
.otp-help-box{
  margin-top:12px;
  border:1px solid #d9d6fe;
  background:linear-gradient(135deg,#f4f3ff,#fff7ed);
  border-radius:18px;
  padding:14px 16px;
  display:grid;
  gap:4px;
  color:#344054;
}
.otp-help-box strong{color:#3730a3;font-weight:950;}
.otp-help-box span{font-size:13px;font-weight:750;}
.account-page{display:grid;gap:22px;}
.account-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px;}
.account-hero h1{font-size:clamp(36px,4.4vw,58px);margin-bottom:10px;}
.account-mini-stats{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:12px;min-width:min(520px,100%);}
.account-mini-stats div{background:#f8fafc;border:1px solid var(--line);border-radius:18px;padding:14px;display:grid;gap:4px;}
.account-mini-stats strong{font-size:22px;color:#4f46e5;letter-spacing:-.04em;}
.account-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);gap:22px;align-items:start;}
.profile-card,.danger-zone{display:grid;gap:14px;}
.profile-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:12px 0;}
.profile-row span{color:#667085;font-weight:850;}
.profile-row strong{text-align:right;word-break:break-word;}
.danger-zone{border-color:#fecaca!important;background:linear-gradient(135deg,#fff,#fff7ed)!important;}
button.danger,.danger-zone button.danger,.user-actions button.danger{
  background:linear-gradient(135deg,#dc2626,#f97316)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 12px 28px rgba(220,38,38,.20)!important;
}
button.danger:hover,.danger-zone button.danger:hover,.user-actions button.danger:hover{
  background:linear-gradient(135deg,#991b1b,#dc2626)!important;
  color:#fff!important;
}
button:disabled,.btn:disabled,.user-actions button:disabled{
  opacity:.52!important;
  cursor:not-allowed!important;
  filter:grayscale(.3)!important;
  transform:none!important;
}
.admin-tip{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px;padding:18px;}
.admin-tip strong{font-weight:950;color:#111827;white-space:nowrap;}
.admin-tip span{color:#667085;font-weight:750;}
.user-actions{display:grid!important;gap:10px!important;align-items:start!important;}
.user-actions form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0;}
.status-chip.active{background:#ecfdf3;color:#067647;border-color:#abefc6;}
.status-chip.pending{background:#fff7ed;color:#c2410c;border-color:#fed7aa;}
.status-chip.blocked{background:#fef3f2;color:#b42318;border-color:#fecdca;}
@media(max-width:860px){
  .account-hero{display:grid;}
  .account-mini-stats{grid-template-columns:1fr;min-width:0;}
  .account-grid{grid-template-columns:1fr;}
  .profile-row{display:grid;gap:4px;}
  .profile-row strong{text-align:left;}
  .admin-tip{display:grid;}
}

/* Launch restored: password visibility + polished reading music player + editable email template UI */
.email-template-box{
  border:1px solid var(--line);
  background:linear-gradient(135deg,#ffffff,#f8f7ff);
  border-radius:22px;
  padding:20px;
  display:grid;
  gap:14px;
  margin:14px 0 18px;
}
.email-template-box h3{margin:0;font-size:20px;color:#111827;}
.email-template-box textarea{min-height:128px;}
.has-password-toggle{position:relative;display:block;}
.has-password-toggle input[type="password"],
.has-password-toggle input[type="text"]{padding-right:86px!important;}
.password-eye{
  position:absolute!important;
  right:10px;
  bottom:10px;
  min-width:62px!important;
  padding:8px 10px!important;
  border-radius:999px!important;
  background:#f8fafc!important;
  border:1px solid #d9dce7!important;
  color:#344054!important;
  box-shadow:none!important;
  font-size:12px!important;
  font-family:Inter,system-ui,sans-serif!important;
  z-index:3;
}
.password-eye:hover{background:#111827!important;color:#fff!important;transform:none!important;}
.music-dock{
  position:fixed;
  right:18px;
  bottom:18px;
  width:min(380px,calc(100vw - 30px));
  z-index:80;
  font-family:Inter,system-ui,sans-serif;
}
.music-toggle{
  margin-left:auto;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  width:160px;
  gap:10px;
  padding:12px 14px!important;
  border-radius:18px!important;
  background:linear-gradient(135deg,#111827,#4f46e5)!important;
  color:#fff!important;
  box-shadow:0 16px 34px rgba(17,24,39,.28)!important;
}
.music-toggle span{font-weight:950;}
.music-toggle b{font-size:11px;background:rgba(255,255,255,.18);padding:5px 8px;border-radius:999px;}
.music-panel{
  display:none;
  margin-top:10px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(20px);
  border:1px solid rgba(226,232,240,.95);
  border-radius:26px;
  box-shadow:0 24px 70px rgba(16,24,40,.22);
  padding:16px;
  overflow:hidden;
}
.music-dock.is-open .music-panel{display:grid;gap:14px;}
.music-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;}
.music-head strong{display:block;color:#111827;font-size:17px;font-weight:950;}
.music-head small{display:block;color:#667085;font-weight:750;margin-top:2px;}
.music-head button{
  background:#f8fafc!important;
  color:#344054!important;
  border:1px solid var(--line)!important;
  box-shadow:none!important;
  padding:8px 10px!important;
  border-radius:999px!important;
  font-size:12px!important;
}
.music-now{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-radius:18px;
  background:linear-gradient(135deg,#f8fafc,#fff7ed);
  border:1px solid var(--line);
}
.music-now span{font-weight:950;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.music-now small{color:#667085;font-weight:850;white-space:nowrap;}
.music-progress{height:10px;background:#eef2f7;border-radius:999px;overflow:hidden;cursor:pointer;border:1px solid #e4e7ec;}
.music-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#4f46e5,#ec4899,#f59e0b);border-radius:999px;}
.music-controls{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:10px;}
.music-controls button{
  border-radius:16px!important;
  padding:11px 10px!important;
  font-size:13px!important;
  background:#fff!important;
  color:#344054!important;
  border:1px solid var(--line)!important;
  box-shadow:none!important;
}
.music-controls .music-play{
  background:linear-gradient(135deg,#4f46e5,#7c3aed)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 12px 26px rgba(79,70,229,.22)!important;
}
.music-volume{display:grid!important;grid-template-columns:auto 1fr;align-items:center;gap:12px;margin:0;color:#667085;font-size:13px;font-weight:900;}
.music-volume input{padding:0!important;height:28px;accent-color:#4f46e5;}
.music-list{display:grid;gap:8px;max-height:230px;overflow:auto;padding-right:3px;}
.music-list button{
  width:100%;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  text-align:left;
  background:#fff!important;
  color:#344054!important;
  border:1px solid var(--line)!important;
  box-shadow:none!important;
  border-radius:16px!important;
  padding:12px 13px!important;
}
.music-list button span{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.music-list button small{color:#98a2b3;font-weight:850;white-space:nowrap;}
.music-list button.active{
  background:linear-gradient(135deg,#eef2ff,#fff7ed)!important;
  border-color:#c7d2fe!important;
  color:#312e81!important;
}
.music-list button.active small{color:#7c3aed;}
body.reader-fullscreen-active .music-dock{display:none!important;}
@media(max-width:640px){
  .music-dock{right:12px;left:12px;bottom:12px;width:auto;}
  .music-toggle{width:145px;}
  .music-panel{border-radius:22px;padding:13px;}
  .music-controls{grid-template-columns:1fr;}
  .music-now{display:grid;}
  .music-now small{white-space:normal;}
}


/* Typography controls and system health */
.locked-book{max-width:760px;margin:52px auto;text-align:center;padding:clamp(28px,5vw,58px)}
.locked-book h1{font-size:var(--locked-title-size,48px)!important;line-height:var(--locked-title-line,1.02)!important;letter-spacing:var(--locked-title-letter,-1.5px)!important;word-spacing:var(--locked-title-word,0px)!important;overflow-wrap:anywhere;text-wrap:balance;margin:0 auto 22px;max-width:100%}
.locked-book>p.muted{font-size:var(--locked-message-size,18px)!important;line-height:var(--locked-message-line,1.6)!important;max-width:640px;margin:0 auto 22px}
.book-panel .page-body{font-size:var(--reader-text-size,20px)!important;line-height:var(--reader-text-line,1.75)!important;letter-spacing:var(--reader-text-letter,0px)!important;word-spacing:var(--reader-text-word,0px)!important;overflow-wrap:anywhere}
.typography-grid input{font-variant-numeric:tabular-nums}
.health-overall{display:inline-flex;align-items:center;border-radius:999px;padding:10px 14px;font-weight:900;font-size:13px;border:1px solid}
.health-overall.healthy{background:#ecfdf3;color:#067647;border-color:#abefc6}.health-overall.attention{background:#fffaeb;color:#b54708;border-color:#fedf89}
.health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0 30px}.health-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:22px;box-shadow:var(--shadow2);min-width:0}.health-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.health-card-head h2{font-size:22px!important;margin:0}.health-dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 5px rgba(16,185,129,.1)}.health-dot.good{background:#10b981}.health-dot.warn{background:#f59e0b;box-shadow:0 0 0 5px rgba(245,158,11,.12)}.health-dot.bad{background:#ef4444;box-shadow:0 0 0 5px rgba(239,68,68,.12)}
.health-list{display:grid;gap:0}.health-list>div,.folder-checks>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}.health-list>div:last-child,.folder-checks>div:last-child{border-bottom:0}.health-list span,.folder-checks span{color:var(--muted);font-weight:750}.health-list strong{font-size:13px;max-width:55%;text-align:right;overflow-wrap:anywhere}.health-section-title{margin:8px 0 14px!important}.health-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:30px}.health-stats .stat strong{font-size:28px}.health-bottom-grid{align-items:start}.ok-text{color:#067647}.bad-text{color:#b42318}
.system-action-list{display:grid;gap:10px}.system-action-list button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border-radius:16px;padding:14px 16px;width:100%;color:#fff}.system-action-list button small{font-family:Inter,sans-serif;font-weight:600;opacity:.82;margin-top:3px}.system-controls-card p{margin-top:-4px}
@media(max-width:800px){.health-grid{grid-template-columns:1fr}.health-overall{width:100%;justify-content:center}.locked-book{margin:28px auto}.locked-book h1{font-size:min(var(--locked-title-size,48px),14vw)!important}.health-list>div,.folder-checks>div{align-items:flex-start}.health-list strong{max-width:62%}}


/* 20260802: complete mobile layout and image reliability pass */
html,body{max-width:100%;overflow-x:hidden}
img{height:auto}
.mobile-menu-toggle{display:none}
.image-error-box{gap:6px;line-height:1.35}
.image-error-box strong,.image-error-box span{display:block}
.image-error-box span{font-size:12px;font-weight:700;color:#667085}

@media(max-width:900px){
  .container{width:min(100% - 28px,1320px);margin:24px auto 100px}
  .admin-layout{display:block;min-width:0}
  .admin-main{width:100%;min-width:0;overflow:visible}
  .sidebar{
    position:sticky;top:78px;z-index:18;width:100%;display:flex!important;grid-template-columns:none!important;
    align-items:center;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
    padding:8px;margin:0 0 20px;border-radius:19px;scrollbar-width:none;white-space:nowrap
  }
  .sidebar::-webkit-scrollbar{display:none}
  .sidebar a{flex:0 0 auto;margin:0!important;padding:10px 13px!important;border-radius:13px;font-size:13px;box-shadow:none!important}
  .sidebar a.active:after{left:12px!important;right:12px!important;top:auto!important;bottom:2px!important;width:auto!important;height:3px!important}
  .sidebar-cache-form{flex:0 0 auto;margin:0!important;padding:0!important;border:0!important;display:flex!important;align-items:center;gap:0}
  .sidebar-cache-form small{display:none}
  .cache-clear-btn{width:auto;padding:10px 13px;border-radius:13px;white-space:nowrap;font-size:13px}
  .grid,.grid.two,.typography-grid,.spread-admin-grid,.health-grid,.health-bottom-grid{grid-template-columns:1fr!important}
  .table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:20px}
  .table-wrap table{min-width:720px}
  .table-wrap audio{max-width:210px}
  .admin-head-row{display:grid!important;grid-template-columns:1fr!important;align-items:start!important;gap:14px}
  .admin-head-row>.actions,.admin-head-row>.btn{justify-self:start}
  .media-toolbar,.media-action-row{display:grid!important;grid-template-columns:1fr!important;align-items:stretch}
  .media-search-row{justify-content:stretch!important;display:grid;grid-template-columns:1fr auto}
  .media-search-row input{max-width:none!important}
  .health-card{padding:18px;border-radius:22px}
  .home-hero{grid-template-columns:1fr;min-height:auto;padding:34px;border-radius:28px}
  .hero-panel{display:none}
  .my-library-hero{grid-template-columns:1fr!important;padding:28px}
  .page-builder-card,.mini-page-form{min-width:0}
}

@media(max-width:760px){
  body{background:linear-gradient(180deg,#f7f8fc,#fff 34%,#f7f8fc);font-size:15px}
  body.mobile-nav-open{overflow:hidden}
  .top-strip{display:none!important}
  .topbar{
    position:sticky;top:0;z-index:200;min-height:64px;padding:10px 14px;display:grid!important;
    grid-template-columns:minmax(0,1fr) auto;align-items:center!important;gap:10px;background:rgba(255,255,255,.96)
  }
  .brand{min-width:0;max-width:calc(100vw - 86px);gap:9px;font-size:17px}
  .brand-logo{height:34px;max-width:120px;flex:0 0 auto}
  .brand-mark{width:38px;height:38px;border-radius:13px;flex:0 0 auto}
  .brand-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
  .mobile-menu-toggle{
    display:grid;grid-template-columns:18px auto;grid-template-rows:repeat(3,4px);column-gap:8px;align-items:center;
    min-width:72px;height:42px;padding:8px 11px;border-radius:14px;background:#111827!important;color:#fff!important;
    border:0;box-shadow:0 10px 24px rgba(17,24,39,.15);font-size:0
  }
  .mobile-menu-toggle span{grid-column:1;display:block;width:18px;height:2px;border-radius:99px;background:#fff;transition:.18s ease}
  .mobile-menu-toggle b{grid-column:2;grid-row:1/4;font-size:12px;font-weight:900;align-self:center}
  .topbar.nav-open .mobile-menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .topbar.nav-open .mobile-menu-toggle span:nth-child(2){opacity:0}
  .topbar.nav-open .mobile-menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .topbar nav{
    grid-column:1/-1;width:100%;display:none!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;
    gap:7px!important;padding:10px 0 2px;max-height:calc(100dvh - 78px);overflow-y:auto!important;overflow-x:hidden!important
  }
  .topbar.nav-open nav{display:flex!important}
  .topbar nav a,.topbar nav a.btn,.topbar nav a.btn.small{
    width:100%;display:flex;justify-content:flex-start;padding:12px 14px!important;border-radius:14px!important;font-size:14px;box-shadow:none!important
  }
  .topbar nav a.active{box-shadow:none!important}
  .container{width:calc(100% - 24px);margin:18px auto 92px}
  h1,.admin-main h1{font-size:clamp(30px,9vw,40px)!important;line-height:1.05;letter-spacing:-.05em}
  h2,.admin-main h2{font-size:clamp(23px,7vw,30px)!important;line-height:1.12}
  h3{font-size:18px}
  .home-hero{padding:22px 17px;border-radius:24px;text-align:left}
  .hero-copy{text-align:left}
  .hero-text{font-size:15px;margin-bottom:20px}
  .pill{margin-bottom:13px}
  .search-box{display:grid;grid-template-columns:1fr;padding:7px;border-radius:16px}
  .search-box button{width:100%}
  .section-head{display:grid;grid-template-columns:1fr;align-items:start;gap:10px;margin:34px 0 15px}
  .library-head{margin-top:38px}
  .magazine-featured{grid-template-columns:1fr;gap:16px}
  .feature-card,.feature-card.large{grid-column:auto;min-height:0;border-radius:21px;display:flex;flex-direction:column}
  .feature-card img,.feature-card .cover-fallback{height:auto!important;min-height:210px;aspect-ratio:4/3;object-fit:cover;flex:0 0 auto}
  .glass-info{position:static;left:auto;right:auto;bottom:auto;border-radius:0;padding:17px;background:#fff;box-shadow:none;backdrop-filter:none}
  .glass-info h3{font-size:20px}
  .glass-info .actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .round-link{width:100%}
  .book-grid{grid-template-columns:1fr;gap:16px}
  .library-card{border-radius:21px}
  .book-cover{aspect-ratio:16/10;object-fit:cover}
  .book-info{padding:17px}
  .book-info .actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .book-info .actions .btn{width:100%}
  .form-card,.auth-card{width:100%;margin:18px auto;padding:22px 17px;border-radius:23px}
  input,select,textarea{font-size:16px;min-height:48px;border-radius:14px}
  .has-password-toggle input{padding-right:74px}
  .password-eye{right:7px;top:auto;bottom:6px;min-height:36px;padding:8px 11px}
  .auth-button-row,.auth-links{display:grid;grid-template-columns:1fr;width:100%}
  .auth-button-row button,.auth-button-row .btn,.auth-links a{width:100%;text-align:center}
  .actions{gap:8px}
  .actions select{width:100%;min-width:0}
  .notice{padding:13px 14px;border-radius:16px;font-size:13px}
  .empty{padding:28px 18px;border-radius:20px}

  /* Personal library */
  .my-library-hero{padding:21px 17px;border-radius:24px;margin-bottom:20px}
  .mini-search{display:grid;grid-template-columns:1fr;gap:8px}
  .mini-search input,.mini-search button,.mini-search .btn{width:100%;max-width:none}
  .library-stats-card{padding:15px;border-radius:19px;gap:9px}
  .library-stats-card>div{padding-bottom:8px}
  .library-stats-card strong{font-size:23px}
  .real-shelf{padding:14px;border-radius:22px}
  .shelf-top{display:grid;gap:5px;align-items:start}
  .shelf-grid{grid-template-columns:1fr;gap:16px}
  .shelf-book{display:grid;grid-template-columns:118px minmax(0,1fr);border-radius:19px;overflow:hidden}
  .shelf-cover{padding:11px;background:#eef1f7;height:100%}
  .shelf-cover img,.shelf-cover .cover-fallback{width:100%;height:100%;min-height:176px;aspect-ratio:auto;object-fit:cover;border-radius:12px;box-shadow:none}
  .shelf-info{padding:14px;min-width:0}
  .shelf-info h3{min-height:0;margin-bottom:5px;font-size:17px;overflow-wrap:anywhere}
  .shelf-info p{font-size:12px;line-height:1.45}
  .shelf-info .book-meta{gap:5px}.shelf-info .book-meta span{font-size:9px;padding:4px 6px}
  .read-progress{margin:10px 0 6px}
  .shelf-foot{display:grid;gap:2px;margin-bottom:10px}
  .shelf-info>.btn{width:100%;padding:10px 9px;font-size:11px}

  /* Locked book screen */
  .locked-book{margin:18px auto!important;padding:28px 17px!important;border-radius:24px}
  .locked-book h1{font-size:min(var(--locked-title-size,48px),11vw)!important;line-height:max(var(--locked-title-line,1.02),1)!important;margin-bottom:16px!important}
  .locked-book>p.muted{font-size:min(var(--locked-message-size,18px),4.5vw)!important;line-height:1.5!important}
  .locked-book .actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .locked-book .actions .btn{width:100%;padding:12px 10px}

  /* Reader: horizontal spreads with a vertically scrollable, reliable mobile page */
  .reader-shell.book-mode{width:100%;max-width:none;margin:0;position:relative}
  .book-mode .reader-titlebar{display:grid!important;grid-template-columns:1fr;gap:12px;margin-bottom:12px}
  .reader-titlebar h1{font-size:clamp(27px,8vw,36px)!important;overflow-wrap:anywhere}
  .reader-titlebar p{font-size:13px;line-height:1.45}
  .reader-meta-card{width:100%;min-width:0;padding:11px 14px;border-radius:17px;display:flex;justify-content:space-between;align-items:center}
  .reader-meta-card strong{font-size:19px}
  .reader-controls{
    position:sticky!important;top:74px!important;z-index:80!important;width:100%!important;max-width:none!important;margin:0 0 8px!important;
    display:grid!important;grid-template-columns:1fr 1fr!important;grid-template-areas:'prev next' 'count full';gap:7px!important;
    padding:8px!important;border-radius:18px!important;background:rgba(255,255,255,.96)!important
  }
  .reader-controls [data-reader-prev]{grid-area:prev}
  .reader-controls [data-reader-next]{grid-area:next}
  .reader-controls [data-reader-fullscreen]{grid-area:full}
  .reader-controls .reader-count{grid-area:count;order:initial;width:100%;max-width:none;margin:0;padding:10px 8px}
  .reader-controls .btn,.reader-controls .btn.small,.fullscreen-text-btn{width:100%!important;min-width:0!important;padding:11px 8px!important;font-size:11px!important;white-space:nowrap}
  .book-mode .progress-bar,.reader-shell.book-mode .progress-bar{
    position:sticky!important;top:calc(74px + var(--reader-controls-h,96px) + 6px)!important;z-index:79!important;
    width:calc(100% - 8px)!important;height:14px!important;margin:0 4px 10px!important
  }
  .reader.book-swipe{
    width:100%;height:calc(100svh - 250px);height:calc(100dvh - 250px);min-height:390px;max-height:720px;
    gap:10px;padding:2px 2px 14px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;touch-action:pan-x pan-y
  }
  .reader.book-swipe::-webkit-scrollbar{display:none}
  .page-spread{
    flex:0 0 100%;width:100%;height:100%;min-height:0;display:flex!important;flex-direction:column!important;
    overflow-y:auto!important;overflow-x:hidden!important;border-radius:21px!important;background:#fff!important;
    -webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scrollbar-width:thin
  }
  .page-spread.single{display:block!important}
  .page-spread.is-active-page{outline:2px solid rgba(79,70,229,.18);outline-offset:-2px}
  .book-panel{
    flex:0 0 auto;width:100%;height:auto!important;min-height:0!important;padding:16px!important;overflow:visible!important;
    justify-content:flex-start!important;border:0!important;border-bottom:1px solid var(--line)!important
  }
  .book-panel:last-child,.book-panel.right-panel{border-bottom:0!important}
  .book-panel.panel-image,.book-panel.panel-full_image{min-height:280px!important;display:grid!important;place-items:center!important;padding:12px!important}
  .panel-image{width:100%;min-height:180px;display:grid;place-items:center;overflow:visible}
  .panel-image img,.reader-page-image,
  .book-panel.panel-image .panel-image img,.book-panel.panel-full_image .panel-image img,
  .single-page .single-panel .panel-image img{
    display:block!important;width:auto!important;max-width:100%!important;height:auto!important;max-height:none!important;
    object-fit:contain!important;opacity:1!important;visibility:visible!important;border-radius:15px!important;margin:auto
  }
  .panel-copy{width:100%;max-width:none;margin:0}
  .panel-copy h2{font-size:clamp(22px,7vw,29px)!important;line-height:1.15;margin-bottom:12px;overflow-wrap:anywhere}
  .book-panel .page-body{font-size:min(var(--reader-text-size,20px),5vw)!important;line-height:max(var(--reader-text-line,1.75),1.45)!important;overflow-wrap:anywhere}
  .single-page{width:100%;height:100%;min-height:100%;display:grid;place-items:center;overflow-y:auto;padding:0}
  .single-page .single-panel{height:auto!important;min-height:100%;max-width:none}
  .cover-spread .single-page{padding:12px}
  .reader-cover{display:block!important;width:100%!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;border-radius:15px}
  .empty-panel{min-height:130px}
  .privacy-shield{border-radius:21px}

  /* Mobile fullscreen reader */
  .reader-shell.book-mode.is-fullscreen,
  .reader-shell.book-mode:fullscreen,
  .reader-shell.book-mode:-webkit-full-screen{
    width:100vw!important;height:100dvh!important;padding:8px!important;grid-template-rows:auto auto minmax(0,1fr)!important;background:#f7f8fc!important
  }
  .reader-shell.book-mode.is-fullscreen .reader-controls,
  .reader-shell.book-mode:fullscreen .reader-controls,
  .reader-shell.book-mode:-webkit-full-screen .reader-controls{
    top:0!important;margin:0 0 6px!important;grid-template-columns:1fr 1fr!important;grid-template-areas:'prev next' 'count full'!important;padding:7px!important
  }
  .reader-shell.book-mode.is-fullscreen .progress-bar,
  .reader-shell.book-mode:fullscreen .progress-bar,
  .reader-shell.book-mode:-webkit-full-screen .progress-bar{
    top:calc(var(--reader-controls-h,96px) + 4px)!important;width:calc(100% - 8px)!important;margin:0 4px 7px!important
  }
  .reader-shell.book-mode.is-fullscreen .book-swipe,
  .reader-shell.book-mode:fullscreen .book-swipe,
  .reader-shell.book-mode:-webkit-full-screen .book-swipe{height:auto!important;min-height:0!important;max-height:none!important}
  .reader-shell.book-mode.is-fullscreen .page-spread,
  .reader-shell.book-mode:fullscreen .page-spread,
  .reader-shell.book-mode:-webkit-full-screen .page-spread{height:100%!important;min-height:0!important}
  .reader-shell.book-mode.is-fullscreen .panel-image img,
  .reader-shell.book-mode:fullscreen .panel-image img,
  .reader-shell.book-mode:-webkit-full-screen .panel-image img{max-height:none!important}

  /* Admin mobile */
  .admin-area .container{width:calc(100% - 16px);margin-top:12px}
  .admin-area .sidebar{top:64px;margin-bottom:14px;border-radius:16px}
  .admin-main h1{margin-bottom:14px!important}
  .card,.stat,.table-wrap{border-radius:20px}
  .card{padding:17px}
  .stats,.health-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
  .stat{padding:14px;min-width:0}
  .stat strong{font-size:23px!important;overflow-wrap:anywhere}
  .books-admin-grid{grid-template-columns:1fr;gap:14px}
  .admin-book-card{grid-template-columns:96px minmax(0,1fr);min-height:0;border-radius:20px}
  .admin-book-cover img,.admin-book-cover .cover-fallback{height:100%;min-height:190px;object-fit:cover}
  .admin-book-body{padding:14px}
  .book-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .book-actions form,.book-actions .btn,.book-actions button{width:100%}
  .book-actions form button{width:100%}
  .mini-page-form{padding:15px;border-radius:19px}
  .mini-page-label{display:grid;gap:4px}
  .mini-page-label small{text-align:left}
  .current-media{grid-template-columns:58px minmax(0,1fr)}
  .current-media img{width:58px;height:58px}
  .media-grid{grid-template-columns:1fr}
  .media-toolbar,.media-action-row{padding:14px}
  .media-search-row{grid-template-columns:1fr}
  .media-search-row .btn{width:100%}
  .health-card-head{align-items:flex-start}
  .health-card-head h2{font-size:20px!important}
  .health-list>div,.folder-checks>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
  .health-list strong{max-width:180px;text-align:right}
  .system-action-list button{width:100%}
  .account-hero,.account-mini-stats{min-width:0}
  .account-mini-stats{grid-template-columns:1fr!important}
  .danger-zone .actions{display:grid;grid-template-columns:1fr}
  .danger-zone .actions>*{width:100%}
  .music-dock{right:8px!important;left:8px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;width:auto!important;z-index:190}
  .music-toggle{width:135px;height:44px}
  .music-panel{max-height:min(72dvh,580px);overflow:auto;padding:12px;border-radius:20px}
  .music-controls{grid-template-columns:repeat(3,1fr)!important}
  .music-controls button{padding:10px 6px!important;font-size:11px!important}
  .music-list{max-height:190px}
}

@media(max-width:430px){
  .container{width:calc(100% - 16px)}
  .topbar{padding-left:10px;padding-right:10px}
  .brand-logo{max-width:105px}
  .mobile-menu-toggle{min-width:66px;padding:8px 9px}
  .home-hero{padding:19px 14px}
  .glass-info .actions,.book-info .actions,.locked-book .actions{grid-template-columns:1fr}
  .shelf-book{grid-template-columns:100px minmax(0,1fr)}
  .shelf-cover img,.shelf-cover .cover-fallback{min-height:160px}
  .shelf-info{padding:12px}
  .reader-controls .btn,.reader-controls .btn.small,.fullscreen-text-btn{font-size:10px!important;padding:10px 5px!important}
  .stats,.health-stats{grid-template-columns:1fr!important}
  .admin-book-card{grid-template-columns:1fr}
  .admin-book-cover img,.admin-book-cover .cover-fallback{height:210px;min-height:210px}
  .book-actions{grid-template-columns:1fr}
  .table-wrap table{min-width:660px}
  .health-list>div,.folder-checks>div{grid-template-columns:1fr}
  .health-list strong{max-width:none;text-align:left}
}

/* 20260802: reader mobile v2 — reliable images + bottom fullscreen dock */
.reader-control-stage{
  position:relative;
  z-index:70;
  width:min(980px,100%);
  margin:0 auto 14px;
  transition:opacity .2s ease,transform .24s ease;
}
.reader-control-stage .progress-bar,
.reader-shell.book-mode .reader-control-stage .progress-bar{
  position:relative!important;
  inset:auto!important;
  top:auto!important;
  width:calc(100% - 24px)!important;
  height:9px!important;
  margin:0 auto 8px!important;
  padding:2px!important;
  z-index:2!important;
  box-shadow:0 8px 24px rgba(16,24,40,.11)!important;
}
.reader-control-stage .progress-bar:after{display:none!important}
.reader-control-stage .reader-controls{
  width:100%;
  max-width:none;
  margin:0;
  display:grid;
  grid-template-columns:minmax(112px,1fr) auto minmax(112px,1fr) minmax(132px,1fr) minmax(82px,.7fr);
  align-items:center;
  gap:8px;
  padding:9px;
  border-radius:20px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(99,102,241,.16);
  box-shadow:0 18px 48px rgba(16,24,40,.12);
  backdrop-filter:blur(18px);
}
.reader-control-stage .reader-controls .btn,
.reader-control-stage .reader-controls .btn.small,
.reader-control-stage .fullscreen-text-btn{
  width:100%!important;
  min-width:0!important;
  min-height:44px;
  padding:10px 13px!important;
  font-size:12px!important;
  line-height:1.15;
  white-space:nowrap;
  border-radius:13px!important;
}
.reader-control-stage .reader-count{
  min-width:78px;
  min-height:44px;
  display:grid;
  place-items:center;
  padding:8px 12px;
  margin:0;
  border-radius:13px;
  background:#111827;
  color:#fff;
  border-color:#111827;
  box-shadow:none;
}
.reader-hide-controls{
  background:#eef2ff!important;
  color:#3730a3!important;
  border:1px solid #c7d2fe!important;
  box-shadow:none!important;
}
.reader-controls-reveal{
  display:none;
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  z-index:5;
  min-height:42px;
  padding:10px 18px;
  border:1px solid rgba(255,255,255,.30);
  border-radius:999px;
  background:#111827;
  color:#fff;
  font:800 12px/1 Manrope,Inter,system-ui,sans-serif;
  box-shadow:0 18px 50px rgba(0,0,0,.28);
  cursor:pointer;
}
.reader-control-stage.controls-hidden .reader-controls,
.reader-control-stage.controls-hidden .progress-bar{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateY(18px)!important;
}
.reader-control-stage.controls-hidden .reader-controls-reveal{display:block}
.reader-control-stage .reader-controls,
.reader-control-stage .progress-bar{transition:opacity .2s ease,visibility .2s ease,transform .24s ease}

/* Do not let old reader styles collapse or hide uploaded page images. */
.reader-shell .panel-image,
.reader-shell [data-reader-image-frame]{
  position:relative!important;
  display:flex!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  min-height:120px!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
  margin:0!important;
  padding:0!important;
}
.reader-shell .reader-page-image,
.reader-shell .panel-image img,
.reader-shell .reader-cover{
  display:block!important;
  position:static!important;
  opacity:1!important;
  visibility:visible!important;
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  max-height:calc(min(78vh,780px) - 70px)!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:auto!important;
  flex:none!important;
  transform:none!important;
}
.reader-image-loader{
  display:none;
  position:absolute;
  width:34px;
  height:34px;
  border:3px solid #e0e7ff;
  border-top-color:#4f46e5;
  border-radius:50%;
  animation:readerImageSpin .8s linear infinite;
  pointer-events:none;
}
[data-reader-image-frame]:not(.is-loaded):not(.has-image-error) .reader-image-loader{display:block}
[data-reader-image-frame]:not(.is-loaded):not(.has-image-error) img{min-height:120px}
@keyframes readerImageSpin{to{transform:rotate(360deg)}}

/* Fullscreen becomes a clean reading canvas; controls float at the bottom. */
.reader-shell.book-mode.is-fullscreen,
.reader-shell.book-mode:fullscreen,
.reader-shell.book-mode:-webkit-full-screen{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  max-width:none!important;
  margin:0!important;
  padding:12px!important;
  overflow:hidden!important;
  display:block!important;
  background:#eef1f7!important;
}
.reader-shell.book-mode.is-fullscreen .reader-titlebar,
.reader-shell.book-mode:fullscreen .reader-titlebar,
.reader-shell.book-mode:-webkit-full-screen .reader-titlebar{display:none!important}
.reader-shell.book-mode.is-fullscreen .reader-control-stage,
.reader-shell.book-mode:fullscreen .reader-control-stage,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:max(14px,env(safe-area-inset-bottom))!important;
  transform:translateX(-50%)!important;
  width:min(940px,calc(100vw - 28px))!important;
  margin:0!important;
  z-index:1000002!important;
}
.reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
.reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{
  position:relative!important;
  inset:auto!important;
  top:auto!important;
  margin:0!important;
  background:rgba(15,23,42,.92)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 22px 70px rgba(0,0,0,.38)!important;
  backdrop-filter:blur(22px)!important;
}
.reader-shell.book-mode.is-fullscreen .reader-control-stage .progress-bar,
.reader-shell.book-mode:fullscreen .reader-control-stage .progress-bar,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage .progress-bar{
  position:relative!important;
  inset:auto!important;
  top:auto!important;
  width:calc(100% - 28px)!important;
  height:7px!important;
  margin:0 auto 7px!important;
  padding:1px!important;
  background:rgba(255,255,255,.84)!important;
  border:0!important;
  box-shadow:0 10px 30px rgba(0,0,0,.22)!important;
}
.reader-shell.book-mode.is-fullscreen .reader-controls [data-reader-prev],
.reader-shell.book-mode:fullscreen .reader-controls [data-reader-prev],
.reader-shell.book-mode:-webkit-full-screen .reader-controls [data-reader-prev]{background:rgba(255,255,255,.13)!important;color:#fff!important;border-color:rgba(255,255,255,.22)!important}
.reader-shell.book-mode.is-fullscreen .reader-controls [data-reader-next],
.reader-shell.book-mode:fullscreen .reader-controls [data-reader-next],
.reader-shell.book-mode:-webkit-full-screen .reader-controls [data-reader-next]{background:linear-gradient(135deg,#6366f1,#7c3aed)!important;color:#fff!important}
.reader-shell.book-mode.is-fullscreen .reader-controls [data-reader-fullscreen],
.reader-shell.book-mode:fullscreen .reader-controls [data-reader-fullscreen],
.reader-shell.book-mode:-webkit-full-screen .reader-controls [data-reader-fullscreen]{background:#fff!important;color:#111827!important;border-color:#fff!important}
.reader-shell.book-mode.is-fullscreen .reader-controls .reader-hide-controls,
.reader-shell.book-mode:fullscreen .reader-controls .reader-hide-controls,
.reader-shell.book-mode:-webkit-full-screen .reader-controls .reader-hide-controls{background:rgba(255,255,255,.12)!important;color:#fff!important;border-color:rgba(255,255,255,.20)!important}
.reader-shell.book-mode.is-fullscreen .reader-count,
.reader-shell.book-mode:fullscreen .reader-count,
.reader-shell.book-mode:-webkit-full-screen .reader-count{background:rgba(255,255,255,.96)!important;color:#111827!important;border-color:#fff!important}
.reader-shell.book-mode.is-fullscreen .reader.book-swipe,
.reader-shell.book-mode:fullscreen .reader.book-swipe,
.reader-shell.book-mode:-webkit-full-screen .reader.book-swipe{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0 0 112px!important;
  gap:12px!important;
}
.reader-shell.book-mode.is-fullscreen .page-spread,
.reader-shell.book-mode:fullscreen .page-spread,
.reader-shell.book-mode:-webkit-full-screen .page-spread{
  height:100%!important;
  min-height:0!important;
  border-radius:22px!important;
}
.reader-shell.book-mode.is-fullscreen .reader-page-image,
.reader-shell.book-mode:fullscreen .reader-page-image,
.reader-shell.book-mode:-webkit-full-screen .reader-page-image,
.reader-shell.book-mode.is-fullscreen .reader-cover,
.reader-shell.book-mode:fullscreen .reader-cover,
.reader-shell.book-mode:-webkit-full-screen .reader-cover{
  max-height:calc(100dvh - 150px)!important;
}
.reader-shell.book-mode.is-fullscreen .reader-control-stage.controls-hidden,
.reader-shell.book-mode:fullscreen .reader-control-stage.controls-hidden,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage.controls-hidden{
  height:46px!important;
}
.reader-shell.book-mode.is-fullscreen .reader-control-stage.controls-hidden .reader-controls-reveal,
.reader-shell.book-mode:fullscreen .reader-control-stage.controls-hidden .reader-controls-reveal,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage.controls-hidden .reader-controls-reveal{display:block!important}

@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  .reader-shell.book-mode{width:100%!important;max-width:none!important;margin:0!important}
  .book-mode .reader-titlebar{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin:0 0 10px!important}
  .reader-titlebar h1{font-size:clamp(25px,8vw,34px)!important;line-height:1.08!important}
  .reader-titlebar p{font-size:12px!important;line-height:1.45!important}
  .reader-meta-card{width:100%!important;min-width:0!important;padding:10px 13px!important;border-radius:15px!important;display:flex!important;align-items:center!important;justify-content:space-between!important}

  /* On phones the controller lives at the bottom, not above the page. */
  .reader-control-stage{
    position:sticky!important;
    left:auto!important;
    right:auto!important;
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    transform:none!important;
    width:100%!important;
    margin:0 0 8px!important;
    z-index:180!important;
  }
  .reader-control-stage .reader-controls{
    display:grid!important;
    grid-template-columns:1fr auto 1fr!important;
    grid-template-areas:
      'prev count next'
      'full full hide'!important;
    gap:6px!important;
    padding:7px!important;
    border-radius:17px!important;
    background:rgba(15,23,42,.94)!important;
    border-color:rgba(255,255,255,.16)!important;
    box-shadow:0 18px 54px rgba(15,23,42,.30)!important;
  }
  .reader-control-stage [data-reader-prev]{grid-area:prev!important}
  .reader-control-stage .reader-count{grid-area:count!important;min-width:64px!important;width:auto!important;min-height:40px!important;padding:7px 9px!important;background:#fff!important;color:#111827!important;border-color:#fff!important}
  .reader-control-stage [data-reader-next]{grid-area:next!important}
  .reader-control-stage [data-reader-fullscreen]{grid-area:full!important}
  .reader-control-stage [data-reader-hide-controls]{grid-area:hide!important}
  .reader-control-stage .reader-controls .btn,
  .reader-control-stage .reader-controls .btn.small,
  .reader-control-stage .fullscreen-text-btn{
    min-height:40px!important;
    padding:9px 7px!important;
    font-size:11px!important;
    border-radius:11px!important;
  }
  .reader-control-stage [data-reader-prev]{background:rgba(255,255,255,.12)!important;color:#fff!important;border-color:rgba(255,255,255,.20)!important}
  .reader-control-stage [data-reader-next]{background:linear-gradient(135deg,#6366f1,#7c3aed)!important;color:#fff!important}
  .reader-control-stage [data-reader-fullscreen]{background:#fff!important;color:#111827!important;border-color:#fff!important}
  .reader-control-stage [data-reader-hide-controls]{background:rgba(255,255,255,.10)!important;color:#fff!important;border-color:rgba(255,255,255,.18)!important}
  .reader-control-stage .progress-bar,
  .reader-shell.book-mode .reader-control-stage .progress-bar{
    position:relative!important;
    inset:auto!important;
    top:auto!important;
    width:calc(100% - 20px)!important;
    height:7px!important;
    margin:0 auto 6px!important;
    padding:1px!important;
    background:rgba(255,255,255,.88)!important;
    border:0!important;
    box-shadow:0 8px 24px rgba(15,23,42,.20)!important;
  }
  .reader-controls-reveal{
    position:fixed!important;
    left:50%!important;
    bottom:max(12px,env(safe-area-inset-bottom))!important;
    transform:translateX(-50%)!important;
    min-height:42px!important;
    z-index:1000003!important;
  }

  .reader.book-swipe{
    width:100%!important;
    height:calc(100dvh - 218px)!important;
    min-height:410px!important;
    max-height:760px!important;
    margin:0!important;
    padding:2px 2px 16px!important;
    gap:9px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    scrollbar-width:none!important;
  }
  .reader.book-swipe::-webkit-scrollbar{display:none!important}
  .page-spread{
    flex:0 0 100%!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    border-radius:19px!important;
    background:#fff!important;
    -webkit-overflow-scrolling:touch!important;
    scroll-snap-align:start!important;
  }
  .page-spread.single{display:block!important}
  .book-panel{
    flex:0 0 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    padding:14px!important;
    overflow:visible!important;
    justify-content:flex-start!important;
    border:0!important;
    border-bottom:1px solid var(--line)!important;
  }
  .book-panel:last-child,.book-panel.right-panel{border-bottom:0!important}
  .book-panel.panel-image,.book-panel.panel-full_image{display:block!important;min-height:0!important;padding:10px!important}
  .reader-shell .panel-image,
  .reader-shell [data-reader-image-frame]{display:block!important;width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important}
  .reader-shell .reader-page-image,
  .reader-shell .panel-image img,
  .reader-shell .reader-cover,
  .single-page .single-panel .panel-image img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    max-height:none!important;
    min-height:1px!important;
    object-fit:contain!important;
    object-position:center!important;
    margin:0 auto!important;
    border-radius:13px!important;
  }
  .panel-copy{width:100%!important;max-width:none!important;margin:0!important}
  .panel-copy h2{font-size:clamp(21px,6.7vw,28px)!important;line-height:1.14!important;margin:0 0 11px!important;overflow-wrap:anywhere!important}
  .book-panel .page-body{font-size:min(var(--reader-text-size,20px),5vw)!important;line-height:max(var(--reader-text-line,1.75),1.45)!important;overflow-wrap:anywhere!important}
  .single-page{display:block!important;width:100%!important;height:auto!important;min-height:100%!important;overflow:visible!important;padding:0!important}
  .single-page .single-panel{width:100%!important;height:auto!important;min-height:100%!important;max-width:none!important}
  .cover-spread .single-page{padding:10px!important}

  /* Mobile fullscreen uses the full canvas while the dock remains at the bottom. */
  .reader-shell.book-mode.is-fullscreen,
  .reader-shell.book-mode:fullscreen,
  .reader-shell.book-mode:-webkit-full-screen{padding:6px!important;background:#0b1020!important}
  .reader-shell.book-mode.is-fullscreen .reader-control-stage,
  .reader-shell.book-mode:fullscreen .reader-control-stage,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage{
    position:fixed!important;
    left:6px!important;
    right:6px!important;
    bottom:max(6px,env(safe-area-inset-bottom))!important;
    transform:none!important;
    width:auto!important;
    margin:0!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
  .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{padding:6px!important;border-radius:15px!important}
  .reader-shell.book-mode.is-fullscreen .reader.book-swipe,
  .reader-shell.book-mode:fullscreen .reader.book-swipe,
  .reader-shell.book-mode:-webkit-full-screen .reader.book-swipe{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    padding:0 0 112px!important;
  }
  .reader-shell.book-mode.is-fullscreen .page-spread,
  .reader-shell.book-mode:fullscreen .page-spread,
  .reader-shell.book-mode:-webkit-full-screen .page-spread{height:100%!important;border-radius:15px!important}
  .reader-shell.book-mode.is-fullscreen .reader-page-image,
  .reader-shell.book-mode:fullscreen .reader-page-image,
  .reader-shell.book-mode:-webkit-full-screen .reader-page-image,
  .reader-shell.book-mode.is-fullscreen .reader-cover,
  .reader-shell.book-mode:fullscreen .reader-cover,
  .reader-shell.book-mode:-webkit-full-screen .reader-cover{width:100%!important;max-height:none!important}
}

@media(max-width:390px){
  .reader-control-stage .reader-controls{grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr)!important}
  .reader-control-stage .reader-controls .btn,
  .reader-control-stage .reader-controls .btn.small,
  .reader-control-stage .fullscreen-text-btn{font-size:10px!important;padding:8px 5px!important}
  .reader-control-stage .reader-count{min-width:58px!important;font-size:11px!important}
  .reader.book-swipe{height:calc(100dvh - 206px)!important;min-height:380px!important}
}

/* 20260802 reader dock correction: keep count horizontal and mobile fullscreen compact. */
.reader-control-stage .reader-count{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  white-space:nowrap!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  line-height:1!important;
}
.reader-control-stage .reader-count span{display:inline!important;line-height:1!important}
@media(max-width:760px){
  .reader-control-stage .reader-count{
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
  .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr)!important;
    grid-template-areas:
      'prev count next'
      'full full hide'!important;
    gap:6px!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader-control-stage,
  .reader-shell.book-mode:fullscreen .reader-control-stage,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage{
    height:auto!important;
    max-height:136px!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader.book-swipe,
  .reader-shell.book-mode:fullscreen .reader.book-swipe,
  .reader-shell.book-mode:-webkit-full-screen .reader.book-swipe{padding-bottom:108px!important}
}
@media(max-width:390px){
  .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
  .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{
    grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr)!important;
  }
}

/* Reclaim reading space when the fullscreen dock is hidden. */
.reader-shell.book-mode.is-fullscreen .reader-control-stage.controls-hidden + .reader.book-swipe,
.reader-shell.book-mode:fullscreen .reader-control-stage.controls-hidden + .reader.book-swipe,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage.controls-hidden + .reader.book-swipe{
  padding-bottom:50px!important;
}
@media(max-width:760px){
  .reader-shell.book-mode.is-fullscreen .reader-control-stage.controls-hidden + .reader.book-swipe,
  .reader-shell.book-mode:fullscreen .reader-control-stage.controls-hidden + .reader.book-swipe,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage.controls-hidden + .reader.book-swipe{
    padding-bottom:48px!important;
  }
}

/* 20260802: mobile header V3 + resilient brand/media presentation */
.brand-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
}
.brand-name{display:block;min-width:0}
.brand-tagline{
  display:none;
  color:var(--muted);
  font-family:Manrope,Inter,system-ui,sans-serif;
  font-size:11px;
  font-weight:750;
  line-height:1.15;
  letter-spacing:0;
}
.brand-logo-shell{
  position:relative;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  min-width:42px;
  min-height:42px;
  border-radius:14px;
  overflow:hidden;
  background:#fff;
}
.brand-logo-shell .brand-logo{
  position:relative;
  z-index:2;
  width:auto;
  height:38px;
  max-width:190px;
  object-fit:contain;
  object-position:center;
  display:block;
}
.brand-logo-fallback{
  position:absolute;
  inset:0;
  z-index:1;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(135deg,#111827,#5b50e6 65%,#7c3aed);
  color:#fff;
  font:900 16px/1 Sora,Manrope,system-ui,sans-serif;
  opacity:0;
}
.brand-logo-shell.brand-logo-failed .brand-logo-fallback{opacity:1}
.brand-logo-shell.brand-logo-failed{width:42px;height:42px;box-shadow:0 10px 26px rgba(79,70,229,.20)}
.mobile-nav-backdrop{display:none}

@media(max-width:760px){
  .topbar{
    position:sticky!important;
    top:0!important;
    z-index:950!important;
    min-height:74px!important;
    height:auto!important;
    padding:10px 12px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    border-bottom:1px solid rgba(216,221,234,.84)!important;
    background:rgba(255,255,255,.94)!important;
    box-shadow:0 8px 30px rgba(32,42,72,.07)!important;
    backdrop-filter:blur(22px) saturate(150%)!important;
    -webkit-backdrop-filter:blur(22px) saturate(150%)!important;
  }
  .brand{
    flex:1 1 auto!important;
    width:auto!important;
    max-width:calc(100vw - 104px)!important;
    min-width:0!important;
    gap:10px!important;
    padding:0!important;
    font-size:16px!important;
    letter-spacing:-.035em!important;
  }
  .brand-logo-shell{
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    min-height:48px!important;
    border:1px solid #e8ebf2!important;
    border-radius:15px!important;
    background:linear-gradient(180deg,#fff,#f8f9fd)!important;
    box-shadow:0 8px 24px rgba(28,37,68,.09)!important;
  }
  .brand-logo-shell .brand-logo,
  .brand-logo{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    padding:4px!important;
    object-fit:contain!important;
    object-position:center!important;
    opacity:1!important;
    visibility:visible!important;
  }
  .brand-mark{
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    border-radius:15px!important;
    box-shadow:0 10px 26px rgba(79,70,229,.24)!important;
  }
  .brand-copy{flex:1 1 auto!important;min-width:0!important;gap:3px!important}
  .brand-name{
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font:850 clamp(14px,4.4vw,17px)/1.08 Sora,Manrope,system-ui,sans-serif!important;
    color:#111827!important;
  }
  .brand-tagline{
    display:block!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    color:#667085!important;
    font-size:10.5px!important;
    font-weight:750!important;
    line-height:1.15!important;
  }

  .mobile-menu-toggle{
    position:relative!important;
    z-index:1003!important;
    flex:0 0 auto!important;
    display:grid!important;
    grid-template-columns:32px auto!important;
    grid-template-rows:1fr!important;
    align-items:center!important;
    gap:7px!important;
    width:auto!important;
    min-width:79px!important;
    height:48px!important;
    padding:7px 10px 7px 7px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    border-radius:16px!important;
    background:linear-gradient(135deg,#111827 0%,#25205f 55%,#5b50e6 100%)!important;
    color:#fff!important;
    box-shadow:0 12px 28px rgba(37,32,95,.25),inset 0 1px 0 rgba(255,255,255,.16)!important;
    overflow:hidden!important;
    isolation:isolate!important;
    cursor:pointer!important;
    transform:translateZ(0)!important;
  }
  .mobile-menu-toggle:before{
    content:"";
    position:absolute;
    inset:-30% auto -30% -65%;
    width:48%;
    transform:skewX(-18deg);
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
    transition:left .45s ease;
    z-index:-1;
  }
  .mobile-menu-toggle:hover:before,.mobile-menu-toggle:focus-visible:before{left:125%}
  .mobile-menu-toggle:focus-visible{outline:4px solid rgba(91,80,230,.22)!important;outline-offset:3px!important}
  .mobile-menu-glyph{
    grid-column:1!important;
    grid-row:1!important;
    width:32px!important;
    height:32px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    border-radius:11px!important;
    background:rgba(255,255,255,.12)!important;
    border:1px solid rgba(255,255,255,.13)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;
  }
  .mobile-menu-glyph i{
    display:block!important;
    height:2px!important;
    border-radius:999px!important;
    background:#fff!important;
    transition:transform .25s ease,width .25s ease,opacity .18s ease!important;
    transform-origin:center!important;
  }
  .mobile-menu-glyph i:nth-child(1){width:17px!important}
  .mobile-menu-glyph i:nth-child(2){width:12px!important;transform:translateX(2.5px)}
  .mobile-menu-glyph i:nth-child(3){width:17px!important}
  .mobile-menu-label{
    grid-column:2!important;
    grid-row:1!important;
    display:block!important;
    width:auto!important;
    height:auto!important;
    background:none!important;
    color:#fff!important;
    font:850 11px/1 Sora,Manrope,system-ui,sans-serif!important;
    letter-spacing:.01em!important;
  }
  .topbar.nav-open .mobile-menu-glyph i:nth-child(1){width:17px!important;transform:translateY(6px) rotate(45deg)!important}
  .topbar.nav-open .mobile-menu-glyph i:nth-child(2){opacity:0!important;transform:scaleX(0)!important}
  .topbar.nav-open .mobile-menu-glyph i:nth-child(3){width:17px!important;transform:translateY(-6px) rotate(-45deg)!important}
  .topbar.nav-open .mobile-menu-toggle{background:linear-gradient(135deg,#312e81,#5b50e6 62%,#7c3aed)!important}

  .topbar nav,
  #site-navigation{
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    top:82px!important;
    z-index:1002!important;
    width:auto!important;
    max-width:none!important;
    max-height:calc(100dvh - 96px)!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    align-content:start!important;
    gap:7px!important;
    padding:11px!important;
    overflow:auto!important;
    border:1px solid rgba(224,228,238,.95)!important;
    border-radius:23px!important;
    background:rgba(255,255,255,.985)!important;
    box-shadow:0 28px 80px rgba(15,23,42,.24)!important;
    backdrop-filter:blur(24px) saturate(160%)!important;
    -webkit-backdrop-filter:blur(24px) saturate(160%)!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(-12px) scale(.98)!important;
    transform-origin:top right!important;
    transition:opacity .2s ease,transform .24s cubic-bezier(.2,.8,.2,1),visibility .2s ease!important;
  }
  .topbar.nav-open nav,
  .topbar.nav-open #site-navigation{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateY(0) scale(1)!important;
  }
  .topbar nav a,
  .topbar nav a.btn,
  .topbar nav a.btn.small{
    position:relative!important;
    width:100%!important;
    min-height:48px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    padding:12px 14px!important;
    border:1px solid transparent!important;
    border-radius:15px!important;
    background:#f8f9fc!important;
    color:#1d2939!important;
    box-shadow:none!important;
    font:800 14px/1.15 Manrope,Inter,system-ui,sans-serif!important;
    opacity:1!important;
  }
  .topbar nav a:after{
    content:"›";
    width:27px;
    height:27px;
    display:grid;
    place-items:center;
    border-radius:9px;
    background:#fff;
    color:#667085;
    border:1px solid #e7eaf0;
    font-size:19px;
    line-height:1;
  }
  .topbar nav a:hover,.topbar nav a:focus-visible{background:#f0f1ff!important;color:#4338ca!important;border-color:#dcdafe!important}
  .topbar nav a.active{
    background:linear-gradient(135deg,#4f46e5,#7c3aed)!important;
    color:#fff!important;
    border-color:transparent!important;
    box-shadow:0 10px 24px rgba(79,70,229,.22)!important;
  }
  .topbar nav a.active:after{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.18);color:#fff}
  .topbar nav a.btn{background:#111827!important;color:#fff!important}
  .topbar nav a.btn:after{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.14);color:#fff}

  .mobile-nav-backdrop{
    position:fixed!important;
    inset:0!important;
    z-index:1000!important;
    display:block!important;
    width:100vw!important;
    height:100dvh!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:rgba(15,23,42,.34)!important;
    backdrop-filter:blur(4px)!important;
    -webkit-backdrop-filter:blur(4px)!important;
    opacity:1!important;
  }
  .mobile-nav-backdrop[hidden]{display:none!important}
  body.mobile-nav-open{overflow:hidden!important;touch-action:none}
}

@media(max-width:390px){
  .topbar{padding:9px 9px!important;gap:7px!important}
  .brand{max-width:calc(100vw - 91px)!important;gap:7px!important}
  .brand-logo-shell,.brand-mark{width:44px!important;height:44px!important;min-width:44px!important}
  .brand-name{font-size:13.5px!important}
  .brand-tagline{font-size:9.5px!important}
  .mobile-menu-toggle{min-width:72px!important;height:44px!important;padding:6px 8px 6px 6px!important;gap:5px!important;border-radius:14px!important}
  .mobile-menu-glyph{width:30px!important;height:30px!important}
  .mobile-menu-label{font-size:10px!important}
  .topbar nav,#site-navigation{top:72px!important;left:7px!important;right:7px!important;border-radius:20px!important}
}

/* 20260802 V4: reliable mobile book-page image loading. */
.reader-shell img.reader-page-image.is-deferred:not([data-reader-activated="1"]){
  width:1px!important;
  height:1px!important;
  min-width:1px!important;
  min-height:1px!important;
  opacity:0!important;
  position:absolute!important;
  pointer-events:none!important;
}
.reader-shell img.reader-page-image[data-reader-activated="1"]{
  position:static!important;
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:auto!important;
}
.reader-shell [data-reader-image-frame].is-loaded .reader-image-loader{display:none!important}
.reader-shell [data-reader-image-frame] .image-error-box{
  width:100%;min-height:150px;display:grid;place-items:center;align-content:center;gap:6px;
  padding:20px;text-align:center;border:1px dashed #fda29b;border-radius:16px;background:#fff7ed;color:#912018
}
.reader-shell [data-reader-image-frame] .image-error-box span{font-size:12px;color:#7a271a}
@media(max-width:760px){
  .reader-shell [data-reader-image-frame]{
    width:100%!important;min-height:180px!important;display:flex!important;align-items:center!important;justify-content:center!important;
  }
  .reader-shell [data-reader-image-frame].is-loaded{min-height:0!important}
  .reader-shell img.reader-page-image[data-reader-activated="1"]{
    width:100%!important;max-width:100%!important;height:auto!important;max-height:none!important;border-radius:13px!important
  }
  .book-panel.panel-image,.book-panel.panel-full_image,.book-panel.panel-image_text{contain:none!important;content-visibility:visible!important}
}
.reader-shell img.reader-page-image[hidden]{display:none!important}

/* 20260802 V5: invitation-only registration and secure access-link flows. */
.admin-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.admin-page-heading h1{margin-bottom:6px}.admin-page-heading p{margin:0}.secure-link-notice{margin-bottom:22px}.link-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.link-create-card{display:grid;gap:8px;min-width:0}.link-create-card h2{margin:0}.link-create-card>p{margin:0 0 8px}.link-create-card form{margin-top:8px}.invitation-card{background:linear-gradient(180deg,#fff 0%,#faf8ff 100%);border-color:#ddd6fe}.link-list-section{margin-top:34px}.link-list-section .section-head{margin-bottom:15px}.link-count{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;font-weight:900}.secure-link-list{display:grid;gap:13px}.secure-link-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow2)}.invitation-link-item{border-left:4px solid #7c3aed}.secure-link-main{min-width:0}.secure-link-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.secure-link-title strong{font-family:Sora,Inter,sans-serif;font-size:15px}.status-pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.status-pill.is-active{background:#ecfdf3;color:#067647;border:1px solid #abefc6}.status-pill.is-off{background:#fef3f2;color:#b42318;border:1px solid #fecdca}.copy-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-top:11px}.copy-link-row input{min-width:0;font-size:12px;background:#f8fafc}.copy-link-row button{min-width:76px}.link-facts{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:11px;font-weight:750}.link-facts span{display:inline-flex;align-items:center;gap:4px}.secure-link-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.secure-link-actions form{display:inline-flex;margin:0}.danger-outline{display:inline-flex;align-items:center;justify-content:center;border:1px solid #fda29b!important;background:#fff!important;color:#b42318!important;box-shadow:none!important;border-radius:999px;font-weight:900;cursor:pointer}.danger-outline:hover{background:#fff5f4!important;color:#912018!important}.danger-outline.small{padding:9px 13px;font-size:13px}

.private-access-card{max-width:650px;text-align:center;padding:38px;display:grid;justify-items:center;gap:14px}.private-access-card h1{margin:0;max-width:560px}.private-access-card>p{margin:0;max-width:540px}.access-symbol{display:grid;place-items:center;width:58px;height:58px;border-radius:19px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font:900 27px/1 Sora,Inter,sans-serif;box-shadow:0 16px 34px rgba(79,70,229,.24)}.access-symbol.is-error{background:linear-gradient(135deg,#b42318,#f04438);box-shadow:0 16px 34px rgba(180,35,24,.2)}.private-primary-action{min-width:220px}.private-link-note{display:grid;gap:4px;width:100%;padding:14px 16px;border:1px solid #d9d6fe;border-radius:17px;background:#f8f7ff;text-align:left}.private-link-note b{font-size:12px;color:#4338ca}.private-link-note span{font-size:12px;line-height:1.55;color:#626575}.claim-book-cover{width:min(190px,50vw);max-height:250px;object-fit:contain;border-radius:17px;background:#f5f5f7;box-shadow:0 18px 38px rgba(15,23,42,.13)}.book-claim-card form{width:100%}.book-claim-card form button{width:100%}.invitation-note{display:grid;gap:5px;width:100%;padding:14px 16px;border-radius:17px;background:#111827;color:#fff;text-align:left}.invitation-note span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.65;font-weight:900}.invitation-note strong{font-size:14px}.private-flow-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%}.private-flow-steps span{display:grid;justify-items:center;gap:7px;padding:13px 8px;border:1px solid var(--line);border-radius:16px;background:#fafbfc;font-size:11px;font-weight:850;color:#535665}.private-flow-steps b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#ede9fe;color:#5b21b6}.invitation-entry-card form{width:100%}.invitation-entry-card form button{width:100%;min-height:50px}.quiet-link{font-size:12px;font-weight:850;color:var(--muted);text-decoration:none}.quiet-link:hover{color:var(--primary)}.invitation-signup-card .pill{margin-bottom:0}.auth-links.single-link{grid-template-columns:1fr;justify-items:center}

@media(max-width:980px){.link-management-grid{grid-template-columns:1fr}.secure-link-item{grid-template-columns:1fr}.secure-link-actions{justify-content:flex-start}}
@media(max-width:720px){.admin-page-heading{align-items:flex-start;flex-direction:column}.link-create-card{padding:20px 16px}.link-create-card .grid.two{grid-template-columns:1fr}.secure-link-item{padding:15px;border-radius:18px}.copy-link-row{grid-template-columns:1fr}.copy-link-row button{width:100%}.secure-link-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.secure-link-actions>a,.secure-link-actions form,.secure-link-actions button{width:100%}.secure-link-actions form:last-child{grid-column:1/-1}.private-access-card{margin:20px auto;padding:28px 18px;border-radius:23px}.private-access-card h1{font-size:clamp(28px,9vw,42px)}.private-flow-steps{grid-template-columns:1fr}.private-flow-steps span{grid-template-columns:auto 1fr;justify-items:start;align-items:center;text-align:left}.private-primary-action{width:100%}.claim-book-cover{width:min(170px,56vw)}}

/* 20260802 V5.2 — stable fullscreen controls and centered reading stage */
.reader-shell.book-mode.is-fullscreen,
.reader-shell.book-mode:fullscreen,
.reader-shell.book-mode:-webkit-full-screen{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  align-items:stretch!important;
  gap:14px!important;
  padding:16px 18px max(16px,env(safe-area-inset-bottom))!important;
  background:radial-gradient(circle at 50% 0,rgba(99,102,241,.10),transparent 38%),#e9edf5!important;
}
.reader-shell.book-mode.is-fullscreen .reader.book-swipe,
.reader-shell.book-mode:fullscreen .reader.book-swipe,
.reader-shell.book-mode:-webkit-full-screen .reader.book-swipe{
  grid-column:1!important;
  grid-row:1!important;
  align-self:stretch!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.reader-shell.book-mode.is-fullscreen .reader-control-stage,
.reader-shell.book-mode:fullscreen .reader-control-stage,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage{
  grid-column:1!important;
  grid-row:2!important;
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  align-self:end!important;
  width:min(920px,100%)!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  margin:0 auto!important;
  z-index:1000002!important;
}
.reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
.reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  width:100%!important;
  margin:0!important;
  border-radius:18px!important;
}
.reader-shell.book-mode.is-fullscreen .reader-control-stage .progress-bar,
.reader-shell.book-mode:fullscreen .reader-control-stage .progress-bar,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage .progress-bar{
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  width:calc(100% - 24px)!important;
  margin:0 auto 8px!important;
}
.reader-shell.book-mode.is-fullscreen .page-spread,
.reader-shell.book-mode:fullscreen .page-spread,
.reader-shell.book-mode:-webkit-full-screen .page-spread{
  align-self:center!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
}
.reader-shell.book-mode.is-fullscreen .single-page,
.reader-shell.book-mode:fullscreen .single-page,
.reader-shell.book-mode:-webkit-full-screen .single-page{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  overflow:auto!important;
}
.reader-shell.book-mode.is-fullscreen .single-page .single-panel,
.reader-shell.book-mode:fullscreen .single-page .single-panel,
.reader-shell.book-mode:-webkit-full-screen .single-page .single-panel,
.reader-shell.book-mode.is-fullscreen .book-panel,
.reader-shell.book-mode:fullscreen .book-panel,
.reader-shell.book-mode:-webkit-full-screen .book-panel{
  align-items:center!important;
  justify-content:center!important;
}
.reader-shell.book-mode.is-fullscreen .panel-copy,
.reader-shell.book-mode:fullscreen .panel-copy,
.reader-shell.book-mode:-webkit-full-screen .panel-copy{margin-block:auto!important}
.reader-shell.book-mode.is-fullscreen .reader-page-image,
.reader-shell.book-mode:fullscreen .reader-page-image,
.reader-shell.book-mode:-webkit-full-screen .reader-page-image,
.reader-shell.book-mode.is-fullscreen .reader-cover,
.reader-shell.book-mode:fullscreen .reader-cover,
.reader-shell.book-mode:-webkit-full-screen .reader-cover{
  width:auto!important;
  max-width:100%!important;
  height:auto!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
}

/* When hidden, keep one calm, fixed target instead of a button that shifts under the pointer. */
.reader-shell.book-mode.is-fullscreen .reader-control-stage.controls-hidden,
.reader-shell.book-mode:fullscreen .reader-control-stage.controls-hidden,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage.controls-hidden{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:46px!important;
  height:46px!important;
  overflow:visible!important;
}
.reader-shell.book-mode.is-fullscreen .reader-control-stage.controls-hidden .reader-controls,
.reader-shell.book-mode:fullscreen .reader-control-stage.controls-hidden .reader-controls,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage.controls-hidden .reader-controls,
.reader-shell.book-mode.is-fullscreen .reader-control-stage.controls-hidden .progress-bar,
.reader-shell.book-mode:fullscreen .reader-control-stage.controls-hidden .progress-bar,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage.controls-hidden .progress-bar{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:none!important;
}
.reader-shell.book-mode.is-fullscreen .reader-control-stage.controls-hidden .reader-controls-reveal,
.reader-shell.book-mode:fullscreen .reader-control-stage.controls-hidden .reader-controls-reveal,
.reader-shell.book-mode:-webkit-full-screen .reader-control-stage.controls-hidden .reader-controls-reveal{
  display:inline-flex!important;
  position:static!important;
  inset:auto!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:154px!important;
  min-height:44px!important;
  margin:0!important;
  padding:11px 18px!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:999px!important;
  background:rgba(15,23,42,.96)!important;
  color:#fff!important;
  box-shadow:0 14px 40px rgba(15,23,42,.28)!important;
  transition:background-color .18s ease,color .18s ease,box-shadow .18s ease!important;
}
.reader-shell.book-mode.is-fullscreen .reader-controls-reveal:hover,
.reader-shell.book-mode:fullscreen .reader-controls-reveal:hover,
.reader-shell.book-mode:-webkit-full-screen .reader-controls-reveal:hover,
.reader-shell.book-mode.is-fullscreen .reader-controls-reveal:focus-visible,
.reader-shell.book-mode:fullscreen .reader-controls-reveal:focus-visible,
.reader-shell.book-mode:-webkit-full-screen .reader-controls-reveal:focus-visible{
  transform:none!important;
  background:#312e81!important;
  box-shadow:0 16px 44px rgba(49,46,129,.34)!important;
}

@media(max-width:760px){
  .reader-shell.book-mode.is-fullscreen,
  .reader-shell.book-mode:fullscreen,
  .reader-shell.book-mode:-webkit-full-screen{
    grid-template-rows:minmax(0,1fr) auto!important;
    gap:10px!important;
    padding:8px 6px max(8px,env(safe-area-inset-bottom))!important;
    background:#0b1020!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader.book-swipe,
  .reader-shell.book-mode:fullscreen .reader.book-swipe,
  .reader-shell.book-mode:-webkit-full-screen .reader.book-swipe{
    grid-row:1!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:0!important;
    align-items:center!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader-control-stage,
  .reader-shell.book-mode:fullscreen .reader-control-stage,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage{
    grid-row:2!important;
    position:relative!important;
    inset:auto!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
  .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr)!important;
    grid-template-areas:
      'prev count next'
      'full full hide'!important;
    gap:6px!important;
    padding:7px!important;
    border-radius:16px!important;
    background:rgba(15,23,42,.94)!important;
    box-shadow:0 12px 34px rgba(0,0,0,.30)!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader-control-stage .progress-bar,
  .reader-shell.book-mode:fullscreen .reader-control-stage .progress-bar,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .progress-bar{
    width:calc(100% - 18px)!important;
    height:6px!important;
    margin:0 auto 6px!important;
  }
  .reader-shell.book-mode.is-fullscreen .page-spread,
  .reader-shell.book-mode:fullscreen .page-spread,
  .reader-shell.book-mode:-webkit-full-screen .page-spread{
    align-self:center!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    margin:auto 0!important;
    border-radius:15px!important;
    overflow-y:auto!important;
    scroll-padding-block:12px!important;
  }
  .reader-shell.book-mode.is-fullscreen .page-spread.single,
  .reader-shell.book-mode:fullscreen .page-spread.single,
  .reader-shell.book-mode:-webkit-full-screen .page-spread.single{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .reader-shell.book-mode.is-fullscreen .single-page,
  .reader-shell.book-mode:fullscreen .single-page,
  .reader-shell.book-mode:-webkit-full-screen .single-page{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
    padding:8px!important;
  }
  .reader-shell.book-mode.is-fullscreen .book-panel,
  .reader-shell.book-mode:fullscreen .book-panel,
  .reader-shell.book-mode:-webkit-full-screen .book-panel{
    justify-content:center!important;
    padding:12px!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader-page-image,
  .reader-shell.book-mode:fullscreen .reader-page-image,
  .reader-shell.book-mode:-webkit-full-screen .reader-page-image,
  .reader-shell.book-mode.is-fullscreen .reader-cover,
  .reader-shell.book-mode:fullscreen .reader-cover,
  .reader-shell.book-mode:-webkit-full-screen .reader-cover{
    width:auto!important;
    max-width:100%!important;
    height:auto!important;
    max-height:100%!important;
    margin:auto!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader-control-stage.controls-hidden,
  .reader-shell.book-mode:fullscreen .reader-control-stage.controls-hidden,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage.controls-hidden{
    min-height:44px!important;
    height:44px!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader-control-stage.controls-hidden .reader-controls-reveal,
  .reader-shell.book-mode:fullscreen .reader-control-stage.controls-hidden .reader-controls-reveal,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage.controls-hidden .reader-controls-reveal{
    min-width:148px!important;
    min-height:42px!important;
    padding:10px 16px!important;
  }
}

@media(max-width:390px){
  .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
  .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{
    grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr)!important;
    gap:5px!important;
    padding:6px!important;
  }
  .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls .btn,
  .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls .btn,
  .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls .btn{
    min-height:38px!important;
    padding:8px 5px!important;
    font-size:10px!important;
  }
}

/* 20260802 V5.3: centered mobile close icon + reserved music-player scroll space. */
.music-page-spacer{
  display:block;
  width:100%;
  height:76px;
  pointer-events:none;
  visibility:hidden;
}

@media(max-width:760px){
  /* Give the last book page enough room to scroll completely above the fixed music dock. */
  .music-page-spacer{
    height:calc(108px + env(safe-area-inset-bottom));
  }
  body[data-page="book.php"] .music-page-spacer{
    height:calc(132px + env(safe-area-inset-bottom));
  }
  body[data-page="book.php"] main.container{
    padding-bottom:18px!important;
  }
  .music-dock{
    bottom:max(10px,env(safe-area-inset-bottom))!important;
  }

  /* Keep the menu glyph exactly centered in both Menu and Close states. */
  .mobile-menu-glyph{
    position:relative!important;
    display:block!important;
    flex:none!important;
    overflow:hidden!important;
  }
  .mobile-menu-glyph i{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    width:17px!important;
    height:2px!important;
    margin:0!important;
    transform-origin:center center!important;
  }
  .mobile-menu-glyph i:nth-child(1){transform:translate(-50%,-7px)!important}
  .mobile-menu-glyph i:nth-child(2){width:12px!important;transform:translate(-38%,-50%)!important}
  .mobile-menu-glyph i:nth-child(3){transform:translate(-50%,5px)!important}

  .topbar.nav-open .mobile-menu-glyph i:nth-child(1){
    width:18px!important;
    transform:translate(-50%,-50%) rotate(45deg)!important;
  }
  .topbar.nav-open .mobile-menu-glyph i:nth-child(2){
    opacity:0!important;
    transform:translate(-50%,-50%) scaleX(0)!important;
  }
  .topbar.nav-open .mobile-menu-glyph i:nth-child(3){
    width:18px!important;
    transform:translate(-50%,-50%) rotate(-45deg)!important;
  }
}


/* Library V5.4 — cache-proof mobile menu and music clearance. */
.mobile-menu-glyph{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  flex:0 0 32px!important;
  width:32px!important;
  height:32px!important;
  overflow:hidden!important;
}
.mobile-menu-glyph .menu-svg{
  position:absolute!important;
  inset:50% auto auto 50%!important;
  width:22px!important;
  height:22px!important;
  transform:translate(-50%,-50%)!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:2.25!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  transition:opacity .18s ease,transform .22s ease!important;
  pointer-events:none!important;
}
.mobile-menu-glyph .menu-svg-open{opacity:1!important}
.mobile-menu-glyph .menu-svg-close{opacity:0!important;transform:translate(-50%,-50%) rotate(-18deg) scale(.78)!important}
.topbar.nav-open .mobile-menu-glyph .menu-svg-open{opacity:0!important;transform:translate(-50%,-50%) rotate(18deg) scale(.78)!important}
.topbar.nav-open .mobile-menu-glyph .menu-svg-close{opacity:1!important;transform:translate(-50%,-50%) rotate(0) scale(1)!important}

@media(max-width:760px){
  .mobile-menu-toggle{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
  }
  .mobile-menu-glyph{flex-basis:32px!important}
  /* The document always has enough real scroll area to lift the final book page above the fixed player. */
  body[data-page="book.php"]{
    padding-bottom:calc(190px + env(safe-area-inset-bottom))!important;
  }
  body[data-page="book.php"] .music-page-spacer{
    display:block!important;
    visibility:hidden!important;
    width:100%!important;
    height:calc(210px + env(safe-area-inset-bottom))!important;
    min-height:calc(210px + env(safe-area-inset-bottom))!important;
    flex:0 0 auto!important;
  }
  body[data-page="book.php"] main.container{
    margin-bottom:0!important;
  }
  body[data-page="book.php"] .music-dock{
    bottom:max(12px,env(safe-area-inset-bottom))!important;
  }
}

/* Library V5.5 FULL: definitive centered mobile menu and non-covering music clearance. */
.mobile-menu-toggle .mobile-menu-glyph{
  position:relative!important;display:grid!important;place-items:center!important;
  width:38px!important;height:38px!important;min-width:38px!important;flex:0 0 38px!important;
  overflow:hidden!important;border-radius:13px!important;
}
.mobile-menu-toggle .mobile-menu-icon{
  display:block!important;width:22px!important;height:22px!important;margin:auto!important;
  fill:none!important;stroke:currentColor!important;stroke-width:2.25!important;
  stroke-linecap:round!important;stroke-linejoin:round!important;overflow:visible!important;
}
.mobile-menu-toggle .mobile-menu-bars,.mobile-menu-toggle .mobile-menu-close{
  transform-origin:12px 12px!important;transition:opacity .18s ease,transform .22s ease!important;
}
.mobile-menu-toggle .mobile-menu-bars{opacity:1!important;transform:scale(1) rotate(0)!important}
.mobile-menu-toggle .mobile-menu-close{opacity:0!important;transform:scale(.78) rotate(-18deg)!important}
.mobile-menu-toggle[aria-expanded="true"] .mobile-menu-bars{opacity:0!important;transform:scale(.78) rotate(18deg)!important}
.mobile-menu-toggle[aria-expanded="true"] .mobile-menu-close{opacity:1!important;transform:scale(1) rotate(0)!important}
.music-scroll-clearance{display:block!important;width:100%!important;height:110px!important;min-height:110px!important;visibility:hidden!important;pointer-events:none!important}
@media(max-width:760px){
  .mobile-menu-toggle{display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important}
  body.has-music-player[data-page="book.php"] main.container{padding-bottom:calc(72px + env(safe-area-inset-bottom))!important;margin-bottom:0!important}
  body.has-music-player[data-page="book.php"] .music-scroll-clearance{height:calc(230px + env(safe-area-inset-bottom))!important;min-height:calc(230px + env(safe-area-inset-bottom))!important}
  body.has-music-player .music-dock{bottom:max(12px,env(safe-area-inset-bottom))!important}
}

/* ========================================================================
   LIBRARY PRO V5.6 FINAL
   Stable mobile navigation and a book-page music player that never overlays
   reading content. These selectors are intentionally unique so older cached
   menu rules cannot affect them.
   ======================================================================== */
.v56-nav-trigger{display:none}

@media (max-width:760px){
  .topbar .v56-nav-trigger{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:112px!important;
    height:52px!important;
    margin:0!important;
    padding:7px 12px 7px 7px!important;
    border:0!important;
    border-radius:18px!important;
    background:linear-gradient(135deg,#26215f 0%,#5b50e6 62%,#7c3aed 100%)!important;
    color:#fff!important;
    box-shadow:0 12px 28px rgba(79,70,229,.28)!important;
    font-family:Manrope,Inter,system-ui,sans-serif!important;
    font-size:13px!important;
    font-weight:850!important;
    line-height:1!important;
    letter-spacing:0!important;
    overflow:hidden!important;
    transform:none!important;
  }
  .topbar .v56-nav-trigger:hover,
  .topbar .v56-nav-trigger:active,
  .topbar .v56-nav-trigger:focus-visible{
    color:#fff!important;
    background:linear-gradient(135deg,#211c56 0%,#5145d8 62%,#6d28d9 100%)!important;
    transform:none!important;
  }
  .topbar .v56-nav-trigger:focus-visible{outline:4px solid rgba(91,80,230,.22)!important;outline-offset:3px!important}
  .v56-nav-iconbox{
    position:relative!important;
    display:grid!important;
    place-items:center!important;
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    flex:0 0 38px!important;
    margin:0!important;
    padding:0!important;
    border-radius:13px!important;
    background:rgba(255,255,255,.12)!important;
    border:1px solid rgba(255,255,255,.17)!important;
    overflow:hidden!important;
  }
  .v56-nav-icon{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    display:block!important;
    width:22px!important;
    height:22px!important;
    margin:0!important;
    transform:translate(-50%,-50%)!important;
    transform-origin:center!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:2.35!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
    transition:opacity .18s ease,transform .22s ease!important;
    pointer-events:none!important;
  }
  .v56-nav-icon-open{opacity:1!important}
  .v56-nav-icon-close{opacity:0!important;transform:translate(-50%,-50%) scale(.82)!important}
  .v56-nav-trigger[aria-expanded="true"] .v56-nav-icon-open{opacity:0!important;transform:translate(-50%,-50%) scale(.82)!important}
  .v56-nav-trigger[aria-expanded="true"] .v56-nav-icon-close{opacity:1!important;transform:translate(-50%,-50%) scale(1)!important}
  .v56-nav-label{display:block!important;min-width:39px!important;text-align:left!important;color:inherit!important}
  .v56-nav-trigger:before,.v56-nav-trigger:after,
  .v56-nav-iconbox:before,.v56-nav-iconbox:after,
  .v56-nav-icon:before,.v56-nav-icon:after{content:none!important;display:none!important}

  /* On a book page the player is part of document flow, after the reader.
     It therefore cannot cover the last page or the phone navigation bar. */
  body.has-music-player[data-page="book.php"] .music-scroll-clearance{display:none!important;height:0!important;min-height:0!important}
  body.has-music-player[data-page="book.php"] .music-dock{
    position:relative!important;
    inset:auto!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    display:block!important;
    width:calc(100% - 24px)!important;
    max-width:680px!important;
    margin:26px auto calc(30px + env(safe-area-inset-bottom))!important;
    z-index:8!important;
  }
  body.has-music-player[data-page="book.php"] .music-toggle{
    width:100%!important;
    min-width:0!important;
    min-height:54px!important;
    margin:0!important;
    padding:12px 16px!important;
    border-radius:18px!important;
    justify-content:space-between!important;
  }
  body.has-music-player[data-page="book.php"] .music-panel{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    max-width:none!important;
    max-height:none!important;
    margin:10px 0 0!important;
    border-radius:22px!important;
  }
  body.has-music-player[data-page="book.php"] main.container{padding-bottom:20px!important;margin-bottom:0!important}
}

@media (max-width:390px){
  .topbar .v56-nav-trigger{min-width:102px!important;height:50px!important;padding-right:10px!important;gap:6px!important}
  .v56-nav-iconbox{width:36px!important;height:36px!important;min-width:36px!important;flex-basis:36px!important}
  .v56-nav-label{min-width:35px!important;font-size:12px!important}
}

/* ========================================================================
   LIBRARY PRO V5.7 — RESTORED MUSIC + READER COMFORT
   This final layer intentionally overrides the historical reader/player rules.
   ======================================================================== */
body.library-v57-ready{--reader-safe-bottom:max(14px,env(safe-area-inset-bottom));}
.reader-music-anchor{display:contents!important;}

/* ---------- Music player: always reachable, never removes reading space ---------- */
body.library-v57-ready.has-music-player main.container{
  padding-bottom:150px!important;
}
body.library-v57-ready.has-music-player[data-page="book.php"] .music-scroll-clearance{
  display:block!important;
  width:100%!important;
  height:150px!important;
  min-height:150px!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body.library-v57-ready.music-panel-open.has-music-player[data-page="book.php"] .music-scroll-clearance{
  height:410px!important;
  min-height:410px!important;
}
body.library-v57-ready .music-dock{
  position:fixed!important;
  left:auto!important;
  right:18px!important;
  top:auto!important;
  bottom:max(18px,env(safe-area-inset-bottom))!important;
  display:block!important;
  width:min(390px,calc(100vw - 28px))!important;
  max-width:390px!important;
  margin:0!important;
  transform:none!important;
  z-index:1000050!important;
  pointer-events:none!important;
}
body.library-v57-ready .music-dock>*{pointer-events:auto!important;}
body.library-v57-ready .music-toggle{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  width:176px!important;
  min-width:176px!important;
  min-height:54px!important;
  margin:0 0 0 auto!important;
  padding:7px 10px 7px 7px!important;
  border:1px solid rgba(255,255,255,.22)!important;
  border-radius:18px!important;
  background:linear-gradient(135deg,#17152f 0%,#4f46e5 66%,#7c3aed 100%)!important;
  color:#fff!important;
  box-shadow:0 18px 48px rgba(37,33,95,.30)!important;
  font-family:Manrope,Inter,system-ui,sans-serif!important;
  overflow:hidden!important;
  cursor:pointer!important;
}
body.library-v57-ready .music-toggle:hover,
body.library-v57-ready .music-toggle:focus-visible{
  color:#fff!important;
  transform:translateY(-1px)!important;
  box-shadow:0 22px 56px rgba(37,33,95,.36)!important;
}
.music-toggle-icon{
  display:grid!important;
  place-items:center!important;
  flex:0 0 40px!important;
  width:40px!important;
  height:40px!important;
  border-radius:13px!important;
  background:rgba(255,255,255,.14)!important;
  border:1px solid rgba(255,255,255,.14)!important;
}
.music-toggle-icon svg{
  width:22px!important;
  height:22px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.9!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.music-toggle-copy{
  display:grid!important;
  gap:1px!important;
  min-width:0!important;
  flex:1 1 auto!important;
  text-align:left!important;
}
.music-toggle-copy strong{
  color:#fff!important;
  font-size:13px!important;
  line-height:1.1!important;
  font-weight:900!important;
}
.music-toggle-copy small{
  display:block!important;
  max-width:78px!important;
  overflow:hidden!important;
  color:rgba(255,255,255,.72)!important;
  font-size:9px!important;
  line-height:1.2!important;
  font-weight:700!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
}
body.library-v57-ready .music-toggle b{
  flex:0 0 auto!important;
  padding:5px 7px!important;
  background:rgba(255,255,255,.14)!important;
  color:#fff!important;
  font-size:9px!important;
  line-height:1!important;
  border-radius:999px!important;
}
body.library-v57-ready .music-dock.is-playing .music-toggle-icon{
  animation:v57MusicPulse 1.8s ease-in-out infinite;
}
@keyframes v57MusicPulse{50%{transform:scale(1.07);background:rgba(255,255,255,.24)}}
body.library-v57-ready .music-panel{
  position:absolute!important;
  left:auto!important;
  right:0!important;
  top:auto!important;
  bottom:calc(100% + 10px)!important;
  display:none!important;
  width:min(390px,calc(100vw - 28px))!important;
  max-width:390px!important;
  max-height:min(70dvh,620px)!important;
  margin:0!important;
  padding:15px!important;
  overflow:auto!important;
  border:1px solid rgba(99,102,241,.18)!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 28px 90px rgba(15,23,42,.26)!important;
  backdrop-filter:blur(22px)!important;
  overscroll-behavior:contain!important;
}
body.library-v57-ready .music-dock.is-open .music-panel{display:grid!important;gap:13px!important;}
body.library-v57-ready .music-controls{grid-template-columns:1fr 1.1fr 1fr!important;}
body.library-v57-ready .music-list{max-height:220px!important;}

/* ---------- Normal reader: controls stay outside the page, no overlay ---------- */
body.library-v57-ready[data-page="book.php"] .reader-shell.book-mode{
  max-width:min(1420px,100%)!important;
  padding-bottom:6px!important;
}
body.library-v57-ready[data-page="book.php"] .reader-control-stage{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  width:min(980px,100%)!important;
  margin:14px auto 18px!important;
  z-index:70!important;
}
body.library-v57-ready[data-page="book.php"] .reader.book-swipe{
  align-items:center!important;
  height:min(76vh,780px)!important;
  min-height:540px!important;
  padding:6px 4px 24px!important;
  scroll-padding-inline:4px!important;
}
body.library-v57-ready[data-page="book.php"] .page-spread{
  align-self:center!important;
  height:100%!important;
  min-height:0!important;
}
body.library-v57-ready[data-page="book.php"] .reader-control-stage .reader-controls{
  box-shadow:0 14px 42px rgba(16,24,40,.10)!important;
}

/* ---------- Fullscreen: centered reading canvas with stable bottom controls ---------- */
body.library-v57-ready .reader-shell.book-mode.is-fullscreen,
body.library-v57-ready .reader-shell.book-mode:fullscreen,
body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen{
  display:block!important;
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  height:100dvh!important;
  max-width:none!important;
  margin:0!important;
  padding:12px!important;
  overflow:hidden!important;
  background:linear-gradient(145deg,#e9edf5,#f8fafc 50%,#e9edf5)!important;
}
body.library-v57-ready .reader-shell.book-mode.is-fullscreen .reader.book-swipe,
body.library-v57-ready .reader-shell.book-mode:fullscreen .reader.book-swipe,
body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen .reader.book-swipe{
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:8px 8px calc(108px + env(safe-area-inset-bottom))!important;
  gap:14px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x mandatory!important;
  scrollbar-width:none!important;
}
body.library-v57-ready .reader-shell.book-mode.is-fullscreen .reader.book-swipe::-webkit-scrollbar,
body.library-v57-ready .reader-shell.book-mode:fullscreen .reader.book-swipe::-webkit-scrollbar,
body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen .reader.book-swipe::-webkit-scrollbar{display:none!important;}
body.library-v57-ready .reader-shell.book-mode.is-fullscreen .page-spread,
body.library-v57-ready .reader-shell.book-mode:fullscreen .page-spread,
body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen .page-spread{
  flex:0 0 100%!important;
  width:100%!important;
  max-width:1500px!important;
  height:min(calc(100dvh - 136px - env(safe-area-inset-bottom)),920px)!important;
  min-height:0!important;
  margin:auto!important;
  align-self:center!important;
  border-radius:24px!important;
  box-shadow:0 26px 80px rgba(15,23,42,.18)!important;
}
body.library-v57-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage,
body.library-v57-ready .reader-shell.book-mode:fullscreen .reader-control-stage,
body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:max(14px,env(safe-area-inset-bottom))!important;
  transform:translateX(-50%)!important;
  width:min(940px,calc(100vw - 28px))!important;
  height:auto!important;
  margin:0!important;
  z-index:1000040!important;
}
body.library-v57-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
body.library-v57-ready .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{
  transform:none!important;
  border-radius:20px!important;
  background:rgba(15,23,42,.92)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 24px 80px rgba(0,0,0,.34)!important;
}
body.library-v57-ready .reader-shell.book-mode.is-fullscreen .reader-controls-reveal,
body.library-v57-ready .reader-shell.book-mode:fullscreen .reader-controls-reveal,
body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen .reader-controls-reveal{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  top:auto!important;
  bottom:max(16px,env(safe-area-inset-bottom))!important;
  transform:translateX(-50%)!important;
  margin:0!important;
  z-index:1000042!important;
}
body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden.is-fullscreen .reader.book-swipe,
body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden:fullscreen .reader.book-swipe,
body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden:-webkit-full-screen .reader.book-swipe{
  padding-bottom:8px!important;
}
body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden.is-fullscreen .page-spread,
body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden:fullscreen .page-spread,
body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden:-webkit-full-screen .page-spread{
  height:min(calc(100dvh - 28px),960px)!important;
}

/* Music remains available in fullscreen, but stays away from the bottom controls. */
body.library-v57-ready.reader-fullscreen-active .music-dock,
body.library-v57-ready.reader-fullscreen-active .music-dock.is-reader-fullscreen{
  display:block!important;
  position:fixed!important;
  left:auto!important;
  right:14px!important;
  top:max(14px,env(safe-area-inset-top))!important;
  bottom:auto!important;
  width:min(390px,calc(100vw - 28px))!important;
  max-width:390px!important;
  margin:0!important;
  z-index:1000060!important;
}
body.library-v57-ready.reader-fullscreen-active .music-toggle{
  width:164px!important;
  min-width:164px!important;
  min-height:50px!important;
  margin-left:auto!important;
}
body.library-v57-ready.reader-fullscreen-active .music-panel{
  top:calc(100% + 10px)!important;
  right:0!important;
  bottom:auto!important;
  max-height:calc(100dvh - 170px)!important;
}

@media(max-width:760px){
  body.library-v57-ready.has-music-player main.container{
    padding-bottom:190px!important;
  }
  body.library-v57-ready.has-music-player[data-page="book.php"] .music-scroll-clearance{
    height:190px!important;
    min-height:190px!important;
  }
  body.library-v57-ready.music-panel-open.has-music-player[data-page="book.php"] .music-scroll-clearance{
    height:520px!important;
    min-height:520px!important;
  }
  body.library-v57-ready .music-dock{
    left:12px!important;
    right:12px!important;
    top:auto!important;
    bottom:max(12px,env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:none!important;
  }
  body.library-v57-ready .music-toggle{
    width:164px!important;
    min-width:164px!important;
    min-height:50px!important;
    margin:0 0 0 auto!important;
    border-radius:17px!important;
  }
  body.library-v57-ready .music-panel{
    left:0!important;
    right:0!important;
    width:100%!important;
    max-width:none!important;
    max-height:min(60dvh,540px)!important;
    border-radius:22px!important;
  }
  body.library-v57-ready .music-controls{grid-template-columns:repeat(3,1fr)!important;}
  body.library-v57-ready .music-controls button{font-size:11px!important;padding:10px 5px!important;}

  body.library-v57-ready[data-page="book.php"] .reader-control-stage{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    width:100%!important;
    margin:10px auto 12px!important;
    z-index:80!important;
  }
  body.library-v57-ready[data-page="book.php"] .reader.book-swipe{
    height:calc(100dvh - 250px)!important;
    min-height:450px!important;
    max-height:760px!important;
    padding:2px 2px 18px!important;
  }
  body.library-v57-ready[data-page="book.php"] .page-spread{
    height:100%!important;
    margin:0!important;
  }
  body.library-v57-ready[data-page="book.php"] .page-spread .book-panel{
    padding:14px!important;
  }

  body.library-v57-ready .reader-shell.book-mode.is-fullscreen,
  body.library-v57-ready .reader-shell.book-mode:fullscreen,
  body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen{
    padding:8px!important;
  }
  body.library-v57-ready .reader-shell.book-mode.is-fullscreen .reader.book-swipe,
  body.library-v57-ready .reader-shell.book-mode:fullscreen .reader.book-swipe,
  body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen .reader.book-swipe{
    height:100%!important;
    padding:6px 2px calc(126px + env(safe-area-inset-bottom))!important;
    gap:8px!important;
  }
  body.library-v57-ready .reader-shell.book-mode.is-fullscreen .page-spread,
  body.library-v57-ready .reader-shell.book-mode:fullscreen .page-spread,
  body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen .page-spread{
    width:100%!important;
    height:calc(100dvh - 150px - env(safe-area-inset-bottom))!important;
    max-height:none!important;
    margin:auto 0!important;
    border-radius:18px!important;
  }
  body.library-v57-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage,
  body.library-v57-ready .reader-shell.book-mode:fullscreen .reader-control-stage,
  body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage{
    left:8px!important;
    right:8px!important;
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    width:auto!important;
    transform:none!important;
  }
  body.library-v57-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
  body.library-v57-ready .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
  body.library-v57-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{
    grid-template-columns:1fr auto 1fr!important;
    grid-template-areas:'prev count next' 'full full hide'!important;
    gap:6px!important;
    padding:7px!important;
    border-radius:17px!important;
  }
  body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden.is-fullscreen .reader.book-swipe,
  body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden:fullscreen .reader.book-swipe,
  body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden:-webkit-full-screen .reader.book-swipe{
    padding:4px 2px 8px!important;
  }
  body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden.is-fullscreen .page-spread,
  body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden:fullscreen .page-spread,
  body.library-v57-ready .reader-shell.book-mode.reader-controls-hidden:-webkit-full-screen .page-spread{
    height:calc(100dvh - 16px)!important;
  }

  body.library-v57-ready.reader-fullscreen-active .music-dock,
  body.library-v57-ready.reader-fullscreen-active .music-dock.is-reader-fullscreen{
    left:auto!important;
    right:8px!important;
    top:max(8px,env(safe-area-inset-top))!important;
    bottom:auto!important;
    width:auto!important;
    max-width:calc(100vw - 16px)!important;
  }
  body.library-v57-ready.reader-fullscreen-active .music-toggle{
    width:52px!important;
    min-width:52px!important;
    height:52px!important;
    min-height:52px!important;
    padding:6px!important;
    border-radius:17px!important;
  }
  body.library-v57-ready.reader-fullscreen-active .music-toggle-copy,
  body.library-v57-ready.reader-fullscreen-active .music-toggle b{display:none!important;}
  body.library-v57-ready.reader-fullscreen-active .music-toggle-icon{
    width:40px!important;
    height:40px!important;
    flex-basis:40px!important;
  }
  body.library-v57-ready.reader-fullscreen-active .music-panel{
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    top:auto!important;
    bottom:calc(118px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:none!important;
    max-height:min(55dvh,500px)!important;
  }
  body.library-v57-ready.reader-fullscreen-active .reader-shell.reader-controls-hidden .music-panel{
    bottom:74px!important;
  }
}

@media(max-width:390px){
  body.library-v57-ready[data-page="book.php"] .reader.book-swipe{
    height:calc(100dvh - 264px)!important;
    min-height:420px!important;
  }
  body.library-v57-ready .reader-control-stage .reader-controls .btn,
  body.library-v57-ready .reader-control-stage .reader-controls .btn.small,
  body.library-v57-ready .reader-control-stage .fullscreen-text-btn{
    font-size:10px!important;
    padding:8px 5px!important;
  }
}

/* V5.7 specificity guard: defeats the older V5.6 mobile in-flow player rules. */
@media(max-width:760px){
  body.library-v57-ready.has-music-player[data-page="book.php"] .music-dock:not(.is-reader-fullscreen){
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    top:auto!important;
    bottom:max(12px,env(safe-area-inset-bottom))!important;
    display:block!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    transform:none!important;
    z-index:1000050!important;
  }
  body.library-v57-ready.has-music-player[data-page="book.php"] .music-dock:not(.is-reader-fullscreen) .music-toggle{
    width:164px!important;
    min-width:164px!important;
    min-height:50px!important;
    margin:0 0 0 auto!important;
    padding:7px 9px 7px 6px!important;
    border-radius:17px!important;
    justify-content:flex-start!important;
  }
  body.library-v57-ready.has-music-player[data-page="book.php"] .music-dock:not(.is-reader-fullscreen) .music-panel{
    position:absolute!important;
    left:0!important;
    right:0!important;
    top:auto!important;
    bottom:calc(100% + 10px)!important;
    width:100%!important;
    max-width:none!important;
    max-height:min(60dvh,540px)!important;
    margin:0!important;
    border-radius:22px!important;
  }
}

/* ======================================================================
   LIBRARY PRO V5.8 — MOBILE READER REINVENTION
   Vertical page scrolling is never blocked by images/text. Fullscreen on
   phones becomes a dedicated centered canvas with a compact bottom dock.
   ====================================================================== */

/* Make ordinary mobile page scrolling win over the horizontal reader rail.
   Horizontal page changes are handled by the reader's deliberate swipe code. */
@media (max-width:760px){
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .reader.book-swipe,
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .page-spread,
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .book-panel,
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .panel-image,
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .panel-image img,
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .panel-copy,
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .page-body,
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .single-page{
    touch-action:pan-y pinch-zoom!important;
  }
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .reader.book-swipe{
    overscroll-behavior-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .page-spread,
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .book-panel{
    overscroll-behavior-y:auto!important;
  }
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .reader-page-image,
  body.library-v58-ready:not(.reader-fullscreen-active)[data-page="book.php"] .reader-cover{
    pointer-events:auto!important;
    touch-action:pan-y pinch-zoom!important;
  }
}

/* Dedicated mobile fullscreen canvas. */
@media (max-width:760px){
  body.library-v58-ready.reader-fullscreen-active{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen,
  body.library-v58-ready .reader-shell.book-mode:fullscreen,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen{
    padding:0!important;
    background:#e8ebf2!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-titlebar,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-titlebar,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-titlebar{
    display:none!important;
  }

  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader.book-swipe,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader.book-swipe,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader.book-swipe{
    display:flex!important;
    align-items:stretch!important;
    width:100vw!important;
    height:100dvh!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:8px 4px calc(68px + env(safe-area-inset-bottom))!important;
    gap:8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    scroll-padding-inline:4px!important;
    touch-action:pan-y pinch-zoom!important;
    overscroll-behavior:none!important;
    scrollbar-width:none!important;
    background:linear-gradient(180deg,#e9edf5,#f4f6fa)!important;
  }

  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .page-spread,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .page-spread,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .page-spread{
    flex:0 0 calc(100vw - 8px)!important;
    width:calc(100vw - 8px)!important;
    max-width:none!important;
    height:calc(100dvh - 80px - env(safe-area-inset-bottom))!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    align-self:stretch!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y pinch-zoom!important;
    scroll-snap-align:center!important;
    scroll-snap-stop:always!important;
    border:1px solid rgba(148,163,184,.36)!important;
    border-radius:18px!important;
    background:#fff!important;
    box-shadow:0 14px 40px rgba(15,23,42,.12)!important;
  }

  /* Safe centering: short pages sit in the middle; long pages scroll from top. */
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .page-spread > :first-child,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .page-spread > :first-child,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .page-spread > :first-child{
    margin-top:auto!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .page-spread > :last-child,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .page-spread > :last-child,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .page-spread > :last-child{
    margin-bottom:auto!important;
  }

  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .book-panel,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .book-panel,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .book-panel{
    flex:0 0 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    padding:10px!important;
    overflow:visible!important;
    justify-content:flex-start!important;
    touch-action:pan-y pinch-zoom!important;
    background:#fff!important;
    border-bottom:1px solid #e7eaf1!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .book-panel:last-child,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .book-panel:last-child,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .book-panel:last-child{
    border-bottom:0!important;
  }

  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .panel-image,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .panel-image,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .panel-image{
    width:100%!important;
    min-height:0!important;
    display:block!important;
    margin:0!important;
    touch-action:pan-y pinch-zoom!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-page-image,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-page-image,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-page-image,
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-cover,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-cover,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-cover{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    max-height:none!important;
    margin:0 auto!important;
    object-fit:contain!important;
    border:0!important;
    border-radius:14px!important;
    box-shadow:none!important;
    background:#fff!important;
    touch-action:pan-y pinch-zoom!important;
  }

  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .panel-copy,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .panel-copy,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .panel-copy{
    width:100%!important;
    max-width:720px!important;
    margin:0 auto!important;
    padding:14px 10px 18px!important;
    touch-action:pan-y pinch-zoom!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .panel-copy h2,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .panel-copy h2,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .panel-copy h2{
    font-size:clamp(22px,7vw,34px)!important;
    line-height:1.15!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .page-body,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .page-body,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .page-body{
    font-size:clamp(16px,4.6vw,21px)!important;
    line-height:1.72!important;
    touch-action:pan-y pinch-zoom!important;
  }

  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .page-spread.single .single-page,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .page-spread.single .single-page,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .page-spread.single .single-page{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-height:100%!important;
    height:auto!important;
    padding:10px!important;
    overflow:visible!important;
    background:#fff!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .single-page .single-panel,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .single-page .single-panel,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .single-page .single-panel{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:auto!important;
    padding:0!important;
  }

  /* Compact, one-row fullscreen navigation dock. */
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-control-stage,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage{
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    top:auto!important;
    bottom:max(7px,env(safe-area-inset-bottom))!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    transform:none!important;
    z-index:1000040!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage .progress-bar,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-control-stage .progress-bar,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .progress-bar{
    position:absolute!important;
    left:12px!important;
    right:12px!important;
    top:-7px!important;
    width:auto!important;
    height:4px!important;
    margin:0!important;
    border-radius:999px!important;
    box-shadow:0 1px 5px rgba(15,23,42,.18)!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{
    display:grid!important;
    grid-template-columns:minmax(48px,1fr) 58px minmax(48px,1fr) 54px 48px!important;
    grid-template-areas:'prev count next full hide'!important;
    gap:5px!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:6px!important;
    border-radius:17px!important;
    background:rgba(15,23,42,.94)!important;
    border:1px solid rgba(255,255,255,.16)!important;
    box-shadow:0 16px 48px rgba(0,0,0,.32)!important;
    backdrop-filter:blur(18px)!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls .btn,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls .btn,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls .btn,
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-count,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-control-stage .reader-count,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-count{
    min-width:0!important;
    width:100%!important;
    min-height:44px!important;
    height:44px!important;
    margin:0!important;
    padding:6px!important;
    border-radius:12px!important;
    font-size:12px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-count,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-count,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-count{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#fff!important;
    color:#111827!important;
    border-color:#fff!important;
    font-weight:950!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-controls-reveal,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-controls-reveal,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-controls-reveal{
    left:50%!important;
    right:auto!important;
    bottom:max(9px,env(safe-area-inset-bottom))!important;
    transform:translateX(-50%)!important;
    min-height:44px!important;
    padding:10px 18px!important;
    border-radius:999px!important;
    background:rgba(15,23,42,.95)!important;
    color:#fff!important;
    box-shadow:0 14px 44px rgba(0,0,0,.34)!important;
  }

  body.library-v58-ready .reader-shell.book-mode.reader-controls-hidden.is-fullscreen .reader.book-swipe,
  body.library-v58-ready .reader-shell.book-mode.reader-controls-hidden:fullscreen .reader.book-swipe,
  body.library-v58-ready .reader-shell.book-mode.reader-controls-hidden:-webkit-full-screen .reader.book-swipe{
    padding-bottom:4px!important;
  }
  body.library-v58-ready .reader-shell.book-mode.reader-controls-hidden.is-fullscreen .page-spread,
  body.library-v58-ready .reader-shell.book-mode.reader-controls-hidden:fullscreen .page-spread,
  body.library-v58-ready .reader-shell.book-mode.reader-controls-hidden:-webkit-full-screen .page-spread{
    height:calc(100dvh - 8px)!important;
  }

  /* Music remains reachable without stealing the reading canvas. */
  body.library-v58-ready.reader-fullscreen-active .music-dock,
  body.library-v58-ready.reader-fullscreen-active .music-dock.is-reader-fullscreen{
    right:9px!important;
    top:max(9px,env(safe-area-inset-top))!important;
    left:auto!important;
    bottom:auto!important;
  }
  body.library-v58-ready.reader-fullscreen-active .music-toggle{
    width:48px!important;
    min-width:48px!important;
    height:48px!important;
    min-height:48px!important;
    padding:5px!important;
    border-radius:15px!important;
    opacity:.94!important;
  }
  body.library-v58-ready.reader-fullscreen-active .music-toggle-icon{
    width:38px!important;
    height:38px!important;
    flex:0 0 38px!important;
  }
  body.library-v58-ready.reader-fullscreen-active .music-panel{
    left:8px!important;
    right:8px!important;
    top:auto!important;
    bottom:calc(64px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:none!important;
    max-height:min(58dvh,520px)!important;
  }
}

@media (max-width:390px){
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls{
    grid-template-columns:minmax(42px,1fr) 54px minmax(42px,1fr) 50px 44px!important;
    gap:4px!important;
    padding:5px!important;
  }
  body.library-v58-ready .reader-shell.book-mode.is-fullscreen .reader-control-stage .reader-controls .btn,
  body.library-v58-ready .reader-shell.book-mode:fullscreen .reader-control-stage .reader-controls .btn,
  body.library-v58-ready .reader-shell.book-mode:-webkit-full-screen .reader-control-stage .reader-controls .btn{
    font-size:11px!important;
    padding:5px 3px!important;
  }
}

/* LIBRARY PRO V5.9 — desktop image-first reading optimisation */
body.library-v59-ready .reader-shell.book-mode{
  max-width:min(1640px,calc(100vw - 20px))!important;
}

/* Image-only book pages should use the page itself, not sit inside a padded card. */
body.library-v59-ready .page-spread.spread-image-only,
body.library-v59-ready .page-spread.spread-single-image-only{
  background:#fff!important;
}
body.library-v59-ready .page-spread.spread-image-only .book-panel.is-image-only,
body.library-v59-ready .page-spread.spread-single-image-only .book-panel.is-image-only,
body.library-v59-ready .page-spread.spread-left-image-only .left-panel.is-image-only,
body.library-v59-ready .page-spread.spread-right-image-only .right-panel.is-image-only{
  padding:clamp(4px,.55vw,9px)!important;
  gap:0!important;
  overflow:hidden!important;
  justify-content:stretch!important;
  align-items:stretch!important;
}
body.library-v59-ready .book-panel.is-image-only .panel-image,
body.library-v59-ready .book-panel.is-image-only [data-reader-image-frame]{
  flex:1 1 auto!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
body.library-v59-ready .book-panel.is-image-only .reader-page-image,
body.library-v59-ready .book-panel.is-image-only .panel-image img{
  width:100%!important;
  max-width:100%!important;
  height:100%!important;
  max-height:100%!important;
  min-width:0!important;
  min-height:0!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0!important;
  border:0!important;
  border-radius:clamp(8px,.8vw,14px)!important;
  box-shadow:none!important;
  background:#fff!important;
}
body.library-v59-ready .page-spread.spread-image-only .left-panel{
  border-right:1px solid #e6e9f0!important;
}
body.library-v59-ready .page-spread.spread-image-only .right-panel{
  background:#fff!important;
}

@media (min-width:761px){
  body.library-v59-ready .reader.book-swipe{
    height:min(82vh,880px)!important;
    min-height:min(620px,76vh)!important;
    gap:10px!important;
    padding:2px 1px 14px!important;
  }
  body.library-v59-ready .page-spread{
    border-radius:22px!important;
  }
  body.library-v59-ready .page-spread.spread-image-only,
  body.library-v59-ready .page-spread.spread-single-image-only{
    box-shadow:0 14px 44px rgba(27,36,71,.09)!important;
  }
  body.library-v59-ready .page-spread.spread-single-image-only .single-page,
  body.library-v59-ready .page-spread.spread-single-image-only .single-panel{
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    padding:0!important;
  }

  /* Fullscreen uses almost the entire monitor for the actual pages. */
  body.library-v59-ready .reader-shell.book-mode.is-fullscreen,
  body.library-v59-ready .reader-shell.book-mode:fullscreen,
  body.library-v59-ready .reader-shell.book-mode:-webkit-full-screen{
    padding:7px 9px max(8px,env(safe-area-inset-bottom))!important;
    gap:7px!important;
  }
  body.library-v59-ready .reader-shell.book-mode.is-fullscreen .reader.book-swipe,
  body.library-v59-ready .reader-shell.book-mode:fullscreen .reader.book-swipe,
  body.library-v59-ready .reader-shell.book-mode:-webkit-full-screen .reader.book-swipe{
    width:100%!important;
    height:100%!important;
    padding:0!important;
    gap:7px!important;
  }
  body.library-v59-ready .reader-shell.book-mode.is-fullscreen .page-spread,
  body.library-v59-ready .reader-shell.book-mode:fullscreen .page-spread,
  body.library-v59-ready .reader-shell.book-mode:-webkit-full-screen .page-spread{
    border-radius:14px!important;
  }
  body.library-v59-ready .reader-shell.book-mode.is-fullscreen .page-spread.spread-image-only .book-panel.is-image-only,
  body.library-v59-ready .reader-shell.book-mode:fullscreen .page-spread.spread-image-only .book-panel.is-image-only,
  body.library-v59-ready .reader-shell.book-mode:-webkit-full-screen .page-spread.spread-image-only .book-panel.is-image-only,
  body.library-v59-ready .reader-shell.book-mode.is-fullscreen .page-spread.spread-single-image-only .book-panel.is-image-only,
  body.library-v59-ready .reader-shell.book-mode:fullscreen .page-spread.spread-single-image-only .book-panel.is-image-only,
  body.library-v59-ready .reader-shell.book-mode:-webkit-full-screen .page-spread.spread-single-image-only .book-panel.is-image-only{
    padding:3px!important;
  }
  body.library-v59-ready .reader-shell.book-mode.is-fullscreen .book-panel.is-image-only .reader-page-image,
  body.library-v59-ready .reader-shell.book-mode:fullscreen .book-panel.is-image-only .reader-page-image,
  body.library-v59-ready .reader-shell.book-mode:-webkit-full-screen .book-panel.is-image-only .reader-page-image{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
  }
}

/* An unobtrusive page-focus tool gives image-based books a truly readable view. */
.reader-image-focus-button{
  position:absolute;
  right:10px;
  bottom:10px;
  z-index:8;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.58);
  border-radius:999px;
  background:rgba(15,23,42,.88);
  color:#fff;
  font:850 11px/1 Manrope,Inter,system-ui,sans-serif;
  box-shadow:0 12px 30px rgba(15,23,42,.24);
  backdrop-filter:blur(12px);
  cursor:pointer;
  opacity:0;
  transform:translateY(5px);
  transition:opacity .18s ease,transform .18s ease,background .18s ease;
}
.reader-image-focus-button svg{width:16px;height:16px;display:block}
.book-panel.is-image-only [data-reader-image-frame]:hover .reader-image-focus-button,
.reader-image-focus-button:focus-visible{
  opacity:1;
  transform:none;
}
.reader-image-focus-button:hover{background:#111827}
.reader-image-focus-overlay{
  position:fixed;
  inset:0;
  z-index:2147483000;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  gap:10px;
  padding:12px;
  background:rgba(5,8,16,.96);
  backdrop-filter:blur(18px);
}
.reader-image-focus-overlay[hidden]{display:none!important}
.reader-image-focus-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:#fff;
}
.reader-image-focus-toolbar strong{font-size:13px;letter-spacing:.01em}
.reader-image-focus-actions{display:flex;align-items:center;gap:8px}
.reader-image-focus-actions button{
  min-height:40px;
  padding:9px 14px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:12px;
  background:rgba(255,255,255,.10);
  color:#fff;
  font:850 12px/1 Manrope,Inter,system-ui,sans-serif;
  cursor:pointer;
}
.reader-image-focus-actions button:hover{background:rgba(255,255,255,.18)}
.reader-image-focus-canvas{
  min-width:0;
  min-height:0;
  overflow:auto;
  display:flex;
  align-items:center;
  justify-content:center;
  overscroll-behavior:contain;
  touch-action:pan-x pan-y pinch-zoom;
}
.reader-image-focus-canvas img{
  display:block;
  width:auto;
  height:auto;
  max-width:calc(100vw - 24px);
  max-height:calc(100dvh - 76px);
  object-fit:contain;
  margin:auto;
  user-select:none;
  -webkit-user-drag:none;
  touch-action:pan-x pan-y pinch-zoom;
}
body.reader-image-focus-open{overflow:hidden!important}

@media (max-width:760px){
  /* Keep the larger-view affordance reachable without covering the book. */
  .reader-image-focus-button{
    right:8px;
    bottom:8px;
    min-width:38px;
    width:38px;
    height:38px;
    padding:0;
    opacity:.86;
    transform:none;
  }
  .reader-image-focus-button span{display:none}
  .reader-image-focus-overlay{padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom))}
  .reader-image-focus-canvas img{max-width:calc(100vw - 16px);max-height:calc(100dvh - 72px)}
}

/* LIBRARY PRO V6.0 — fullscreen focus fix + reader design templates */
body.library-v60-ready .reader-image-focus-overlay{
  z-index:2147483600!important;
}
body.library-v60-ready .reader-shell.book-mode:fullscreen .reader-image-focus-overlay,
body.library-v60-ready .reader-shell.book-mode:-webkit-full-screen .reader-image-focus-overlay,
body.library-v60-ready .reader-shell.book-mode.is-fullscreen .reader-image-focus-overlay{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  max-width:none!important;
  max-height:none!important;
}
body.library-v60-ready .reader-shell.book-mode.reader-image-focus-active .reader-control-stage{
  visibility:hidden!important;
  pointer-events:none!important;
}
body.library-v60-ready .reader-shell.book-mode.reader-image-focus-active .music-dock{
  opacity:0!important;
  pointer-events:none!important;
}

/* Template variables are injected on the reader shell from the selected preset. */
body.library-v60-ready .reader-shell.book-mode{
  position:relative;
  isolation:isolate;
  color:var(--reader-theme-text,#111827)!important;
  background:
    radial-gradient(circle at 7% 8%,color-mix(in srgb,var(--reader-theme-accent,#5b50e6) 12%,transparent),transparent 34%),
    var(--reader-theme-bg,#f4f6fb)!important;
  border-color:var(--reader-theme-line,#e4e8f0)!important;
  border-radius:var(--reader-theme-radius,22px)!important;
  font-family:var(--reader-theme-font,Manrope,Inter,system-ui,sans-serif)!important;
  box-shadow:var(--reader-theme-shadow,0 20px 58px rgba(35,45,85,.12))!important;
  overflow:clip;
}
body.library-v60-ready .reader-shell.book-mode > *{position:relative;z-index:1}
body.library-v60-ready .reader-shell.book-mode:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.34;
}
body.library-v60-ready .reader-titlebar h1,
body.library-v60-ready .reader-titlebar,
body.library-v60-ready .reader-shell.book-mode .panel-copy,
body.library-v60-ready .reader-shell.book-mode .page-body{
  color:var(--reader-theme-text,#111827)!important;
  font-family:var(--reader-theme-font,Manrope,Inter,system-ui,sans-serif)!important;
}
body.library-v60-ready .reader-shell.book-mode .muted,
body.library-v60-ready .reader-shell.book-mode .reader-meta-card span{
  color:var(--reader-theme-muted,#687083)!important;
}
body.library-v60-ready .reader-shell.book-mode .eyebrow,
body.library-v60-ready .reader-theme-badge{
  border-color:color-mix(in srgb,var(--reader-theme-accent,#5b50e6) 34%,transparent)!important;
  background:color-mix(in srgb,var(--reader-theme-accent,#5b50e6) 12%,var(--reader-theme-paper,#fff))!important;
  color:var(--reader-theme-accent,#5b50e6)!important;
}
.reader-theme-badge{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  margin-left:8px;
  padding:7px 11px;
  border:1px solid;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  font-weight:850;
  letter-spacing:.04em;
  text-transform:uppercase;
  vertical-align:middle;
}
body.library-v60-ready .reader-shell.book-mode .reader-meta-card,
body.library-v60-ready .reader-shell.book-mode .reader-control-stage{
  background:color-mix(in srgb,var(--reader-theme-paper,#fff) 92%,transparent)!important;
  border-color:var(--reader-theme-line,#e4e8f0)!important;
  color:var(--reader-theme-text,#111827)!important;
}
body.library-v60-ready .reader-shell.book-mode .reader-meta-card strong,
body.library-v60-ready .reader-shell.book-mode .reader-count{
  color:var(--reader-theme-accent,#5b50e6)!important;
}
body.library-v60-ready .reader-shell.book-mode .progress-bar{
  background:color-mix(in srgb,var(--reader-theme-line,#e4e8f0) 78%,transparent)!important;
}
body.library-v60-ready .reader-shell.book-mode .progress-bar span,
body.library-v60-ready .reader-shell.book-mode .reader-controls [data-reader-next],
body.library-v60-ready .reader-shell.book-mode .fullscreen-text-btn{
  background:linear-gradient(135deg,var(--reader-theme-accent,#5b50e6),var(--reader-theme-accent-2,#7c3aed))!important;
  color:#fff!important;
  border-color:transparent!important;
}
body.library-v60-ready .reader-shell.book-mode .reader-controls .secondary,
body.library-v60-ready .reader-shell.book-mode .reader-hide-controls{
  background:color-mix(in srgb,var(--reader-theme-paper,#fff) 88%,var(--reader-theme-bg,#f4f6fb))!important;
  color:var(--reader-theme-text,#111827)!important;
  border-color:var(--reader-theme-line,#e4e8f0)!important;
}
body.library-v60-ready .reader-shell.book-mode .reader-count{
  background:var(--reader-theme-paper,#fff)!important;
  border-color:var(--reader-theme-line,#e4e8f0)!important;
}
body.library-v60-ready .reader-shell.book-mode .page-spread{
  background:var(--reader-theme-paper,#fff)!important;
  border-color:var(--reader-theme-line,#e4e8f0)!important;
  border-radius:var(--reader-theme-radius,22px)!important;
  box-shadow:var(--reader-theme-shadow,0 20px 58px rgba(35,45,85,.12))!important;
}
body.library-v60-ready .reader-shell.book-mode .book-panel,
body.library-v60-ready .reader-shell.book-mode .single-page,
body.library-v60-ready .reader-shell.book-mode .single-panel{
  background:var(--reader-theme-paper,#fff)!important;
  color:var(--reader-theme-text,#111827)!important;
  border-color:var(--reader-theme-line,#e4e8f0)!important;
}
body.library-v60-ready .reader-shell.book-mode .right-panel{
  background:var(--reader-theme-paper-alt,var(--reader-theme-paper,#fff))!important;
}
body.library-v60-ready .reader-shell.book-mode .page-spread.spread-image-only,
body.library-v60-ready .reader-shell.book-mode .page-spread.spread-single-image-only,
body.library-v60-ready .reader-shell.book-mode .page-spread.spread-image-only .book-panel,
body.library-v60-ready .reader-shell.book-mode .page-spread.spread-single-image-only .book-panel{
  background:var(--reader-theme-paper,#fff)!important;
}
body.library-v60-ready .reader-shell.book-mode .page-body,
body.library-v60-ready .reader-shell.book-mode .panel-copy h2{
  color:var(--reader-theme-text,#111827)!important;
}

/* Real book: visible binding, warm fibres and serif text. */
body.library-v60-ready .reader-template-real:before{
  background:
    repeating-linear-gradient(0deg,rgba(111,79,42,.035) 0 1px,transparent 1px 5px),
    radial-gradient(circle at 20% 20%,rgba(129,84,38,.09),transparent 30%);
}
body.library-v60-ready .reader-template-real .page-spread:not(.single):after,
body.library-v60-ready .reader-template-old .page-spread:not(.single):after{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  bottom:0;
  width:20px;
  transform:translateX(-50%);
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(71,47,26,.10),rgba(255,255,255,.45),rgba(71,47,26,.10),transparent);
  z-index:5;
}
body.library-v60-ready .reader-template-real .panel-copy:first-letter{
  font-size:1.12em;
}

/* Aesthetic: pastel glows and glassy controls. */
body.library-v60-ready .reader-template-aesthetic:before{
  background:
    radial-gradient(circle at 15% 20%,rgba(236,119,180,.22),transparent 25%),
    radial-gradient(circle at 85% 15%,rgba(154,108,255,.20),transparent 28%),
    radial-gradient(circle at 80% 85%,rgba(108,220,226,.18),transparent 24%);
}
body.library-v60-ready .reader-template-aesthetic .page-spread{
  backdrop-filter:blur(14px);
}

/* Futuristic: grid and electric edge. */
body.library-v60-ready .reader-template-futuristic:before{
  opacity:.55;
  background-image:
    linear-gradient(rgba(40,215,255,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(40,215,255,.07) 1px,transparent 1px),
    radial-gradient(circle at 75% 10%,rgba(124,92,255,.30),transparent 24%);
  background-size:30px 30px,30px 30px,auto;
}
body.library-v60-ready .reader-template-futuristic .page-spread{
  box-shadow:0 0 0 1px rgba(40,215,255,.12),0 25px 80px rgba(0,0,0,.34)!important;
}
body.library-v60-ready .reader-template-futuristic .reader-theme-badge{
  text-shadow:0 0 15px color-mix(in srgb,var(--reader-theme-accent) 65%,transparent);
}

/* Old book: parchment texture and ink edges. */
body.library-v60-ready .reader-template-old:before{
  opacity:.45;
  background:
    repeating-radial-gradient(circle at 15% 22%,rgba(76,45,18,.10) 0 1px,transparent 1px 7px),
    linear-gradient(rgba(50,31,15,.06),rgba(50,31,15,.06));
}
body.library-v60-ready .reader-template-old .page-spread{
  outline:1px solid rgba(80,48,21,.22);
  outline-offset:-5px;
}
body.library-v60-ready .reader-template-old .panel-copy{
  text-shadow:0 .4px rgba(255,255,255,.32);
}

/* Dark and magic retain readable controls while changing the entire canvas. */
body.library-v60-ready .reader-template-dark:before{
  background:radial-gradient(circle at 50% 0,rgba(139,124,255,.18),transparent 42%);
}
body.library-v60-ready .reader-template-magic:before{
  opacity:.72;
  background:
    radial-gradient(circle at 12% 16%,rgba(242,196,92,.95) 0 1px,transparent 2px),
    radial-gradient(circle at 77% 12%,rgba(255,255,255,.80) 0 1px,transparent 2px),
    radial-gradient(circle at 88% 68%,rgba(193,108,255,.88) 0 1.2px,transparent 2.4px),
    radial-gradient(circle at 30% 78%,rgba(242,196,92,.65) 0 1px,transparent 2px),
    radial-gradient(circle at 60% 42%,rgba(255,255,255,.35) 0 1px,transparent 2px),
    radial-gradient(circle at 75% 12%,rgba(193,108,255,.25),transparent 32%);
  background-size:120px 120px,160px 160px,190px 190px,220px 220px,140px 140px,auto;
}
body.library-v60-ready .reader-template-magic .page-spread{
  box-shadow:0 0 0 1px rgba(242,196,92,.14),0 28px 90px rgba(71,26,118,.36)!important;
}

/* Template picker used in Settings and Edit Book. */
.reader-template-admin-section{
  margin:28px 0;
  padding:clamp(18px,3vw,28px);
  border:1px solid #e2e6ef;
  border-radius:24px;
  background:linear-gradient(180deg,#fff,#fbfcff);
  box-shadow:0 16px 44px rgba(30,41,75,.06);
}
.reader-template-admin-section h2,
.reader-template-admin-section h3{margin-top:0}
.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.section-heading-row h2{margin-bottom:5px}
.section-heading-row p{margin:0}
.template-admin-badge{
  flex:0 0 auto;
  padding:8px 12px;
  border-radius:999px;
  background:#eef2ff;
  color:#5146d8;
  font-size:11px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.reader-template-picker{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:12px 0 24px;
}
.compact-template-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
.reader-template-option{
  position:relative;
  display:grid;
  grid-template-columns:86px minmax(0,1fr);
  gap:13px;
  align-items:center;
  min-height:116px;
  padding:13px;
  border:1px solid #e3e7ef;
  border-radius:18px;
  background:#fff;
  cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
  overflow:hidden;
}
.reader-template-option:hover{transform:translateY(-2px);border-color:#bbb5ff;box-shadow:0 14px 34px rgba(47,55,92,.10)}
.reader-template-option:has(input:checked){border-color:#6558ed;box-shadow:0 0 0 3px rgba(91,80,230,.12),0 16px 36px rgba(91,80,230,.14)}
.reader-template-option input{position:absolute;opacity:0;pointer-events:none}
.template-preview-art{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  width:86px;
  height:72px;
  padding:8px;
  gap:3px;
  border-radius:13px;
  background:#eceff6;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);
}
.template-preview-art i{display:block;border-radius:5px;background:#fff;box-shadow:0 5px 12px rgba(0,0,0,.10)}
.template-preview-art b{position:absolute;left:50%;top:9px;bottom:9px;width:2px;transform:translateX(-50%);background:rgba(0,0,0,.10)}
.template-option-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
.template-option-copy strong{font-size:14px;color:#171a24}
.template-option-copy small{font-size:11px;line-height:1.45;color:#71798a}
.template-selected-mark{
  position:absolute;
  right:9px;
  top:9px;
  display:none;
  padding:5px 7px;
  border-radius:999px;
  background:#5b50e6;
  color:#fff;
  font-size:9px;
  font-weight:850;
}
.reader-template-option:has(input:checked) .template-selected-mark{display:block}
.template-preview-real .template-preview-art{background:#e4d5bd}.template-preview-real .template-preview-art i{background:#fff6e5;border-radius:2px}
.template-preview-aesthetic .template-preview-art{background:linear-gradient(135deg,#f6dff1,#e6e0ff)}.template-preview-aesthetic .template-preview-art i{background:rgba(255,255,255,.82);border-radius:8px}
.template-preview-futuristic .template-preview-art{background:#071326;box-shadow:inset 0 0 0 1px #1b5a7c}.template-preview-futuristic .template-preview-art i{background:#10213a;box-shadow:0 0 12px rgba(40,215,255,.28)}.template-preview-futuristic .template-preview-art b{background:#28d7ff}
.template-preview-old .template-preview-art{background:#6b5139}.template-preview-old .template-preview-art i{background:#dec491;border-radius:1px}.template-preview-old .template-preview-art b{background:#7f5b32}
.template-preview-dark .template-preview-art{background:#0f1219}.template-preview-dark .template-preview-art i{background:#1d2330}.template-preview-dark .template-preview-art b{background:#8b7cff}
.template-preview-magic .template-preview-art{background:radial-gradient(circle at 20% 20%,#f2c45c 0 1px,transparent 2px),#24113f}.template-preview-magic .template-preview-art i{background:#32184f;box-shadow:0 0 12px rgba(193,108,255,.24)}.template-preview-magic .template-preview-art b{background:#f2c45c}
.template-preview-global .template-preview-art{background:linear-gradient(135deg,#eef2ff,#f8f5ff)}.template-preview-global .template-preview-art i:first-child{background:#fff}.template-preview-global .template-preview-art i:nth-child(2){background:#ede9fe}.template-preview-global .template-preview-art b{background:#5b50e6}
.template-color-grid input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:lowercase}

@media(max-width:980px){
  .reader-template-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .reader-theme-badge{margin-left:4px;min-height:30px;padding:6px 8px;font-size:9px}
  .reader-template-admin-section{padding:16px;border-radius:19px}
  .section-heading-row{align-items:flex-start}
  .reader-template-picker,.compact-template-picker{grid-template-columns:1fr}
  .reader-template-option{grid-template-columns:72px minmax(0,1fr);min-height:104px}
  .template-preview-art{width:72px;height:62px}
}

/* Dedicated template manager */
.admin-page-heading{margin-bottom:18px}
.admin-page-heading h1{margin:0 0 7px}
.template-manager-form{margin-top:0}
.template-manager-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:20px}
.bulk-template-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border:1px solid #e4e7ef;border-radius:16px;background:#f8f9fc}
.bulk-template-action label{display:flex;align-items:center;gap:8px;margin:0;font-size:12px}
.template-books-grid{display:grid;gap:10px}
.template-book-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px;border:1px solid #e6e9f0;border-radius:17px;background:#fff}
.template-book-row>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.template-book-row>div strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.template-book-row>div small{color:#737b8d}
.mini-template-preview .template-preview-art{width:70px;height:52px;padding:6px}
@media(max-width:620px){
  .template-manager-actions{align-items:stretch}
  .template-manager-actions>button,.bulk-template-action,.bulk-template-action button{width:100%}
  .template-book-row{grid-template-columns:64px minmax(0,1fr)}
  .template-book-row>a{grid-column:1/-1;width:100%}
  .mini-template-preview .template-preview-art{width:58px;height:46px}
}
body.library-v60-ready .reader-shell.book-mode > .reader-image-focus-overlay{
  position:fixed!important;
  inset:0!important;
  z-index:2147483600!important;
}
body.reader-image-focus-open .reader-shell.book-mode{overflow:visible!important}

/* ======================================================================
   LIBRARY PRO V6.1 — DESKTOP COVER FIT
   Keeps the complete front/back cover visible, including the bottom edge.
   ====================================================================== */
@media (min-width: 761px){
  body.library-v61-ready[data-page="book.php"] .reader-shell.book-mode .cover-spread{
    min-height:0!important;
  }
  body.library-v61-ready[data-page="book.php"] .reader-shell.book-mode .cover-spread .single-page{
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:clamp(10px,1.25vw,18px) clamp(12px,1.6vw,22px) clamp(16px,1.7vw,24px)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
  }
  body.library-v61-ready[data-page="book.php"] .reader-shell.book-mode .cover-spread .reader-cover{
    display:block!important;
    flex:0 1 auto!important;
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:100%!important;
    margin:auto!important;
    object-fit:contain!important;
    object-position:center center!important;
    border-radius:clamp(10px,1.15vw,18px)!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  /* The same true-fit behaviour in desktop fullscreen. */
  body.library-v61-ready[data-page="book.php"] .reader-shell.book-mode.is-fullscreen .cover-spread .single-page,
  body.library-v61-ready[data-page="book.php"] .reader-shell.book-mode:fullscreen .cover-spread .single-page,
  body.library-v61-ready[data-page="book.php"] .reader-shell.book-mode:-webkit-full-screen .cover-spread .single-page{
    padding:clamp(10px,1.2vw,18px) clamp(12px,1.5vw,22px) clamp(16px,1.6vw,24px)!important;
  }
  body.library-v61-ready[data-page="book.php"] .reader-shell.book-mode.is-fullscreen .cover-spread .reader-cover,
  body.library-v61-ready[data-page="book.php"] .reader-shell.book-mode:fullscreen .cover-spread .reader-cover,
  body.library-v61-ready[data-page="book.php"] .reader-shell.book-mode:-webkit-full-screen .cover-spread .reader-cover{
    width:auto!important;
    height:auto!important;
    max-width:100%!important;
    max-height:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
  }
}
