@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Source+Serif+4:ital,opsz,wght@0,8..60,300;0,8..60,600;1,8..60,300&family=Scheherazade+New:wght@400;600&family=Amiri:ital,wght@0,400;0,700;1,400&display=swap');

:root {
  --ink:#1a1611;--ink-mid:#3d3629;--ink-soft:#6b5f4e;--ink-faint:#a8987e;
  --paper:#f7f3ec;--paper-2:#ede7da;--paper-3:#e0d8c8;
  --gold:#8a6d2f;--gold-light:#c9a85c;--gold-pale:#f0e4c4;
  --rule:rgba(26,22,17,.12);--rule-strong:rgba(26,22,17,.25);
  --serif:'Source Serif 4','Libre Baskerville',Georgia,serif;
  --arabic:'Amiri','Scheherazade New','Noto Naskh Arabic','Traditional Arabic',serif;
  --mono:'Courier New',monospace;
  --r:3px;--rm:6px;--sh:0 1px 3px rgba(26,22,17,.08);
  --mark-bg:#ffe066;--mark-m:#c8e6ff;--mark-x:#ffb3b3;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);line-height:1.75;-webkit-font-smoothing:antialiased}
body.rtl{direction:rtl}
mark{background:var(--mark-bg);color:var(--ink);padding:0 1px;border-radius:2px}
mark.m{background:var(--mark-m)}
mark.x{background:var(--mark-x)}

/* ── HEADER ── */
.site-header{border-bottom:2px solid var(--ink);padding:14px 22px 10px;background:var(--paper);position:sticky;top:0;z-index:100}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.site-brand{display:flex;align-items:baseline;gap:.6rem;text-decoration:none}
.site-name{font-size:1.5rem;font-weight:normal;color:var(--ink);letter-spacing:-.01em}
body.rtl .site-name{font-family:var(--arabic);font-size:1.8rem}
.site-tagline{font-size:11px;color:var(--ink-soft);letter-spacing:.04em}
body.rtl .site-tagline{font-family:var(--arabic);font-size:13px;letter-spacing:0}
.site-nav{display:flex;gap:.1rem;align-items:center;flex-wrap:wrap}
.nav-link{font-size:12px;color:var(--ink-mid);text-decoration:none;padding:3px 10px;border-bottom:1px solid transparent;transition:border-color .12s,color .12s}
.nav-link:hover,.nav-link.active{border-bottom-color:var(--ink);color:var(--ink)}
body.rtl .nav-link{font-family:var(--arabic);font-size:14px}
.nav-lang-btn{font-size:11px;padding:3px 9px;border:1px solid var(--rule-strong);background:transparent;color:var(--gold);cursor:pointer;font-family:var(--serif);transition:background .12s;margin-left:.5rem;border-radius:var(--r)}
body.rtl .nav-lang-btn{margin-left:0;margin-right:.5rem;font-family:var(--arabic)}
.nav-lang-btn:hover{background:var(--gold-pale)}

/* ── BANNER ── */
.corpus-banner{background:var(--paper-2);border-bottom:1px solid var(--rule);padding:.75rem 22px}
.banner-inner{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}
.banner-stat{display:flex;flex-direction:column;gap:.1rem}
.banner-num{font-size:1.35rem;font-weight:600;color:var(--ink);line-height:1;font-family:var(--serif)}
.banner-lbl{font-size:10px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.07em}
body.rtl .banner-lbl{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:12px}
.banner-sep{width:1px;height:2rem;background:var(--rule-strong)}

/* ── SEARCH LAYOUT ── */
.search-layout{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 105px)}
body.rtl .search-layout{direction:rtl}
.sidebar{border-right:1px solid var(--rule-strong);padding:12px 10px;background:var(--paper-2);overflow-y:auto}
body.rtl .sidebar{border-right:none;border-left:1px solid var(--rule-strong)}
.sb-heading{font-size:10px;font-weight:bold;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--rule-strong);padding-bottom:5px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
body.rtl .sb-heading{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:12px}
.sb-btns{display:flex;gap:4px}
.btn-ghost{font-size:11px;padding:2px 6px;border:1px solid var(--rule-strong);background:var(--paper);color:var(--ink-soft);cursor:pointer;font-family:var(--serif);border-radius:var(--r);transition:background .1s}
.btn-ghost:hover{background:var(--paper-3);color:var(--ink)}
body.rtl .btn-ghost{font-family:var(--arabic);font-size:12px}

/* ── CATEGORY TREE ── */
.cat-group{margin-bottom:.6rem}
.cat-header{display:flex;align-items:center;gap:.35rem;padding:3px 4px;cursor:pointer;font-size:12px;font-weight:bold;color:var(--ink-mid);border-radius:var(--r);user-select:none}
body.rtl .cat-header{font-family:var(--arabic);font-size:14px}
.cat-header:hover{background:var(--paper-3)}
.cat-arrow{color:var(--gold-light);font-size:.6rem;transition:transform .18s;flex-shrink:0}
.cat-header.open .cat-arrow{transform:rotate(90deg)}
.cat-label{flex:1}
.cat-all-btn{font-size:10px;padding:1px 4px;border:1px solid var(--rule);background:transparent;color:var(--ink-faint);cursor:pointer;font-family:var(--serif);border-radius:2px}
body.rtl .cat-all-btn{font-family:var(--arabic);font-size:11px}
.cat-all-btn:hover{background:var(--gold-pale);color:var(--gold);border-color:var(--gold-light)}
.cat-body{padding-left:.7rem;display:none}
body.rtl .cat-body{padding-left:0;padding-right:.7rem}
.text-item{display:flex;align-items:flex-start;gap:.4rem;padding:4px 4px;border-bottom:1px solid var(--rule);cursor:pointer;border-radius:var(--r)}
.text-item:last-child{border-bottom:none}
.text-item:hover{background:var(--paper-3)}
.text-item input{margin-top:3px;flex-shrink:0;accent-color:var(--gold);cursor:pointer}
.text-item-text{flex:1}
.text-item-title{font-size:12px;color:var(--ink-mid);line-height:1.4}
body.rtl .text-item-title{font-family:var(--arabic);font-size:14px}
.text-item-author{font-size:10px;color:var(--ink-faint)}
body.rtl .text-item-author{font-family:var(--arabic);font-size:11px}
.text-info-btn{font-size:10px;color:var(--ink-faint);background:none;border:none;cursor:pointer;padding:1px 3px;border-radius:2px;flex-shrink:0;margin-top:1px}
.text-info-btn:hover{color:var(--gold);background:var(--gold-pale)}

/* ── MAIN AREA ── */
.main-area{display:flex;flex-direction:column;min-width:0}
.searchbar{border-bottom:1px solid var(--rule-strong);padding:10px 16px;background:var(--paper-2);display:flex;flex-direction:column;gap:7px}
.search-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
#q{flex:1;min-width:200px;padding:5px 8px;font-family:var(--serif);font-size:14px;border:1px solid var(--rule-strong);background:var(--paper);color:var(--ink);outline:none;border-radius:var(--r)}
body.rtl #q{font-family:var(--arabic);font-size:16px}
#q:focus{border-color:var(--gold)}
.filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.filter-label{font-size:10px;font-weight:bold;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}
body.rtl .filter-label{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:12px}
.btn-group{display:flex;border:1px solid var(--rule-strong);overflow:hidden;border-radius:var(--r)}
.btn-group button{font-family:var(--serif);font-size:11px;padding:3px 8px;border:none;border-right:1px solid var(--rule-strong);background:var(--paper);color:var(--ink-soft);cursor:pointer;white-space:nowrap}
body.rtl .btn-group button{font-family:var(--arabic);font-size:13px;border-right:none;border-left:1px solid var(--rule-strong)}
.btn-group button:last-child{border-right:none}
body.rtl .btn-group button:last-child{border-left:none}
.btn-group button.active{background:var(--ink);color:var(--paper)}
.btn-group button:hover:not(.active){background:var(--paper-3)}
select.ctrl-sel{padding:3px 6px;font-family:var(--serif);font-size:12px;border:1px solid var(--rule-strong);background:var(--paper);color:var(--ink);cursor:pointer;outline:none;border-radius:var(--r)}
body.rtl select.ctrl-sel{font-family:var(--arabic);font-size:14px}
.morph-label{display:flex;align-items:center;gap:4px;font-size:11px;cursor:pointer;white-space:nowrap;color:var(--ink-mid)}
body.rtl .morph-label{font-family:var(--arabic);font-size:13px}
.morph-hint{font-size:10px;color:var(--ink-faint);font-style:italic}
#excl{padding:3px 7px;font-family:var(--serif);font-size:12px;border:1px solid var(--rule-strong);width:150px;background:var(--paper);color:var(--ink);outline:none;border-radius:var(--r)}
body.rtl #excl{font-family:var(--arabic);font-size:14px}
#excl:focus{border-color:var(--gold)}

/* ── STATS BAR ── */
.stats-bar{padding:5px 16px;font-size:11px;color:var(--ink-soft);border-bottom:1px solid var(--rule);font-family:var(--mono);background:var(--paper)}
body.rtl .stats-bar{font-family:var(--arabic);font-size:12px;font-style:normal}

/* ── RESULTS ── */
#results{overflow-x:auto;flex:1}
.ptable{width:100%;border-collapse:collapse;font-size:13px}
.ptable thead th{text-align:left;font-size:10px;font-weight:bold;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-2);border-bottom:2px solid var(--rule-strong);border-top:1px solid var(--rule-strong);padding:6px 9px}
body.rtl .ptable thead th{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:12px;text-align:right}
.ptable thead th.th-ar{text-align:right}
.ptable tbody tr{border-bottom:1px solid var(--rule)}
.ptable tbody tr:hover{background:var(--gold-pale)}
.td-n{width:28px;padding:7px 3px 7px 8px;font-family:var(--mono);font-size:10px;color:var(--ink-faint);vertical-align:top;border-right:1px solid var(--rule);text-align:center}
.td-rel{width:36px;padding:7px 5px;vertical-align:middle;border-right:1px solid var(--rule)}
.rel-bar{display:block;background:var(--ink-mid);height:6px;min-width:1px;border-radius:1px}
.td-src{padding:7px 5px;font-size:10px;color:var(--ink-faint);vertical-align:top;border-right:1px solid var(--rule);max-width:70px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.rtl .td-src{font-family:var(--arabic);font-size:11px}
.td-en{padding:7px 9px;line-height:1.7;vertical-align:top;border-right:1px solid var(--rule);width:44%}
.td-ar{padding:7px 9px;font-family:var(--arabic);font-size:15px;line-height:2;direction:rtl;text-align:right;vertical-align:top;width:44%}
.td-dot{width:18px;padding:0;vertical-align:middle;text-align:center}
.align-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold-light);vertical-align:middle}

/* ── KWIC ── */
.conc-list{padding:0 16px}
.conc-item{padding:6px 0;border-bottom:1px solid var(--rule)}
.conc-meta{font-family:var(--mono);font-size:9px;color:var(--ink-faint);margin-bottom:2px;display:flex;gap:10px}
body.rtl .conc-meta{font-family:var(--arabic);font-size:11px}
.conc-en{display:grid;grid-template-columns:1fr auto 1fr;align-items:baseline;font-size:13px}
.conc-left{text-align:right;color:var(--ink-mid);overflow:hidden;padding-right:3px}
.conc-kw{font-weight:bold;color:var(--ink);background:var(--mark-bg);white-space:nowrap;padding:0 3px}
.conc-right{color:var(--ink-mid);padding-left:3px}
.conc-ar{font-family:var(--arabic);font-size:14px;direction:rtl;text-align:right;color:var(--ink-soft);padding-top:3px}

/* ── MESSAGES ── */
.msg{text-align:center;padding:40px 20px;color:var(--ink-soft);font-size:13px;font-style:italic}
body.rtl .msg{font-family:var(--arabic);font-size:15px;font-style:normal}
.spinner{display:inline-block;width:13px;height:13px;border:2px solid var(--paper-3);border-top-color:var(--ink-mid);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:5px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── EXPORT BTN ── */
.export-btn{font-size:11px;padding:3px 8px;border:1px solid var(--rule-strong);background:var(--paper);color:var(--ink-soft);cursor:pointer;font-family:var(--serif);border-radius:var(--r)}
body.rtl .export-btn{font-family:var(--arabic);font-size:13px}
.export-btn:hover{background:var(--paper-3)}

/* ── ANALYSIS ── */
.analysis-layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 105px)}
.an-sidebar{border-right:1px solid var(--rule-strong);padding:14px 12px;background:var(--paper-2)}
body.rtl .an-sidebar{border-right:none;border-left:1px solid var(--rule-strong)}
.an-main{padding:20px 22px 60px;overflow-x:auto}
.an-select{width:100%;padding:4px 7px;font-family:var(--serif);font-size:12px;border:1px solid var(--rule-strong);background:var(--paper);color:var(--ink);cursor:pointer;outline:none;border-radius:var(--r);margin-bottom:12px}
body.rtl .an-select{font-family:var(--arabic);font-size:14px}
.section{margin-bottom:32px}
.section h2{font-size:11px;font-weight:bold;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mid);border-bottom:2px solid var(--ink);padding-bottom:5px;margin-bottom:12px}
body.rtl .section h2{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:14px}
.note{font-size:11px;color:var(--ink-faint);font-style:italic;margin-bottom:10px}
body.rtl .note{font-family:var(--arabic);font-size:13px;font-style:normal}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:8px}
.stat-box{border:1px solid var(--rule-strong);padding:10px 12px;background:var(--paper-2);border-radius:var(--r)}
.stat-val{font-size:20px;font-weight:normal;color:var(--ink)}
.stat-lbl{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);margin-top:2px}
body.rtl .stat-lbl{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:12px}
.stat-sub{font-size:9px;color:var(--ink-faint);margin-top:1px}
body.rtl .stat-sub{font-family:var(--arabic);font-size:11px}
.tab-bar{display:flex;border-bottom:1px solid var(--rule-strong);margin-bottom:12px}
.tab{font-family:var(--serif);font-size:12px;padding:4px 12px;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;color:var(--ink-soft)}
body.rtl .tab{font-family:var(--arabic);font-size:14px}
.tab.active{color:var(--ink);border-bottom-color:var(--ink);font-weight:bold}
.tab:hover:not(.active){color:var(--ink-mid)}
.freq-table,.coll-table{width:100%;border-collapse:collapse;font-size:13px}
.freq-table thead th,.coll-table thead th{text-align:left;font-size:10px;font-weight:bold;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-2);border-bottom:2px solid var(--rule-strong);padding:5px 8px}
body.rtl .freq-table thead th,body.rtl .coll-table thead th{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:12px;text-align:right}
.freq-table tbody tr,.coll-table tbody tr{border-bottom:1px solid var(--rule)}
.freq-table tbody tr:hover,.coll-table tbody tr:hover{background:var(--paper-3)}
.freq-table td,.coll-table td{padding:4px 8px;vertical-align:middle}
.td-r{text-align:right;font-family:var(--mono);font-size:11px;color:var(--ink-soft)}
.td-ar-word{direction:rtl;text-align:right;font-family:var(--arabic);font-size:15px}
.bar-cell{width:80px;padding:4px 8px}
.bar{height:6px;background:var(--ink-mid);display:inline-block;min-width:1px;border-radius:1px}
.pmi-bar{height:6px;background:var(--ink-mid);display:inline-block;min-width:1px;border-radius:1px}

/* ── ABOUT / CITE ── */
.page-wrap-prose{max-width:760px;margin:0 auto;padding:32px 22px 80px}
.page-wrap-prose h1{font-size:1.6rem;font-weight:normal;margin-bottom:1.5rem}
body.rtl .page-wrap-prose h1{font-family:var(--arabic);font-size:1.8rem}
.page-wrap-prose h2{font-size:11px;font-weight:bold;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mid);border-bottom:2px solid var(--ink);padding-bottom:4px;margin:2rem 0 .9rem}
body.rtl .page-wrap-prose h2{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:14px}
.page-wrap-prose p{color:var(--ink-mid);margin-bottom:.85rem;line-height:1.8}
body.rtl .page-wrap-prose p{font-family:var(--arabic);font-size:17px;line-height:2.1}
.page-wrap-prose ul{padding-left:1.5rem;margin-bottom:.85rem}
body.rtl .page-wrap-prose ul{padding-left:0;padding-right:1.5rem}
.page-wrap-prose li{color:var(--ink-mid);margin-bottom:.4rem;line-height:1.8}
body.rtl .page-wrap-prose li{font-family:var(--arabic);font-size:17px;line-height:2}
.ornament{text-align:center;color:var(--gold-light);font-size:1rem;letter-spacing:.5em;margin:1.5rem 0}
.cite-box{background:var(--paper-2);border-left:3px solid var(--rule-strong);padding:.85rem 1rem;font-size:13px;color:var(--ink-mid);border-radius:0 var(--rm) var(--rm) 0;margin:.75rem 0;line-height:1.9}
body.rtl .cite-box{border-left:none;border-right:3px solid var(--rule-strong);border-radius:var(--rm) 0 0 var(--rm)}
.cite-box.ltr{direction:ltr;text-align:left;font-family:var(--serif)}
.cite-label{font-size:10px;font-weight:bold;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.3rem;margin-top:1rem}
body.rtl .cite-label{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:12px}
.cite-box pre{font-family:var(--mono);font-size:12px;white-space:pre-wrap}
.prov-table{width:100%;border-collapse:collapse;font-size:13px;margin:.75rem 0}
.prov-table th{text-align:left;font-size:10px;font-weight:bold;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-2);border-bottom:2px solid var(--rule-strong);padding:5px 8px}
body.rtl .prov-table th{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:12px;text-align:right}
.prov-table td{padding:5px 8px;border-bottom:1px solid var(--rule);color:var(--ink-mid);vertical-align:top;line-height:1.6}
.prov-table td.ar-cell{font-family:var(--arabic);font-size:14px;direction:rtl;text-align:right}
.book-page-card{background:var(--paper-2);border:1px solid var(--rule-strong);border-radius:var(--rm);padding:1.25rem 1.5rem;margin-bottom:1.5rem}
.book-page-title{font-size:1.25rem;font-weight:600;margin-bottom:.25rem}
body.rtl .book-page-title{font-family:var(--arabic);font-size:1.5rem}
.book-page-subtitle{font-size:13px;color:var(--ink-soft);margin-bottom:1rem;font-style:italic}
.book-page-row{display:flex;gap:.75rem;margin-bottom:.4rem;font-size:13px}
.book-page-key{font-size:10px;font-weight:bold;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);width:110px;flex-shrink:0;padding-top:1px}
body.rtl .book-page-key{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:12px;width:130px}
.book-page-val{color:var(--ink-mid)}
.book-page-desc{margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--rule);color:var(--ink-mid);line-height:1.8;font-size:13px}
body.rtl .book-page-desc{font-family:var(--arabic);font-size:16px;line-height:2.1}

/* ── MODAL ── */
.modal-backdrop{position:fixed;inset:0;background:rgba(26,22,17,.45);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}
.modal-box{background:var(--paper);border:1px solid var(--rule-strong);border-radius:var(--rm);padding:1.5rem;max-width:500px;width:100%;box-shadow:0 6px 24px rgba(26,22,17,.18)}
.modal-title{font-size:1rem;font-weight:600;margin-bottom:.85rem;padding-bottom:.5rem;border-bottom:1px solid var(--rule)}
body.rtl .modal-title{font-family:var(--arabic);font-size:1.2rem}
.modal-row{display:flex;gap:.75rem;margin-bottom:.45rem;font-size:13px}
.modal-key{font-size:10px;font-weight:bold;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);width:90px;flex-shrink:0;padding-top:1px}
body.rtl .modal-key{font-family:var(--arabic);text-transform:none;letter-spacing:0;font-size:12px;width:110px}
.modal-val{color:var(--ink-mid);line-height:1.6}
.modal-close{margin-top:1rem;padding:4px 14px;border:1px solid var(--rule-strong);background:transparent;font-family:var(--serif);font-size:13px;cursor:pointer;border-radius:var(--r);color:var(--ink-mid)}
body.rtl .modal-close{font-family:var(--arabic);font-size:14px}
.modal-close:hover{background:var(--paper-3)}
.copy-btn{font-size:11px;padding:2px 8px;border:1px solid var(--rule-strong);background:transparent;color:var(--ink-soft);cursor:pointer;font-family:var(--serif);border-radius:var(--r);margin-top:.4rem}
body.rtl .copy-btn{font-family:var(--arabic);font-size:13px}
.copy-btn:hover{background:var(--paper-3)}
.copy-btn.copied{color:var(--gold);border-color:var(--gold-light)}

/* ── RESPONSIVE ── */
@media(max-width:720px){
  .search-layout,.analysis-layout{grid-template-columns:1fr}
  .sidebar,.an-sidebar{border-right:none;border-left:none;border-bottom:1px solid var(--rule-strong)}
  .td-ar{display:none}
  .banner-inner{gap:.75rem}
}
