@font-face{font-family:Amiri;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/amiri-arabic-400-normal-D0NIBXga.woff2) format("woff2"),url(/assets/amiri-arabic-400-normal-C_1DQziU.woff) format("woff")}@font-face{font-family:Amiri;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/amiri-arabic-700-normal-D8FrblyB.woff2) format("woff2"),url(/assets/amiri-arabic-700-normal-dUd6sHq-.woff) format("woff")}:root{--dark-green: #2c5530;--deep-green: #1a3d1a;--accent-green: #4a6741;--gold: #d4af37;--dark-gold: #b8941f;--parchment: #fefcf7;--cream: #f4f1e8;--bg: #e8e4d9;--surface: #f8f6f0;--text: #1a1a1a;--muted: #4a6741;--border: #d9d3c3;--correct-green: #c3e6cb;--current-bg: rgba(255, 215, 0, .38);--ayah-band: rgba(212, 175, 55, .12);--done-text: #5d6b58;--danger: #b3261e;--on-green: #f4f1e8;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--parchment: #1d211c;--cream: #262b25;--bg: #121411;--surface: #181b17;--text: #ece8dc;--muted: #a9bfa2;--border: #353b33;--current-bg: rgba(212, 175, 55, .35);--ayah-band: rgba(212, 175, 55, .08);--done-text: #8e9a88;--correct-green: #2f5a37;--danger: #ff8a80}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}button,select,input{font:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 16px;background:var(--deep-green);color:var(--on-green);box-shadow:0 2px 8px #0003}.brand{font-weight:700;letter-spacing:.3px;white-space:nowrap}.nav{display:flex;align-items:center;gap:8px;flex:1 1 auto;flex-wrap:wrap}.nav select{padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:var(--on-green);max-width:180px}.nav select option{color:#1a1a1a}.pager{display:flex;align-items:center;gap:4px}.page-input{width:64px;text-align:center;padding:6px 4px;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:#ffffff14;color:var(--on-green)}.actions{display:flex;align-items:center;gap:8px}button{background:var(--dark-green);color:var(--on-green);border:none;border-radius:6px;padding:8px 14px;font-size:14px;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:var(--cream);color:var(--dark-green);border:1px solid var(--dark-gold)}@media(prefers-color-scheme:dark){button.secondary{color:var(--muted)}}button.icon{background:transparent;color:var(--on-green);font-size:20px;line-height:1;padding:6px 10px;border:1px solid rgba(255,255,255,.25)}.mode{display:flex;border:1px solid rgba(255,255,255,.25);border-radius:999px;overflow:hidden}.mode button{background:transparent;border-radius:0;padding:7px 12px}.mode button.on{background:#ffffff2e;font-weight:700}button.listen{background:var(--gold);color:#1a1a1a;font-weight:700;padding:9px 18px;border-radius:999px}button.listen.on{background:#c62828;color:#fff}.statusline{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 16px;font-size:14px;background:var(--surface);border-bottom:1px solid var(--border);color:var(--muted)}.statusline.live{color:var(--text)}.bar{flex:0 1 240px;height:6px;border-radius:3px;background:var(--border);overflow:hidden}.bar>span{display:block;height:100%;background:var(--gold);transition:width .2s ease}.pulse{width:10px;height:10px;border-radius:50%;background:#c62828;animation:pulse 1.2s ease-in-out infinite}@media(max-width:600px){.topbar{position:static}.nav select{max-width:150px}button.listen{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;padding:14px 22px;box-shadow:0 4px 16px #00000059}.page-column{padding-bottom:96px}}@keyframes pulse{50%{opacity:.3;transform:scale(.8)}}.warn{color:var(--danger);font-weight:600}.banner.error{padding:10px 16px;background:#b3261e1a;color:var(--danger);border-bottom:1px solid rgba(179,38,30,.3);font-size:14px}.layout{display:flex;align-items:flex-start}.page-column{flex:1 1 auto;min-width:0;padding:20px 16px 40px}.side-column{flex:0 0 360px;position:sticky;top:56px;max-height:calc(100vh - 56px);overflow:auto;padding:16px;background:var(--surface);border-left:1px solid var(--border)}@media(max-width:900px){.layout{flex-direction:column-reverse}.side-column{position:static;max-height:none;width:100%;flex-basis:auto;border-left:none;border-bottom:1px solid var(--border)}.brand{display:none}}.placeholder{text-align:center;padding:80px 16px;color:var(--muted)}.page-footer{max-width:900px;margin:18px auto 0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.mushaf-page{max-width:900px;margin:0 auto;background:var(--parchment);border:3px solid var(--gold);outline:1px solid var(--dark-gold);outline-offset:6px;border-radius:4px;box-shadow:0 4px 18px #0000002e;padding:22px 28px 18px}@media(max-width:600px){.mushaf-page{padding:12px 10px;outline-offset:3px}}.mushaf-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;margin-bottom:14px;background:var(--deep-green);color:var(--on-green);border-radius:3px;font-size:14px;letter-spacing:.3px}.mushaf-header .sura-name{color:var(--gold);font-weight:700;font-size:18px;font-family:Amiri,Noto Naskh Arabic,serif}.mushaf-body{text-align:justify;text-align-last:center;font-size:clamp(22px,3.2vw,32px);line-height:2.3;color:var(--text);font-family:Amiri,Scheherazade New,Traditional Arabic,Noto Naskh Arabic,serif}.sura-banner{text-align:center;margin:6px 0 12px;padding:8px 16px;border:2px solid var(--gold);border-radius:6px;background:linear-gradient(180deg,var(--dark-green),var(--deep-green));color:#f4f1e8;font-size:.8em;font-weight:700;line-height:1.8}.bismillah{text-align:center;margin:4px 0 10px;color:var(--accent-green);font-weight:700}@media(prefers-color-scheme:dark){.bismillah{color:var(--muted)}}.ayah{border-radius:6px;transition:background-color .2s ease;box-decoration-break:clone;-webkit-box-decoration-break:clone}.ayah.current-ayah{background-color:var(--ayah-band)}.word{border-radius:4px;padding:0 2px;cursor:pointer;transition:background-color .15s ease,color .15s ease;box-decoration-break:clone;-webkit-box-decoration-break:clone}.word:hover{background-color:#4a67411f}.word.done{color:var(--done-text)}.word.current{background-color:var(--current-bg);box-shadow:0 0 0 2px var(--gold);color:var(--text)}.ayah-marker{display:inline-block;min-width:1.55em;height:1.55em;line-height:1.55em;margin:0 .12em;vertical-align:middle;text-align:center;border:1.5px solid var(--dark-gold);border-radius:50%;color:var(--accent-green);font-size:.52em;font-weight:700}@media(prefers-color-scheme:dark){.ayah-marker{color:var(--gold)}}.panel{background:var(--parchment);border:1px solid var(--border);border-radius:8px;padding:14px;margin-bottom:14px}.panel h2{margin:0 0 10px;font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}.row{display:flex;align-items:flex-end;gap:8px;margin:8px 0;flex-wrap:wrap}.check{display:flex;align-items:center;gap:8px;font-size:13px;margin:6px 0}.field{display:flex;flex-direction:column;gap:2px}.field select{padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);max-width:100%}.engine-note{margin:4px 0 8px}.field input{width:120px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.badge{display:inline-block;padding:3px 9px;border-radius:10px;font-size:11px;font-weight:700;letter-spacing:.5px;border:1px solid var(--dark-gold);color:var(--text)}.badge.tracking{background:var(--correct-green)}.badge.searching{background:var(--current-bg)}.meta{font-size:12px;color:var(--muted);line-height:1.7}.debug-pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;white-space:pre-wrap;word-break:break-word;background:var(--cream);border-radius:6px;padding:8px;margin-top:8px;min-height:40px;max-height:200px;overflow:auto}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.dev-links a{color:inherit}.replay{display:grid;grid-template-columns:300px 1fr;height:100vh}.replay-list{overflow:auto;border-right:1px solid var(--dark-gold);background:var(--cream)}.replay-list header{position:sticky;top:0;background:var(--cream);padding:10px;display:grid;gap:6px;border-bottom:1px solid var(--dark-gold)}.replay-list .item{padding:8px 10px;border-bottom:1px solid rgba(0,0,0,.08);cursor:pointer}.replay-list .item.sel{background:#fff4c2}.replay-list .pad{padding:10px}.replay-main{height:100vh;overflow:hidden;padding:12px 16px;display:flex;flex-direction:column;gap:6px}.replay-main>*{flex:none}.replay-main>.meta{max-height:3.2em;overflow:auto}.replay-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.replay-main audio{width:100%}.replay-timeline{width:100%;height:70px;border:1px solid rgba(0,0,0,.15);background:#fff;cursor:pointer}.replay .legend .sw{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:middle}.replay-status{padding:6px 10px;border-radius:6px;background:#e8f0ec}.replay-status.searching{background:#fde2e2}.replay-body{flex:1 1 auto!important;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px}.replay-page{min-height:0;overflow:auto;overscroll-behavior:contain}.replay-side{min-height:0;overflow:hidden;display:flex;flex-direction:column}.replay-side section{flex:none}.replay-side section.replay-log{flex:1 1 auto;min-height:120px}.replay-side section{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:8px;padding:8px 10px;margin-bottom:10px}.replay-side h3{font-size:13px;margin:0 0 6px}.replay-side .ar{direction:rtl;font-size:17px;line-height:1.6}.replay-log{overflow:auto}.replay-log .ev{font-size:12px;padding:2px 4px;cursor:pointer;border-radius:4px}.replay-log .ev:hover{background:#f4f0e6}.replay-log .ev.cur{background:#fff4c2}.replay-log .ev.page{color:#6a1b9a}.replay-log .ev.state{color:#c62828}.replay-log .tm{color:#888;font-variant-numeric:tabular-nums;margin-right:4px}@media(prefers-color-scheme:dark){.replay-list,.replay-list header{background:#1d2420}.replay-side section,.replay-timeline{background:#151a17}}.replay-list header input,.replay-list header select{font:inherit;padding:3px 6px}.replay .tag{font-size:11px;padding:1px 6px;border-radius:9px;background:#eee;color:#444}.replay .tag.off{background:#fde2e2;color:#c62828}.replay .tag.exact{background:#dff3e6;color:#1b5e3f}.replay .tag.draft{background:#fff0c8;color:#8a6a00}.replay .chips{display:flex;flex-wrap:wrap;gap:3px;margin-top:2px}.replay .chip{font-size:10.5px;padding:0 5px;border-radius:8px;background:#e8f0ec;color:#1b5e3f}.replay .dirty{color:#c62828;font-weight:600}.replay button.small{padding:1px 6px;font-size:12px}.truth-row{display:flex;flex-wrap:wrap;align-items:center;gap:3px;padding:3px 2px;border-bottom:1px solid rgba(0,0,0,.06)}.truth-row.cur{background:#fff4c2}.truth-row input.t{width:52px;font:inherit;font-size:12px}.truth-row input.a{width:74px;font:inherit;font-size:12px}.truth-row .small-ar{width:100%;font-size:14px;color:#555}.stuck-list{max-height:30%;overflow:auto}.truth-row.suggested{opacity:.75;border-bottom-style:dashed}.banner.remind{padding:6px 12px;background:#e8590c1a;color:#a33f06;border:1px solid rgba(232,89,12,.35);border-radius:6px;font-size:14px}.banner.remind .ar{font-size:18px;color:#222}.replay-log h3{position:sticky;top:-8px;z-index:1;background:inherit;margin:-8px -10px 6px;padding:8px 10px 6px;border-bottom:1px solid rgba(0,0,0,.08)}.replay-side section.replay-log{background:#fff}@media(prefers-color-scheme:dark){.replay-side section.replay-log{background:#151a17}}.drive{height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column;background:var(--bg);color:var(--text)}.drive-top{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--deep-green);color:var(--on-green)}.drive-top button.icon{color:var(--on-green)}.drive-where{flex:1;font-size:15px}.drive-state{display:flex;align-items:center;gap:8px;font-size:15px}.drive-ayahs{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2.5vh;padding:2vh 5vw;font-family:Amiri,Scheherazade New,Traditional Arabic,Noto Naskh Arabic,serif;text-align:center}.drive-ayah{margin:0;line-height:1.9}.drive-ayahs>:first-child{margin-top:auto}.drive-ayahs>:last-child{margin-bottom:auto}.drive-top,button.drive-listen{flex:none}.drive-side{font-size:clamp(22px,4.5vw,32px);opacity:.45}.drive-current{font-size:clamp(34px,9vw,64px);font-weight:700;padding:1.5vh 2vw;border-radius:14px;background:var(--parchment);box-shadow:0 0 0 2px var(--border)}.drive .word{cursor:default}.drive .word:hover{background-color:transparent}.drive .word.current{background-color:var(--current-bg)}button.drive-listen{margin:12px auto calc(12px + env(safe-area-inset-bottom));min-width:min(80vw,420px);padding:18px 28px;font-size:22px;font-weight:700;border-radius:999px;background:var(--gold);color:#1a1a1a}button.drive-listen.on{background:#c62828;color:#fff}
