:root{--bg:#faf8f3;--paper:#ffffff;--ink:#1f2430;--muted:#6b7280;--line:#e7e2d6;--line-soft:#f0ece2;--accent:#1d7a5f;--accent-soft:#e6f2ed;--accent-ink:#14563f;--radius:14px;--topbar-h:60px;--sidebar-w:320px;--sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--serif:ui-serif,Georgia,"Times New Roman",serif;--arabic:"Noto Naskh Arabic","Amiri","Scheherazade New",serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.6;height:100%}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}.muted{color:var(--muted)}.arabic{direction:rtl;text-align:right;font-family:var(--arabic)}.topbar{height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line);background:var(--paper);position:-webkit-sticky;position:sticky;top:0;z-index:40}.brand{font-weight:700;font-size:18px;color:var(--ink);font-family:var(--sans)}.brand:hover{text-decoration:none}.topbar .muted{font-family:var(--sans);font-size:13px}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:calc(100vh - var(--topbar-h))}.sidebar{border-right:1px solid var(--line);overflow-y:auto;flex-direction:column}.sidebar,.sidebar-head{background:var(--paper);display:flex}.sidebar-head{align-items:center;justify-content:space-between;padding:16px 18px 10px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.sidebar-title{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.book-list{padding:0 10px 24px}.book-item{border-radius:12px;margin-bottom:4px}.book-item.active{background:var(--bg)}.book-row{width:100%;text-align:left;background:transparent;border:0;border-radius:12px;padding:12px;display:grid;grid-gap:3px;gap:3px;color:var(--ink)}.book-row:hover{background:var(--accent-soft)}.book-item.active .book-row:hover{background:transparent}.book-name{font-family:var(--sans);font-weight:700;font-size:15px;text-transform:capitalize}.book-arabic{font-size:16px;color:var(--accent-ink)}.book-meta{font-family:var(--sans);font-size:12px;color:var(--muted)}.chapter-tree{padding:4px 6px 12px;display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line-soft);margin:2px 6px 0}.chapter-filter{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-family:var(--sans);font-size:13px;margin:6px 0 4px;background:var(--paper);color:var(--ink)}.chapter-filter:focus{outline:none;border-color:var(--accent)}.chapter-row{display:flex;align-items:center;gap:9px;width:100%;background:transparent;border:0;border-radius:8px;padding:8px 9px;text-align:left;color:var(--ink);line-height:1.4}.chapter-row:hover{background:var(--accent-soft)}.chapter-row.on{background:var(--accent);color:#fff}.chapter-num{flex:0 0 auto;min-width:22px;text-align:center;font-family:var(--sans);font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:2px 4px}.chapter-row.on .chapter-num{background:rgba(255,255,255,.22);color:#fff}.chapter-name{flex:1 1 auto;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chapter-badge{flex:0 0 auto;font-family:var(--sans);font-size:10px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:2px 7px}.chapter-row.on .chapter-badge{background:rgba(255,255,255,.22);color:#fff}.tree-note{font-family:var(--sans);font-size:13px;color:var(--muted);padding:8px 10px;font-style:italic}.tree-note.pad{padding:28px}.content{overflow-y:auto;padding:26px 32px 80px}.reader-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}.reader-titles{min-width:0}.reader-title{font-size:26px;margin:0 0 4px;line-height:1.3}.reader-sub{color:var(--muted);margin:0;font-family:var(--sans);font-size:14px}.reader-sub .arabic{display:inline}.toolbar{flex-wrap:wrap;gap:10px;padding:12px 0 18px;margin-bottom:18px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:-26px;background:var(--bg);z-index:10}.search,.toolbar{display:flex;align-items:center}.search{position:relative;flex:1 1 280px;min-width:200px}.search-icon{position:absolute;left:12px;color:var(--muted);font-size:18px;pointer-events:none}.search-input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 34px;font-family:var(--sans);font-size:14px;background:var(--paper);color:var(--ink)}.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-clear{position:absolute;right:8px;border:0;background:transparent;color:var(--muted);font-size:13px;padding:4px 6px;border-radius:6px}.search-clear:hover{background:var(--line-soft);color:var(--ink)}.field{display:inline-flex;align-items:center;gap:6px}.field-label{font-size:12px;color:var(--muted)}.field-label,.select{font-family:var(--sans)}.select{border:1px solid var(--line);border-radius:10px;padding:9px 10px;font-size:13px;background:var(--paper);color:var(--ink)}.select:focus{outline:none;border-color:var(--accent)}.toggle{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:10px;padding:9px 14px;font-family:var(--sans);font-size:13px}.toggle.on,.toggle:hover{border-color:var(--accent)}.toggle.on{background:var(--accent);color:#fff}.results{display:flex;flex-direction:column;gap:18px}.hadith{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}.hadith-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.num{display:inline-block;font-family:var(--sans);font-size:12px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:99px;padding:4px 11px}.hadith-loc{display:flex;flex-direction:column;gap:2px;align-items:flex-end;margin-bottom:12px;color:#a9b0ba;font-size:14px;line-height:1.7}.hadith-loc .arabic{font-family:var(--arabic);font-weight:400}.source{font-size:21px;line-height:2.05}.divider{border:none;border-top:1px solid var(--line);margin:18px 0}.english{font-size:17px;line-height:1.75}.hadith-meta{margin-top:10px;font-size:13px;color:var(--muted);font-family:var(--sans)}.versions{margin-top:16px}.versions-toggle{display:inline-flex;align-items:center;gap:6px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--muted);background:var(--line-soft);border:1px solid var(--line);border-radius:8px;padding:6px 12px;transition:background .15s,color .15s,border-color .15s}.versions-toggle:hover{border-color:var(--muted)}.versions-toggle.open,.versions-toggle:hover{color:var(--ink);background:var(--bg)}.versions-caret{font-size:11px;line-height:1}.versions-panel{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:18px}.version-item{padding-left:14px;border-left:3px solid var(--line-soft)}.version-item .english{font-size:16px;color:#4b5563}.lang-badges{display:flex;flex-wrap:wrap;gap:6px}.lang-badge{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.03em;color:var(--accent);background:var(--accent-soft);border:1px solid transparent;border-radius:99px;padding:3px 9px}.lang-badge:hover{border-color:var(--accent)}.lang-badge.on{background:var(--accent);color:#fff}.lang-badge.none{color:var(--muted);background:transparent;border:1px dashed var(--line);font-weight:400}.empty{color:var(--muted);font-style:italic}.empty.pad{padding:36px 4px}.empty.pad-sm{margin-top:12px}.notice{background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;padding:14px 18px}.notice,.pager{font-family:var(--sans)}.pager{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:28px}.btn{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:10px;padding:9px 18px;font-size:14px}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.4;cursor:not-allowed}.pager-info{color:var(--muted);font-size:14px}.welcome{max-width:860px}.welcome .reader-sub{margin-bottom:26px}.book-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.book-card{display:block;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px;transition:box-shadow .15s,border-color .15s;color:var(--ink)}.book-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.06);border-color:var(--accent)}.book-card h2{margin:0 0 6px;text-transform:capitalize;font-family:var(--sans)}.book-card .meta{color:var(--muted);font-family:var(--sans);font-size:14px}.icon-btn{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:6px 11px;font-size:16px;line-height:1}.icon-btn:hover{border-color:var(--accent)}.only-mobile,.scrim{display:none}@media (max-width:860px){.app{grid-template-columns:1fr}.sidebar{position:fixed;top:var(--topbar-h);left:0;bottom:0;width:min(320px,86vw);z-index:50;transform:translateX(-100%);transition:transform .2s ease;box-shadow:0 10px 40px rgba(0,0,0,.18)}.sidebar.open{transform:translateX(0)}.scrim{display:block;position:fixed;inset:var(--topbar-h) 0 0 0;background:rgba(0,0,0,.32);z-index:45}.only-mobile{display:inline-flex}.content{padding:20px 18px 70px}.toolbar{top:-20px}}.auth-nav{display:flex;align-items:center;gap:12px;font-family:var(--sans);font-size:13px}.auth-nav-user{color:var(--muted)}.auth-nav-role{background:var(--accent-soft);color:var(--accent-ink);padding:2px 8px;border-radius:99px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.auth-nav-link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;font-family:var(--sans);padding:0}.auth-nav-link:hover{text-decoration:underline}.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--topbar-h));padding:24px}.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:40px;width:100%;max-width:400px}.auth-title{font-size:24px;margin:0 0 24px;font-family:var(--sans)}.auth-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:14px;font-family:var(--sans)}.auth-form{gap:16px}.auth-form,.auth-label{display:flex;flex-direction:column}.auth-label{gap:6px;font-family:var(--sans);font-size:14px;font-weight:500}.auth-input{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:15px;font-family:var(--sans);background:var(--bg);color:var(--ink);width:100%}.auth-input:focus{outline:none;border-color:var(--accent)}.auth-hint{color:var(--muted);font-size:12px;font-weight:400}.auth-link{margin:20px 0 0;font-size:14px;font-family:var(--sans);color:var(--muted);text-align:center}.vm-bar{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.version-current{background:var(--accent-soft);border-radius:8px}.version-deleted{opacity:.5}.deleted-text{text-decoration:line-through;color:var(--muted)}.version-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.version-num{font-size:12px;color:var(--muted)}.version-badge,.version-num{font-family:var(--sans);font-weight:600}.version-badge{font-size:11px;padding:2px 8px;border-radius:99px}.version-badge.primary{background:var(--accent);color:white}.version-badge.deleted{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.version-actions{display:flex;gap:4px;margin-left:auto}.add-translation-form{margin-top:12px;padding:16px;background:var(--bg);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:12px}.add-translation-row{display:flex;gap:8px;align-items:flex-end}.add-translation-text{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;font-size:14px;font-family:var(--serif);resize:vertical;background:var(--paper)}.add-translation-text:focus{outline:none;border-color:var(--accent)}.add-translation-actions{display:flex;justify-content:flex-end}.btn.sm{padding:5px 12px;font-size:13px}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn.ghost:hover{background:var(--line-soft)}.btn.danger{background:transparent;border:1px solid #fecaca;color:#991b1b}.btn.danger:hover{background:#fef2f2}