
:root{--bg:#0d1823;--panel:#132331;--accent:#3f93c8;--text:#eef5fa;--muted:#9db0bd;--shadow:0 16px 45px rgba(0,0,0,.42)}
*{box-sizing:border-box} html,body{height:100%;margin:0}
body{font-family:Arial,Helvetica,sans-serif;background:linear-gradient(135deg,#0a131c,#172c3d);color:var(--text);overflow:hidden}
button,a,input{font:inherit}
.app{height:100%;display:grid;grid-template-rows:58px 1fr 46px}
.topbar{display:flex;align-items:center;gap:12px;padding:8px 14px;background:rgba(11,24,35,.96);border-bottom:1px solid rgba(255,255,255,.08);z-index:5}
.brand{font-weight:700;letter-spacing:.5px;white-space:nowrap}.spacer{flex:1}
.btn{border:0;border-radius:8px;background:#20394c;color:var(--text);padding:9px 12px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn:hover{background:#2a4b63}.btn.icon{width:38px;height:38px;padding:0;font-size:20px}
.page-input{width:58px;border:1px solid rgba(255,255,255,.18);background:#0f202d;color:white;border-radius:7px;padding:7px;text-align:center}
.viewer{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:22px 54px}
.book{position:relative;display:flex;align-items:center;justify-content:center;gap:4px;max-width:100%;max-height:100%;perspective:1600px;transform-origin:center}
.page{display:block;object-fit:contain;max-height:calc(100vh - 150px);max-width:46vw;background:white;box-shadow:var(--shadow);user-select:none;-webkit-user-drag:none}
.page.landscape{max-width:88vw}.page.left{border-radius:5px 0 0 5px}.page.right{border-radius:0 5px 5px 0}
.gutter{width:1px;align-self:stretch;background:linear-gradient(to bottom,transparent,rgba(0,0,0,.28),transparent);box-shadow:0 0 8px rgba(0,0,0,.35);z-index:2}
.nav{position:absolute;top:50%;transform:translateY(-50%);width:45px;height:76px;border:0;border-radius:10px;background:rgba(7,17,24,.72);color:white;font-size:32px;cursor:pointer;z-index:4}
.nav:hover{background:rgba(24,62,88,.92)}.prev{left:8px}.next{right:8px}
.bottom{display:flex;align-items:center;justify-content:center;gap:12px;background:rgba(11,24,35,.96);border-top:1px solid rgba(255,255,255,.08);font-size:13px;color:var(--muted)}
.progress{width:min(420px,50vw);height:5px;background:#263b4a;border-radius:99px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);width:0}
.thumbpanel{position:absolute;top:58px;bottom:46px;left:0;width:260px;background:rgba(12,25,35,.98);border-right:1px solid rgba(255,255,255,.1);z-index:8;transform:translateX(-102%);transition:.24s ease;overflow:auto;padding:12px}
.thumbpanel.open{transform:translateX(0)}.thumb{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;cursor:pointer;color:var(--muted)}
.thumb:hover,.thumb.active{background:#1d3547;color:white}.thumb img{width:72px;height:92px;object-fit:contain;background:white;border-radius:3px}.thumb.landscape img{height:58px}
.flash-next{animation:flipNext .34s ease}.flash-prev{animation:flipPrev .34s ease}
@keyframes flipNext{0%{transform:rotateY(0) scale(1)}50%{transform:rotateY(-7deg) scale(.985)}100%{transform:rotateY(0) scale(1)}}
@keyframes flipPrev{0%{transform:rotateY(0) scale(1)}50%{transform:rotateY(7deg) scale(.985)}100%{transform:rotateY(0) scale(1)}}
@media(max-width:760px){
 .brand{font-size:13px}.viewer{padding:12px 42px}.page{max-width:86vw;max-height:calc(100vh - 140px)}.page.landscape{max-width:88vw}
 .gutter,.desktop-only{display:none!important}.topbar{gap:6px;padding:8px}.btn{padding:8px}.thumbpanel{width:220px}.progress{width:42vw}
}
