:root{--bg: #16302a;--panel: #1d3a32;--line: #2c4f45;--gold: #c9a961;--ink: #f3ecdc;--muted: #a9b8ae}*{box-sizing:border-box}body{margin:0;background:var(--bg);background-image:linear-gradient(45deg,rgba(201,169,97,.04) 25%,transparent 25%,transparent 75%,rgba(201,169,97,.04) 75%),linear-gradient(-45deg,rgba(201,169,97,.04) 25%,transparent 25%,transparent 75%,rgba(201,169,97,.04) 75%);background-size:64px 64px;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.app{max-width:980px;margin:0 auto;padding:16px 16px 96px}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.topbar h1{margin:0;font-size:1.6rem;line-height:1.3;color:var(--gold)}.topbar h1 span{font-size:.95rem;color:var(--muted);margin-inline-start:10px}.volumes,.group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}button,select,input{font:inherit;color:var(--ink)}.volumes button,.btn,select,.pager input{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 16px;line-height:1.2;font-size:.95rem;cursor:pointer}.volumes button.on,.btn.on{border-color:var(--gold);color:var(--gold)}.btn.listen{background:var(--gold);border-color:var(--gold);color:#1b2b25;font-weight:600}.btn.listen.on{background:var(--panel);color:var(--gold)}button:disabled{opacity:.45;cursor:not-allowed}select{padding:10px 12px;max-width:190px}.toolbar{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:12px 0;background:var(--bg)}.text{background:var(--panel);border-inline-start:5px solid var(--gold);padding:22px 30px;font-family:Noto Nastaliq Urdu,Jameel Noori Nastaleeq,serif;font-size:1.5rem;line-height:2.7;text-align:justify}.text p{margin:0 0 .6em}.text p.heading{text-align:center;color:var(--gold);font-size:1.15em;font-weight:600}.text .footnotes{margin-top:1em;padding-top:.6em;border-top:1px solid var(--line);font-size:.7em;color:var(--muted)}.text span{cursor:pointer;border-radius:6px}.text span.speaking{background:#c9a96124}.text span.word{background:var(--gold);color:#1b2b25}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page-content{animation:page-in .35s ease}.scan{display:block;width:100%;max-width:760px;min-height:320px;margin:0 auto;background:#fff;border:1px solid var(--line);border-inline-start:5px solid var(--gold)}.scan-viewer{max-width:760px;margin:0 auto}.scan-viewer .scan{max-width:none;min-height:0;margin:0 auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.zoom-bar{display:flex;align-items:center;gap:6px;margin-bottom:8px}.zbtn,.zpct{background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--ink);font-size:1.1rem;line-height:1;height:36px;min-width:36px;cursor:pointer}.zpct{min-width:64px;font-size:.85rem;font-weight:600;color:var(--gold)}.zbtn:hover,.zpct:hover{border-color:var(--gold)}.zhint{margin-inline-start:auto;font-size:.75rem;color:var(--muted)}.scan-viewport{touch-action:pan-x pan-y}.scan-viewport.zoomed{overflow:auto;height:min(78vh,1100px);border:1px solid var(--line);border-inline-start:5px solid var(--gold);background:#fff;cursor:grab;overscroll-behavior:contain}.scan-viewport.zoomed .scan{border:0}.scan-viewport.zoomed:active{cursor:grabbing}.scan-viewer.is-full{max-width:none;background:var(--bg);padding:12px;display:flex;flex-direction:column}.scan-viewer.is-full .scan-viewport{flex:1;min-height:0;height:auto;overflow:auto;background:transparent}@media (max-width: 600px){.zhint{display:none}}.note{margin:0 0 12px;padding:10px 14px;font-size:.9rem;line-height:1.4;color:var(--muted);background:#0000002e;border-radius:8px}.note.small{margin:12px 0 0;font-size:.8rem}.pager{position:fixed;inset:auto 0 0 0;display:flex;justify-content:center;align-items:center;gap:14px;padding:10px 16px;background:var(--bg);border-top:1px solid var(--line);font-size:.9rem}.pager label{display:flex;align-items:center;gap:8px}.pager input{width:84px;padding:8px;text-align:center;cursor:text}@media (max-width: 600px){.text{padding:16px 18px;font-size:1.2rem}.topbar h1 span{display:block;margin:0}}
