/* Noor Library reader. Scoped to .noor-reader so it sits inside any theme. */
:root {
	--noor-scale: 1;
	--noor-bg: #fbf8f1;
	--noor-card: #ffffff;
	--noor-fg: #1d2622;
	--noor-muted: #5d6a63;
	--noor-line: #e6dfcf;
	--noor-accent: #17624a;
	--noor-accent-soft: #e3f0ea;
	--noor-gold: #9a7428;
	--noor-good: #17624a;
	--noor-good-bg: #e3f0ea;
	--noor-warn: #8a5a00;
	--noor-warn-bg: #fbf0d9;
	--noor-bad: #a32d22;
	--noor-bad-bg: #f9e3e0;
	--noor-radius: 12px;
	--noor-ur-font: "Jameel Noori Nastaleeq", "Noto Nastaliq Urdu", "Noto Naskh Arabic", serif;
	--noor-ar-font: "Amiri", "Noto Naskh Arabic", "Traditional Arabic", serif;
}
html.noor-dark {
	--noor-bg: #121715;
	--noor-card: #1a211e;
	--noor-fg: #e5ebe7;
	--noor-muted: #9aa8a0;
	--noor-line: #2c3631;
	--noor-accent: #6fcba5;
	--noor-accent-soft: #1f3a2f;
	--noor-gold: #d9b15f;
	--noor-good: #6fcba5;
	--noor-good-bg: #1f3a2f;
	--noor-warn: #e8b74f;
	--noor-warn-bg: #3a2f17;
	--noor-bad: #f08a7e;
	--noor-bad-bg: #3d1f1c;
}
html.noor-dark body { background: var(--noor-bg); color: var(--noor-fg); }

.noor-reader {
	color: var(--noor-fg);
	font-size: calc(1rem * var(--noor-scale));
	line-height: 1.65;
	-webkit-text-size-adjust: 100%;
}
.noor-reader a { color: var(--noor-accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.noor-reader *, .noor-reader *::before, .noor-reader *::after { box-sizing: border-box; }
.noor-hadith, .noor-sahabi, .noor-event, .noor-check {
	background: var(--noor-bg);
	border: 1px solid var(--noor-line);
	border-radius: var(--noor-radius);
	padding: clamp(16px, 3vw, 32px);
}

/* Toolbar */
.noor-toolbar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: flex-end; margin-bottom: 14px; }
.noor-toolbar button {
	font: inherit; font-size: 14px; min-width: 40px; min-height: 36px; padding: 4px 10px;
	background: var(--noor-card); color: var(--noor-fg); border: 1px solid var(--noor-line); border-radius: 999px; cursor: pointer;
}
.noor-toolbar button:hover { border-color: var(--noor-accent); }
.noor-toolbar button[data-noor-act="lang"][aria-pressed="false"] { opacity: .45; text-decoration: line-through; }
.noor-toolbar button[data-noor-act="dark"][aria-pressed="true"] { background: var(--noor-accent); color: var(--noor-bg); border-color: var(--noor-accent); }
.noor-sep { width: 1px; height: 22px; background: var(--noor-line); margin: 0 4px; }

.noor-crumbs { font-size: 14px; color: var(--noor-muted); margin-bottom: 18px; }
.noor-crumbs a { color: var(--noor-muted); }

/* Headings */
.noor-head { border-bottom: 1px solid var(--noor-line); padding-bottom: 14px; margin-bottom: 18px; }
.noor-kicker { font-size: .9em; font-weight: 600; letter-spacing: .02em; display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; }
.noor-kicker a { text-decoration: none; }
.noor-book { color: var(--noor-muted); font-size: .92em; margin-top: 4px; display: flex; flex-wrap: wrap; gap: 10px; justify-content: space-between; }
.noor-chapter { font-size: 1.15em; margin: 10px 0 0; display: flex; flex-direction: column; gap: 4px; font-weight: 600; }
.noor-ur-inline { font-family: var(--noor-ur-font); line-height: 2.1; }
.noor-ra { font-family: var(--noor-ur-font); color: var(--noor-gold); font-size: .9em; }
.noor-narrator { margin: 0 0 14px; }

/* Texts */
.noor-texts { display: grid; gap: 14px; }
.noor-text { background: var(--noor-card); border: 1px solid var(--noor-line); border-radius: var(--noor-radius); padding: 16px 18px; overflow-wrap: anywhere; }
.noor-ar { font-family: var(--noor-ar-font); font-size: 1.55em; line-height: 2.1; text-align: right; }
.noor-ur { font-family: var(--noor-ur-font); font-size: 1.22em; line-height: 2.45; text-align: right; }
.noor-roman { font-style: italic; color: var(--noor-fg); }
.noor-en { font-size: 1.02em; }
.noor-text.noor-ar { border-right: 4px solid var(--noor-gold); }
.noor-text.noor-ur { border-right: 4px solid var(--noor-accent); }
.noor-text.noor-en, .noor-text.noor-roman { border-left: 4px solid var(--noor-line); }

html[data-noor-hide~="ar"] .noor-reader [data-lang="ar"],
html[data-noor-hide~="ur"] .noor-reader [data-lang="ur"],
html[data-noor-hide~="roman"] .noor-reader [data-lang="roman"],
html[data-noor-hide~="en"] .noor-reader [data-lang="en"] { display: none; }

/* Reference table */
.noor-refs { width: 100%; border-collapse: collapse; margin: 18px 0 0; font-size: .92em; }
.noor-refs th, .noor-refs td { text-align: left; padding: 9px 10px; border-bottom: 1px solid var(--noor-line); vertical-align: top; background: transparent; }
.noor-refs th { width: 38%; color: var(--noor-muted); font-weight: 500; }
.noor-refs th span { font-family: var(--noor-ur-font); }

/* Badges */
.noor-badge { display: inline-flex; gap: 6px; align-items: center; font-size: .82em; font-weight: 600; padding: 2px 10px; border-radius: 999px; white-space: nowrap; }
.noor-badge span { font-family: var(--noor-ur-font); font-weight: 400; line-height: 1.9; }
.noor-tone-good { background: var(--noor-good-bg); color: var(--noor-good); }
.noor-tone-warn { background: var(--noor-warn-bg); color: var(--noor-warn); }
.noor-tone-bad { background: var(--noor-bad-bg); color: var(--noor-bad); }

/* Actions */
.noor-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
.noor-btn {
	font: inherit; font-size: 14px; display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 14px;
	border-radius: 999px; border: 1px solid var(--noor-accent); background: var(--noor-accent); color: var(--noor-bg) !important; text-decoration: none; cursor: pointer;
}
.noor-btn span { font-family: var(--noor-ur-font); }
.noor-wa { background: #1f8f4e; border-color: #1f8f4e; color: #fff !important; }
.noor-ghost { background: transparent; color: var(--noor-accent) !important; }

/* Sections and lists */
.noor-section { margin-top: 26px; }
.noor-h { font-size: 1.05em; margin: 0 0 10px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; border-bottom: 1px solid var(--noor-line); padding-bottom: 6px; }
.noor-list, .noor-grid, .noor-books, .noor-timeline, .noor-sources { list-style: none; margin: 0; padding: 0; }
.noor-list { display: grid; gap: 8px; }
.noor-card { background: var(--noor-card); border: 1px solid var(--noor-line); border-radius: var(--noor-radius); padding: 12px 14px; }
.noor-hcard-title { font-weight: 600; margin-right: 6px; }
.noor-hcard p { margin: 6px 0 0; font-size: .95em; line-height: 2.1; color: var(--noor-fg); }
.noor-hcard p.noor-en { line-height: 1.6; }
.noor-muted { color: var(--noor-muted); font-size: .88em; }
.noor-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.noor-chip { display: inline-flex; gap: 6px; align-items: center; padding: 3px 12px; border-radius: 999px; background: var(--noor-accent-soft); color: var(--noor-accent) !important; text-decoration: none; font-size: .9em; }
.noor-chip span { font-family: var(--noor-ur-font); line-height: 2; }
.noor-chip.is-on { background: var(--noor-accent); color: var(--noor-bg) !important; }
.noor-filters { margin-bottom: 14px; }
.noor-sources { list-style: decimal; padding-left: 20px; font-size: .9em; color: var(--noor-muted); }

.noor-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.noor-grid .noor-card a { display: flex; flex-direction: column; gap: 2px; text-decoration: none; color: var(--noor-fg); height: 100%; }
.noor-grid .noor-card:hover { border-color: var(--noor-accent); }
.noor-grid .noor-ur-inline { color: var(--noor-accent); font-size: 1.15em; text-align: right; }

/* Books (collection page) */
.noor-books { display: grid; gap: 8px; margin: 16px 0; }
.noor-books a { display: grid; grid-template-columns: 2.5em 1fr auto; grid-template-areas: "no en range" "no ur range"; gap: 0 12px; text-decoration: none; color: var(--noor-fg); align-items: center; }
.noor-book-no { grid-area: no; font-weight: 700; color: var(--noor-gold); font-size: 1.1em; }
.noor-book-en { grid-area: en; font-weight: 600; }
.noor-book-ur { grid-area: ur; font-family: var(--noor-ur-font); text-align: right; line-height: 2.1; }
.noor-books .noor-muted { grid-area: range; }
.noor-archive-ur { font-size: 1.4em; }

/* Timeline */
.noor-timeline { position: relative; padding-left: 22px; border-left: 2px solid var(--noor-line); margin-left: 6px; }
.noor-era { margin: 22px 0 10px -32px; font-weight: 700; display: flex; justify-content: space-between; gap: 8px; background: var(--noor-accent-soft); color: var(--noor-accent); padding: 6px 12px; border-radius: 999px; }
.noor-era span[lang="ur"] { font-family: var(--noor-ur-font); font-weight: 400; }
.noor-tl-item { position: relative; margin: 0 0 16px; }
.noor-tl-item::before { content: ""; position: absolute; left: -29px; top: 7px; width: 12px; height: 12px; border-radius: 50%; background: var(--noor-gold); border: 2px solid var(--noor-bg); }
.noor-tl-date { display: block; font-size: .82em; color: var(--noor-gold); font-weight: 600; }
.noor-tl-title { font-weight: 600; font-size: 1.05em; }
.noor-tl-item p { margin: 4px 0; color: var(--noor-muted); }

/* Profile facts */
.noor-name-ar { font-size: 1.8em; }
.noor-name-ur { font-size: 1.5em; }
.noor-facts { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--noor-muted); font-size: .92em; margin: 8px 0; }
.noor-body { margin-top: 10px; }

/* Hadith check */
.noor-claim { margin: 0 0 16px; background: var(--noor-card); border: 1px dashed var(--noor-line); border-radius: var(--noor-radius); padding: 14px 18px; }
.noor-claim figcaption { font-size: .82em; text-transform: uppercase; letter-spacing: .05em; color: var(--noor-muted); }
.noor-claim figcaption span { font-family: var(--noor-ur-font); text-transform: none; }
.noor-claim blockquote { margin: 8px 0 0; border: 0; padding: 0; font-style: normal; }
.noor-verdict { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; padding: 14px 18px; border-radius: var(--noor-radius); margin-bottom: 16px; }
.noor-verdict strong { font-size: 1.35em; }
.noor-verdict .noor-ur-inline { font-size: 1.25em; }
.noor-verdict-label { font-size: .8em; text-transform: uppercase; letter-spacing: .05em; width: 100%; opacity: .85; }
.noor-verdict-label span { font-family: var(--noor-ur-font); text-transform: none; }

/* Daily hadith */
.noor-daily { background: var(--noor-bg); border: 1px solid var(--noor-line); border-radius: var(--noor-radius); padding: clamp(16px, 3vw, 28px); display: grid; gap: 12px; }
.noor-daily-label { font-weight: 700; color: var(--noor-gold); display: flex; justify-content: space-between; }
.noor-daily-label span { font-family: var(--noor-ur-font); font-weight: 400; }
.noor-daily-ref { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* Search */
.noor-search { display: flex; flex-wrap: wrap; gap: 8px; background: var(--noor-bg); border: 1px solid var(--noor-line); border-radius: var(--noor-radius); padding: 14px; margin-bottom: 18px; }
.noor-search input[type="search"] { flex: 1 1 260px; min-height: 46px; padding: 8px 14px; font-size: 16px; border: 1px solid var(--noor-line); border-radius: 999px; background: var(--noor-card); color: var(--noor-fg); }
.noor-search select { min-height: 46px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--noor-line); background: var(--noor-card); color: var(--noor-fg); font-size: 15px; }
.noor-search button { min-height: 46px; padding: 0 20px; border-radius: 999px; border: 0; background: var(--noor-accent); color: var(--noor-bg); font-size: 15px; font-weight: 600; cursor: pointer; }
.noor-search button span { font-family: var(--noor-ur-font); font-weight: 400; }
.noor-hint { width: 100%; margin: 0; font-size: 13px; color: var(--noor-muted); }

.noor-pager { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--noor-line); font-size: .92em; }
.noor-review { margin: 22px 0 0; font-size: .85em; color: var(--noor-muted); }
.noor-sharh { line-height: 1.8; }

@media (max-width: 600px) {
	.noor-refs th { width: 42%; }
	.noor-ar { font-size: 1.4em; }
	.noor-era { margin-left: -28px; }
}
@media print {
	.noor-toolbar, .noor-actions, .noor-pager, .noor-search { display: none !important; }
}
