/* ===== โทนสีถนอมสายตา: ครีม + เขียวเสจ / กลางคืน: เทาเขียวเข้ม ===== */
:root{
  --bg:#f4efe4; --surface:#fbf8f1; --surface-2:#f0e9da; --text:#3a3631; --muted:#7a7166;
  --accent:#4f7a63; --accent-soft:#e2ece4; --border:#e3dac8; --ar:#2c3a31; --gold:#9a7b3f;
  --ar-size:1.7rem; --th-size:1.05rem; --radius:14px; --top-h:56px; --nav-w:320px;
  --shadow:0 1px 3px rgba(60,50,30,.07);
}
[data-theme="dark"]{
  --bg:#151917; --surface:#1d2320; --surface-2:#252c28; --text:#d7d2c5; --muted:#958e81;
  --accent:#88b299; --accent-soft:#23332a; --border:#2e3732; --ar:#e6dec9; --gold:#c9a96a; --shadow:none;
}
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--top-h) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Sarabun',system-ui,sans-serif;
  font-size:var(--th-size);line-height:1.75;padding-top:calc(var(--top-h) + env(safe-area-inset-top));
  transition:background .25s,color .25s}
body.no-scroll{overflow:hidden}
a{color:var(--accent);text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3{line-height:1.35}
.muted{color:var(--muted)}
[hidden]{display:none!important}

/* ===== Top bar (ซ่อนอัตโนมัติเมื่อเลื่อนลง) ===== */
.topbar{position:fixed;inset:0 0 auto 0;z-index:60;height:calc(var(--top-h) + env(safe-area-inset-top));
  padding:env(safe-area-inset-top) .5rem 0;display:flex;align-items:center;gap:.25rem;
  background:var(--surface);border-bottom:1px solid var(--border);transition:transform .25s ease}
.topbar.hide{transform:translateY(-100%)}
.icon-btn{width:42px;height:42px;display:grid;place-items:center;border:0;background:transparent;border-radius:10px;cursor:pointer}
.icon-btn:hover{background:var(--surface-2)}
.icon-btn svg{width:22px;height:22px}
.brand{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.15;color:var(--text)}
.brand-ar{font-family:'Amiri',serif;font-size:1.1rem;color:var(--accent);font-weight:700}
.brand-th{font-size:.75rem;color:var(--muted)}
.top-actions{display:flex;align-items:center;gap:.1rem}
.i-sun{display:none}
[data-theme="dark"] .i-sun{display:block}
[data-theme="dark"] .i-moon{display:none}
.install-btn{border:0;background:var(--accent);color:#fff;padding:.35rem .85rem;border-radius:999px;font-size:.85rem;font-weight:600;cursor:pointer;margin-left:.2rem}
[data-theme="dark"] .install-btn{color:#0f1411}

/* ===== Drawer (เมนูซ่อน/ขยาย) ===== */
.drawer{position:fixed;top:0;bottom:0;left:0;z-index:70;width:min(86vw,var(--nav-w));display:flex;flex-direction:column;
  background:var(--surface);border-right:1px solid var(--border);transform:translateX(-100%);
  transition:transform .25s ease;padding-top:env(safe-area-inset-top)}
.drawer.open{transform:none;box-shadow:6px 0 28px rgba(0,0,0,.18)}
.overlay{position:fixed;inset:0;z-index:65;background:rgba(0,0,0,.35);opacity:0;transition:opacity .25s}
.overlay.show{opacity:1}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:.5rem .5rem .5rem 1rem;border-bottom:1px solid var(--border)}
.drawer-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:.5rem .5rem calc(2rem + env(safe-area-inset-bottom))}
.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;padding:.25rem .25rem .5rem}
.quick-links a{padding:.5rem .7rem;border-radius:10px;background:var(--surface-2);color:var(--text);font-size:.9rem;text-align:center}
.quick-links a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}
.quick-links .span2{grid-column:span 2}
.nav-filter{width:calc(100% - .5rem);margin:.25rem;padding:.55rem .8rem;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;font-size:.92rem}
.nav-filter:focus{outline:2px solid var(--accent);outline-offset:0}
.nav-cat{margin:.15rem 0}
.nav-cat summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.55rem .75rem;border-radius:10px;font-weight:600;font-size:.95rem}
.nav-cat summary::-webkit-details-marker{display:none}
.nav-cat summary::before{content:'›';display:inline-block;width:.8rem;color:var(--muted);transition:transform .2s}
.nav-cat[open] summary::before{transform:rotate(90deg)}
.nav-cat summary:hover{background:var(--surface-2)}
.nav-cat ul{list-style:none;margin:0 0 .4rem;padding:0 0 0 .9rem}
.nav-cat li a{display:flex;align-items:center;gap:.5rem;padding:.4rem .7rem;border-radius:8px;color:var(--text);font-size:.9rem;line-height:1.4}
.nav-cat li a:hover{background:var(--surface-2)}
.nav-cat li a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}
.bn{min-width:1.6rem;font-size:.75rem;color:var(--muted)}
.cnt{margin-left:auto;font-size:.72rem;background:var(--surface-2);padding:0 .5rem;border-radius:999px;color:var(--muted);font-weight:500}
.cnt.zero{opacity:.45}

/* จอใหญ่: เมนูอยู่ด้านข้าง ไม่ทับเนื้อหา และพับเก็บได้ */
@media (min-width:1024px){
  .drawer{top:calc(var(--top-h) + env(safe-area-inset-top));transform:none;z-index:40;padding-top:0}
  .drawer .drawer-head{display:none}
  .nav-collapsed .drawer{transform:translateX(-100%)}
  .main{margin-left:var(--nav-w)}
  .nav-collapsed .main{margin-left:0}
  .overlay{display:none!important}
}

/* ===== Main ===== */
.main{padding:1rem 1rem calc(3rem + env(safe-area-inset-bottom));transition:margin .25s;outline:none}
.container{max-width:760px;margin:0 auto}
.crumbs{font-size:.82rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.35rem;margin:.25rem 0 .75rem}
.crumbs .sep{opacity:.5}
.page-head{margin-bottom:1rem}
.page-head h1{margin:.1rem 0 .2rem;font-size:1.4rem}
.page-ar{font-family:'Amiri',serif;font-size:1.4rem;color:var(--accent);margin:0}
.sec-title{font-size:1.05rem;margin:1.6rem 0 .7rem;color:var(--muted);font-weight:600}

/* Home */
.hero{text-align:center;padding:1.2rem .5rem .5rem}
.bismillah{font-family:'Amiri',serif;font-size:1.6rem;color:var(--accent);margin:0}
.hero h1{font-size:1.45rem;margin:.4rem 0 .2rem}
.search-fake{display:flex;align-items:center;gap:.5rem;margin:1rem auto 0;max-width:520px;padding:.75rem 1rem;border-radius:999px;
  background:var(--surface);border:1px solid var(--border);color:var(--muted);text-align:left;box-shadow:var(--shadow)}
.search-fake svg{width:18px;height:18px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1.2rem 0 0}
.stats div{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.6rem .3rem}
.stats b{display:block;font-size:1.3rem;color:var(--accent)}
.stats span{font-size:.75rem;color:var(--muted)}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.6rem}
.cat-card{display:flex;flex-direction:column;gap:.15rem;padding:.85rem .9rem;border-radius:var(--radius);background:var(--surface);
  border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow);transition:border-color .2s}
.cat-card:hover{border-color:var(--accent)}
.cat-ar{font-family:'Amiri',serif;font-size:1.15rem;color:var(--accent);text-align:right}
.cat-th{font-weight:600;line-height:1.4}
.cat-meta{font-size:.75rem;color:var(--muted)}

/* Lists */
.list{display:flex;flex-direction:column;gap:.45rem}
.row{display:flex;align-items:center;gap:.75rem;padding:.7rem .9rem;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--text)}
.row:hover{border-color:var(--accent)}
.row-no{min-width:2rem;height:2rem;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:.8rem;font-weight:700}
.row-main{display:flex;flex-direction:column;min-width:0}
.row-th{font-weight:600;line-height:1.4}
.row-ar{font-family:'Amiri',serif;color:var(--muted);text-align:left}

/* Bab (หมวดย่อย) */
.bab-jump{margin:0 0 1rem}
.bab-title{display:flex;flex-direction:column;gap:.1rem;font-size:1rem;margin:1.4rem 0 .6rem;padding:.6rem .8rem;border-left:4px solid var(--accent);background:var(--surface-2);border-radius:0 10px 10px 0}
.bab-ar{font-family:'Amiri',serif;font-size:1.2rem;color:var(--accent);text-align:right;font-weight:400}
.bab-th{font-weight:600}

/* Chips */
.chips{display:flex;gap:.4rem;overflow-x:auto;padding:.2rem 0 .4rem;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:.3rem .85rem;font-size:.85rem;cursor:pointer;white-space:nowrap}
.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
[data-theme="dark"] .chip.on{color:#0f1411}
.wrap{flex-wrap:wrap;overflow:visible}

/* ===== Hadith card ===== */
.hadith{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.1rem;margin:0 0 1rem;box-shadow:var(--shadow)}
.h-head{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}
.h-no{font-weight:700;margin-right:.2rem}
.badge{font-size:.7rem;padding:.02rem .55rem;border-radius:999px;border:1px solid;line-height:1.6}
.badge.sahih{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}
.badge.agreed{color:var(--accent);border-color:var(--border)}
.badge.pending{color:var(--gold);border-color:var(--gold)}
.badge.soft{color:var(--muted);border-color:var(--border)}
.h-meta{font-size:.8rem;margin-top:.2rem;color:var(--muted)}
.narrator{font-size:.9rem;color:var(--muted);margin:.6rem 0 .3rem}
.ar{font-family:'Amiri',serif;font-size:var(--ar-size);line-height:2.15;color:var(--ar);text-align:right;margin:.5rem 0 .8rem;
  padding:.7rem .9rem;background:var(--surface-2);border-radius:10px;word-spacing:.05em}
.block{margin:.55rem 0}
.block p{margin:0}
.lbl{display:block;font-size:.72rem;font-weight:700;color:var(--accent);letter-spacing:.03em;margin-bottom:.1rem}
.tr p{color:var(--muted);font-style:italic}
.hide-tr .tr,.hide-th .th{display:none}
.src{margin-top:.8rem;border-top:1px dashed var(--border);padding-top:.55rem;font-size:.86rem}
.src summary{cursor:pointer;color:var(--accent);font-weight:600}
.src dl{display:grid;grid-template-columns:auto 1fr;gap:.3rem .8rem;margin:.6rem 0 .2rem}
.src dt{color:var(--muted)}
.src dd{margin:0}
.ar-inline{font-family:'Amiri',serif;font-size:1.05rem}
.h-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.7rem;justify-content:flex-end}
.act{border:1px solid var(--border);background:transparent;border-radius:999px;padding:.25rem .8rem;font-size:.82rem;cursor:pointer}
.act:hover{border-color:var(--accent)}
.act.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent);font-weight:600}
mark{background:#f2e2a4;color:inherit;border-radius:3px;padding:0 2px}
[data-theme="dark"] mark{background:#5a4b1e}

/* Pager */
.pager{display:flex;justify-content:space-between;gap:.5rem;margin-top:1.5rem}
.pager a{flex:1;padding:.7rem .9rem;border-radius:12px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:.88rem;line-height:1.4}
.pager a small{display:block;color:var(--muted);font-size:.72rem}
.pager .next{text-align:right}

/* ===== Search ===== */
.search-head{position:sticky;top:calc(var(--top-h) + env(safe-area-inset-top));z-index:20;background:var(--bg);padding:.5rem 0 .3rem;margin:-.5rem 0 .5rem}
.search-box{display:flex;align-items:center;gap:.4rem;background:var(--surface);border:1.5px solid var(--border);border-radius:999px;padding:0 .4rem 0 .9rem}
.search-box:focus-within{border-color:var(--accent)}
.search-box svg{width:18px;height:18px;color:var(--muted);flex:none}
.search-box input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:1rem;padding:.7rem 0;outline:none}
.search-box input::-webkit-search-cancel-button{display:none}
.result-count{font-size:.85rem;margin:.3rem 0 .8rem}
.book-hits{margin-bottom:.8rem}
.empty{text-align:center;padding:2rem 1rem;color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius)}

/* ===== Settings & About ===== */
.set-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem 1rem;margin-bottom:1rem}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--border)}
.set-row:last-child{border-bottom:0}
.set-row input[type=range]{width:45%;accent-color:var(--accent)}
.set-row input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--accent)}
.seg{display:flex;gap:.3rem}
.seg label{cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;padding:.3rem .8rem;border-radius:999px;border:1px solid var(--border);font-size:.85rem}
.seg input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}
[data-theme="dark"] .seg input:checked+span{color:#0f1411}
.prose{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.2rem}
.prose h2{font-size:1.05rem;margin:1.2rem 0 .3rem;color:var(--accent)}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{margin:.3rem 0}
.btn{display:inline-block;border:0;background:var(--accent);color:#fff;padding:.55rem 1.1rem;border-radius:999px;cursor:pointer;font-weight:600}
[data-theme="dark"] .btn{color:#0f1411}

/* ===== Toast / To-top ===== */
.toast{position:fixed;left:50%;bottom:calc(1.2rem + env(safe-area-inset-bottom));transform:translate(-50%,150%);z-index:90;
  background:var(--text);color:var(--bg);padding:.55rem 1.1rem;border-radius:999px;font-size:.9rem;transition:transform .25s;max-width:90vw;text-align:center}
.toast.show{transform:translate(-50%,0)}
.to-top{position:fixed;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:30;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--border);background:var(--surface);color:var(--accent);display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.to-top svg{width:20px;height:20px}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ซ่อนจุดหรือปรับแต่ง Scrollbar ไม่ให้มีรอยเปื้อน */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.15);
  border-radius: 999px;
}
[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
}