*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Hind Siliguri','Noto Sans Bengali',system-ui,sans-serif;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
@media print{body{display:none!important}}

/* ------------------------------------------------------------- login */
.itbd-login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px 14px;background:linear-gradient(160deg,#FDE047 0%,#FDE047 38%,#F8FAFC 38%)}
.itbd-login .card{width:100%;max-width:420px;background:#fff;border:1px solid #E5E7EB;border-radius:18px;padding:32px 28px;box-shadow:0 18px 40px rgba(17,24,39,.12)}
.itbd-login .brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;margin-bottom:18px}
.itbd-login .logo{width:40px;height:40px;border-radius:11px;background:#006837;color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px}
.itbd-login .brand b{color:#111827}.itbd-login .brand i{font-style:normal;color:#E30613}.itbd-login .brand em{font-style:normal;color:#006837}
.itbd-login h1{font-size:22px;line-height:1.4;color:#111827;margin-bottom:4px}
.itbd-login .sub{color:#6B7280;font-size:14px;margin-bottom:20px}
.itbd-login .err{background:#FEF2F2;border:1px solid #FECACA;color:#B91C1C;border-radius:10px;padding:10px 14px;font-size:14px;margin-bottom:16px;line-height:1.6}
.itbd-login label{display:block;font-size:14px;font-weight:600;color:#111827;margin-bottom:16px}
.itbd-login input{display:block;width:100%;margin-top:7px;background:#F9FAFB;border:1px solid #E5E7EB;border-radius:10px;padding:14px 16px;font:inherit;font-size:17px;letter-spacing:.5px;color:#111827;-webkit-user-select:text;user-select:text}
.itbd-login input:focus{outline:0;background:#fff;border-color:#006837;box-shadow:0 0 0 3px rgba(0,104,55,.14)}
.itbd-login button{width:100%;border:0;border-radius:12px;background:#006837;color:#fff;font:inherit;font-size:18px;font-weight:700;padding:15px;cursor:pointer;box-shadow:0 10px 24px rgba(0,104,55,.26);margin-top:4px}
.itbd-login button:hover{background:#00522B}
.itbd-login .hint{font-size:13px;color:#6B7280;margin-top:14px;line-height:1.7}
.itbd-login .buy{font-size:13px;color:#6B7280;margin-top:10px}
.itbd-login .buy a{color:#E30613;font-weight:600}

/* ------------------------------------------------------------ reader */
.itbd-r{background:#1F2937;color:#F9FAFB;overflow:hidden;display:flex;flex-direction:column;height:100vh;height:100dvh}
.itbd-r .bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));background:#111827;border-bottom:1px solid #374151;position:relative;z-index:20}
.itbd-r .head{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}
.itbd-r .tt{min-width:0;line-height:1.25}
.itbd-r .t{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.itbd-r #chap{display:block;font-size:12px;color:#FDE047;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.itbd-r .tools{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.itbd-r .bar button,.itbd-r .tools a{background:#374151;color:#F9FAFB;border:0;border-radius:8px;min-width:36px;height:36px;padding:0 10px;font:inherit;font-size:17px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto}
.itbd-r .bar .tocb{background:#006837;font-size:14px;font-weight:600}
.itbd-r .bar .tocb:hover{background:#00522B}
.itbd-r .tools .fit{font-size:13px;min-width:54px}
.itbd-r .tools .mode{font-size:15px;letter-spacing:-2px}
.itbd-r .tools .out{font-size:13px;background:#E30613}
.itbd-r .bar button:hover{background:#4B5563}

#stage{position:relative;flex:1 1 auto;overflow:hidden;touch-action:none;cursor:default}
#stage.zoomed{cursor:grab}#stage.dragging{cursor:grabbing}
#book{position:absolute;left:0;top:0;transform-origin:0 0;perspective:2800px;will-change:transform}
#book .slot{position:absolute;top:0;height:100%;background:#fff;box-shadow:0 12px 32px rgba(0,0,0,.45);overflow:hidden}
#book.spread .sl{left:0;width:50%;border-radius:4px 0 0 4px}
#book.spread .sr{left:50%;width:50%;border-radius:0 4px 4px 0}
#book.single .sl{display:none}
#book.single .sr{left:0;width:100%;border-radius:4px}
#book .slot.empty{visibility:hidden}
#book canvas{display:block;pointer-events:none}
#book .spine{position:absolute;top:0;bottom:0;left:50%;width:56px;margin-left:-28px;pointer-events:none;z-index:2;background:linear-gradient(90deg,rgba(0,0,0,0) 0,rgba(0,0,0,.10) 38%,rgba(0,0,0,.26) 50%,rgba(0,0,0,.10) 62%,rgba(0,0,0,0) 100%)}
#book.single .spine,#book.no-l .spine,#book.no-r .spine{display:none}
#book.fade .slot{animation:itbdFade .28s ease-out}
@keyframes itbdFade{from{opacity:.25}to{opacity:1}}

#book .leaf{position:absolute;top:0;height:100%;display:none;z-index:4;transform-style:preserve-3d;will-change:transform}
#book .leaf.on{display:block}
#book .leaf.rt{left:50%;width:50%;transform-origin:0 50%}
#book .leaf.lt{left:0;width:50%;transform-origin:100% 50%}
#book .leaf.one{left:0;width:100%;transform-origin:0 50%}
#book .face{position:absolute;left:0;top:0;width:100%;height:100%;background:#fff;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:0 0 28px rgba(0,0,0,.28)}
#book .face.fb{transform:rotateY(180deg)}
#book .face.empty canvas{visibility:hidden}
#book .leaf.single .fb{background:linear-gradient(90deg,#E5E7EB,#F9FAFB)}
#book .face i{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;opacity:0}
#book .leaf.rt .ff i,#book .leaf.one .ff i{background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.12) 45%,rgba(0,0,0,.28))}
#book .leaf.rt .fb i,#book .leaf.one .fb i{background:linear-gradient(270deg,rgba(0,0,0,.55),rgba(0,0,0,.12) 45%,rgba(0,0,0,.28))}
#book .leaf.lt .ff i{background:linear-gradient(270deg,rgba(0,0,0,.55),rgba(0,0,0,.12) 45%,rgba(0,0,0,.28))}
#book .leaf.lt .fb i{background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.12) 45%,rgba(0,0,0,.28))}

#prev,#next{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:74px;border:0;border-radius:10px;background:rgba(17,24,39,.55);color:#fff;font-size:40px;line-height:1;cursor:pointer;z-index:6}
#prev{left:8px}#next{right:8px}
#prev:hover,#next:hover{background:rgba(0,104,55,.85)}
#prev[disabled],#next[disabled]{opacity:.25;cursor:default}
#stage.zoomed #prev,#stage.zoomed #next{display:none}

#msg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(17,24,39,.9);color:#fff;border-radius:12px;padding:12px 18px;font-size:15px;display:none;z-index:8;text-align:center;max-width:86%}
#msg.on{display:block}

#resume{position:absolute;left:50%;bottom:14px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:9;display:flex;align-items:center;gap:10px;background:#111827;border:1px solid #374151;border-radius:12px;padding:8px 8px 8px 14px;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.4);transition:opacity .25s,transform .25s;white-space:nowrap;max-width:94%}
#resume.on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
#resume b{color:#FDE047}
#resume button{border:0;border-radius:8px;font:inherit;font-size:14px;cursor:pointer;height:34px;padding:0 12px}
#resume .go{background:#006837;color:#fff;font-weight:600}
#resume .x{background:transparent;color:#9CA3AF;padding:0 8px;font-size:18px}

#toc{position:fixed;inset:0;z-index:30;background:rgba(0,0,0,0);pointer-events:none;transition:background .25s}
#toc.on{background:rgba(0,0,0,.45);pointer-events:auto}
#toc .panel{position:absolute;left:0;top:0;bottom:0;width:340px;max-width:86vw;background:#111827;border-right:1px solid #374151;transform:translateX(-102%);transition:transform .28s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}
#toc.on .panel{transform:none}
#toc .ph{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 12px 18px;border-bottom:1px solid #374151;font-size:17px;font-weight:700}
#toc .ph button{background:#374151;color:#fff;border:0;border-radius:8px;width:34px;height:34px;font-size:18px;cursor:pointer}
#toclist{list-style:none;margin:0;padding:6px 0 20px;overflow-y:auto;-webkit-overflow-scrolling:touch}
#toclist button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:none;border:0;border-left:3px solid transparent;color:#E5E7EB;font:inherit;font-size:15px;text-align:left;padding:11px 16px;cursor:pointer;line-height:1.4}
#toclist button:hover{background:#1F2937}
#toclist button.cur{background:#1F2937;border-left-color:#FDE047;color:#fff;font-weight:600}
#toclist em{font-style:normal;font-size:12px;color:#9CA3AF;background:#374151;border-radius:6px;padding:2px 7px;flex:0 0 auto}

.bar2{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:8px 14px;padding-bottom:max(8px,env(safe-area-inset-bottom));background:#111827;border-top:1px solid #374151}
#seek{flex:1 1 auto;accent-color:#FDE047;height:28px}
#jump{display:flex;align-items:center;gap:6px;font-size:14px;color:#D1D5DB;flex:0 0 auto}
#pg{width:64px;background:#374151;border:0;border-radius:7px;color:#fff;padding:6px 8px;font:inherit;font-size:14px;text-align:center;-webkit-user-select:text;user-select:text}

body.shield #book{filter:blur(18px)}

@media (max-width:640px){
.itbd-r .bar{padding-left:8px;padding-right:8px;gap:6px}
.itbd-r .t{font-size:13px}
.itbd-r #chap{font-size:11px}
.itbd-r .bar button,.itbd-r .tools a{min-width:32px;height:32px;padding:0 8px;font-size:15px}
.itbd-r .bar .tocb span{display:none}
.itbd-r .tools .fit,.itbd-r .tools .fs,.itbd-r .tools .zo,.itbd-r .tools .zi{display:none}
#prev,#next{width:34px;height:58px;font-size:28px;background:rgba(17,24,39,.35)}
#resume{font-size:13px}
}
@media (max-height:480px){
.itbd-r .bar{padding-top:3px;padding-bottom:3px}
.itbd-r .bar button,.itbd-r .tools a{height:30px;min-width:30px}
.itbd-r .tools .fit,.itbd-r .tools .zo,.itbd-r .tools .zi{display:none}
.bar2{display:none}
.itbd-r #chap{display:none}
#prev,#next{width:32px;height:54px;font-size:26px;background:rgba(17,24,39,.35)}
}
.itbd-login .brand .brand-img{height:40px;width:auto;display:block}

/* ------------------------------------------- app install + in-app bars */
#itbd-app-bar,#itbd-inapp{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:10px;background:#111827;color:#F9FAFB;border:1px solid #374151;border-radius:14px;padding:10px 12px;font-size:14px;line-height:1.5;box-shadow:0 12px 30px rgba(0,0,0,.45)}
#itbd-inapp{bottom:auto;top:calc(10px + env(safe-area-inset-top));background:#FDE047;color:#111827;border-color:#FACC15}
#itbd-app-bar span,#itbd-inapp span{flex:1}
#itbd-app-bar button,#itbd-inapp button{flex:0 0 auto;border:0;border-radius:9px;font:inherit;font-weight:600;font-size:14px;padding:8px 12px;cursor:pointer}
#itbd-app-add{background:#006837;color:#fff}
#itbd-copy{background:#111827;color:#fff}
#itbd-app-no,#itbd-inapp-no{background:transparent;color:inherit;opacity:.7;padding:6px 8px}
#itbd-ios-help{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:18px}
#itbd-ios-help .box{background:#fff;color:#111827;border-radius:16px;padding:22px;max-width:380px;width:100%}
#itbd-ios-help h3{font-size:19px;margin-bottom:10px}
#itbd-ios-help ol{margin:0 0 10px 18px;font-size:15px;line-height:1.8}
#itbd-ios-help .note{font-size:13px;color:#6B7280;margin-bottom:14px}
#itbd-ios-help button{width:100%;border:0;border-radius:11px;background:#006837;color:#fff;font:inherit;font-size:16px;font-weight:600;padding:12px;cursor:pointer}
.itbd-login #itbd-app-bar{position:static;left:auto;right:auto;bottom:auto;margin-top:14px}

/* the hidden attribute must win over the display rules above */
#itbd-app-bar[hidden],#itbd-inapp[hidden],#itbd-ios-help[hidden],#itbd-steps-ios[hidden],#itbd-steps-android[hidden]{display:none!important}
