@font-face{font-family:surah-header;src:url(/fonts/qpc-v1/surah-header.woff2) format("woff2");font-display:swap}:root{--ink: #1e293b;--ink-soft: #64748b;--paper: #fdfcf9;--canvas: #f8fafc;--band: #ffffff;--border: #e2e8f0;--accent: #1e40af;--accent-dark: #1e3a8a;--accent-wash: #eff6ff;--on-accent: #ffffff;--danger: #c0453c;--danger-dark: #9d362e;--topbar: #0f172a;--topbar-ink: #e2e8f0;--stuck-1: #6aa9e0;--stuck-2: #2f6fb5;--stuck-3: #7a4bbd;--stuck: var(--stuck-2);--sev-1: rgba(244, 197, 66, .42);--sev-2: rgba(232, 145, 52, .45);--sev-3: rgba(214, 77, 68, .42);--sev-1-edge: #d9a92c;--sev-2-edge: #cf7a24;--sev-3-edge: #c0453c}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Lato,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.account-bar{background:var(--topbar);color:var(--topbar-ink);border-bottom:2px solid var(--accent)}.account-bar-inner{max-width:760px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.85rem}.account-bar .link-btn{color:var(--topbar-ink);opacity:.85}.account-actions{display:flex;align-items:center;gap:10px}.account-who{display:inline-flex;align-items:center}.icon-btn{border:1px solid rgba(255,255,255,.25);background:none;color:var(--topbar-ink);width:24px;height:24px;border-radius:999px;font-size:.85rem;line-height:1;font-family:inherit;cursor:pointer;opacity:.8;display:inline-flex;align-items:center;justify-content:center;padding:0}.icon-btn:hover,.icon-btn.is-open{opacity:1;background:#ffffff1f}.nav-menu{position:relative;display:inline-flex}.nav-popover{position:absolute;top:calc(100% + 8px);inset-inline-end:0;z-index:60;width:15rem;padding:12px 14px;border-radius:6px;background:var(--band);color:var(--ink);border:1px solid var(--border);box-shadow:0 8px 24px #0000002e;text-align:start;font-size:.82rem;line-height:1.5}.nav-popover.is-wide{width:22rem}.nav-popover h3{font-size:.9rem;margin-bottom:8px}.nav-popover p+p{margin-top:8px}.nav-choice{display:flex;align-items:baseline;gap:6px;padding:4px 0;cursor:pointer}.nav-note{display:block;color:var(--ink-soft);font-size:.74rem}.account-bar .link-btn:hover{opacity:1}.brand{display:block;flex:0 0 auto;line-height:0;border-radius:4px}.brand img{height:28px;width:auto}.brand:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}.app{max-width:760px;margin:0 auto;padding:0 16px}.splash{max-width:420px;margin:15vh auto 0;text-align:center}.pill{margin-inline-start:8px;padding:1px 8px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.primary-btn{border:1px solid var(--accent-dark);background:var(--accent);color:var(--on-accent);padding:8px 16px;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:700;font-family:inherit;letter-spacing:.02em;transition:background-color .12s ease}.primary-btn:hover:not(:disabled){background:var(--accent-dark)}.primary-btn:disabled{opacity:.45;cursor:not-allowed}.danger-btn{border:1px solid var(--danger-dark);background:var(--danger);color:var(--on-accent);border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:700;font-family:inherit;letter-spacing:.02em;transition:background-color .12s ease}.danger-btn:hover:not(:disabled){background:var(--danger-dark)}.danger-btn:disabled{opacity:.45;cursor:not-allowed}.link-btn{border:none;background:none;color:var(--ink-soft);text-decoration:underline;cursor:pointer;font-size:.8rem;padding:0;padding-inline-start:8px}.session-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--border);border-inline-start:3px solid var(--border);border-radius:8px;background:var(--band);font-size:.85rem;margin-bottom:0}.session-bar.is-active{border-color:var(--accent);border-inline-start-color:var(--accent);background:var(--accent-wash)}.target-picker{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.target-picker label{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-soft)}.target-picker select{border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:.85rem;font-family:inherit;background:var(--band);color:var(--ink)}.session-setup,.session-live{display:flex;flex-direction:column;gap:8px}.session-range{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.range-part{display:inline-flex;align-items:baseline;gap:5px}.range-label,.range-arrow{color:var(--ink-soft);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.range-note{color:var(--ink-soft);font-size:.72rem;font-style:italic}.range-mode{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px;font-size:.85rem}.range-mode label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.range-mode select{flex:1;min-width:12rem}.session-points :disabled{opacity:.55;cursor:not-allowed}.session-points{display:flex;gap:14px;flex-wrap:wrap}.ayah-point{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-soft)}.ayah-point-label{text-transform:uppercase;letter-spacing:.04em;font-size:.72rem}.ayah-point-sep{color:var(--ink-soft)}.combobox{position:relative;display:inline-block}.combobox-input{border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:.85rem;font-family:inherit;background:var(--band);color:var(--ink);width:100%}.combobox-input:disabled{opacity:.6;cursor:not-allowed}.ayah-point-surah{width:13rem}.ayah-point-ayah{width:5rem}.combobox-list{position:absolute;z-index:20;top:calc(100% + 4px);left:0;min-width:100%;max-height:240px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--band);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #0000001f;white-space:nowrap}.combobox-list li{padding:6px 8px;border-radius:8px;cursor:pointer;font-size:.85rem;color:var(--ink)}.combobox-list li.is-active{background:var(--accent-wash)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:100%;max-width:520px;max-height:85vh;overflow-y:auto;background:var(--band);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:6px;padding:20px;box-shadow:0 10px 40px #00000040}.modal h2{font-size:1.1rem;font-weight:900;margin:0 0 6px}.modal h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin:0 0 8px;display:flex;align-items:center;gap:8px}.modal-lede{font-size:.85rem;color:var(--ink-soft);margin:0 0 16px;line-height:1.5}.modal-section{padding-top:14px;border-top:1px solid var(--border);margin-bottom:14px}.modal-section .empty{font-size:.85rem;color:var(--ink-soft);margin:0}.modal-error{color:var(--sev-3-edge);font-size:.8rem;margin:8px 0 0}.confirm-marks{list-style:none;margin:0;padding:0;font-size:.85rem;max-height:220px;overflow-y:auto}.confirm-marks li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid var(--border)}.confirm-marks li:last-child{border-bottom:none}.mark-types{display:inline-flex;gap:4px}.tag{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:1px 6px}.tag-stuck{border:1.5px solid var(--stuck);color:var(--stuck)}.tag-mistake{background:var(--sev-1);border:1px solid var(--sev-1-edge);color:var(--ink)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:14px;border-top:1px solid var(--border)}.modal-actions .clear-btn{margin-inline-start:0}.notice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-radius:6px;background:var(--accent-wash);border:1px solid #bfdbfe;font-size:.85rem;margin:0 0 12px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:8px}.tabs button{border:none;background:none;padding:8px 14px;cursor:pointer;font-size:.9rem;color:var(--ink-soft);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.is-active{color:var(--ink);font-weight:700;border-bottom-color:var(--accent)}.tabs button:hover{color:var(--ink)}.roster-class{display:flex;align-items:center;gap:12px}.roster-class select{flex:1;min-width:0}.roster-actions{display:inline-flex;align-items:center;gap:10px}.roster-who{display:flex;flex-direction:column;gap:1px}.roster-email{font-size:.78rem;color:var(--ink-soft)}.search-wrap{position:relative}.search-results{list-style:none;margin:6px 0 0;padding:4px;border:1px solid var(--border);border-radius:6px;background:var(--band);max-height:220px;overflow-y:auto;font-size:.85rem}.search-results li{padding:2px 4px}.search-results .link-btn{padding:4px 6px;text-decoration:none;color:var(--ink);width:100%;text-align:start}.search-results .link-btn:hover{background:var(--accent-wash);border-radius:8px}.search-results .muted{color:var(--ink-soft);padding:6px}.teacher-panel h2{font-size:1.05rem;font-weight:900;margin:0 0 14px}.teacher-panel h3{font-size:.9rem;margin:0 0 4px;display:flex;align-items:center;justify-content:space-between;gap:8px}.quota{font-size:.75rem;font-weight:400;color:var(--ink-soft);border:1px solid var(--border);border-radius:999px;padding:1px 8px}.panel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:12px}.panel-card{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--band)}.panel-card input,.panel-card select{border:1px solid var(--border);border-radius:6px;padding:7px 10px;font-size:.85rem;font-family:inherit;width:100%}.inline-form{display:flex;gap:8px}.roster{list-style:none;margin:0;padding:0;font-size:.85rem}.roster li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.roster li:last-child{border-bottom:none}.role{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);margin-inline-start:6px}.splash h1{font-size:1.6rem;font-weight:900;letter-spacing:-.01em;margin-bottom:6px}.splash h1:after{content:"";display:block;width:48px;height:3px;background:var(--accent);margin-top:10px;margin-inline:auto}.splash h1.splash-logo{display:flex;justify-content:center;margin-bottom:18px;line-height:0}.splash h1.splash-logo:after{content:none}.splash-logo img{flex:0 0 auto;width:min(420px,calc((100vw - 32px)*.75));height:auto;border-radius:16px;box-shadow:0 10px 30px #0f172a2e}:root{--amplify-colors-primary-10: var(--accent-wash);--amplify-colors-primary-20: #dbeafe;--amplify-colors-primary-40: #93c5fd;--amplify-colors-primary-60: #3b82f6;--amplify-colors-primary-80: var(--accent);--amplify-colors-primary-90: var(--accent-dark);--amplify-colors-primary-100: var(--accent-dark);--amplify-fonts-default-variable: inherit;--amplify-fonts-default-static: inherit;--amplify-components-authenticator-container-width-max: min(420px, calc(100vw - 32px) );--amplify-components-authenticator-form-padding: 24px 28px}.splash [data-amplify-authenticator]{margin-top:20px;text-align:start}.splash [data-amplify-authenticator] [data-amplify-router]{background:var(--band);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 16px #0f172a0f;overflow:hidden}.splash [data-amplify-authenticator] input{direction:ltr}.subtitle{color:var(--ink-soft);font-size:.9rem;margin-top:10px;line-height:1.55}.legend{display:flex;align-items:center;gap:16px;margin:0;font-size:.85rem;flex:none}.legend-item{display:inline-flex;align-items:center;gap:6px}.swatch{width:14px;height:14px;border-radius:3px;display:inline-block}.swatch-stuck{background:transparent;border:1.5px solid var(--stuck)}.swatch-sev-1{background:var(--sev-1);border:1px solid var(--sev-1-edge)}.swatch-sev-2{background:var(--sev-2);border:1px solid var(--sev-2-edge)}.swatch-sev-3{background:var(--sev-3);border:1px solid var(--sev-3-edge)}.severity-scale{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;color:var(--ink-soft)}.clear-btn{margin-inline-start:auto;border:1px solid var(--border);background:var(--band);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:.85rem}.clear-btn:hover{background:var(--accent-wash)}.mode-toggle{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.mode-toggle button{display:inline-flex;align-items:center;gap:6px;border:none;background:var(--band);padding:5px 10px;cursor:pointer;font-size:.85rem;color:var(--ink)}.mode-toggle button+button{border-inline-start:1px solid var(--border)}.mode-toggle button.is-active{background:var(--ink);color:var(--paper)}.analytics{padding:8px 0 40px}.analytics-picker{flex-wrap:wrap;margin-bottom:16px}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:18px}.stat{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px solid var(--border);border-inline-start:3px solid var(--accent);border-radius:8px;background:var(--band)}.stat-value{font-size:1.3rem;font-weight:900}.stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.analytics-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.inline-check{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--ink-soft)}.analytics-legend{font-size:.8rem;color:var(--ink-soft);line-height:1.5;margin:10px 0 12px}.table-scroll{overflow-x:auto}.analytics-table{width:100%;border-collapse:collapse;font-size:.85rem}.analytics-table th,.analytics-table td{text-align:start;padding:7px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.analytics-table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);border-bottom:2px solid var(--border)}.analytics-table tbody th{font-weight:700}.analytics-table tr.is-unread{color:var(--ink-soft);opacity:.65}.coverage-bar{display:inline-block;vertical-align:middle;width:90px;height:8px;border-radius:999px;background:var(--border);overflow:hidden;margin-inline-end:8px}.coverage-fill{display:block;height:100%;background:var(--accent)}.coverage-pct{font-variant-numeric:tabular-nums}.unit-link{border:none;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px}.unit-link:hover{text-decoration-color:var(--accent)}.trend{margin:14px 0 18px;padding:12px 14px;border:1px solid var(--border);border-radius:6px;background:var(--band)}.trend-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.trend-head h3{font-size:.95rem;flex:1}.trend-key{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;color:var(--ink-soft)}.trend-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.trend-swatch.is-mistake{background:var(--sev-3-edge)}.trend-swatch.is-stuck{background:var(--stuck)}.trend-svg{display:block;width:100%;height:auto;margin-top:8px}.trend-grid{stroke:var(--border);stroke-width:1}.trend-axis{fill:var(--ink-soft);font-size:11px}.trend-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.trend-line.is-mistake,.trend-dot.is-mistake{stroke:var(--sev-3-edge);fill:var(--sev-3-edge)}.trend-line.is-stuck,.trend-dot.is-stuck{stroke:var(--stuck);fill:var(--stuck)}.trend-line.is-mistake,.trend-line.is-stuck{fill:none}.analytics-subhead{font-size:.95rem;margin:26px 0 8px}.session-history{list-style:none;margin:0;padding:0;font-size:.85rem}.session-history li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 10px;border-bottom:1px solid var(--border)}.session-history li.is-active{background:var(--accent-wash)}.history-when{min-width:8.5rem}.history-time{color:var(--ink-soft)}.history-range{flex:1;min-width:14rem}.history-counts{display:inline-flex;align-items:center;gap:6px}.history-clean{color:var(--ink-soft);font-size:.78rem}.tag-live{background:var(--accent);color:var(--on-accent);font-weight:700}.mushaf-view{display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.page-stage-viewport{flex:1;min-height:0;display:flex;position:relative}.page-stage{flex:1;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;align-items:safe center;justify-content:safe center;overflow:hidden;position:relative}.page-stage.is-zoomed{overflow:auto}.page-zoom{flex:none;position:relative}.page-stage.can-mark .mushaf-word{touch-action:none}.page-stage-wrap{height:min(calc(100dvh + var(--nav-h, 44px)),calc(var(--page-h, 100vh) + 2 * var(--nav-h, 44px)));display:flex;flex-direction:column;gap:0;padding:0 16px}.mark-popup{position:absolute;z-index:30;transform:translate(-50%,calc(-100% - 10px));display:flex;align-items:center;gap:6px;padding:6px;border-radius:8px;background:var(--band);border:1px solid var(--border);box-shadow:0 6px 18px #0000002e;white-space:nowrap}.mark-popup-count{font-size:.72rem;color:var(--ink-soft);padding-inline:4px}.mark-pick{border:1px solid var(--border);background:var(--band);color:var(--ink);border-radius:5px;padding:5px 10px;font-size:.8rem;font-family:inherit;font-weight:700;cursor:pointer}.mark-pick.is-stuck-pick{box-shadow:inset 0 0 0 1.5px var(--stuck)}.mark-pick.is-mistake-pick{background:var(--sev-1);border-color:var(--sev-1-edge)}.mark-dismiss{border:none;background:none;color:var(--ink-soft);font-family:inherit;font-size:1rem;line-height:1;padding:4px 6px;margin-inline-start:2px;border-radius:999px;cursor:pointer}.mark-dismiss:hover{background:var(--canvas);color:var(--ink)}.legend-hint{font-size:.78rem;color:var(--ink-soft);font-style:italic}.page-sheet{direction:rtl;display:flex;gap:14px;align-items:stretch;width:max-content;transform-origin:top left;will-change:transform}.mushaf-page{width:max-content;flex:none;background:var(--paper);border:1px solid var(--border);border-radius:8px;padding:28px 22px;box-shadow:0 2px 10px #0000000f;direction:rtl;font-family:Amiri,Traditional Arabic,serif}.mushaf-line{height:2.25rem;line-height:2.25rem;font-size:1.5rem;text-align:center;white-space:nowrap}.mushaf-surah-name{font-family:surah-header;font-size:5.2rem;line-height:1;color:#6f6034;display:flex;align-items:center;justify-content:center}.mushaf-basmallah{font-size:1.15rem;font-weight:700}.mushaf-word{display:inline-block;cursor:pointer;padding:2px 0;margin:0;transition:background-color .12s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation;--edge: transparent}.mushaf-word:hover{background-color:#0000000a}.mushaf-word.is-mistake-1{background-color:var(--sev-1);--edge: var(--sev-1-edge)}.mushaf-word.is-mistake-2{background-color:var(--sev-2);--edge: var(--sev-2-edge)}.mushaf-word.is-mistake-3{background-color:var(--sev-3);--edge: var(--sev-3-edge)}.mushaf-word.is-stuck-1{--edge: var(--stuck-1)}.mushaf-word.is-stuck-2{--edge: var(--stuck-2)}.mushaf-word.is-stuck-3{--edge: var(--stuck-3)}.mushaf-word:not(.ayah-run){border-radius:5px;box-shadow:inset 0 0 0 1.5px var(--edge)}.mushaf-word.ayah-run{border-radius:0;box-shadow:inset 0 1.5px 0 var(--edge),inset 0 -1.5px 0 var(--edge)}.mushaf-word.ayah-run.run-start{border-start-end-radius:5px;border-end-end-radius:5px;box-shadow:inset 0 1.5px 0 var(--edge),inset 0 -1.5px 0 var(--edge),inset -1.5px 0 0 var(--edge)}.mushaf-word.ayah-run.run-end{border-start-start-radius:5px;border-end-start-radius:5px;box-shadow:inset 0 1.5px 0 var(--edge),inset 0 -1.5px 0 var(--edge),inset 1.5px 0 0 var(--edge)}.mushaf-word.is-selected{background-color:#b9cbe6;outline:2px solid #2b4c7e;outline-offset:-1px;border-radius:3px}.mushaf-word.ayah-run.run-start.run-end{border-radius:5px;box-shadow:inset 0 0 0 1.5px var(--edge)}.page-nav{flex:none;display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;gap:16px;padding:7px 0;font-size:.9rem}.page-side-num{min-width:2.2rem;text-align:center;padding:3px 8px;border-radius:999px;background:var(--canvas);color:var(--ink-soft);font-size:.8rem;font-variant-numeric:tabular-nums}.point-choice{display:flex;flex-direction:column;gap:8px;margin:14px 0 4px}.point-option{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:6px;background:var(--band);color:var(--ink);font-family:inherit;font-size:.9rem;text-align:start;cursor:pointer}.point-option:hover{border-color:var(--accent);background:var(--accent-wash)}.point-ref{color:var(--ink-soft);font-size:.78rem;white-space:nowrap}.modal.is-narrow{max-width:26rem}.session-actions{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;align-items:stretch;gap:8px;max-width:100%}.session-actions>button{min-height:38px;padding:8px 12px;border-radius:8px;font-size:.85rem;text-align:center;margin-inline-start:0}.link-btn.danger{color:var(--sev-3-edge)}.page-nav button{border:1px solid var(--border);background:var(--band);padding:6px 12px;border-radius:6px;cursor:pointer}.page-nav button:disabled{opacity:.4;cursor:not-allowed}.page-picker{position:relative;display:inline-block}.page-picker-input{width:10rem;text-align:center;border:1px solid var(--border);background:var(--band);padding:6px 8px;border-radius:6px;font-size:.9rem;font-family:inherit;color:var(--ink)}.page-picker-list{position:absolute;z-index:10;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--band);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #0000001f;text-align:center}.page-picker-list li{padding:6px 8px;border-radius:8px;cursor:pointer;font-size:.85rem}.page-picker-list li.is-active{background:var(--accent-wash)}.loading,.error{text-align:center;color:var(--ink-soft);padding:40px 0}.error{color:var(--sev-3-edge)}.marks-log{margin-top:32px;font-size:.9rem}.marks-log h2{font-size:1rem}.marks-log .empty{color:var(--ink-soft)}.marks-log .hint{color:var(--ink-soft);font-size:.8rem}.marks-log code{background:var(--accent-wash);padding:1px 4px;border-radius:8px}.mark-where{color:var(--ink-soft)}@media (max-width: 640px){.mushaf-view{gap:6px}.page-stage-wrap{padding:0 4px}.page-nav{gap:10px;padding:5px 0}.session-bar{padding:10px 12px}.marks-log{margin-top:20px}}@media (max-width: 480px){.mushaf-page{padding:20px 12px}}.swatch-stuck-1{border:1.5px solid var(--stuck-1)}.swatch-stuck-2{border:1.5px solid var(--stuck-2)}.swatch-stuck-3{border:1.5px solid var(--stuck-3)}.session-start-hint{margin:0;font-size:.85rem;color:var(--ink-soft)}.note-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--canvas);color:var(--ink);font-family:inherit;font-size:.9rem;line-height:1.4;resize:vertical}.note-input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.note-count{margin:4px 0 0;font-size:.75rem;color:var(--ink-soft);text-align:end}.optional{margin-inline-start:6px;font-weight:400;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.modal-warning{margin:8px 0 0;padding:8px 10px;border-radius:6px;background:var(--sev-1);border:1px solid var(--sev-1-edge);font-size:.82rem;line-height:1.45}.history-units{display:flex;align-items:baseline;gap:8px;min-width:10rem;max-width:20rem}.history-surahs{color:var(--ink-soft);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-note{flex-basis:100%;color:var(--ink-soft);font-size:.82rem;font-style:italic;line-height:1.45}@media (max-width: 640px){.account-bar-inner{gap:8px;padding:8px 12px}.account-actions{min-width:0;flex:1 1 auto;justify-content:flex-end}.account-who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.icon-btn,.account-bar .link-btn{flex:0 0 auto}.account-bar-inner{position:relative}.nav-menu{position:static}.nav-popover,.nav-popover.is-wide{inset-inline:8px;width:auto;max-height:70vh;overflow-y:auto}.nav-choice{padding:9px 0;align-items:center}.nav-choice input[type=radio]{width:18px;height:18px;flex:0 0 auto}}@media (max-width: 420px){.brand img{height:22px}}.picker-hint{margin-inline-start:8px;color:var(--ink-soft);font-size:.78rem}html[lang=ur] body,html[lang=ur] button,html[lang=ur] input,html[lang=ur] select,html[lang=ur] textarea{font-family:Noto Nastaliq Urdu,Noto Naskh Arabic,Lato,serif}html[lang=ur] body{line-height:1.9}html[lang=ur] [lang=ar],html[lang=ur] .combobox-list li,html[lang=ur] .page-picker-list li{font-family:Amiri,Noto Naskh Arabic,serif}html[lang=ur] .picker-hint{font-family:Noto Nastaliq Urdu,serif}html[lang=ur] *{letter-spacing:normal!important;text-transform:none!important}.page-nav,.page-stage{direction:ltr}html[dir=rtl] .page-nav input,html[dir=rtl] .page-nav .combobox-list,html[dir=rtl] .page-nav .page-picker-list{direction:rtl}:root{--taj-1: rgba(120, 190, 120, .3);--taj-2: rgba(62, 158, 84, .34);--taj-3: rgba(22, 112, 60, .36);--taj-1-edge: #7cc07f;--taj-2-edge: #3a9a55;--taj-3-edge: #1b6b3a}.mushaf-word.is-tajweed-1{background-image:linear-gradient(to top,var(--taj-1-edge) 0 3px,transparent 3px)}.mushaf-word.is-tajweed-2{background-image:linear-gradient(to top,var(--taj-2-edge) 0 3px,transparent 3px)}.mushaf-word.is-tajweed-3{background-image:linear-gradient(to top,var(--taj-3-edge) 0 3px,transparent 3px)}.mushaf-word.is-tajweed-1:not([class*=is-mistake-]){background-color:var(--taj-1)}.mushaf-word.is-tajweed-2:not([class*=is-mistake-]){background-color:var(--taj-2)}.mushaf-word.is-tajweed-3:not([class*=is-mistake-]){background-color:var(--taj-3)}.mushaf-word.is-tajweed-1:not([class*=is-mistake-]):not([class*=is-stuck-]){--edge: var(--taj-1-edge)}.mushaf-word.is-tajweed-2:not([class*=is-mistake-]):not([class*=is-stuck-]){--edge: var(--taj-2-edge)}.mushaf-word.is-tajweed-3:not([class*=is-mistake-]):not([class*=is-stuck-]){--edge: var(--taj-3-edge)}.mark-hover{position:absolute;z-index:25;transform:translate(-50%,calc(-100% - 8px));display:flex;flex-direction:column;gap:4px;padding:7px 10px 8px;border-radius:8px;background:var(--band);border:1px solid var(--border);box-shadow:0 6px 18px #00000029;font-size:.8rem;line-height:1.3;color:var(--ink);white-space:nowrap;pointer-events:none}.mark-hover.is-below{transform:translate(-50%,8px)}.mark-hover-ref{font-size:.7rem;color:var(--ink-soft);letter-spacing:.02em}.mark-hover-line{display:flex;align-items:center;gap:7px}.mark-hover-at{color:var(--ink-soft)}.mark-hover-swatch{flex:none;width:12px;height:12px;border-radius:3px}.mark-hover-swatch.is-mistake-1{background:var(--sev-1);border:1px solid var(--sev-1-edge)}.mark-hover-swatch.is-mistake-2{background:var(--sev-2);border:1px solid var(--sev-2-edge)}.mark-hover-swatch.is-mistake-3{background:var(--sev-3);border:1px solid var(--sev-3-edge)}.mark-hover-swatch.is-stuck-1{border:2px solid var(--stuck-1)}.mark-hover-swatch.is-stuck-2{border:2px solid var(--stuck-2)}.mark-hover-swatch.is-stuck-3{border:2px solid var(--stuck-3)}.mark-hover-swatch.is-tajweed-1{background:var(--taj-1);border-bottom:3px solid var(--taj-1-edge)}.mark-hover-swatch.is-tajweed-2{background:var(--taj-2);border-bottom:3px solid var(--taj-2-edge)}.mark-hover-swatch.is-tajweed-3{background:var(--taj-3);border-bottom:3px solid var(--taj-3-edge)}.mushaf-word[class*=is-tajweed-].is-selected{background-color:#b9cbe6;background-image:none}.swatch-taj-1{background:var(--taj-1);border-bottom:3px solid var(--taj-1-edge)}.swatch-taj-2{background:var(--taj-2);border-bottom:3px solid var(--taj-2-edge)}.swatch-taj-3{background:var(--taj-3);border-bottom:3px solid var(--taj-3-edge)}.mark-pick.is-tajweed-pick{background:var(--taj-1);border-color:var(--taj-2-edge)}.tag-tajweed{background:var(--taj-1);border:1px solid var(--taj-2-edge);color:var(--ink)}.tag-sabaq{background:#e8e0f6;border:1px solid #8a6cc4;color:#4a3478}.tag-review,.tag-manzil,.tag-sabqi{border:1px solid var(--border);color:var(--ink-soft)}.tag-sabqi{border-color:var(--accent);color:var(--accent-dark)}.page-stage-row{flex:1;min-height:0;display:flex;align-items:stretch;gap:8px}.page-stage-row>.page-stage-viewport{min-width:0}.page-stage-fill{flex:1;align-self:center}.page-flip{flex:0 0 auto;width:44px;height:calc(var(--page-h, 100%) * .6);margin-inline:4px;border:1px solid var(--border);border-radius:10px;background:var(--band);color:var(--ink-soft);font-size:1.8rem;line-height:1;cursor:pointer;touch-action:manipulation;transition:background-color .12s ease,color .12s ease}.page-flip:hover:not(:disabled){background:var(--accent-wash);border-color:var(--accent);color:var(--ink)}.page-flip:disabled{opacity:.3;cursor:not-allowed}@media (max-width: 640px){.page-flip{display:none}}.page-pickers{display:inline-flex;align-items:center;gap:8px}.juz-picker{width:7.5rem}.juz-picker .combobox-input{text-align:center;padding:6px 8px;font-size:.9rem}@media (max-width: 480px){.page-picker-input{width:7.5rem}.juz-picker{width:5.5rem}}.session-bar.is-editing{border-color:#8a6cc4;border-inline-start-color:#8a6cc4;background:#f4f0fb}.session-bar.is-readonly{color:var(--ink-soft)}.kind-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.kind-toggle{display:inline-flex;align-self:flex-start;border:1px solid var(--border);border-radius:6px;overflow:hidden}.kind-toggle button{border:none;background:var(--band);padding:5px 12px;cursor:pointer;font-size:.82rem;font-family:inherit;color:var(--ink)}.kind-toggle button+button{border-inline-start:1px solid var(--border)}.kind-toggle button.is-active{background:var(--ink);color:var(--paper)}.plan-summary{display:inline-flex;align-items:baseline;gap:6px;flex-wrap:wrap}.plan-card{padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:var(--band);margin-bottom:18px;font-size:.85rem}.plan-head{display:flex;align-items:baseline;justify-content:space-between}.plan-card.is-collapsed{padding-block:8px}.plan-toggle{display:inline-flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:start;cursor:pointer}.plan-toggle h3{margin:0;font-size:.95rem}.plan-card:not(.is-collapsed) .plan-head{margin-bottom:6px}.plan-line{margin:6px 0}.plan-line select{border:1px solid var(--border);border-radius:6px;padding:3px 6px;font-family:inherit;background:var(--band)}.juz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(2.4rem,1fr));gap:4px;margin-top:6px}.juz-cell{padding:6px 0;border:1px solid var(--border);border-radius:8px;background:var(--canvas);color:var(--ink-soft);font-family:inherit;font-size:.8rem;font-variant-numeric:tabular-nums}.juz-cell:not(:disabled){cursor:pointer}.juz-cell:disabled{cursor:default}.juz-cell.is-known{background:var(--taj-1);border-color:var(--taj-2-edge);color:var(--ink);font-weight:700}.juz-cell.is-current{background:var(--accent-wash);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--ink);font-weight:700}.plan-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}.plan-actions .clear-btn{margin-inline-start:0}.rotation-report{margin-bottom:8px}.rotation-head{display:flex;align-items:baseline;justify-content:space-between}.rotation-subhead{font-size:.88rem;margin:4px 0 8px}.rotation-juz{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.2rem,1fr));gap:6px}.rotation-juz{margin-bottom:14px}.quarter-breakdown{margin-bottom:12px}.quarter-breakdown .analytics-table{font-size:.8rem}.rotation-cell{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border:1px solid var(--border);border-radius:8px;background:var(--band);font-size:.72rem;color:var(--ink-soft)}.rotation-cell-juz{font-size:.95rem;font-weight:900;color:var(--ink)}.rotation-cell.is-part{background:var(--accent-wash);border-color:var(--accent)}.rotation-cell.is-done{background:var(--taj-1);border-color:var(--taj-2-edge);color:var(--ink)}.rotation-remaining{font-size:.82rem;color:var(--ink-soft);margin:8px 0 12px}.session-history li{display:block;padding:0}.session-history li.is-sabaq{background:#faf8fe}.history-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;width:100%;padding:8px 10px;border:none;background:none;font:inherit;color:inherit;text-align:start;cursor:pointer}.history-row:hover{background:#00000006}.history-row .history-when{min-width:0;white-space:nowrap}.history-row .history-units{min-width:0;max-width:none;white-space:nowrap}.history-listener{color:var(--ink-soft);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;max-width:10rem}.pill-you{background:var(--ink);color:var(--paper)}.short-ref{unicode-bidi:isolate}.history-row .history-duration{flex:1 1 auto;color:var(--ink-soft);font-size:.82rem;white-space:nowrap}.history-actions .history-range{flex:1 1 auto;min-width:0}.history-row .history-counts{margin-inline-start:auto}.history-caret{width:.8rem;color:var(--ink-soft)}.session-history .history-note{display:block;padding:0 10px 8px 2.2rem}.history-detail{padding:4px 10px 14px 2.2rem}.history-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.history-actions .clear-btn{margin-inline-start:0}.detail-marks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.session-history .detail-marks li{padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--paper)}.detail-mark-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.detail-mark-head .link-btn{margin-inline-start:auto}.ayah-text{display:flex;flex-wrap:wrap;direction:rtl;margin-top:6px;font-size:1.6rem;line-height:2.2;text-align:right;color:var(--ink)}.ayah-text.is-loading{font-size:.9rem;color:var(--ink-soft)}.ayah-text-hit{--edge: transparent;box-shadow:inset 0 1.5px 0 var(--edge),inset 0 -1.5px 0 var(--edge)}.ayah-text-hit.run-start{border-start-end-radius:5px;border-end-end-radius:5px;box-shadow:inset 0 1.5px 0 var(--edge),inset 0 -1.5px 0 var(--edge),inset -1.5px 0 0 var(--edge)}.ayah-text-hit.run-end{border-start-start-radius:5px;border-end-start-radius:5px;box-shadow:inset 0 1.5px 0 var(--edge),inset 0 -1.5px 0 var(--edge),inset 1.5px 0 0 var(--edge)}.ayah-text-hit.run-start.run-end{border-radius:5px;box-shadow:inset 0 0 0 1.5px var(--edge)}.ayah-text-hit.is-mistake{background-color:var(--sev-2);--edge: var(--sev-2-edge)}.ayah-text-hit.is-stuck{--edge: var(--stuck)}.ayah-text-hit.is-tajweed{background-color:var(--taj-2);background-image:linear-gradient(to top,var(--taj-2-edge) 0 3px,transparent 3px);--edge: var(--taj-2-edge)}.loading-inline,.error-inline{font-size:.82rem;color:var(--ink-soft)}.error-inline{color:var(--sev-3-edge)}@media print{.account-bar,.tabs,.notice,.analytics-picker,.plan-card .link-btn,.rotation-head .link-btn,.analytics-head,.session-history{display:none!important}body{background:#fff}}.nav-popover .nav-subhead{margin-top:12px}.modal.is-session{max-width:44rem}.session-dialog-head{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.session-dialog-head .history-row.is-static{flex:1;padding:0;cursor:default}.session-dialog-head .history-row.is-static:hover{background:none}.modal.is-session .history-note{padding:0;margin:0 0 10px}.history-row .history-caret{order:99;margin-inline-start:4px}@media (max-width: 640px){.modal.is-session{padding:14px}}html:has(.modal-backdrop),body:has(.modal-backdrop){overflow:hidden}.modal{overscroll-behavior:contain}.bulk-summary{margin:10px 0 4px;font-size:.85rem}.bulk-bad{color:var(--sev-3-edge)}.bulk-rows{list-style:none;margin:0 0 8px;padding:0;max-height:14rem;overflow-y:auto;font-size:.8rem;border:1px solid var(--border);border-radius:8px}.bulk-rows li{display:flex;align-items:baseline;gap:8px;padding:5px 8px;border-bottom:1px solid var(--border)}.bulk-rows li:last-child{border-bottom:none}.bulk-rows li.is-bad{background:#d64d4414}.bulk-email{flex:1 1 12rem;min-width:0;overflow:hidden;text-overflow:ellipsis}.bulk-name{flex:1 1 8rem;min-width:0;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis}.bulk-error{color:var(--sev-3-edge);white-space:nowrap}.panel-card input[type=file]{font-size:.8rem}.invite-form{display:contents}.template-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--accent);border-radius:8px;background:var(--accent-wash);color:var(--accent-dark);font-family:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.template-btn:hover{background:var(--accent);color:var(--on-accent)}.invite-table th[scope=row]{font-weight:400}.invite-who{display:flex;flex-direction:column;min-width:0}.invite-name{overflow:hidden;text-overflow:ellipsis}.invite-email{color:var(--ink-soft);font-size:.76rem;overflow:hidden;text-overflow:ellipsis}.invite-table .link-btn{white-space:nowrap}.panel-card.is-collapsed{padding-block:10px}.tag-joined{background:var(--taj-1);border:1px solid var(--taj-2-edge);color:var(--ink)}.tag-pending{border:1px solid var(--sev-1-edge);background:var(--sev-1);color:var(--ink)}.mark-popup.is-start.is-below{transform:translate(-50%,10px)}.mark-pick.is-start-pick{background:var(--accent);border-color:var(--accent-dark);color:var(--on-accent)}.invite-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end;white-space:nowrap}.roster-name .tag{margin-inline-start:6px}.session-history li.is-paused{background:var(--sev-1)}.tag-paused{background:var(--sev-1);border:1px solid var(--sev-1-edge);color:var(--ink);font-weight:700}.session-listeners{margin:0 0 10px;color:var(--ink-soft);font-size:.82rem}.rotation-report.is-collapsed{margin-bottom:18px}.rotation-head .plan-toggle h3{margin:0}.rotation-cell-counts{display:inline-flex;gap:7px;margin-top:2px;font-size:.7rem;font-weight:700;color:var(--ink)}.rc-count{display:inline-flex;align-items:center;gap:3px}.rc-count:before{content:"";width:6px;height:6px;border-radius:50%}.rc-count.is-mistake:before{background:var(--sev-2-edge)}.rc-count.is-stuck:before{background:var(--stuck-2)}.rc-count.is-tajweed:before{background:var(--taj-2-edge)}.rotation-cell.sev-1{background:var(--sev-1);border-color:var(--sev-1-edge);color:var(--ink)}.rotation-cell.sev-2{background:var(--sev-2);border-color:var(--sev-2-edge);color:var(--ink)}.rotation-cell.sev-3{background:var(--sev-3);border-color:var(--sev-3-edge);color:var(--ink)}.analytics-table tr.is-selected>*{background:var(--accent-wash)}.analytics-table tr.is-selected .unit-link{font-weight:900}.mode-toggle.is-small button{padding:3px 9px;font-size:.78rem}.trend-table th[scope=row]{white-space:nowrap}.trend-table td{text-align:center;font-variant-numeric:tabular-nums}.trend-table .trend-listener{font-size:.78rem;color:var(--ink-soft);white-space:nowrap}.rotation-legend{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:8px;font-size:.72rem;color:var(--ink-soft)}.rotation-legend-group{display:inline-flex;align-items:center;gap:8px}.rotation-legend .rc-count{font-weight:400;color:var(--ink-soft)}.legend-band{padding:1px 6px;border:1px solid var(--taj-2-edge);border-radius:999px;background:var(--taj-1);color:var(--ink)}.legend-band.sev-1{border-color:var(--sev-1-edge);background:var(--sev-1)}.legend-band.sev-2{border-color:var(--sev-2-edge);background:var(--sev-2)}.legend-band.sev-3{border-color:var(--sev-3-edge);background:var(--sev-3)}.help-wrap{display:inline-flex;vertical-align:middle}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--band);color:var(--ink-soft);font:inherit;font-size:.62rem;font-weight:700;line-height:1;cursor:help}.help-dot:hover,.help-dot:focus-visible{border-color:var(--accent);color:var(--accent)}.help-bubble{position:fixed;z-index:60;transform:translate(-50%,calc(-100% - 8px));width:max-content;max-width:260px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--band);box-shadow:0 6px 18px #00000029;font-size:.78rem;font-weight:400;line-height:1.35;color:var(--ink);text-align:start;white-space:normal;pointer-events:none}.help-bubble.is-below{transform:translate(-50%,8px)}.analytics-table tr.is-pickable{cursor:pointer}.analytics-table tr.is-pickable:hover>*{background:var(--accent-wash)}.analytics-table tr.is-pickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.trend-table tfoot .trend-total>*{border-top:2px solid var(--border);font-weight:800;color:var(--ink)}.mark-hover.is-touch{pointer-events:auto;padding-bottom:7px}.mark-hover-actions{display:flex;align-items:center;gap:6px;margin-top:3px}.mark-hover-actions .mark-pick{font-size:.78rem}.nav-choice.is-select{display:block;padding-inline-start:0}.nav-choice.is-select select{width:100%;padding:4px 6px;border:1px solid var(--border);border-radius:6px;background:var(--band);font-family:inherit;font-size:.85rem;color:var(--ink)}
