/* IHA Universal Book Reader R165 — legible, accessible, low-cost rendering. */
.ihi-book-reader{height:100dvh;min-height:480px;grid-template-rows:auto auto auto minmax(0,1fr) auto;overflow:hidden}
.book-topbar{min-height:72px}.book-toolbar{display:grid;grid-template-columns:minmax(280px,auto) minmax(0,1fr);gap:9px 14px}.book-options{justify-content:end}.book-interaction-controls{justify-content:start}.book-search{grid-column:auto}
.book-interaction-controls{display:flex;gap:5px;min-width:0;flex-wrap:wrap}
.book-interaction-controls button{white-space:nowrap;font-size:12px}
.book-interaction-controls button.is-active{background:#0b5635;color:#fff;border-color:#0b5635;box-shadow:0 2px 8px #075c3520}
.book-interaction-controls button:focus-visible,.book-topbar a:focus-visible,.book-nav button:focus-visible,.book-edge:focus-visible{outline:3px solid #bd9b5e;outline-offset:2px}
.book-search{min-width:0;width:100%}.book-search input{width:100%;min-width:0;text-align:start}
.book-sheet{isolation:isolate;user-select:none}.book-sheet canvas{display:block}
.book-sheet .book-text-layer{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:2;line-height:1;transform-origin:0 0;opacity:1;pointer-events:none;user-select:none;-webkit-user-select:none}
.book-sheet .book-text-layer span,.book-sheet .book-text-layer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}
.book-sheet .book-text-layer ::selection{background:rgba(28,115,81,.36)}
.book-sheet .book-text-layer .markedContent{top:0;left:0;height:0;width:0;position:absolute}
[data-book-interaction="select"] .book-text-layer{pointer-events:auto;user-select:text;-webkit-user-select:text;touch-action:auto}
[data-book-interaction="select"] .book-sheet{user-select:text;-webkit-user-select:text}
[data-book-interaction="select"] .book-stage{touch-action:pan-x pan-y}
[data-book-interaction="select"] .book-spread{filter:drop-shadow(0 15px 25px rgba(0,32,18,.12))}
.book-sheet .book-page-number{z-index:4;pointer-events:none}
.book-stage{min-height:0}.book-sheet:not([hidden]){min-height:0}
.ihi-book-reader[data-state="turn-next"] .book-sheet:last-child,.ihi-book-reader[data-state="turn-prev"] .book-sheet:first-child{will-change:transform}
@media(max-width:1080px){.book-toolbar{grid-template-columns:1fr 1fr}.book-options{justify-content:end}.book-search{grid-column:1/-1;max-width:none}.book-interaction-controls{justify-content:end}}
@media(max-width:820px){.ihi-book-reader{min-height:520px}.book-topbar{min-height:60px}.book-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.book-nav{justify-content:center}.book-options{grid-template-columns:repeat(3,minmax(0,1fr))}.book-interaction-controls{justify-content:center;grid-column:auto}.book-interaction-controls button{flex:1 1 auto;min-height:40px}.book-search{grid-column:auto}.book-stage{padding-top:3px}.book-status{font-size:11px}}
@media(max-width:440px){.book-topbar{gap:6px;padding:7px 10px}.book-identity span{letter-spacing:.07em;font-size:8px}.book-identity h1{font-size:15px}.book-options label>span{font-size:10px}.book-interaction-controls button{padding:6px 7px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.ihi-book-reader[data-state] .book-sheet{animation:none!important}}
.book-sheet .book-text-layer span{font-size:calc(var(--total-scale-factor) * var(--font-height));transform:rotate(var(--rotate,0deg)) scaleX(var(--scale-x,1));line-height:1}
.book-sheet .book-text-layer br::selection{background:transparent}

/* Short book-page fold shadows during page turn; selection remains stationary. */
.book-sheet::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent 48%,rgba(12,29,20,.14) 78%,rgba(255,255,255,.3))}
.ihi-book-reader[data-state="turn-next"] .book-sheet:last-child::after{animation:iha-fold-light .34s ease-in-out}
.ihi-book-reader[data-state="turn-prev"] .book-sheet:first-child::after{animation:iha-fold-light .34s ease-in-out reverse}
@keyframes iha-fold-light{0%,100%{opacity:0}48%{opacity:1}}
@media(prefers-reduced-motion:reduce){.ihi-book-reader[data-state] .book-sheet::after{animation:none!important}}
