@font-face{font-family:Plex;src:url(/assets/Arabic-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Plex;src:url(/assets/Arabic-Medium.ttf) format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Plex;src:url(/assets/Arabic-SemiBold.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Plex;src:url(/assets/Arabic-Bold.ttf) format("truetype");font-weight:700;font-display:swap}:root{font-family:Plex,Segoe UI,sans-serif;color:#293241;background:#fff;font-synthesis:none;-webkit-font-smoothing:antialiased;--ink: #34445b;--muted: #727d8c;--line: #e5e9ef;--surface: #f5f7fa;--green: #2f7a62;--red: #b94f55;--radius: 14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{border:0;background:none;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #a7b8d3;outline-offset:4px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #8c9fbd;outline-offset:1px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:23px;font-weight:600;line-height:1.5}h2{font-size:18px;font-weight:600;line-height:1.5}h3{font-size:15px;font-weight:500}small{font-size:12px}svg{flex-shrink:0}input,select,textarea{color:#303b4c;background:#fff;border:1px solid #dce2e9;border-radius:9px;padding:11px 12px;min-width:0;max-width:100%;outline:none}input[type=checkbox]{accent-color:#4e675d;width:17px;height:17px;flex-shrink:0;cursor:pointer}input[type=date]{font-size:12px;direction:ltr}select{min-height:43px}textarea{resize:vertical;line-height:1.8}summary{cursor:pointer;list-style:none;font-size:14px;font-weight:500}summary::-webkit-details-marker{display:none}details>summary{display:flex;align-items:center;justify-content:space-between;gap:8px}details[open]>summary{margin-bottom:17px}.muted{color:var(--muted)}.green,.status-label{color:var(--green)}.error-text,.danger-text{color:var(--red)}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.preview-bar{min-height:30px;background:#f7f8fa;border-bottom:1px solid #eceff4;padding:5px max(18px,calc((100vw - 1100px)/2));display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:#858d99}.preview-bar select{border:0;padding:0;background:transparent;min-height:20px;font-size:10px;max-width:230px;color:#6c7582}.compact-ranges summary{font-size:11px;font-weight:400;color:#7d899a;justify-content:start;gap:6px}.compact-ranges summary:after{content:"⌄";font-size:14px;margin-right:3px}.compact-ranges[open]>summary{margin-bottom:8px}.compact-ranges .range-list{max-height:none!important}.compact-ranges[open] .range-list{padding-bottom:4px}.app-shell{--content: 1120px;max-width:var(--content);margin:0 auto;padding-bottom:calc(102px + env(safe-area-inset-bottom));min-height:100dvh}.student-shell{--content: 640px}.app-header{display:flex;align-items:center;justify-content:space-between;padding:calc(20px + env(safe-area-inset-top)) 26px 18px;gap:16px}.brand{display:flex;align-items:center;gap:12px}.brand img{width:56px;height:56px;object-fit:contain;border-radius:9px}.brand>div{display:flex;flex-direction:column;gap:1px}.brand strong{font-size:24px;color:#293449;line-height:1.45;font-weight:600}.brand span{font-size:12px;color:var(--muted)}.icon-button{width:36px;min-width:36px;height:36px;border:1px solid var(--line);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#697485}.icon-button.danger-text{color:var(--red)}.main-content{padding:0 26px}.main-content>.section-heading{margin-top:14px;margin-bottom:24px}.bottom-navigation-dock{position:fixed;z-index:30;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;padding:8px 12px calc(4px + env(safe-area-inset-bottom));background:#fff}.bottom-navigation{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:4px;background:#07563e;border:0;border-radius:14px;overflow:hidden;min-height:68px}.bottom-navigation button{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;position:relative;color:#d4e5dd;padding:6px 2px;min-width:0;min-height:60px;border-radius:10px}.bottom-navigation span{font-size:11px;white-space:nowrap}.bottom-navigation button.active{color:#07563e;background:#fff;font-weight:600}.bottom-navigation button+button:before{position:absolute;content:"";width:1px;background:#ffffff30;top:13px;bottom:13px;right:0}.bottom-navigation button.active:before,.bottom-navigation button.active+button:before{display:none}.bottom-navigation button.active svg{stroke-width:2.4}.bottom-navigation button:focus-visible{outline:2px solid #fff;outline-offset:-6px}.bottom-navigation button.active:focus-visible{outline-color:#07563e}.teacher-shell{--ink: #32363e}.teacher-shell .app-header{border-bottom:1px solid #eef0f3;margin-bottom:18px}.teacher-shell .icon-button{border-radius:11px}.date-header{padding:14px 16px;margin:0 0 24px;background:#f5f7fa;border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:13px}.date-header>div:first-child{display:flex;flex-direction:column;gap:3px}.date-header strong{font-size:20px;font-weight:600}.date-header span{font-size:12px;color:#687588}.date-secondary{align-self:stretch;display:flex;flex-direction:column-reverse;align-items:end;justify-content:space-between;gap:8px;color:#929dad}.date-secondary small{font-size:11px;color:#7c8798}.teacher-shell .date-header{background:transparent;border-radius:0;padding:0 0 15px;margin-bottom:16px}.teacher-shell .date-header>div:first-child{flex-direction:row;align-items:baseline;gap:12px}.teacher-shell .date-header strong{font-size:18px}.teacher-shell .date-secondary{flex-direction:row;align-items:center}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.section-heading>div{min-width:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:11px 17px;border-radius:9px;font-size:14px;font-weight:500;text-align:center;line-height:1.5}.button.primary{background:var(--ink);color:#fff;border:1px solid var(--ink)}.button.secondary{border:1px solid #dfe4eb;background:#fff;color:var(--ink)}.button.danger{background:#b94f55;color:#fff}.button.compact{min-height:37px;padding:8px 12px;font-size:12px}.button.full-width{width:100%;margin-top:14px}.full-width{width:100%}.text-button{font-size:12px;display:inline-flex;align-items:center;gap:6px;color:#667c99;padding:5px 0}.two-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.inline-actions{display:flex;align-items:center;gap:7px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:18px;min-width:0;font-size:13px}.field>span:first-child{font-weight:500;color:#4b5769}.field>small{color:var(--muted);font-size:11px}.field>input,.field>select,.field>textarea{width:100%}.form-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.panel{border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:18px;background:#fff;min-width:0}.teacher-shell .panel{border-radius:18px}.empty{padding:29px 12px;color:#9199a5;text-align:center;font-size:13px;line-height:1.9}.range-list{display:flex;flex-direction:column;gap:5px;max-height:170px;overflow:auto;scrollbar-width:thin}.range-list>span{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;line-height:1.55}.range-list b{font-size:12px;font-weight:500}.range-list small{font-size:11px;color:#7d8899}.range-list small bdi{font-family:inherit}.range-list small:only-child{font-size:11px}.daily-plan .section-heading{margin-bottom:8px}.daily-plan h1{font-size:22px}.plan-subtitle{font-size:12px;color:#8390a2;line-height:1.8;margin-top:3px}.completion-pill{border:1px solid #dce8e2;border-radius:20px;padding:2px 10px;font-size:12px;color:#4f8a75;white-space:nowrap}.steps{list-style:none;padding:0;margin:0}.step{display:flex;align-items:center;gap:14px;position:relative;min-height:82px}.step:before{content:"";position:absolute;right:16px;top:44px;bottom:-42px;width:2px;background:#e8edf5}.step:last-child:before{display:none}.step-index{border-radius:10px;background:#eef2f7;width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;color:#6d7f99;font-size:14px;position:relative;z-index:1}.step-content{flex:1;min-width:0;border-bottom:1px solid #edf0f4;padding:16px 0}.step-main{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.step-main>label{font-size:16px;font-weight:500;cursor:pointer;line-height:1.6}.step-detail{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.step-detail>div{min-width:0;flex:1}.step-detail>small{font-size:10px;color:#7b889c;white-space:nowrap}.step-detail .range-list{max-height:83px}.step-detail .range-list b{font-weight:400;font-size:11px;color:#8591a2}.step-detail .range-list small{font-size:10px;color:#8a96a8}.step-detail .muted{font-size:11px}.check-control{position:relative;display:inline-flex;flex-shrink:0;width:23px;height:23px;align-self:start;margin-top:3px}.check-control input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;z-index:1}.check-control>span{width:23px;height:23px;display:grid;place-items:center;border:1.5px solid #b6c0ce;border-radius:5px;background:#fff;color:transparent}.check-control input:checked+span{background:#f0f7f3;border-color:#aac6ba;color:#338063}.check-control input:focus-visible+span{outline:3px solid #9ab2cc;outline-offset:3px}.listen{font-size:10px;margin-top:8px;padding:3px 8px;border:1px solid #e9edf3;border-radius:6px}.ready{width:100%;margin-top:22px;min-height:49px;border-radius:8px}.ready-sent{margin-top:22px;padding:14px;display:flex;align-items:center;justify-content:center;gap:8px;color:#387961;background:#f1f7f4;border:1px solid #deebe4;border-radius:9px;font-size:14px}.meanings{border:1px solid #e9edf3;border-radius:10px;padding:15px;margin-top:22px}.meanings summary{font-size:13px}.meaning{padding:13px 0;border-top:1px solid #edf0f4;margin-top:10px}.meaning b{font-size:12px}.meaning p{font-size:13px;line-height:2;white-space:pre-line;margin-top:9px}.meanings>small{font-size:11px}.circle-status{border:1px solid var(--line);border-radius:14px;padding:15px 17px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.circle-status>div{display:flex;align-items:center;justify-content:space-between;gap:15px;flex:1}.circle-status strong{font-size:14px;display:flex;align-items:center;gap:7px;font-weight:500}.circle-status small{font-size:11px;color:var(--muted);white-space:nowrap}.circle-status>svg{color:#a3adbb;width:18px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#a8b0bb}.status-dot.is-open{background:#4b9977;box-shadow:0 0 0 4px #f0f7f3}.turn-card{display:flex;align-items:center;justify-content:space-between;border:1px solid #e0e6ed;padding:18px 23px;border-radius:14px;margin:23px 0}.turn-card span{font-size:17px}.turn-card b{font-size:39px;font-weight:500;color:#425875}.queue-list{list-style:none;margin:0;padding:0}.queue-list li{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #eef0f4;min-height:63px}.queue-list li:last-child{border:0}.queue-list li.mine{background:#fafcfd}.queue-number{display:grid;place-items:center;min-width:28px;width:28px;height:28px;border:1px solid #e1e6ee;border-radius:8px;color:#8b98aa;font-size:11px}.queue-list li>div{flex:1}.queue-list strong{font-size:14px;font-weight:500;display:block}.queue-list small{display:block;font-size:10px;color:#949cab;margin-top:3px}.queue-list .status-label{font-size:11px}.filters{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:15px 0 25px;flex-wrap:wrap}.segmented{display:inline-flex;gap:3px;padding:4px;background:#f4f6f8;border:1px solid #edf0f4;border-radius:11px;max-width:100%}.segmented button{font-size:12px;padding:7px 15px;border-radius:8px;white-space:nowrap}.segmented .selected{background:#fff;color:#33465d;box-shadow:0 2px 5px #253a5510}.week-strip{display:grid;gap:8px;padding:5px 0 15px}.week-strip>div{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0}.week-strip small{font-size:11px;white-space:nowrap}.attendance{width:46px;height:46px;border-radius:11px;display:grid;place-items:center;font-size:21px;font-weight:400}.present{color:#398061;background:#edf7f1}.excused{color:#ad762b;background:#fff3e6}.absent{color:#b65659;background:#ffefef}.cancelled{color:#517caf;background:#edf3ff}.pending{color:#abb2bf;background:#f6f7f9}.attendance-legend{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:9px;color:#7f8998}.attendance-legend>span{display:flex;align-items:center;gap:4px}.legend-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat{padding:21px;border:1px solid #e4e9f0;border-radius:13px;display:flex;flex-direction:column;gap:4px}.stat strong{font-size:32px;font-weight:500;color:#40516a;line-height:1.5}.stat>span{font-size:12px;color:#8490a1}.remaining{display:flex;align-items:baseline;gap:8px;margin:8px 0 15px}.remaining b{font-size:34px;font-weight:500}.remaining span{font-size:12px;color:#7c8798}.progress-track{height:6px;border-radius:4px;background:#f1f3f7;overflow:hidden;direction:rtl}.progress-track>span{display:block;height:100%;background:#89a79b;border-radius:4px}.forecast{display:flex;flex-direction:column;gap:5px;padding:21px 0 8px}.forecast>span{font-size:11px;color:#8894a4}.forecast strong{font-size:17px;font-weight:500}.completion-card>small{font-size:10px}.notes-group{margin-bottom:25px}.notes-group>h2{font-size:16px;margin-bottom:13px}.note-card{padding:19px;border:1px solid var(--line);border-radius:12px;margin-bottom:10px}.note-date{font-size:10px;color:#8a95a5;margin-bottom:8px}.note-card p{font-size:15px;line-height:1.9;margin-top:15px}.counter-page{display:flex;flex-direction:column;min-height:calc(100dvh - 225px)}.counter-surface{position:relative;flex:1;min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;margin-bottom:18px;border-radius:28px}.counter-surface>span:first-child{font-size:105px;font-weight:400;z-index:1;line-height:1.5}.counter-surface small{font-size:12px;color:#8490a2;z-index:1}.counter-progress{position:absolute;width:min(80%,285px);aspect-ratio:1;border-radius:50%;z-index:0}.counter-progress:after{content:"";position:absolute;inset:5px;background:#fff;border-radius:50%}.reset-counter{width:150px;align-self:center}.teacher-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.teacher-shell .circle-status{background:#fafbfc;border-radius:17px;border-color:#e9ecf1}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:16px;padding:15px 0;margin-bottom:22px}.metrics>div{display:flex;align-items:center;flex-direction:column;border-left:1px solid #edf0f4;gap:4px}.metrics>div:last-child{border:0}.metrics small{font-size:11px;color:#7d8795;text-align:center}.metrics b{font-size:30px;font-weight:500;line-height:1.5}.count-pill{border-radius:11px;background:#f5f7f9;color:#8d98a9;font-size:12px;padding:0 10px}.teacher-shell .queue-list{border:1px solid #e8ecf1;border-radius:14px;overflow:hidden}.teacher-shell .queue-list li{padding:12px 13px}.teacher-shell .queue-number{border-radius:50%}.circle-actions{display:flex;gap:10px;flex-wrap:wrap}.circle-actions>.button{flex:1;font-size:12px;padding:10px}.student-shortlist{display:flex;flex-direction:column}.student-shortcut{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #eff1f4;font-size:13px;text-align:right}.student-shortcut:last-child{border:0}.student-shortcut>span:nth-child(2){flex:1}.student-shortcut>svg{color:#939dad}.initial{width:33px;height:33px;border-radius:10px;display:grid;place-items:center;background:#f4f6f8;color:#7f8c9c;font-size:15px;flex-shrink:0}.current-student{background:#f7f8fa;border:0}.assignment-row{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #e8edf3}.assignment-row>span{font-size:12px;color:#8c95a4;white-space:nowrap}.assignment-row .range-list{align-items:end}.recitation-workspace{display:grid;grid-template-columns:1.1fr 1fr;gap:23px;margin-bottom:18px}.recitation-tracks{border:1px solid #e6eaf0;border-radius:13px;overflow:hidden;margin:16px 0}.recitation-track{padding:16px;border-bottom:1px solid #e8ecf2}.recitation-track:last-child{border:0}.recitation-track>.section-heading{margin-bottom:10px}.recitation-track .field{margin-top:15px}.done-label{display:flex;gap:4px;align-items:center;font-size:11px;color:#3c8267}.recordings{display:flex;flex-direction:column;gap:14px}.recording{font-size:11px;display:flex;flex-direction:column;gap:7px;overflow-wrap:anywhere;border-bottom:1px solid var(--line);padding-bottom:12px}.recording audio{width:100%;height:36px}.recording .button{font-size:10px;min-height:34px;padding:7px 10px}.recording small{color:#8d98a7;font-size:10px}.people-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.people-grid>.panel{margin:0}.search{width:100%;margin-bottom:24px}.person-card-header{display:flex;gap:12px;align-items:center;margin-bottom:16px}.person-card-header>div{flex:1}.person-card-header h2{font-size:16px}.person-card-header small{font-size:11px}.person-card-header .initial{width:41px;height:41px;border-radius:12px}.phone-number{text-align:right;font-size:12px;color:#7d8999;margin-bottom:10px}.private-link{display:flex;align-items:center;gap:5px;padding:0;border:1px solid #e8ecf2;background:#fafbfc;border-radius:9px;margin:11px 0}.private-link input{font-size:10px;flex:1;width:0;border:0;background:transparent;border-radius:0;padding:9px 7px}.private-link .icon-button{border:0;background:transparent}.person-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:17px}.person-actions>.icon-button{margin-right:auto}.dialog-copy{font-size:14px;color:#6a778a;line-height:1.9;margin-bottom:19px}.inline-check{display:flex;align-items:center;gap:9px;font-size:13px;margin:15px 0}.plan-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;margin-top:24px;align-items:start}.plan-fields>.panel{margin-bottom:20px}.summary-line{display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:10px;margin:16px 0 20px}.summary-line span{color:#828fa1}.summary-line strong{font-weight:500}.simple-details{padding:16px 0;border-top:1px solid #e9edf3}.simple-details summary{font-size:12px;font-weight:400}.simple-details>.range-list{max-height:220px}.preview-metrics{display:flex;gap:8px;margin-top:19px}.preview-metrics span{border:1px solid #e3e9f0;padding:4px 10px;border-radius:7px;font-size:11px;color:#76869a}.surah-picker{max-height:270px;overflow:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}.surah-picker label{font-size:12px;display:flex;align-items:center;gap:5px}.range-editor{display:flex;flex-direction:column;gap:9px}.range-input{display:grid;grid-template-columns:1.4fr .8fr .8fr 30px;gap:7px;align-items:end}.range-input .field{margin:0;font-size:10px;gap:5px}.range-input input,.range-input select{padding:8px 6px;font-size:11px;width:100%;min-height:38px}.range-input .icon-button{width:30px;min-width:30px;height:38px;border:0}.range-editor>.button{min-height:35px;font-size:11px;margin-top:4px}.week-preview{padding:13px 0;border-bottom:1px solid #eceff4}.week-preview strong{font-size:12px;display:block;margin-bottom:8px}.week-preview .range-list{max-height:80px}.manual-track{padding:15px 0;border-top:1px solid #eceff4;margin-bottom:10px}.manual-track h3{margin-bottom:13px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings-grid>.panel{margin:0}.settings-actions{display:flex;flex-wrap:wrap;gap:10px}.settings-actions>.button{font-size:12px}.time-field{border:0;padding:0;margin:0 0 15px;min-width:0}.time-field legend{font-size:12px;margin-bottom:8px}.time-field>div{display:flex;align-items:center;gap:4px}.time-field select{padding:7px 4px;min-width:0;flex:1;font-size:12px}.time-field select:last-child{flex:1.5}.day-picker{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px}.day-picker label{position:relative}.day-picker input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.day-picker span{display:block;border:1px solid #e1e6ec;border-radius:7px;font-size:11px;padding:8px}.day-picker input:checked+span{border-color:#aab8c9;background:#f1f4f8;color:#3e5370}.day-picker input:focus-visible+span{outline:2px solid #819fc3;outline-offset:2px}.template-tokens{display:flex;gap:7px;flex-wrap:wrap}.template-tokens button{background:#f6f7f9;border:1px solid #e9edf2;padding:5px 8px;font-size:10px;border-radius:5px}.save-settings{margin-top:24px;min-width:180px}.record-filters{display:grid;grid-template-columns:1.3fr 1fr .9fr;gap:15px;margin-bottom:8px}.attendance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.attendance-stat{display:flex;flex-direction:column;padding:17px 14px;border-radius:13px;gap:3px}.attendance-stat b{font-size:28px;font-weight:500}.attendance-stat span{font-size:11px}.overview-rates{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;margin:24px 0}.overview-rates span{font-size:11px;color:#8792a1;display:flex;gap:8px}.overview-rates b{color:#35465d;font-size:13px;font-weight:500}.export-row{display:flex;align-items:center;gap:10px;justify-content:end;margin:15px 0 25px}.export-row select{font-size:12px;min-width:100px}.records-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.records-grid>.panel{margin:0}.mini-week{display:flex;gap:5px;margin:5px 0 19px;flex-wrap:wrap}.mini-week span{padding:5px 8px;font-size:10px;border-radius:6px}.recorded-ranges{margin-bottom:20px}.recorded-ranges>div{display:flex;justify-content:space-between;align-items:start;gap:16px;border-top:1px solid #eceff4;padding:10px 0}.recorded-ranges>div>strong{font-size:11px;font-weight:400;color:#78869a;white-space:nowrap}.recorded-ranges .range-list{align-items:end;max-height:90px}.recorded-ranges .muted{font-size:11px}.modal{border:1px solid #e2e7ee;border-radius:20px;background:#fff;color:#2d3747;padding:0;width:calc(100% - 28px);max-width:580px;max-height:90dvh;box-shadow:0 30px 90px #12243a25}.modal::backdrop{background:#1c29364d;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.wide-modal{max-width:960px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 22px;border-bottom:1px solid #edf0f4;position:sticky;top:0;background:#fff;z-index:1}.modal-header h2{font-size:18px}.modal-body{padding:22px}.modal-body>.panel:last-child{margin-bottom:0}.toast{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom));transform:translate(-50%);display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #d9e6df;background:#fff;color:#3f705f;box-shadow:0 9px 30px #24334a1a;padding:14px 17px;border-radius:13px;width:max-content;max-width:calc(100% - 34px);z-index:500;font-size:13px}.toast.error{border-color:#efd6d9;color:#a95359}.toast button{display:grid;place-items:center}.offline-banner{display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;padding:10px 17px;background:#fff7e9;color:#9d722e;margin:0 25px 15px;border-radius:9px}.startup{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;padding:30px;text-align:center}.startup img{width:115px;height:115px;object-fit:contain;border-radius:15px}.startup h1{font-size:18px}.loading-dot{width:21px;height:21px;border:2px solid #e4e9ef;border-top-color:#667a96;border-radius:50%;animation:spin 1s linear infinite}.preview-picker{max-width:700px;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;margin:auto;padding:30px}.preview-picker>img{width:120px;height:120px;border-radius:16px;object-fit:contain}.preview-picker h1{font-size:29px}.preview-picker p{font-size:13px;color:#98a0ad}.access-recovery{width:100%;max-width:360px;display:grid;gap:12px}.access-recovery label{font-size:14px;font-weight:600}.access-recovery input{width:100%;min-width:0}.access-recovery p{margin:0}.preview-roles{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:25px;width:100%}.preview-roles>button{display:flex;align-items:center;gap:18px;padding:27px 22px;border:1px solid #e3e8ef;border-radius:16px;background:#fafbfc}.preview-roles b{font-size:20px;font-weight:500;flex:1;text-align:right}.preview-roles svg{color:#78899f}.call-screen{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:calc(20px + env(safe-area-inset-top)) 24px calc(35px + env(safe-area-inset-bottom));border:0;background:linear-gradient(155deg,#eef2f6,#fcfcfd);color:#34465e;overflow:hidden}.call-screen[open]{display:flex;flex-direction:column}.call-screen::backdrop{background:#fff}.call-top{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2;font-size:14px}.call-icon{width:49px;height:49px;display:grid;place-items:center;background:#fff9;border:1px solid #dfe5ed;border-radius:50%;color:#455873;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.call-icon.toggled{background:#fff;color:#b9585b}.call-identity{display:flex;flex:1;align-items:center;justify-content:center;flex-direction:column;gap:15px;text-align:center;position:relative;z-index:1}.caller-avatar{width:104px;height:104px;border-radius:50%;background:#e4eaf2;color:#7488a4;display:grid;place-items:center;font-size:47px;font-weight:400;margin-bottom:10px}.call-identity h1{font-size:29px;font-weight:500}.call-identity>span{font-size:14px;color:#8192a9}.call-controls{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:20px}.call-options{display:flex;align-items:center;justify-content:center;gap:17px}.end-call{width:69px;height:69px;display:grid;place-items:center;border-radius:50%;background:#de525d;color:#fff;box-shadow:0 5px 20px #ba36482a}.incoming-actions{display:flex;justify-content:space-evenly;gap:80px;margin-bottom:30px}.accept-call,.reject-call{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:98px;height:98px;border-radius:27px;color:#fff}.accept-call{background:#44a47a}.reject-call{background:#dc5c63}.incoming-actions span{font-size:14px}.audio-output{max-width:230px;border-color:#dbe2eb;background:#fff9;font-size:12px;padding:7px 10px}.video-call{background:#111923;color:#fff}.remote-video{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;background:#17212d}.local-video{position:absolute;right:20px;top:calc(80px + env(safe-area-inset-top));width:112px;height:158px;object-fit:cover;border-radius:18px;border:1px solid #ffffff50;background:#27384b;z-index:3}.video-call:after{content:"";position:absolute;inset:0;background:linear-gradient(#0005,transparent 30%,transparent 60%,#0009);pointer-events:none}.video-call .call-identity{justify-content:start;align-items:start;flex:1;padding-top:30px}.video-call .call-identity h1{font-size:20px;max-width:60%;text-shadow:0 1px 3px #0005}.video-call .call-identity>span{font-size:11px;color:#ffffffaf}.video-call .call-icon{color:#fff;background:#ffffff25;border-color:#ffffff20}.video-call .call-icon.toggled{background:#fff;color:#d65e67}.call-minibar{position:fixed;z-index:90;top:10px;left:50%;transform:translate(-50%);background:#35475f;color:#fff;border-radius:12px;box-shadow:0 5px 25px #1223372a;padding:13px 19px;display:flex;align-items:center;gap:13px;font-size:13px}.call-minibar>span{font-size:10px;color:#c2d0df}@media(min-width:850px){.student-shell{margin-top:18px;border:1px solid #edf0f4;border-radius:22px;padding-bottom:108px;min-height:calc(100dvh - 70px)}.teacher-shell .app-header{padding-top:26px;padding-bottom:22px}.teacher-shell .main-content{padding-top:6px}.teacher-shell .brand img{width:61px;height:61px}.step{min-height:88px}.step-content{padding:18px 0}.teacher-work .student-shortlist{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.teacher-work .student-shortcut{font-size:12px;gap:7px}.call-screen{padding-left:max(30px,calc((100vw - 1000px)/2));padding-right:max(30px,calc((100vw - 1000px)/2))}.video-call .local-video{right:30px;width:170px;height:225px}.call-identity h1{font-size:35px}.counter-page{min-height:680px}}@media(max-width:760px){.teacher-dashboard,.plan-layout,.settings-grid{grid-template-columns:1fr;gap:20px}.people-grid,.records-grid,.recitation-workspace{grid-template-columns:1fr;gap:15px}.teacher-work .student-shortlist{display:grid;grid-template-columns:1fr 1fr;column-gap:14px}.student-shortcut{font-size:12px}.teacher-shell .date-header>div:first-child{flex-direction:column;gap:2px}.teacher-shell .date-secondary>svg{display:none}.record-filters{grid-template-columns:1fr 1fr;gap:9px}.record-filters>.field:first-child{grid-column:1/-1;margin-bottom:0}.attendance-summary{gap:8px}.attendance-stat{padding:12px 10px}.attendance-stat b{font-size:25px}.attendance-stat span{font-size:10px}.settings-actions{flex-direction:column}.settings-actions>.button{justify-content:start}.teacher-shell .panel{padding:18px}.modal-body{padding:17px}.modal-header{padding:16px 17px}.modal-header h2{font-size:16px}.modal{max-height:93dvh}.wide-modal{width:calc(100% - 16px)}.recitation-workspace>.panel{padding:15px}.preview-roles{grid-template-columns:1fr}.date-header{margin-bottom:20px}.form-two{gap:10px}}@media(max-width:420px){.app-header{padding-left:21px;padding-right:21px;padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:16px}.brand img{width:49px;height:49px}.brand strong{font-size:22px}.brand{gap:10px}.brand span{font-size:11px}.main-content{padding:0 21px}.date-header{padding:12px 13px}.date-header strong{font-size:18px}.date-header span{font-size:11px}.date-secondary small{font-size:10px}.step{gap:12px;min-height:79px}.step-main>label{font-size:14px}.step-content{padding:14px 0}.step-index{width:32px;height:32px}.step:before{right:15px}.step-detail .range-list b{font-size:10px}.step-detail .range-list small{font-size:9px}.step-detail>small{font-size:9px}.bottom-navigation span{font-size:10px}.circle-status{padding:12px}.circle-status strong{font-size:12px}.circle-status small{font-size:10px}.circle-status>div{gap:10px}.circle-status>svg{width:15px}.panel{padding:17px}.metrics small{font-size:10px}.field{font-size:12px}.button{font-size:13px}.step-detail .range-list{max-height:57px}.filters{gap:8px}.filters input[type=date]{max-width:135px;padding:9px 6px}.segmented button{padding:7px 12px;font-size:11px}.week-strip{gap:4px}.week-strip small{font-size:9px}.week-strip .attendance{width:38px;height:40px}.attendance-legend{font-size:8px;gap:5px}.range-input{grid-template-columns:1.5fr .7fr .7fr 25px;gap:5px}.range-input .icon-button{width:25px;min-width:25px}.mini-week span{font-size:9px}.toast{font-size:12px}.surah-picker{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important}}.toast{top:auto;right:auto;margin:0}.toast::backdrop{background:transparent}.report-preview{border:1px solid var(--line);width:100%;height:72dvh;border-radius:12px;background:#fff}.app-shell.student-shell,.app-shell.teacher-shell{--content: 480px;max-width:480px;margin-top:0;display:flex;flex-direction:column;min-height:calc(100dvh - 30px);padding-bottom:calc(110px + env(safe-area-inset-bottom));border-radius:0}.app-shell .app-header{padding-top:calc(32px + env(safe-area-inset-top));padding-bottom:18px;gap:10px}.app-shell .brand{gap:8px}.app-shell .brand strong{font-size:21px}.app-shell .brand img{width:50px;height:50px}.header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.header-actions .icon-button{width:34px;min-width:34px}.teacher-shell .bottom-navigation{grid-template-columns:repeat(4,minmax(0,1fr))}.app-shell .main-content{padding:0 20px;flex:1}.student-shell .page-home{display:flex;flex-direction:column}.student-shell .daily-plan,.student-shell .steps{display:flex;flex-direction:column;flex:1}.student-shell .step{min-height:74px;flex:1}.student-shell .step-content{padding:12px 0}.student-shell .meanings{margin-bottom:0;margin-top:12px;padding-bottom:0}.teacher-shell .teacher-dashboard,.teacher-shell .plan-layout,.teacher-shell .settings-grid,.teacher-shell .people-grid,.teacher-shell .records-grid{grid-template-columns:1fr;gap:16px}.teacher-shell .teacher-work .student-shortlist{grid-template-columns:1fr 1fr}.teacher-shell .brand img{width:50px;height:50px}.teacher-shell .metrics small{font-size:11px}.notification-button{position:relative}.notification-badge{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 3px;border-radius:12px;background:#b55258;color:#fff;font-size:10px;display:grid;place-items:center}.notification-list{display:flex;flex-direction:column;gap:9px}.notice{border:1px solid var(--line);border-radius:12px;padding:12px}.notice.unread{background:#f1f5fa;border-color:#d4dfed}.notice-content{width:100%;text-align:right;padding:0}.notice-content strong{display:block;font-size:14px}.notice-content p{font-size:13px;margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.notice-content small{font-size:11px;color:var(--muted)}.mark-read{display:flex;gap:6px;margin-bottom:16px}.weekly-text{font:inherit;font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 18px}.hijri-date-button{border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;align-items:center;gap:8px;font-size:12px;background:#fff;text-align:right}.hijri-calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.hijri-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center;margin-bottom:18px}.hijri-calendar button{min-height:40px;border-radius:8px;background:#f4f6f9}.hijri-calendar button.selected{background:#34445b;color:#fff}.hijri-calendar small{color:var(--muted);font-size:11px;padding-bottom:8px}.filters{flex-wrap:wrap}.filters>.hijri-date-button{width:100%}.week-strip .attendance{width:100%;min-height:58px;height:auto;border-radius:11px;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:8px 3px;text-align:center;line-height:1.6}.week-strip{gap:7px}.week-strip small{font-size:12px}.attendance.present{background:#e1f1e7;color:#287349}.attendance.excused{background:#fff0db;color:#a66b1e}.attendance.absent{background:#fbe5e5;color:#a74242}.attendance.cancelled{background:#e3eefb;color:#386da7}.attendance.pending{background:#f1f3f6;color:#929ba7}.attendance-legend{display:none}.stat span{font-size:13px}.stat strong{font-size:30px}.remaining{flex-direction:column;align-items:start;gap:4px}.remaining span{font-size:13px}.call-turn-hint{font-size:12px;color:var(--muted);text-align:center;margin:10px 0}.excuse-request{display:block;margin:12px 0 18px}.dashboard{margin:20px 0}.dashboard-rings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ring-card{border:1px solid var(--line);border-radius:18px;padding:16px 8px;display:flex;flex-direction:column;align-items:center;gap:9px;background:#fff;transition:transform .15s}.ring-card:active{transform:scale(.97)}.ring{width:100px;height:100px;border-radius:50%;display:grid;place-items:center}.ring b{width:80px;height:80px;display:grid;place-items:center;border-radius:50%;background:#fff;font-size:24px;font-weight:500}.ring-card strong{font-size:13px;font-weight:500}.ring-card small{font-size:11px;color:var(--muted)}.dashboard-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.dashboard-totals>div{padding:14px;border:1px solid var(--line);border-radius:13px;display:flex;flex-direction:column;gap:8px}.dashboard-totals span{font-size:12px;color:var(--muted)}.dashboard-totals b{font-size:25px;font-weight:500}.ring-detail{font-size:22px;margin-bottom:16px}.records-grid .section-heading .inline-actions{flex-wrap:wrap}.records-grid .section-heading .inline-actions>button:first-child{width:auto;min-width:72px;font-size:11px;padding:6px}.record-filters{grid-template-columns:1fr 1fr}.record-filters>.field:nth-child(2){grid-column:1/-1;grid-row:2}.record-filters .hijri-date-button{width:100%}.attendance-summary{gap:6px}.attendance-stat{padding:12px 7px}.attendance-stat span{font-size:10px}@media(max-width:380px){.app-shell .main-content{padding:0 14px}.app-shell .app-header{padding-left:14px;padding-right:14px}.app-shell .brand strong{font-size:18px}.header-actions{gap:5px}.app-shell .brand img{width:43px;height:43px}.week-strip .attendance{font-size:10px}.bottom-navigation span{font-size:9px}}.call-screen:not([open]){display:none}.call-minimize,.call-record-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #c8d3e2;border-radius:14px;background:#fff;color:#273d59;padding:12px 16px;font:inherit;cursor:pointer}.call-record-button{margin:0 auto 20px;max-width:100%}.video-call .call-minimize,.video-call .call-record-button{background:#fff;color:#263b54}.call-minibar{top:auto;bottom:calc(88px + env(safe-area-inset-bottom));width:min(540px,calc(100% - 28px));padding:9px 12px;gap:8px}.call-minibar button{background:transparent;border:0;color:inherit;display:flex;align-items:center;gap:8px;font:inherit;padding:7px;cursor:pointer}.call-minibar button:first-child{flex:1;min-width:0;flex-wrap:wrap}.call-minibar small{font-size:11px;color:#d4dfec}.call-minibar .mini-end-call{border-radius:50%;background:#d94f5c;width:36px;height:36px;justify-content:center}.session-call-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:#eef4fa;border:1px solid #dce6f1;border-radius:14px;padding:10px 14px;margin-bottom:16px;font-size:12px}.session-call-bar>span{display:flex;align-items:center;gap:6px;margin-inline-end:auto}.push-prompt{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 20px 12px;padding:8px 12px;background:#eef4fa;border:1px solid #e2eaf4;border-radius:12px}.push-prompt button{display:flex;align-items:center;gap:9px;padding:4px;font:inherit;font-size:12px;background:transparent;border:0;color:#385373;cursor:pointer}.meaning-step-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;padding:0;background:none;color:inherit;font:inherit;text-align:right;cursor:pointer}.meaning-step-toggle span{color:#526e60;font-size:18px}.step-meanings{margin-top:12px;padding:14px 0 0;border-top:1px solid #e4ebe6}.step-meanings .meaning{line-height:1.9}.student-statistics{display:flex;flex-direction:column;gap:10px;padding-top:10px}.student-statistics>.section-heading{margin:0}.student-statistics .filters{margin:0;gap:6px}.student-statistics .segmented{width:100%;display:grid;grid-template-columns:repeat(3,1fr);padding:3px}.student-statistics .segmented button{padding:5px 8px;min-height:32px}.student-statistics .hijri-date-button{min-height:34px;padding:5px 10px;font-size:12px}.student-statistics .panel{margin:0;padding:12px;border-radius:12px}.student-statistics .section-heading{margin-bottom:8px;gap:6px}.student-statistics>.section-heading{margin-bottom:0}.student-statistics h2{font-size:14px}.student-statistics .week-strip{padding:0;gap:5px}.student-statistics .week-strip>div{gap:5px}.student-statistics .week-strip small{font-size:10px}.student-statistics .week-strip .attendance{min-height:35px;padding:5px 2px;font-size:10px;border-radius:7px}.student-statistics .attendance-legend{margin-top:7px;gap:6px;font-size:8px}.student-statistics .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0}.student-statistics .stat{padding:8px 3px;gap:3px;border-radius:9px;text-align:center}.student-statistics .stat>span{font-size:9px;white-space:nowrap;color:#637184}.student-statistics .stat strong{font-size:20px;line-height:1.2}.student-statistics .remaining{margin:0 0 7px;flex-direction:row;justify-content:space-between}.student-statistics .remaining b{font-size:22px}.student-statistics .forecast{padding:8px 0 3px;flex-direction:row;align-items:baseline;justify-content:space-between;gap:6px}.student-statistics .forecast strong{font-size:12px}.student-statistics .forecast>span{font-size:10px}.student-statistics .completion-card>small{font-size:9px}.weekly-download{font-size:11px;gap:4px;white-space:nowrap}.weekly-plan-date{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:7px;color:#687789}.weekly-plan-date>span{font-size:10px;text-align:center}.weekly-plan-date .icon-button{width:28px;min-width:28px;height:28px}.weekly-plan-days details{border-top:1px solid #e6ece8}.weekly-plan-days summary{display:flex;align-items:center;gap:7px;padding:10px 0;cursor:pointer;list-style:none}.weekly-plan-days summary::-webkit-details-marker{display:none}.weekly-plan-days summary strong{font-size:12px;min-width:47px}.weekly-plan-days summary>span{font-size:10px;color:#758276}.weekly-plan-days summary>span:last-child{margin-inline-start:auto}.weekly-plan-tracks{display:grid;gap:8px;padding:0 0 10px}.weekly-plan-tracks>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:6px}.weekly-plan-tracks b{font-size:10px;color:#5f7267}.weekly-plan-tracks .range-list{margin:0;font-size:11px}.weekly-plan-empty{font-size:11px;color:#7b8792;margin:0 0 10px}.weekly-plan-hint{display:block;font-size:9px;margin-top:5px}@media(max-width:360px){.student-statistics .stat>span{font-size:8px}.student-statistics .stat strong{font-size:18px}}
