:root{--bg:#faf9f6;--fg:#1f2328;--muted:#6b7280;--card:#fff;--border:#e5e2da;--accent:#0f766e;--mark-bg:#fde68a;--mark-fg:#1f2328;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Noto Sans Tamil,Latha,system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#14161a;--fg:#e6e4df;--muted:#9aa0a6;--card:#1d2025;--border:#2c3138;--accent:#2dd4bf;--mark-bg:#92700c;--mark-fg:#fff}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0}.app{max-width:1280px;margin:0 auto;padding:2rem 1.25rem 4rem}header h1{color:var(--accent);margin:0 0 .25rem;font-size:1.6rem}.subtitle{color:var(--muted);margin:0 0 1.5rem;font-size:.9rem}.controls{background:var(--bg);z-index:1;flex-wrap:wrap;gap:.5rem;padding:.75rem 0;display:flex;position:sticky;top:0}.controls input[type=search]{border:1px solid var(--border);background:var(--card);color:var(--fg);border-radius:8px;flex:2 260px;padding:.65rem .9rem;font-size:1.05rem}.controls input[type=search]:focus{outline:2px solid var(--accent);border-color:#0000}.controls select{border:1px solid var(--border);background:var(--card);min-width:0;max-width:100%;color:var(--fg);border-radius:8px;flex:160px;padding:.65rem .5rem;font-size:.9rem}.count{color:var(--muted);margin:.75rem 0;font-size:.9rem}.results{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.verse{background:var(--card);border:1px solid var(--border);text-align:left;border-radius:10px;padding:.9rem 1rem}.ref{flex-wrap:wrap;align-items:baseline;gap:.6rem;margin-bottom:.4rem;display:flex}.ref-num{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.ref-name{color:var(--muted);font-size:.8rem}.text{line-height:1.9;font-size:calc(1.02rem * var(--text-scale,1));white-space:pre-line;margin:0}.pair{grid-template-columns:1fr 1fr;column-gap:1.25rem;display:grid}.pair .text-en{border-inline-start:1px dashed var(--border);padding-inline-start:1.25rem;line-height:1.7}@media (width<=760px){.pair{grid-template-columns:1fr}.pair .text-en{border-inline-start:none;border-top:1px dashed var(--border);padding-inline-start:0;margin-top:.5rem;padding-top:.5rem}}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:14px;width:100%;max-width:400px;padding:2rem 1.75rem}.login-title{color:var(--accent);margin:0 0 .75rem;font-size:1.45rem}.login-quote{color:var(--muted);margin:0 0 1.5rem;font-size:.9rem;line-height:1.7}.login-ref{margin-top:.25rem;font-size:.8rem;display:block}.login-card form{flex-direction:column;gap:.7rem;display:flex}.login-card input{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:8px;padding:.7rem .9rem;font-size:1rem}.login-card input:focus{outline:2px solid var(--accent);border-color:#0000}.login-submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.75rem;font-size:1rem;font-weight:700}.login-submit:disabled{opacity:.6}.login-error{color:#dc2626;margin:0;font-size:.85rem}.login-switch{color:var(--muted);margin:1.25rem 0 0;font-size:.9rem}.login-switch button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;font-weight:700}.logout{border:1px solid var(--border);background:var(--card);color:var(--muted);font:inherit;cursor:pointer;border-radius:8px;margin-bottom:.4rem;margin-left:.5rem;padding:.45rem .75rem;font-size:.82rem;font-weight:600}.logout:hover{color:var(--accent);border-color:var(--accent)}.user-menu{margin-bottom:.4rem;margin-left:.5rem;position:relative}.user-menu .logout{text-overflow:ellipsis;white-space:nowrap;max-width:11rem;margin:0;overflow:hidden}.user-menu-list{border-radius:8px;min-width:12rem;left:auto;right:0;overflow:hidden}.user-menu-list button{color:var(--fg);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:.6rem 1rem;font-size:.88rem}.user-menu-list button:hover{background:var(--bg);color:var(--accent)}.user-menu-list button:last-child{border-top:1px solid var(--border);color:#dc2626}.pw-modal{max-width:24rem}.pw-form{flex-direction:column;gap:.7rem;margin-top:1rem;display:flex}.pw-form input{border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:8px;padding:.7rem .9rem;font-size:1rem}.pw-form input:focus{outline:2px solid var(--accent);border-color:#0000}.pw-done{color:#15803d;text-align:center;margin:1.25rem 0 .5rem;font-weight:700}.home{--ilo:var(--accent);--ilo-solid:#0f766e;--ilo-dark:#0b5d57}.ilo-hero{background-position:50%;background-size:cover;border-radius:14px;justify-content:center;align-items:center;min-height:26rem;margin-bottom:2rem;padding:3.5rem 1.5rem;display:flex;position:relative;overflow:hidden}.ilo-hero:before{content:"";background:linear-gradient(135deg,#0b5d57e6 0%,#0f766ebd 55%,#112024d1 100%);position:absolute;inset:0}.ilo-hero-inner{text-align:center;color:#fff;max-width:46rem;position:relative}.ilo-hero-title{letter-spacing:.01em;margin:0 0 1.5rem;font-family:Lora,Georgia,serif;font-size:clamp(1.9rem,4.5vw,3rem);font-weight:700}.ilo-hero-verse{margin:0;font-family:Lora,Georgia,serif;font-size:clamp(1.05rem,2vw,1.4rem);font-style:italic;line-height:1.85}.ilo-hero-verse-ta{font-size:calc(.98rem * var(--text-scale,1));color:#ffffffde;margin:1rem 0 0;line-height:1.95}.ilo-hero-ref{letter-spacing:.06em;color:#fffc;margin:1.25rem 0 0;font-size:.9rem}.ilo-intro{background:var(--card);border:1px solid var(--border);border-top:4px solid var(--ilo);border-radius:12px;flex-wrap:wrap;align-items:center;gap:1.75rem;margin-bottom:1.5rem;padding:1.75rem;display:flex}.ilo-intro-img{border-radius:8px;width:150px;box-shadow:0 6px 20px #0000002e}.ilo-intro-text{flex:22rem}.ilo-intro-text h2{color:var(--ilo);margin:0 0 .6rem;font-family:Lora,Georgia,serif;font-size:1.4rem}.ilo-intro-text p{color:var(--muted);margin:0 0 .6rem;line-height:1.85}.ilo-intro-ta{font-size:calc(.95rem * var(--text-scale,1))}.ilo-intro-cta{flex-wrap:wrap;gap:.6rem;display:flex;margin-top:1rem!important}.ilo-btn{background:var(--ilo-solid);color:#fff;border-radius:999px;padding:.6rem 1.2rem;font-size:.92rem;font-weight:700;text-decoration:none;display:inline-block}.ilo-btn:hover{background:var(--ilo-dark)}.ilo-btn.ghost{color:var(--ilo);border:1px solid var(--ilo);background:0 0}.ilo-btn.ghost:hover{background:#0f766e1a}.ilo-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.ilo-stats div{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:12px;padding:1rem}.ilo-stats strong{color:var(--ilo);font-family:Lora,Georgia,serif;font-size:1.5rem;display:block}.ilo-stats span{color:var(--muted);font-size:.82rem}.ilo-books{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.ilo-books h2{color:var(--ilo);margin:0 0 .5rem;font-family:Lora,Georgia,serif;font-size:1.2rem}.home .home-tile:hover{border-color:var(--ilo)}.home .home-tile h3{color:var(--ilo);font-family:Lora,Georgia,serif}.home .chip:hover{border-color:var(--ilo);color:var(--ilo)}.ilo-footer{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:.6rem;padding-top:.5rem;font-size:.85rem;display:flex}.ilo-footer a{color:var(--ilo);text-decoration:none}.ilo-footer a:hover{text-decoration:underline}.home-card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.home-card h2{color:var(--accent);margin:0 0 .5rem;font-size:1.15rem}.home-card p{color:var(--muted);margin:0;line-height:1.8}.home-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.home-tile{background:var(--card);border:1px solid var(--border);color:var(--fg);border-radius:12px;padding:1.1rem 1.25rem;text-decoration:none;display:block}.home-tile:hover{border-color:var(--accent)}.home-tile h3{color:var(--accent);margin:0 0 .35rem;font-size:1.05rem}.home-tile p{color:var(--muted);margin:0;font-size:.85rem;line-height:1.6}.home-collections{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.home-collections .chip{text-decoration:none}.ftree{flex-direction:column;align-items:center;gap:.5rem;margin-top:1rem;display:flex}.fam-group{background:var(--card);border:1px solid var(--border);border-radius:12px;width:100%;max-width:860px;padding:.85rem 1rem}.fam-group h3{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 .6rem;font-size:.85rem}.fam-chips{flex-wrap:wrap;gap:.5rem;display:flex}.fam-chip{border:1px solid var(--border);border-radius:10px;align-items:center;gap:.5rem;padding:.45rem .7rem;display:inline-flex}.fam-narrator{background:var(--bg);border-color:var(--accent)}.fam-narrator>a:first-child{color:var(--fg);flex-direction:column;text-decoration:none;display:flex}.fam-narrator .fam-name{color:var(--accent);font-weight:600}.fam-outsider{background:var(--card);color:var(--muted);flex-direction:column;align-items:flex-start;gap:.15rem;text-decoration:none}a.fam-outsider:hover{border-color:var(--accent)}a.fam-outsider:hover .fam-name{color:var(--accent)}.fam-en{color:var(--muted);font-size:.72rem}.fam-tag{border:1px solid var(--border);border-radius:999px;padding:.05rem .5rem;font-size:.68rem}.fam-profile{font-size:.9rem;text-decoration:none}.fam-connector{background:var(--accent);opacity:.5;width:2px;height:1.4rem}.fam-center{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:.75rem;width:100%;max-width:860px;display:flex}.fam-center .fam-group{flex:240px;width:auto}.fam-person{text-align:center;background:var(--bg);border:2px solid var(--accent);border-radius:14px;flex-direction:column;flex:0 260px;align-items:center;gap:.3rem;padding:1rem 1.25rem;display:flex}.fam-person-name{color:var(--accent);font-size:1.15rem;font-weight:700}.fam-person-en{color:var(--muted);font-size:.9rem}.fam-profile-link{color:var(--accent);margin-top:.3rem;font-size:.85rem;font-weight:600;text-decoration:none}.fam-profile-link:hover{text-decoration:underline}@media (width<=640px){.app{padding:.75rem .75rem 3rem}header h1{font-size:1.3rem}.tabs{gap:0}.tabs a,.menu>button{padding:.5rem .6rem;font-size:.88rem}.tabs .font-controls{margin-bottom:.3rem}.controls{padding:.5rem 0}.controls input[type=search]{flex-basis:100%}.verse{padding:.75rem .85rem}.modal{max-height:92vh;padding:1rem 1.1rem}.text{line-height:1.8}.hadith-links{gap:.75rem}.menu-list{max-width:calc(100vw - 1.5rem)}.ilo-hero{border-radius:10px;min-height:20rem;padding:2.5rem 1rem}.ilo-intro{text-align:center;justify-content:center;gap:1.25rem;padding:1.25rem}.ilo-intro-img{width:110px}.ilo-intro-cta{justify-content:center}}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.25rem;margin-bottom:1rem;display:flex}.tabs .font-controls{margin-bottom:.4rem;margin-left:auto}.tabs a{color:var(--muted);border:1px solid #0000;border-bottom:none;border-radius:8px 8px 0 0;padding:.6rem 1.1rem;font-weight:600;text-decoration:none}.tabs a:hover{color:var(--accent)}.tabs a.active{color:var(--accent);background:var(--card);border-color:var(--border);margin-bottom:-1px}.menu{position:relative}.menu>button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:8px 8px 0 0;padding:.6rem 1.1rem;font-weight:600}.menu>button:hover{color:var(--accent)}.menu>button.active{color:var(--accent);background:var(--card);border-color:var(--border);margin-bottom:-1px}.menu-list{background:var(--card);border:1px solid var(--border);z-index:2;border-radius:0 8px 8px;flex-direction:column;min-width:14rem;max-height:65vh;display:flex;position:absolute;top:100%;left:0;overflow-y:auto;box-shadow:0 6px 18px #0000001f}.menu-list a{color:var(--fg);padding:.55rem 1rem;font-weight:500;text-decoration:none}.menu-list a:hover{color:var(--accent);background:var(--bg)}.menu-list a.active{color:var(--accent);font-weight:700}.bab{color:var(--muted);font-size:calc(.85rem * var(--text-scale,1));margin:0 0 .35rem;font-style:italic}.grade{color:var(--muted);border:1px solid var(--border);border-radius:999px;margin-left:auto;padding:.1rem .6rem;font-size:.75rem}.ref-num{font-size:calc(1rem * var(--text-scale,1))}.font-controls{border:1px solid var(--border);background:var(--card);border-radius:8px;align-items:center;gap:.35rem;padding:0 .35rem;display:flex}.font-controls button{color:var(--fg);cursor:pointer;background:0 0;border:none;padding:.45rem .4rem;font-size:.95rem;font-weight:600}.font-controls button:hover:not(:disabled){color:var(--accent)}.font-controls button:disabled{opacity:.35;cursor:default}.font-scale{color:var(--muted);font-variant-numeric:tabular-nums;text-align:center;min-width:2.6em;font-size:.8rem}mark{background:var(--mark-bg);color:var(--mark-fg);border-radius:3px;padding:0 2px}.more{border:1px solid var(--border);background:var(--card);width:100%;color:var(--accent);cursor:pointer;border-radius:8px;margin-top:1rem;padding:.7rem;font-size:.95rem}.more:hover{border-color:var(--accent)}.hint{color:var(--muted);margin-top:2rem;line-height:1.8}.examples{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.chip{border:1px solid var(--border);background:var(--card);color:var(--fg);cursor:pointer;border-radius:999px;padding:.3rem .9rem;font-size:.9rem}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.suggestions{flex-wrap:wrap;gap:.5rem;margin:.25rem 0 .5rem;display:flex}.status{color:var(--muted);justify-content:center;padding:4rem 1rem;display:flex}.status.error{color:#dc2626}.chain{border-top:1px dashed var(--border);margin-top:.6rem;padding-top:.5rem}.chain-toggle{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:600}.chain-status{color:var(--muted);margin-top:.4rem;font-size:.85rem;display:block}.chain-flow{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.6rem;display:flex}.chain-node{border:1px solid var(--border);background:var(--bg);font:inherit;color:var(--fg);text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.35rem .6rem;display:flex}button.chain-node{cursor:pointer}button.chain-node:hover{border-color:var(--accent)}button.chain-node:hover .chain-name{color:var(--accent)}.chain-name{font-size:calc(.9rem * var(--text-scale,1));font-weight:600}.chain-rank{color:var(--muted);font-size:.72rem}.chain-origin{color:var(--accent);font-weight:600;font-size:calc(.9rem * var(--text-scale,1));border-style:dashed}.chain-arrow{color:var(--accent);font-size:1.05rem;font-weight:700}.chain-note{color:var(--muted);margin:.45rem 0 0;font-size:.75rem}.hadith-links{border-top:1px dashed var(--border);flex-wrap:wrap;gap:1.25rem;margin:.6rem 0 0;padding-top:.5rem;display:flex}.hadith-links a{color:var(--muted);font-size:.82rem;font-weight:600;text-decoration:none}.hadith-links a:hover{color:var(--accent);text-decoration:underline}.ref-right{align-items:center;gap:.4rem;margin-left:auto;display:inline-flex}.ref-right .grade-chip{margin-left:0}.share-actions{align-items:center;gap:.25rem;display:inline-flex}.icon-btn{border:1px solid var(--border);background:var(--bg);width:1.9rem;height:1.9rem;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.icon-btn:hover{color:var(--accent);border-color:var(--accent)}.icon-btn.copied{color:#15803d;border-color:#16a34a}.icon-btn:after{content:attr(data-tip);z-index:4;background:var(--fg);color:var(--bg);white-space:nowrap;opacity:0;pointer-events:none;border-radius:6px;padding:.3rem .6rem;font-size:.72rem;font-weight:600;transition:opacity .12s;position:absolute;bottom:calc(100% + .4rem);right:0}.icon-btn:hover:after,.icon-btn:focus-visible:after{opacity:.95}.share-wrap{display:inline-block;position:relative}.share-menu{z-index:3;background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;min-width:12rem;display:flex;position:absolute;top:calc(100% + .35rem);right:0;overflow:hidden;box-shadow:0 6px 18px #00000026}.share-menu a{color:var(--fg);padding:.55rem .9rem;font-size:.85rem;text-decoration:none}.share-menu a:hover{background:var(--bg);color:var(--accent);text-decoration:none}.chain-list{flex-direction:column;gap:.25rem;margin:.5rem 0 0;padding:0 0 0 1.4rem;display:flex}.narrator-link{color:var(--fg);font:inherit;font-size:calc(.95rem * var(--text-scale,1));cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);text-underline-offset:3px;background:0 0;border:none;padding:0}.narrator-link:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.narrator-inline{color:var(--accent);-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;font-weight:600}.narrator-inline:hover{text-decoration-style:solid}.modal-overlay{z-index:10;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--border);border-radius:12px;width:100%;max-width:640px;max-height:85vh;padding:1.25rem 1.5rem;position:relative;overflow-y:auto}.modal-close{float:right;border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;border-radius:999px;width:2rem;height:2rem;position:sticky;top:0}.modal-close:hover{color:var(--accent);border-color:var(--accent)}.narrator-name{color:var(--accent);margin:0;font-size:1.3rem}.narrator-alt{color:var(--muted);margin:.25rem 0 0;font-size:.9rem}.narrator-name-en{color:var(--muted);margin:.15rem 0 0;font-size:1rem;font-weight:600}.narrator-row-en{color:var(--muted);font-size:.8rem;font-weight:400;display:block}.chain-en{color:var(--muted);font-size:.72rem}.en-profile{flex-direction:column;gap:.45rem;margin:0;display:flex}.en-profile dt{color:var(--muted);font-size:.8rem;font-weight:600}.en-profile dd{margin:0;font-size:.92rem;line-height:1.6}.narrator-collections{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem;margin:.75rem 0 0;font-size:.9rem;display:flex}.chip.static{cursor:default;font-size:.8rem}.narrator-section{margin-top:1.25rem}.narrator-section h3{color:var(--accent);margin:0 0 .4rem;font-size:1rem}.narrator-more{margin-top:1.25rem}.narrator-more a,.back-link a{color:var(--accent);font-weight:600;text-decoration:none}.narrator-more a:hover,.back-link a:hover{text-decoration:underline}.back-link{margin:0 0 1rem}.narrator-row{color:var(--fg);flex-wrap:wrap;align-items:baseline;gap:.6rem;text-decoration:none;display:flex}.narrator-row:hover{border-color:var(--accent)}.narrator-row-name{font-weight:600;font-size:calc(1rem * var(--text-scale,1))}.narrator-row-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.85rem}.hadith-ref{flex-wrap:wrap;align-items:baseline;gap:.6rem;padding:.6rem 1rem;display:flex}.hadith-ref .grade-chip{margin-left:auto}.grade-summary{flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;display:flex}.grade-chip{border:1px solid var(--border);color:var(--muted);border-inline-start:4px solid var(--border);border-radius:999px;padding:.15rem .7rem;font-size:.8rem}.grade-sahih{color:#15803d;border-inline-start-color:#16a34a}.grade-hasan{color:#0f766e;border-inline-start-color:#0d9488}.grade-daif{color:#b91c1c;border-inline-start-color:#dc2626}.grade-other{color:#b45309;border-inline-start-color:#d97706}.grade-ungraded{border-inline-start-color:var(--border)}.ref .grade-chip{margin-left:auto}.grade-legend{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .75rem;display:flex}.verse-sahih{border-inline-start:4px solid #16a34a}.verse-hasan{border-inline-start:4px solid #0d9488}.verse-daif{border-inline-start:4px solid #dc2626}.verse-other{border-inline-start:4px solid #d97706}.grade-note{color:var(--muted);margin:0;font-size:.85rem;line-height:1.7}.grade-note a{color:var(--accent)}.search-section{margin-top:1.5rem}.search-section h2{color:var(--accent);border-bottom:1px solid var(--border);margin:0 0 .75rem;padding-bottom:.4rem;font-size:1.15rem}.authenticity .option{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem}.grade.implemented{color:#15803d;border-color:#16a34a}
