.library-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0}.library-toolbar select,.library-toolbar input{max-width:260px}.library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:18px 0}.library-book{border:1px solid #dbe5ed;border-radius:14px;padding:18px;background:#fff;box-shadow:0 4px 16px #0b2a4a0a}.library-book h4{margin:8px 0}.library-book .small{margin:5px 0}.library-reader{margin-top:18px}.library-reader-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;margin:12px 0}.library-reader-controls input{width:75px}.library-stage{display:flex;align-items:center;justify-content:center;min-height:360px;overflow:hidden;background:#dce7f0;border-radius:16px;padding:16px;touch-action:pan-y}.library-page{background:#fff;box-shadow:0 1px 5px #0002;overflow:hidden}.library-page canvas{display:block;width:100%;height:100%;object-fit:contain}.library-reader .library-error{color:#a51f29}.library-reader .library-hint{font-size:13px;color:#456}.library-reader button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:650px){.library-stage{min-height:300px;padding:8px}.library-grid{grid-template-columns:1fr}.library-reader-controls{gap:5px}}

.lib-manager{margin-top:20px;padding:16px}.lib-manager summary{cursor:pointer;font-weight:700}.lib-admin-form{padding-top:16px;display:grid;gap:12px;max-width:600px}.lib-admin-form label{display:grid;gap:5px}.lib-admin-form input:not([type=checkbox]),.lib-admin-form select{width:100%;max-width:100%;box-sizing:border-box}.lib-rights{display:flex!important;flex-direction:row;align-items:flex-start}.lib-rights input{margin-top:4px}.lib-book-actions,.lib-form-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.lib-book-actions .btn{font-size:13px;padding:7px 10px}.lib-delete{color:#a51f29!important;border-color:#a51f29!important}.lib-admin-message{overflow-wrap:anywhere}


/* Mobile HD reader upgrade */
.library-reader-shell{position:relative;min-width:0}
.library-reader-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.library-reader-header h3{min-width:0;overflow-wrap:anywhere}
.library-reader-controls{position:relative;z-index:2}
.library-reader-controls button{min-height:40px}
.library-stage{width:100%;box-sizing:border-box;min-width:0;overflow:hidden;touch-action:pan-y;position:relative}
.library-stage.library-scroll-mode{overflow:auto;max-height:75vh;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom}
.library-scroll-mode .library-flip{display:flex!important;flex-direction:column;align-items:center;gap:12px;min-width:100%}
.library-scroll-mode .library-page{flex-shrink:0}
.library-page canvas{width:100%;height:100%;display:block}
.library-immersive{position:fixed!important;inset:0!important;z-index:2147483000!important;background:#0b1828;color:#fff;padding:env(safe-area-inset-top) 8px env(safe-area-inset-bottom);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;width:100vw;height:100dvh}
.library-immersive .library-reader-header{flex-shrink:0}
.library-immersive .library-reader-header h3{font-size:14px;color:#fff;margin:5px}
.library-immersive .library-reader-controls{flex-shrink:0;margin:5px 0;gap:5px}
.library-immersive .library-reader-controls button{padding:7px 9px;font-size:12px}
.library-immersive .library-reader-controls label{font-size:12px;color:#fff}
.library-immersive .library-stage{flex:1;min-height:0;height:100%;max-height:none;border-radius:8px;padding:6px}
.library-immersive .library-stage.library-scroll-mode{max-height:none}
.library-immersive .library-hint{color:#fff;text-align:center;margin:4px}
.library-immersive .library-source{display:none}
.library-body-immersive{overflow:hidden!important}
@media(max-width:700px){
 .library-reader-shell{width:100%}
 .library-reader-controls{gap:5px;justify-content:center}
 .library-reader-controls button{padding:8px 10px;font-size:12px;min-height:42px}
 .library-reader-controls label{font-size:12px}
 .library-reader-controls input{width:52px}
 .library-stage{padding:6px;min-height:240px;border-radius:8px}
 .library-stage.library-flip-mode{touch-action:pan-y}
 .library-immersive .library-reader-controls{max-height:100px;overflow-y:auto}
}

.library-reader-shell .library-hint{font-weight:600;text-align:center}
.library-reader-shell [data-act=bookmark]{font-weight:700}
@media(max-width:700px){.library-reader-shell .library-reader-controls{position:sticky;top:0;background:#f7fafc;padding:5px;border-radius:8px}.library-immersive .library-reader-controls{position:static;background:transparent}}

/* Keep the single-page PDF visible inside immersive reader. */
.library-immersive .library-stage.library-scroll-mode{display:block;overflow:auto!important;max-height:none!important;min-height:0!important;}
.library-immersive .library-scroll-mode .library-flip{width:100%!important;align-items:center;}
.library-immersive .library-scroll-mode .library-page{background:white;box-shadow:0 2px 12px #0004;}

/* Shared scroll/fullscreen visibility fix */
.library-stage.library-scroll-mode{display:block;overflow-y:auto!important;overflow-x:auto!important}
.library-scroll-mode .library-flip{position:relative!important;display:flex!important;flex-direction:column!important;align-items:center;gap:12px;min-height:100%;height:auto!important}
.library-scroll-mode .library-page{display:block!important;position:relative!important;visibility:visible!important;opacity:1!important;flex:none!important;background:white}
.library-scroll-mode .library-page canvas{display:block!important;visibility:visible!important;opacity:1!important}
.library-immersive .library-stage.library-scroll-mode{flex:1 1 auto;min-height:0;max-height:none!important;overflow-y:auto!important}

/* Fresh surfaces: PageFlip modifies DOM during initialization and teardown. */
.library-stage>.library-flip{max-width:100%;box-sizing:border-box}
.library-scroll-mode>.library-flip{width:100%;min-height:100%}
