/* مكتبة سواد الإمامي — واجهة داكنة بلمسات ذهبية وحركات خفيفة */
:root{
  --bg:#111316;--panel:#1b1e23;--panel2:#22262c;--text:#f1eee7;--muted:#aaa69c;
  --gold:#c7a96b;--gold2:#e1cb9b;--line:rgba(218,196,151,.17);--green:#80c6a2;
  --red:#d79586;--radius:22px;color-scheme:dark;
  font-family:"Noto Sans Arabic","Noto Naskh Arabic",Tahoma,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:16px}
body{margin:0;background:radial-gradient(ellipse at 85% -10%,rgba(164,128,65,.13),transparent 38%),var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}
button,input{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
.app-shell{max-width:760px;margin:0 auto;padding:20px 17px 32px;animation:page-enter .8s cubic-bezier(.2,.7,.25,1) both}
/* Opening screen: all details are CSS/text, no image asset required. */
.app-splash{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow-y:auto;overflow-x:hidden;padding:22px 0 max(22px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 42%,rgba(190,151,83,.16),transparent 38%),#111316;color:var(--text);transition:opacity .48s ease,visibility .48s ease}
.app-splash.splash-leaving{opacity:0;visibility:hidden;pointer-events:none}
.splash-orbit{position:absolute;width:min(78vw,340px);aspect-ratio:1;border:1px solid rgba(199,169,107,.12);border-radius:50%;pointer-events:none}
.splash-orbit-one{animation:orbit-breathe 4.8s ease-in-out infinite}
.splash-orbit-two{width:min(94vw,420px);border-color:rgba(199,169,107,.07);animation:orbit-breathe 5.8s ease-in-out infinite reverse}
.splash-emblem{position:relative;width:88px;height:88px;display:grid;place-items:center;margin-bottom:22px;border:1px solid rgba(199,169,107,.72);border-radius:26px;color:var(--gold2);font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:51px;background:linear-gradient(145deg,#292720,#17191d);box-shadow:inset 0 0 0 5px rgba(199,169,107,.055),0 0 42px rgba(199,169,107,.10);animation:emblem-arrive 1s cubic-bezier(.18,.75,.25,1) both,symbol-glow 3.4s ease-in-out 1s infinite}
.splash-emblem:before,.splash-emblem:after{content:"";position:absolute;inset:8px;border:1px solid rgba(199,169,107,.2);border-radius:19px;transform:rotate(45deg)}
.splash-emblem:after{inset:-7px;border-color:rgba(199,169,107,.10);border-radius:30px;transform:rotate(0deg)}
.splash-emblem span{position:relative;z-index:1;line-height:1}
.splash-eyebrow{position:relative;margin:0 0 7px;color:var(--gold);font-size:11px;letter-spacing:.08em;animation:rise-in .75s .18s both}
.app-splash h1{position:relative;margin:0;font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:clamp(25px,7vw,34px);font-weight:700;animation:rise-in .75s .28s both}
.splash-subtitle{position:relative;margin:3px 0 24px;color:#bdb4a2;font-size:12px;animation:rise-in .75s .38s both}
.splash-hadith{position:relative;width:min(88vw,520px);margin:0 auto 17px;padding:15px 17px 10px;border:1px solid rgba(199,169,107,.2);border-radius:19px;background:linear-gradient(145deg,rgba(35,39,39,.83),rgba(24,28,29,.82));box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 12px 35px rgba(0,0,0,.18);animation:rise-in .8s .48s both}
.splash-quote-source{margin:0 0 8px;text-align:center;color:var(--gold2);font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:clamp(12px,3.5vw,15px);line-height:1.9}
.splash-quote-source span{display:inline-block;margin-inline-start:3px;color:#91d5a9;font-size:.92em;text-shadow:0 0 12px rgba(128,198,162,.2)}
.splash-quote-text{min-height:5.2em;margin:0;text-align:center;font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:clamp(17px,4.8vw,22px);font-weight:700;line-height:2;color:#83d6a1;background:linear-gradient(100deg,#66bd88 0%,#c0f1ca 24%,#6cbd89 48%,#b0e9bd 72%,#61b982 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 7px rgba(89,190,124,.16));animation:green-current 3.2s linear infinite}
.splash-quote-ornament{display:flex;align-items:center;justify-content:center;gap:9px;margin:7px auto 0;color:var(--gold);font-size:13px;opacity:.8}
.splash-quote-ornament span{width:38px;height:1px;background:linear-gradient(90deg,transparent,rgba(199,169,107,.6))}
.splash-quote-ornament span:last-child{transform:rotate(180deg)}
.splash-progress{position:relative;width:92px;height:2px;overflow:hidden;border-radius:9px;background:rgba(199,169,107,.16);animation:rise-in .7s .55s both}
.splash-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4b9f6c,#b6edc4);box-shadow:0 0 12px rgba(128,198,162,.65);transition:width 5s linear}
.app-splash.is-typing .splash-progress span{width:100%}
.app-splash.is-quote-complete .splash-quote-text{animation-duration:1.8s;filter:drop-shadow(0 0 10px rgba(89,190,124,.28))}
.topbar{display:flex;align-items:center;gap:13px;padding:8px 2px 22px;animation:rise-in .75s .1s both}
.brand-mark{position:relative;width:51px;height:51px;flex:0 0 51px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(199,169,107,.6);border-radius:17px;color:var(--gold2);font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:32px;background:linear-gradient(145deg,#2a2925,#17191d);box-shadow:inset 0 0 0 4px rgba(199,169,107,.045),0 5px 20px rgba(0,0,0,.17)}
.brand-mark:after{content:"";position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 42%,rgba(255,239,197,.2) 50%,transparent 58%);transform:translateX(-70%) rotate(15deg);animation:mark-sheen 6s ease-in-out 1.2s infinite}
.brand-mark span{position:relative;z-index:1}
.brand-copy{min-width:0;flex:1}.eyebrow{font-size:10px;letter-spacing:.04em;color:var(--gold);margin:0 0 4px}.brand-copy h1{font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:23px;line-height:1.3;margin:0;font-weight:700}.brand-subtitle{color:var(--muted);font-size:11px;margin:1px 0 0}
.install-btn{border:1px solid var(--line);border-radius:30px;padding:9px 13px;background:#28251f;color:var(--gold2);font-size:12px;font-weight:600;white-space:nowrap;transition:transform .2s ease,background .2s ease,border-color .2s ease}.install-btn:active{transform:scale(.96)}
.intro-card{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(199,169,107,.25);border-radius:26px;padding:20px 19px 21px;background:linear-gradient(135deg,rgba(49,45,36,.95),rgba(28,30,33,.98) 64%);box-shadow:0 20px 44px rgba(0,0,0,.2);animation:rise-in .8s .2s both}
.intro-card:after{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(125deg,rgba(225,203,155,.38),transparent 38%,rgba(199,169,107,.16));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.intro-glow{position:absolute;z-index:-1;width:220px;height:220px;border-radius:50%;border:1px solid rgba(199,169,107,.12);left:-85px;top:-110px;box-shadow:0 0 0 22px rgba(199,169,107,.025),0 0 0 48px rgba(199,169,107,.018);animation:glow-drift 13s ease-in-out infinite alternate}
.status-row{display:flex;align-items:center;justify-content:space-between;position:relative;gap:10px}.connection-pill{display:inline-flex;align-items:center;gap:7px;color:var(--green);font-size:10px;background:rgba(128,198,162,.09);border:1px solid rgba(128,198,162,.2);border-radius:30px;padding:6px 10px}.connection-pill i{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:status-pulse 2.4s ease-out infinite}.connection-pill.offline{color:var(--red);background:rgba(215,149,134,.08);border-color:rgba(215,149,134,.2)}
.edition-label{color:#b9ae98;font-size:10px}.intro-kicker{position:relative;color:var(--gold);font-size:12px;margin:27px 0 8px}.intro-card h2{position:relative;font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:34px;line-height:1.45;margin:0;font-weight:700;letter-spacing:-.4px}.intro-card h2 em{font-style:normal;color:var(--gold2)}.intro-text{position:relative;color:#c0bbb1;font-size:12px;line-height:2;margin:11px 0 17px;max-width:460px}
.intro-actions{position:relative;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.primary-btn,.quiet-btn{font-family:inherit;text-decoration:none;border-radius:13px;padding:11px 15px;font-size:12px;font-weight:600;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.primary-btn{background:linear-gradient(135deg,#d7bd87,#b79455);color:#211d16;box-shadow:0 5px 18px rgba(183,148,85,.12)}.primary-btn span{font-size:17px;vertical-align:-1px;margin-right:8px}.quiet-btn{color:#e8dfce;border:1px solid rgba(220,203,164,.24);background:rgba(255,255,255,.035)}.quiet-btn b{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:20px;background:rgba(199,169,107,.2);color:var(--gold2);margin-right:5px}.primary-btn:active,.quiet-btn:active{transform:translateY(1px) scale(.975);box-shadow:none}
.search-section{margin:22px 0 25px;animation:rise-in .8s .3s both}.search-box{height:54px;border-radius:16px;border:1px solid rgba(220,203,164,.18);background:#1a1d21;display:flex;align-items:center;padding:0 14px;gap:10px;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}.search-box:focus-within{border-color:rgba(225,203,155,.58);box-shadow:0 0 0 3px rgba(199,169,107,.075),0 8px 25px rgba(0,0,0,.13);transform:translateY(-1px)}.search-icon{font-size:28px;color:var(--gold);line-height:1;transform:rotate(-20deg)}.search-box input{border:0;outline:0;background:transparent;color:var(--text);font-family:inherit;font-size:13px;min-width:0;flex:1}.search-box input::placeholder{color:#817f79}.search-box button{border:0;background:none;color:#cfc7b7;font-size:22px}.search-note{font-size:10px;color:#88867f;margin:8px 4px 0}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:13px}.section-heading h2{font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:25px;margin:0;line-height:1.3}.category-section{animation:rise-in .8s .36s both}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.category-chip{min-height:58px;display:flex;align-items:center;gap:11px;text-align:right;border:1px solid rgba(220,203,164,.12);background:linear-gradient(145deg,#1d2025,#191c20);border-radius:15px;color:#d8d3c9;padding:10px 13px;font:500 12px inherit;transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}.category-chip:nth-child(2){animation-delay:.04s}.category-chip:nth-child(3){animation-delay:.08s}.category-chip:nth-child(4){animation-delay:.12s}.category-chip:nth-child(5){animation-delay:.16s}.category-chip.active{border-color:rgba(199,169,107,.58);background:linear-gradient(100deg,rgba(199,169,107,.13),rgba(199,169,107,.045));color:var(--gold2);box-shadow:inset 0 0 18px rgba(199,169,107,.025)}.category-chip:active{transform:scale(.975)}.cat-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:rgba(199,169,107,.1);color:var(--gold);font-size:20px}
.library-section{margin-top:29px;animation:rise-in .8s .44s both}.count-label{color:#aaa397;font-size:10px;border:1px solid var(--line);padding:6px 9px;border-radius:20px}.books-list{display:grid;gap:10px}.book-card{display:flex;gap:12px;align-items:center;padding:13px;border-radius:16px;border:1px solid rgba(220,203,164,.13);background:linear-gradient(145deg,#1d2025,#191c20);animation:card-arrive .5s both;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.book-card:active{transform:scale(.99);border-color:rgba(199,169,107,.38)}.book-cover{width:51px;height:65px;flex:0 0 51px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(150deg,#51432b,#25231e);color:#e0c58f;font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:24px;border:1px solid rgba(215,189,135,.25);box-shadow:inset 0 0 0 3px rgba(255,255,255,.025)}.book-info{min-width:0;flex:1}.book-info h3{margin:0 0 5px;font-family:"Noto Naskh Arabic",Tahoma,serif;font-size:17px;line-height:1.5}.book-meta{display:flex;gap:7px;flex-wrap:wrap;color:#9e9a91;font-size:10px}.book-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.book-actions button{font-family:inherit;font-size:10px;font-weight:500;border:1px solid var(--line);background:#262921;color:#ddc797;border-radius:8px;padding:6px 9px;transition:transform .18s ease,background .18s ease}.book-actions button:active{transform:scale(.96)}.book-actions button:disabled{opacity:.5;cursor:not-allowed}
.empty-state{display:none;text-align:center;padding:28px 18px;border:1px dashed rgba(220,203,164,.2);border-radius:18px;background:rgba(255,255,255,.018)}.empty-state.show{display:block;animation:fade-up .45s both}.empty-symbol{margin:0 auto 10px;width:49px;height:49px;display:grid;place-items:center;border-radius:16px;border:1px solid rgba(199,169,107,.3);color:var(--gold2);font:30px "Noto Naskh Arabic",Tahoma,serif}.empty-state h3{font:700 20px "Noto Naskh Arabic",Tahoma,serif;margin:0 0 5px}.empty-state p{color:#aaa69c;font-size:11px;line-height:1.9;margin:0 auto;max-width:360px}
.offline-card{display:flex;align-items:center;gap:14px;margin-top:25px;padding:16px;border-radius:18px;background:linear-gradient(110deg,rgba(97,126,105,.12),rgba(199,169,107,.07));border:1px solid rgba(128,198,162,.15);animation:rise-in .8s .52s both}.offline-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:rgba(128,198,162,.12);color:var(--green);font-size:27px}.offline-card h3{font:700 17px "Noto Naskh Arabic",Tahoma,serif;margin:0 0 3px}.offline-card p{font-size:10px;color:#aaa99f;margin:0;line-height:1.8}
.footer{text-align:center;padding:28px 0 0;color:#77766f;animation:fade-up .8s .58s both}.footer-line{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin-bottom:17px}.footer-title{font:700 16px "Noto Naskh Arabic",Tahoma,serif;color:#cfc2a5;margin:0 0 2px}.footer p:not(.footer-title){font-size:10px;margin:0 0 11px}.footer span{font-size:9px}
.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#eee4d0;color:#211e18;padding:10px 16px;border-radius:30px;font-size:12px;box-shadow:0 7px 25px #0008;transition:.25s;z-index:10;max-width:90%;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
:focus-visible{outline:2px solid var(--gold2);outline-offset:3px}
@keyframes page-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes rise-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes fade-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes emblem-arrive{0%{opacity:0;transform:translateY(12px) scale(.88) rotate(-5deg)}70%{opacity:1;transform:translateY(-2px) scale(1.025) rotate(1deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(0)}}
@keyframes symbol-glow{0%,100%{box-shadow:inset 0 0 0 5px rgba(199,169,107,.055),0 0 24px rgba(199,169,107,.07)}50%{box-shadow:inset 0 0 0 5px rgba(199,169,107,.08),0 0 42px rgba(199,169,107,.17)}}
@keyframes orbit-breathe{0%,100%{transform:scale(.94);opacity:.52}50%{transform:scale(1.035);opacity:1}}
@keyframes glow-drift{from{transform:translate3d(0,0,0) scale(.95)}to{transform:translate3d(25px,18px,0) scale(1.08)}}
@keyframes mark-sheen{0%,65%,100%{transform:translateX(-70%) rotate(15deg)}82%{transform:translateX(70%) rotate(15deg)}}
@keyframes status-pulse{0%{box-shadow:0 0 0 0 rgba(128,198,162,.28)}70%{box-shadow:0 0 0 7px rgba(128,198,162,0)}100%{box-shadow:0 0 0 0 rgba(128,198,162,0)}}
@keyframes green-current{0%{background-position:100% 0}100%{background-position:-120% 0}}
@keyframes card-arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:600px){.app-shell{padding:30px 26px 42px}.intro-card{padding:27px 29px}.intro-card h2{font-size:42px}.category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.category-chip{flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;min-height:90px}.book-card{padding:15px}.book-cover{width:58px;height:72px;flex-basis:58px}}
@media(max-width:360px){.brand-copy h1{font-size:19px}.intro-card h2{font-size:29px}.category-chip{font-size:11px;padding:9px}.install-btn{padding:8px 10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Online book discovery */
.online-search-section{margin:28px 0 30px;padding:18px 15px;border:1px solid rgba(199,169,107,.24);border-radius:22px;background:linear-gradient(150deg,rgba(35,38,40,.96),rgba(25,28,31,.98));box-shadow:0 15px 35px rgba(0,0,0,.16);animation:rise-in .8s .34s both}
.online-heading{align-items:center;margin-bottom:8px}
.online-heading h2{font-size:22px}
.online-live-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid rgba(128,198,162,.22);border-radius:20px;color:#9ad4ad;background:rgba(128,198,162,.07);font-size:10px;white-space:nowrap}
.online-live-pill i{width:6px;height:6px;border-radius:50%;background:#80c6a2;box-shadow:0 0 10px rgba(128,198,162,.6)}
.online-search-intro,.online-search-note{font-size:11px;color:#aaa69c;line-height:1.9;margin:7px 2px 12px}
.online-search-form{display:grid;gap:9px}
.online-input-wrap{height:52px;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid rgba(220,203,164,.2);border-radius:14px;background:#15181c;transition:border-color .2s,box-shadow .2s}
.online-input-wrap:focus-within{border-color:rgba(225,203,155,.58);box-shadow:0 0 0 3px rgba(199,169,107,.07)}
.online-input-wrap>span{font-size:25px;color:var(--gold);line-height:1}
.online-input-wrap input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-size:12px;font-family:inherit}
.online-input-wrap input::placeholder{color:#817f79}
.online-input-wrap button{border:0;background:transparent;color:#cfc7b7;font-size:21px}
.online-search-controls{display:grid;grid-template-columns:auto minmax(115px,1fr) auto;align-items:center;gap:8px}
.online-type-label{font-size:10px;color:#aaa69c}
.online-search-controls select{min-width:0;height:42px;padding:0 10px;border:1px solid rgba(220,203,164,.17);border-radius:11px;background:#1a1d21;color:#e8dfce;font:11px inherit;outline:none}
.online-search-button{height:42px;padding:0 12px;border:1px solid rgba(225,203,155,.3);border-radius:11px;background:linear-gradient(135deg,#d7bd87,#b79455);color:#211d16;font-family:inherit;font-size:11px;font-weight:700;white-space:nowrap}
.online-search-button:disabled{opacity:.55;cursor:wait}
.online-search-note{margin:9px 2px 4px;font-size:10px}
.online-search-status{margin:10px 0 0;padding:11px 12px;border:1px dashed rgba(220,203,164,.18);border-radius:12px;color:#aaa69c;font-size:11px;line-height:1.8}
.online-search-status.loading{color:#e4d1a8;border-style:solid;background:rgba(199,169,107,.055)}
.online-search-status.error{color:#e4a99e;border-color:rgba(215,149,134,.3)}
.online-results{display:grid;gap:10px;margin-top:12px}
.online-result-card{padding:13px;border:1px solid rgba(220,203,164,.14);border-radius:15px;background:linear-gradient(145deg,#202329,#191c20);animation:card-arrive .35s both}
.online-result-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.online-result-card h3{margin:0;color:#f1eee7;font:700 16px/1.55 "Noto Naskh Arabic",Tahoma,serif}
.online-source-tag{flex:0 0 auto;padding:5px 7px;border:1px solid rgba(199,169,107,.2);border-radius:20px;color:#d8c394;background:rgba(199,169,107,.07);font-size:9px;white-space:nowrap}
.online-result-meta{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:5px;color:#aaa69c;font-size:10px;line-height:1.7}
.online-result-description{margin:8px 0 0;color:#bcb8af;font-size:10px;line-height:1.8;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.online-result-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.online-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;padding:7px 10px;border:1px solid rgba(199,169,107,.2);border-radius:9px;background:#29271f;color:#e3ce9f;text-decoration:none;font:600 10px inherit}
.online-action.primary{border-color:rgba(128,198,162,.25);background:rgba(128,198,162,.09);color:#a9dbb7}
.online-action:active{transform:scale(.97)}
.online-source-errors{margin-top:8px;color:#a7a198;font-size:10px;line-height:1.8}
.online-no-results{padding:18px;text-align:center;color:#aaa69c;font-size:11px;line-height:1.9;border:1px dashed rgba(220,203,164,.18);border-radius:13px}
@media(max-width:380px){.online-search-section{padding:15px 12px}.online-search-controls{grid-template-columns:1fr 1fr}.online-type-label{grid-column:1/-1}.online-search-button{grid-column:1/-1;width:100%}.online-heading h2{font-size:19px}}

/* Local offline library and integrated PDF reader */
.downloaded-library-section{margin:28px 0;padding:17px 15px;border:1px solid rgba(128,198,162,.19);border-radius:21px;background:linear-gradient(150deg,rgba(31,43,39,.58),rgba(25,28,31,.96));box-shadow:0 12px 30px rgba(0,0,0,.12)}
.downloaded-library-note{margin:7px 2px 12px;color:#aaa99f;font-size:10px;line-height:1.9}
.saved-search-box{height:45px;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid rgba(128,198,162,.18);border-radius:12px;background:#151a19}
.saved-search-box span{font-size:22px;color:var(--green)}
.saved-search-box input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font:12px inherit}
.saved-search-box input::placeholder{color:#817f79}
.saved-downloads-list{display:grid;gap:9px;margin-top:12px}
.saved-download-card{display:grid;gap:9px;padding:12px;border:1px solid rgba(128,198,162,.14);border-radius:14px;background:rgba(15,20,19,.55)}
.saved-download-info{min-width:0}
.saved-download-info h3{margin:0 0 4px;color:#e9eee9;font:700 15px/1.6 "Noto Naskh Arabic",Tahoma,serif;overflow-wrap:anywhere}
.saved-download-info p{margin:0;color:#aaa99f;font-size:10px;line-height:1.7;overflow-wrap:anywhere}
.saved-download-info small{display:block;margin-top:3px;color:#7f9286;font-size:9px}
.saved-download-actions{display:flex;gap:7px;flex-wrap:wrap}
.saved-download-actions button{min-height:34px;padding:7px 10px;border:1px solid rgba(128,198,162,.2);border-radius:9px;font:600 10px inherit}
.saved-open-button{background:rgba(128,198,162,.1);color:#a9dbb7}
.saved-delete-button{background:rgba(215,149,134,.07);border-color:rgba(215,149,134,.18)!important;color:#dba99d}
.saved-library-empty{margin-top:12px;padding:16px 13px;border:1px dashed rgba(128,198,162,.18);border-radius:12px;color:#aaa99f;font-size:10px;line-height:1.9;text-align:center}
.saved-library-empty[hidden]{display:none}
.save-offline-action{border-color:rgba(128,198,162,.3)!important;background:rgba(128,198,162,.1)!important;color:#a9dbb7!important;font-family:inherit;cursor:pointer}
.save-offline-action:disabled{opacity:.55;cursor:wait}
.pdf-reader-dialog{width:min(96vw,980px);height:min(92dvh,900px);max-width:none;max-height:none;padding:0;border:1px solid rgba(199,169,107,.3);border-radius:16px;background:#111316;color:var(--text);overflow:hidden;box-shadow:0 24px 80px #000b}
.pdf-reader-dialog::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(4px)}
.pdf-reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#1b1f23;border-bottom:1px solid var(--line)}
.pdf-reader-title-wrap{display:grid;gap:2px;min-width:0}
.pdf-reader-title-wrap strong{font:700 13px "Noto Naskh Arabic",Tahoma,serif;overflow-wrap:anywhere}
.pdf-reader-title-wrap span{color:#aaa69c;font-size:9px}
.pdf-reader-controls{display:flex;gap:6px;flex-shrink:0}
.reader-tool-btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 9px;border:1px solid rgba(199,169,107,.22);border-radius:8px;background:#29271f;color:#e3ce9f;font:600 10px inherit;text-decoration:none}
.pdf-reader-frame{display:block;width:100%;height:calc(100% - 86px);border:0;background:#25282d}
.pdf-reader-fallback{margin:0;padding:7px 10px;background:#1b1f23;color:#a9a49a;font-size:9px;line-height:1.6;text-align:center}
@media(max-width:520px){.pdf-reader-dialog{width:100vw;height:100dvh;border-radius:0}.pdf-reader-toolbar{padding:9px}.pdf-reader-title-wrap strong{font-size:11px}.reader-tool-btn{font-size:9px;padding:6px 7px}.pdf-reader-frame{height:calc(100% - 88px)}}

/* R2 — edition-level metadata, source-linked covers, and in-book text search */
.splash-citation{max-width:430px;margin:8px auto 0;color:rgba(221,209,180,.64);font-size:9px;line-height:1.7;text-align:center}
.book-cover img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.online-result-layout{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:start}
.online-result-cover-wrap{width:76px;min-height:104px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(220,203,164,.13);border-radius:9px;background:#15181c;overflow:hidden}
.online-result-cover{display:block;width:100%;height:104px;object-fit:contain;background:#111316}
.online-cover-fallback{display:grid;place-items:center;width:100%;min-height:104px;padding:6px;color:#8d887c;font-size:9px;line-height:1.6;text-align:center}
.online-result-main{min-width:0}
.result-provenance{margin:8px 0 0;color:#8d918b;font-size:9px;line-height:1.65}
.book-details-dialog{width:min(94vw,760px);max-width:none;max-height:min(92dvh,900px);padding:0;border:1px solid rgba(199,169,107,.29);border-radius:18px;background:#15181c;color:var(--text);overflow:hidden;box-shadow:0 24px 80px #000b}
.book-details-dialog::backdrop{background:rgba(0,0,0,.82);backdrop-filter:blur(4px)}
.details-toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#1c2024;border-bottom:1px solid var(--line)}
.details-toolbar strong{font:700 14px "Noto Naskh Arabic",Tahoma,serif;color:#eee6d5}
.details-content{padding:15px;max-height:calc(min(92dvh,900px) - 54px);overflow:auto}
.details-hero{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:start}
.details-cover-wrap{width:112px;min-height:150px;display:grid;place-items:center;border:1px solid rgba(199,169,107,.22);border-radius:10px;background:#111316;overflow:hidden}
.details-cover-wrap img{display:block;width:100%;height:150px;object-fit:contain}
.details-cover-fallback{padding:10px;color:#999386;text-align:center;font-size:10px;line-height:1.8}
.details-main{min-width:0}
.details-main h2{margin:0 0 8px;font:700 20px/1.55 "Noto Naskh Arabic",Tahoma,serif;overflow-wrap:anywhere;color:#f0ece3}
.details-authors{margin:0 0 8px;color:#c4b99f;font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.details-cover-note{margin:9px 0 0;color:#8e938c;font-size:9px;line-height:1.7}
.metadata-accuracy-note,.metadata-scope-note{margin:12px 0;padding:10px 12px;border:1px solid rgba(215,149,134,.2);border-radius:10px;background:rgba(215,149,134,.055);color:#d8b1a7;font-size:10px;line-height:1.8}
.details-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}
.metadata-field{min-width:0;padding:9px 10px;border:1px solid rgba(220,203,164,.12);border-radius:10px;background:#1b1f23}
.metadata-field-label{display:block;margin-bottom:4px;color:#9e998e;font-size:9px}
.metadata-field-value{display:block;color:#e9e3d7;font-size:11px;line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap}
.metadata-field-value.metadata-missing{color:#817e76;font-weight:400}
.metadata-field small{display:block;margin-top:3px;color:#8b887f;font-size:8px;line-height:1.6}
.metadata-scope-note{grid-column:1/-1;margin:0;color:#c9b88f;background:rgba(199,169,107,.05);border-color:rgba(199,169,107,.2)}
.metadata-scope-note.verified-scope{color:#b5d4bb;background:rgba(128,198,162,.05);border-color:rgba(128,198,162,.19)}
.details-edition-picker{margin:13px 0;padding:11px;border:1px solid rgba(199,169,107,.2);border-radius:11px;background:#1b1f23;color:#d8cfbd;font-size:10px;line-height:1.8}
.details-edition-picker label{display:grid;gap:7px}
.details-edition-picker select,.details-page-filter input{width:100%;min-height:40px;padding:8px 10px;border:1px solid rgba(220,203,164,.18);border-radius:9px;background:#111316;color:#eee8dc;font:11px inherit}
.details-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.detail-action{min-height:38px;padding:8px 12px;border:1px solid rgba(199,169,107,.23);border-radius:9px;background:#24251f;color:#e5d5b0;font:600 10px inherit;cursor:pointer}
.detail-action.primary{border-color:rgba(128,198,162,.3);background:rgba(128,198,162,.1);color:#b7dfc2}
.detail-action:disabled{opacity:.55;cursor:wait}
.details-search-note{flex-basis:100%;margin:2px 0 0;color:#a9a49a;font-size:9px;line-height:1.7}
.details-inside-search{margin-top:17px;padding:13px;border:1px solid rgba(128,198,162,.2);border-radius:13px;background:rgba(25,39,32,.27)}
.details-inside-search[hidden]{display:none}
.details-inside-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.details-inside-title h3{margin:0;font:700 14px "Noto Naskh Arabic",Tahoma,serif}
.details-page-filter{display:grid;gap:5px;margin-top:8px;color:#aaa69c;font-size:9px}
.reader-search-panel{padding:11px 12px;background:#171b1f;border-bottom:1px solid var(--line)}
.reader-search-main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
.reader-search-main input{min-width:0;height:40px;padding:8px 11px;border:1px solid rgba(220,203,164,.2);border-radius:9px;background:#101316;color:#eee8dc;font:11px inherit;outline:none}
.reader-search-main button{min-height:40px;padding:7px 11px;border:1px solid rgba(199,169,107,.3);border-radius:9px;background:rgba(199,169,107,.13);color:#ecd6a7;font:600 10px inherit;white-space:nowrap}
.reader-locator-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:8px}
.reader-locator-grid label{display:grid;gap:5px;color:#aaa69c;font-size:9px;min-width:0}
.reader-locator-grid input{width:100%;min-width:0;height:36px;padding:6px 8px;border:1px solid rgba(220,203,164,.16);border-radius:8px;background:#101316;color:#eee8dc;font:10px inherit}
.reader-search-help{margin:8px 1px 0;color:#8f928d;font-size:9px;line-height:1.7}
.reader-search-status{margin-top:8px;padding:8px 10px;border:1px dashed rgba(220,203,164,.16);border-radius:8px;color:#aaa69c;font-size:9px;line-height:1.7}
.reader-search-results{display:grid;gap:8px;max-height:240px;margin-top:8px;overflow:auto}
.reader-hit-card{padding:10px;border:1px solid rgba(220,203,164,.14);border-radius:10px;background:#202329}
.reader-hit-meta{margin-bottom:6px;color:#c9b98f;font-size:9px;line-height:1.6}
.reader-hit-excerpt{margin:0;color:#dedbd3;font-size:11px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere}
.reader-search-highlight{padding:0 2px;border-radius:3px;background:#ffe36a;color:#201b0e;box-shadow:0 0 0 1px rgba(255,227,106,.18)}
.reader-jump-button{display:inline-flex;margin-top:8px;min-height:30px;align-items:center;padding:6px 9px;border:1px solid rgba(128,198,162,.22);border-radius:8px;background:rgba(128,198,162,.08);color:#b7dfc2;font:600 9px inherit;text-decoration:none}
.pdf-reader-frame{height:calc(100% - 300px);min-height:180px}
@media(max-width:520px){.details-content{padding:12px}.details-hero{grid-template-columns:88px minmax(0,1fr);gap:10px}.details-cover-wrap{width:88px;min-height:124px}.details-cover-wrap img{height:124px}.details-main h2{font-size:17px}.details-fields{grid-template-columns:1fr 1fr}.reader-locator-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.reader-locator-grid input{font-size:9px;padding:5px}.reader-search-main{grid-template-columns:minmax(0,1fr) auto}.reader-search-main button{padding:6px 8px;font-size:9px}.pdf-reader-dialog{height:100dvh}.pdf-reader-frame{height:calc(100% - 320px)}}
@media(max-width:360px){.online-result-layout{grid-template-columns:62px minmax(0,1fr);gap:8px}.online-result-cover-wrap{width:62px;min-height:88px}.online-result-cover{height:88px}.online-cover-fallback{min-height:88px;font-size:8px}.details-fields{grid-template-columns:1fr}.reader-locator-grid{grid-template-columns:1fr}.reader-locator-grid label{grid-template-columns:1fr 1fr;align-items:center}.reader-locator-grid input{height:33px}.reader-search-main{grid-template-columns:1fr}.reader-search-main button{width:100%}}
.details-volume-list{margin-top:12px;padding:11px;border:1px solid rgba(199,169,107,.19);border-radius:11px;background:#1a1e22}
.details-volume-list[hidden]{display:none}
.details-volume-list h3{margin:0 0 7px;color:#e5d5b0;font:700 12px "Noto Naskh Arabic",Tahoma,serif}
.details-volume-row{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:8px 0;border-top:1px solid rgba(220,203,164,.1);color:#ddd6c9;font-size:10px}
.details-volume-row a{flex:0 0 auto;color:#b9dbbf;text-decoration:none;border:1px solid rgba(128,198,162,.22);padding:5px 8px;border-radius:7px}

/* موضع القراءة المحفوظ: إدخال يدوي صريح، لأن عارض PDF المدمج في المتصفح لا يتيح قراءة الصفحة الحالية بأمان عبر iframe. */
.reader-position-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;background:#17191d;border-top:1px solid rgba(255,255,255,.08);color:#d9dde0}
.reader-position-bar label{font-size:.82rem;color:#c5c9ce}
.reader-position-bar input{width:105px;min-height:40px;padding:7px 10px;border:1px solid #555b62;border-radius:9px;background:#111316;color:#fff;font:inherit}
.reader-position-bar button{min-height:40px;padding:7px 13px;border:1px solid #9b8050;border-radius:9px;background:#2b2822;color:#f1dfb9;font:inherit;cursor:pointer}
.reader-position-bar span{font-size:.76rem;color:#c5c9ce;flex:1 1 220px}
@media(max-width:520px){.reader-position-bar{align-items:stretch}.reader-position-bar label{width:100%}.reader-position-bar input,.reader-position-bar button{flex:1}.reader-position-bar span{width:100%}}
.details-locator-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.details-locator-grid label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;color:#c5c9ce}
.details-locator-grid input{min-width:0;width:100%;min-height:42px;padding:8px 10px;border:1px solid #555b62;border-radius:9px;background:#111316;color:#fff;font:inherit}
.details-edition-loading{color:#c5c9ce;font-size:.8rem;margin:8px 0}
@media(max-width:600px){.details-locator-grid{grid-template-columns:1fr}}
.reader-hit-excerpt mark{background:#f3d35a;color:#17191d;padding:0 .12em;border-radius:3px;font-weight:800;box-decoration-break:clone;-webkit-box-decoration-break:clone}
a.splash-citation{display:block;text-decoration:underline;text-decoration-color:rgba(221,209,180,.3);text-underline-offset:3px}
a.splash-citation:focus-visible{outline:2px solid #d8bc7f;outline-offset:4px;border-radius:4px}
