.ec-book-reader { --book-border:#d7e1ed; --book-ink:#1e334b; --book-muted:#61758b; --book-blue:#245fe8; box-sizing:border-box; max-width:100%; min-width:0; margin:28px 0; border:1px solid var(--book-border); border-radius:14px; background:#fff; color:var(--book-ink); overflow:hidden; font:400 14px/1.6 Arial,Helvetica,sans-serif; }
.ec-book-reader *, .ec-book-reader *::before, .ec-book-reader *::after { box-sizing:border-box; }
.ec-book-reader [hidden] { display:none!important; }
.ec-book-reader__header { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:10px 20px; padding:20px 22px; border-bottom:1px solid var(--book-border); }
.ec-book-reader__header h2 { margin:0 0 7px; font:800 21px/1.35 Arial,Helvetica,sans-serif; color:var(--book-ink); }
.ec-book-reader__header p { margin:0; max-width:720px; color:var(--book-muted); font:400 13px/1.65 Arial,Helvetica,sans-serif; }
.ec-book-reader__layout { display:grid; grid-template-columns:minmax(150px,190px) minmax(0,1fr); min-width:0; align-items:stretch; }
.ec-book-reader__pages { min-width:0; max-height:70vh; max-height:70dvh; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding:14px 12px; border-right:1px solid var(--book-border); background:#f7fafc; }
.ec-book-reader__pages h3 { margin:0 0 10px; padding:0 4px; color:var(--book-muted); font:700 12px/1.4 Arial,Helvetica,sans-serif; }
.ec-book-reader__pages :is(ol,ul) { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.ec-book-reader__pages li { margin:0; padding:0; }
.ec-book-reader [data-book-page] { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; min-height:44px; padding:10px 12px; border:1px solid #d7e1ed; border-radius:7px; background:#fff; color:#2d4966; text-align:left; text-decoration:none; font:700 13px/1.4 Arial,Helvetica,sans-serif; cursor:pointer; }
.ec-book-reader [data-book-page]::before { display:none!important; }
.ec-book-reader [data-book-page]:hover { border-color:#99b4e5; background:#eff5ff; }
.ec-book-reader [data-book-page][aria-current=page] { border-color:var(--book-blue); background:#eaf1ff; color:#174bb9; }
.ec-book-reader [data-book-page][data-book-locked] { color:#6d7f92; background:#f4f6f9; }
.ec-book-reader [data-book-page] small { color:inherit; font:400 11px/1.4 Arial,Helvetica,sans-serif; }
.ec-book-reader [data-book-page] svg { flex:none; width:15px; height:15px; }
.ec-book-reader__viewport { min-width:0; min-height:420px; height:70vh; height:70dvh; max-height:800px; background:#e9edf3; }
.ec-book-reader [data-book-frame] { display:block; width:100%; height:100%; min-width:0; margin:0; padding:0; border:0; background:#fff; }
.ec-book-reader__viewport:has([data-book-canvas]) { padding:12px; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.ec-book-reader [data-book-canvas] { display:block; max-width:100%; height:auto; margin:0 auto; background:#fff; box-shadow:0 2px 8px rgb(19 36 59 / 12%); }
.ec-book-reader [data-book-render-status] { margin:0 0 10px; color:#526a82; font:400 12px/1.5 Arial,Helvetica,sans-serif; overflow-wrap:anywhere; }
.ec-book-reader__viewport [data-book-frame] { min-height:100%; }
.ec-book-reader__controls { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:14px 18px; border-top:1px solid var(--book-border); }
.ec-book-reader__controls button, .ec-book-reader__access a, .ec-book-reader [data-book-open-page] { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-width:44px; min-height:44px; padding:10px 14px; border:1px solid #c9d7e9; border-radius:7px; color:#294f7d; background:#fff; text-decoration:none; font:700 13px/1.4 Arial,Helvetica,sans-serif; cursor:pointer; }
.ec-book-reader__controls button:hover, .ec-book-reader__access a:hover { background:#edf4ff; }
.ec-book-reader__controls button:disabled { opacity:.45; cursor:default; }
.ec-book-reader__controls button svg { width:18px; height:18px; }
.ec-book-reader [data-book-status] { flex:1 1 auto; margin:0; color:var(--book-muted); text-align:center; font:400 12px/1.6 Arial,Helvetica,sans-serif; }
.ec-book-reader__select { display:flex; align-items:center; gap:8px; min-width:0; color:var(--book-muted); font:400 12px/1.4 Arial,Helvetica,sans-serif; }
.ec-book-reader [data-book-select] { width:auto; min-height:44px; max-width:100%; margin:0; padding:8px 10px; border:1px solid #c9d7e9; border-radius:7px; background:#fff; color:#2d4966; font:400 13px/1.4 Arial,Helvetica,sans-serif; }
.ec-book-reader__access { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:16px 20px; border-top:1px solid var(--book-border); }
.ec-book-reader__access p { flex:1 1 220px; margin:0; color:var(--book-muted); font:400 13px/1.6 Arial,Helvetica,sans-serif; }
.ec-book-reader :focus-visible { outline:3px solid #78a7ed; outline-offset:3px; }
.ec-book-reader [data-book-locked-modal] { width:min(460px,calc(100vw - 32px)); max-width:calc(100vw - 32px); max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); margin:auto; padding:26px; border:1px solid #d4deed; border-radius:14px; background:#fff; color:var(--book-ink); box-shadow:0 22px 80px #0b1e3e35; overflow:auto; overscroll-behavior:contain; font:400 14px/1.7 Arial,Helvetica,sans-serif; }
.ec-book-reader [data-book-locked-modal]::backdrop { background:rgb(13 28 49 / 55%); }
.ec-book-reader [data-book-locked-modal].is-open { display:block; position:fixed; inset:16px; z-index:2147483100; height:max-content; }
.ec-book-reader [data-book-locked-title] { margin:0 0 12px; color:var(--book-ink); font:800 22px/1.35 Arial,Helvetica,sans-serif; }
.ec-book-reader [data-book-locked-message] { margin:0 0 20px; color:var(--book-muted); white-space:pre-wrap; overflow-wrap:anywhere; }
.ec-book-reader [data-book-locked-modal] :is(a,button) { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin:4px 8px 4px 0; padding:10px 14px; border:1px solid #c9d7e9; border-radius:7px; background:#fff; color:#294f7d; text-decoration:none; font:700 13px/1.4 Arial,Helvetica,sans-serif; cursor:pointer; }
.ec-book-reader [data-book-locked-modal] [data-book-buy] { border-color:var(--book-blue); background:var(--book-blue); color:#fff; }
@media(max-width:700px) {
    .ec-book-reader { margin:22px 0; border-radius:10px; }
    .ec-book-reader__header { padding:17px 16px; }
    .ec-book-reader__header h2 { font-size:19px; }
    .ec-book-reader__layout { grid-template-columns:minmax(0,1fr); }
    .ec-book-reader__pages { max-height:none; padding:12px; border-right:0; border-bottom:1px solid var(--book-border); overflow-x:auto; overflow-y:hidden; scrollbar-gutter:auto; }
    .ec-book-reader__pages :is(ol,ul) { display:flex; gap:8px; width:max-content; min-width:100%; }
    .ec-book-reader__pages li { flex:0 0 auto; }
    .ec-book-reader [data-book-page] { width:auto; min-width:88px; }
    .ec-book-reader__viewport { min-height:330px; height:60vh; height:60dvh; max-height:680px; }
    .ec-book-reader__controls { gap:10px; padding:12px; }
    .ec-book-reader [data-book-status] { flex:1 1 100%; order:-1; text-align:left; }
    .ec-book-reader__select { margin-left:auto; }
    .ec-book-reader__select > span { display:none; }
    .ec-book-reader__controls button { padding:10px; }
    .ec-book-reader__controls button > span { display:none; }
    .ec-book-reader [data-book-select] { max-width:150px; font-size:16px; }
    .ec-book-reader__access { padding:15px 16px; }
    .ec-book-reader [data-book-locked-modal] { padding:23px 20px; }
}
