﻿@import url('/fonts.css?v=cairo2');
:root{--olive:#777914;--olive-dark:#52540c;--olive-light:#f2f3df;--ink:#202c30;--muted:#717b7c;--line:#e7eae5;--bg:#f6f7f4;--green:#218364;--red:#ae4850;--gold:#b38222;font-family:'Segoe UI',Tahoma,Arial,sans-serif;color:var(--ink);font-size:16px;background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a5a312;outline-offset:3px}svg{width:21px;height:21px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.layout{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#fff;border-inline-end:1px solid var(--line);padding:30px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:24px;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;padding:0 9px}.brand img{width:42px}.brand strong{display:block;font-size:24px;letter-spacing:-.8px}.brand small{font-size:12px;color:var(--muted);letter-spacing:.5px}.year-tag{padding:12px;background:var(--bg);border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;gap:9px;font-size:13px;color:#606b63}.nav-label{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:#939a92;padding:0 14px;margin:6px 0 12px;font-weight:650}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:3px 0;border-radius:8px;color:#64706b;font-size:14px;font-weight:550}.nav-link:hover{background:var(--bg)}.nav-link.active{background:var(--olive);color:white}.nav-link .count{margin-inline-start:auto;font-size:11px;border:1px solid currentColor;padding:1px 5px;border-radius:5px}.sidebar-footer{margin-top:auto;padding:16px 8px 0;border-top:1px solid var(--line)}.profile{display:flex;align-items:center;gap:10px}.avatar{width:38px;height:38px;border-radius:50%;background:var(--olive-light);color:var(--olive-dark);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.profile strong{display:block;font-size:13px}.profile small{font-size:12px;color:var(--muted)}.work-area{min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between;gap:15px}.breadcrumbs{color:var(--muted);font-size:13px;display:flex;gap:12px;align-items:center}.breadcrumbs strong{color:var(--ink);font-weight:550}.top-actions{display:flex;align-items:center;gap:15px}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px;display:inline-flex;align-items:center;gap:6px;color:#64706b;font-size:13px}.lang-btn{padding:7px 12px}.mobile-menu{display:none}.content{max-width:1560px;margin:auto;padding:28px 38px 50px}.demo-banner{background:#f9f7e6;color:#777025;border-bottom:1px solid #e9e4bd;padding:9px 38px;font-size:12px;display:flex;gap:14px;align-items:center;justify-content:space-between}.demo-banner button,.demo-banner select{font-size:12px;background:transparent;border:1px solid #d8d1a4;border-radius:5px;color:inherit;padding:4px 7px}.demo-controls{display:flex;gap:8px}.heading{display:flex;justify-content:space-between;align-items:center;margin:4px 0 27px;gap:16px}.eyebrow{font-size:11px;letter-spacing:1.7px;text-transform:uppercase;color:var(--olive);font-weight:700;margin-bottom:9px}h1{font-size:29px;letter-spacing:-.8px;font-weight:650;margin:0 0 9px}h2{font-size:17px;font-weight:650;margin:0}h3{font-size:16px;margin:0 0 6px}p{line-height:1.6}.sub{font-size:14px;color:var(--muted);margin:0}.btn{border:1px solid var(--line);background:white;color:var(--ink);padding:11px 16px;border-radius:8px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.btn.primary{background:var(--olive);border-color:var(--olive);color:white}.btn.primary:hover{background:var(--olive-dark)}.btn:disabled{opacity:.5;cursor:wait}.btn.small{font-size:12px;padding:7px 10px}.btn.ghost{border:0;background:transparent;color:var(--olive);padding:5px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.welcome{background:#ecefdc;border:1px solid #e2e7cd;border-radius:13px;padding:24px 28px;display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px}.welcome h2{font-size:21px;margin-bottom:7px}.welcome p{margin:0;color:#6c7459;font-size:14px}.welcome .date-box{border-inline-start:1px solid #ced4b7;padding-inline-start:26px;min-width:165px;text-align:end}.date-box strong{font-size:26px;font-weight:600;display:block;color:#596229}.date-box small{color:#73795b;font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:25px}.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:21px;position:relative}.stat-label{font-size:13px;color:var(--muted);margin:0 0 13px}.stat-number{font-size:31px;font-weight:650;letter-spacing:-.8px}.stat-icon{position:absolute;inset-inline-end:19px;top:19px;border-radius:9px;background:var(--bg);color:var(--olive);padding:9px;display:flex}.stat-foot{font-size:12px;color:var(--muted);margin-top:11px}.stat-foot b{font-weight:550;color:var(--green)}.grid-two{display:grid;grid-template-columns:1.14fr 1fr;gap:24px;margin-bottom:24px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel-head{padding:21px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.panel-body{padding:24px}.panel-head small{font-size:12px;color:var(--muted)}.donut-row{display:flex;align-items:center;gap:38px;padding:10px 0 19px;justify-content:center}.donut{width:160px;height:160px;border-radius:50%;background:conic-gradient(var(--green) 0 var(--present),#dfb950 var(--present) var(--late),#ce7a76 var(--late) var(--absent),#e7eae4 var(--absent) 100%);position:relative;display:grid;place-items:center;flex-shrink:0}.donut:before{content:'';position:absolute;inset:15px;background:#fff;border-radius:50%}.donut-text{z-index:1;text-align:center}.donut-text b{font-size:30px;display:block;font-weight:650}.donut-text small{font-size:12px;color:var(--muted)}.legend{min-width:130px;flex:1;max-width:215px}.legend-row{display:flex;align-items:center;font-size:13px;margin:15px 0;gap:9px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-row strong{margin-inline-start:auto;font-size:14px}.panel-note{border-top:1px solid var(--line);padding-top:15px;color:var(--muted);font-size:12px}.task-line{padding:15px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:center}.task-line:first-child{padding-top:0}.task-line:last-child{border-bottom:0;padding-bottom:0}.task-icon{background:var(--olive-light);color:var(--olive);padding:10px;border-radius:9px;display:flex}.task-line .grow{flex:1;min-width:0}.task-line strong{font-size:14px;display:block;margin-bottom:5px}.task-line small{font-size:12px;color:var(--muted)}.badge{display:inline-flex;align-items:center;white-space:nowrap;font-size:11px;font-weight:600;padding:5px 8px;border-radius:5px;background:#f0f2ed;color:#737b6b}.badge.good{background:#e9f4ed;color:#287551}.badge.warn{background:#fcf3de;color:#9b7022}.badge.bad{background:#fbecee;color:#af5357}.badge.olive{background:var(--olive-light);color:var(--olive-dark)}.class-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.class-card{border:1px solid var(--line);border-radius:10px;background:white;padding:21px}.class-card-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:19px}.class-mark{font-size:17px;background:var(--olive-light);color:var(--olive);padding:12px;border-radius:9px;font-weight:700}.class-card h3{margin-bottom:8px;font-size:18px}.class-card p{color:var(--muted);font-size:13px;margin:6px 0}.class-card footer{border-top:1px solid var(--line);margin-top:20px;padding-top:15px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.section-title{display:flex;align-items:center;justify-content:space-between;margin:26px 0 17px}.toolbar{display:flex;flex-wrap:wrap;gap:12px;padding:18px 22px;background:#fff;border-bottom:1px solid var(--line);align-items:end}.toolbar label{font-size:12px;color:var(--muted);display:grid;gap:6px}.toolbar .search{flex:1;min-width:180px}.toolbar input,.toolbar select{min-height:39px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:start;font-size:14px}th{text-align:start;background:#fafbf8;padding:14px 22px;font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:#838a81;font-weight:600;white-space:nowrap}td{padding:17px 22px;border-top:1px solid var(--line);vertical-align:middle}td small{display:block;color:var(--muted);margin-top:5px;font-size:12px}.student-cell{display:flex;align-items:center;gap:11px;min-width:150px}.student-cell .avatar{background:#f0f1e8}.empty{text-align:center;padding:45px 25px;color:var(--muted);font-size:14px}.empty h3{color:var(--ink);margin-bottom:10px}.table-footer{padding:15px 22px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}input,select,textarea{width:100%;border:1px solid #dce1d7;border-radius:7px;background:white;padding:10px 11px;color:var(--ink);min-width:0}input[type=checkbox]{width:17px;height:17px;accent-color:var(--olive)}textarea{min-height:90px;resize:vertical}input[type=date]{min-width:145px}.attendance-choices{display:flex;gap:5px}.attendance-choices button{padding:6px 9px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--muted);font-size:12px}.attendance-choices button.selected{border-color:var(--olive);background:var(--olive-light);color:var(--olive-dark);font-weight:650}.savebar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:18px 22px;border-top:1px solid var(--line);background:#fbfcf9}.note-input{min-width:140px;font-size:13px}.filters-count{margin-inline-start:auto;font-size:13px;color:var(--muted)}.feed{display:grid;gap:16px}.feed-card{background:white;padding:22px;border:1px solid var(--line);border-radius:10px}.feed-card p{font-size:14px;white-space:pre-wrap;margin-bottom:13px}.feed-card footer{font-size:12px;color:var(--muted);display:flex;justify-content:space-between}.feed-card.unread{border-inline-start:4px solid var(--olive)}.report-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-bottom:22px}.chart-bars{display:flex;align-items:end;gap:12px;height:170px;padding:20px 0 0}.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:end;height:100%;font-size:11px;color:var(--muted);gap:8px}.bar{width:100%;max-width:50px;background:#8f9949;border-radius:5px 5px 0 0;min-height:2px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.field{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#56615b}.field .hint{font-size:12px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .wide{grid-column:1/-1}.form-section{grid-column:1/-1;font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--olive);border-top:1px solid var(--line);padding-top:15px;margin-top:7px}.check-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border:1px solid var(--line);border-radius:7px;max-height:180px;overflow:auto}.check-list label{display:flex;gap:8px;align-items:center;font-size:13px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:17px}.detail-list dt{font-size:12px;color:var(--muted);margin-bottom:6px}.detail-list dd{margin:0;font-size:14px}.error{color:#9f303a;background:#fff0f0;border:1px solid #f3d5d5;border-radius:7px;padding:12px;font-size:13px;line-height:1.5}.notice{padding:15px;border-radius:8px;background:var(--olive-light);font-size:13px;color:#5e632e;line-height:1.6}.login{min-height:100vh;display:grid;place-items:center;padding:28px;background:#f0f2e8}.login-card{width:100%;max-width:460px;padding:35px;background:white;border:1px solid var(--line);border-radius:16px}.login-card .brand{margin-bottom:35px}.login-card .field{margin:18px 0}.login-card .btn{width:100%;margin-top:10px}.login-card .lang-btn{float:inline-end}dialog{border:1px solid var(--line);border-radius:14px;padding:0;max-width:740px;width:calc(100% - 32px);max-height:90vh;box-shadow:0 24px 100px #17271933;color:var(--ink)}dialog::backdrop{background:#12221966;backdrop-filter:blur(2px)}.dialog-head{padding:22px 26px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:white;z-index:1}.dialog-body{padding:25px}.dialog-foot{padding:18px 26px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;background:#fbfcf9;position:sticky;bottom:0}.dialog-body .error{margin-bottom:15px}#toast{position:fixed;bottom:24px;inset-inline-end:24px;max-width:380px;padding:14px 20px;background:#283c2e;color:white;border-radius:9px;box-shadow:0 10px 35px #0002;z-index:99;display:none;font-size:14px}#toast.show{display:block}.loading{padding:80px;text-align:center}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.count-pill{padding:2px 7px;border-radius:12px;background:var(--olive-light);color:var(--olive-dark);font-size:12px}.mini{font-size:12px}.mt{margin-top:20px}.stack{display:grid;gap:15px}.progress-track{height:7px;background:#edf0e7;border-radius:5px;overflow:hidden;margin-top:8px}.progress-fill{height:100%;background:var(--olive)}
@media(min-width:1600px){.content{padding-top:38px}.welcome{padding:30px}.panel-body{padding:28px}}@media(max-width:1150px){.layout{grid-template-columns:205px 1fr}.sidebar{padding:25px 12px}.topbar{padding:0 24px}.content{padding:24px}.demo-banner{padding:9px 24px}.stats{gap:10px}.stat{padding:17px}.stat-icon{display:none}.grid-two{grid-template-columns:1fr}.class-grid{grid-template-columns:repeat(2,1fr)}.class-grid .class-card:last-child:nth-child(3){display:none}.donut-row{justify-content:space-evenly}.settings-grid{grid-template-columns:1fr}}
@media(max-width:760px){.layout{display:block}.sidebar{display:none;position:fixed;z-index:20;width:250px;box-shadow:10px 0 40px #0002}.sidebar.open{display:flex}.mobile-menu{display:inline-flex}.topbar{height:64px;padding:0 17px}.breadcrumbs{display:none}.content{padding:20px 16px 35px}.top-actions{gap:8px;margin-inline-start:auto}.heading{align-items:flex-start;margin-bottom:21px}.heading h1{font-size:24px}.heading .actions{justify-content:flex-end}.heading .btn{padding:10px;font-size:12px}.welcome{padding:20px}.welcome .date-box{display:none}.welcome h2{font-size:19px}.stats{grid-template-columns:1fr 1fr;gap:12px}.stat-number{font-size:27px}.stat-foot{font-size:11px}.class-grid,.report-grid{grid-template-columns:1fr}.class-grid .class-card:last-child:nth-child(3){display:block}.panel-head,.panel-body{padding:19px}.demo-banner{padding:9px 16px;align-items:flex-start;flex-direction:column;gap:7px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.dialog-body{padding:20px}.dialog-head{padding:18px 20px}.check-list{grid-template-columns:1fr}.donut-row{gap:20px}.donut{width:140px;height:140px}.toolbar{padding:16px}.toolbar label{flex:1;min-width:130px}.table-wrap td,.table-wrap th{padding:13px 16px}.savebar{align-items:flex-start}.detail-list{grid-template-columns:1fr}.settings-grid{display:block}.settings-grid>.panel{margin-bottom:20px}.date-box{display:none}}
@media print{.sidebar,.topbar,.demo-banner,.heading .actions,.toolbar,.btn{display:none!important}.layout{display:block}.content{padding:0}.panel{break-inside:avoid}body{background:white}.stats{grid-template-columns:repeat(4,1fr)}}
.application-page{max-width:860px;margin:32px auto;padding:0 20px 50px}.application-header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.application-header .brand strong{font-size:20px;letter-spacing:0}.application-header .brand img{max-height:60px;object-fit:contain}.application-trap{position:absolute;left:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);pointer-events:none}.application-consent{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.6}.application-consent input{flex-shrink:0;margin-top:4px}.application-page .panel-body{padding:32px}@media(max-width:600px){.application-page{margin-top:20px;padding:0 12px 30px}.application-header .brand strong{font-size:16px}.application-page .panel-body{padding:20px}.application-page h1{font-size:24px}}
.year-class { margin: 18px 0; padding: 16px; border: 1px solid var(--border, #dce0d5); border-radius: 10px; }
.year-class legend { font-weight: 600; padding: 0 6px; }
.year-choices { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.year-class input[type=checkbox] { width: auto; margin-inline-end: 6px; }
#student-report-output{display:none}.student-report-open #app,.student-report-open #toast{display:none!important}.student-report-open #student-report-output{display:block}.meeting-controls{display:flex;gap:12px;justify-content:center;padding:20px}.meeting-paper{max-width:210mm;margin:0 auto 30px;padding:14mm;background:white;color:#202c30;line-height:1.45}.meeting-header{display:flex;align-items:center;gap:20px;border-bottom:2px solid #777914;padding-bottom:16px}.meeting-header img{width:58px;height:58px;object-fit:contain}.meeting-header h1{font-size:24px}.meeting-header h2{font-size:18px}.meeting-paper h2{margin:18px 0 10px;color:#52540c}.meeting-identity{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.meeting-identity p{font-size:13px}.meeting-paper table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}.meeting-paper th,.meeting-paper td{border:1px solid #ddd;padding:7px;overflow-wrap:anywhere;white-space:normal;text-align:start}.meeting-paper th{background:#f2f3df}.meeting-small{font-size:11px;color:#596365}.meeting-note{break-inside:avoid;border-bottom:1px solid #ddd;padding:12px 0}.meeting-note p{white-space:pre-wrap;overflow-wrap:anywhere;min-height:24px;margin:5px 0}.meeting-signatures{display:flex;justify-content:space-between;font-size:12px;margin-top:24px}.meeting-demo{font-size:11px;color:#777025}@media(max-width:600px){.meeting-paper{padding:16px}.meeting-identity{grid-template-columns:1fr}.meeting-controls{flex-wrap:wrap}.meeting-signatures{display:block}}@media print{body.student-report-open{background:white}body.student-report-open #app,body.student-report-open #modal,body.student-report-open #toast,.meeting-controls{display:none!important}body.student-report-open #student-report-output{display:block!important}.meeting-paper{max-width:none;margin:0;padding:0;font-size:12px}.meeting-identity{grid-template-columns:1fr 1fr}.meeting-paper thead{display:table-header-group}.meeting-paper tr{break-inside:avoid}.meeting-paper h2,.meeting-paper h3{break-after:avoid}.meeting-signatures{display:flex;break-inside:avoid}.meeting-header{break-inside:avoid}@page{size:A4;margin:14mm}}

.meeting-batch-summary{align-self:center;font-weight:600}@media print{.meeting-paper + .meeting-paper{break-before:page;page-break-before:always}}

.mem-practice{display:inline-block;background:#fce7e5;color:#8c2620;padding:3px 6px;border-radius:4px}.mem-due{display:inline-block;background:#fff1c2;color:#70530a;padding:3px 6px;border-radius:4px}
.student-name-link{font-weight:650;color:var(--olive-dark);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px}.student-name-link:hover{text-decoration-color:currentColor}.student-profile-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.student-profile-main,.student-profile-side{display:grid;gap:18px;min-width:0}.student-profile-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fff}.student-profile-metric{padding:20px 12px;text-align:center;display:flex;flex-direction:column;gap:6px;justify-content:center;background:var(--olive-light);border-inline-end:1px solid #e0e4cd}.student-profile-metric:nth-child(2){background:#eaf3ed}.student-profile-metric:nth-child(3){background:#fcf5df}.student-profile-metric:last-child{border:0}.student-profile-metric strong{color:var(--olive-dark);font-size:20px;overflow-wrap:anywhere}.student-profile-metric span{font-size:10px;text-transform:uppercase;letter-spacing:.8px}.student-profile-metric small{color:var(--muted);font-size:10px}.student-profile-card{padding:22px}.student-profile-card>h2{color:var(--olive-dark);font-size:12px;text-transform:uppercase;letter-spacing:1px;margin-bottom:18px}.student-profile-identity{text-align:center;padding:28px 20px}.student-profile-identity>.avatar{width:76px;height:76px;font-size:25px;margin-bottom:17px}.student-profile-identity h2{font-size:22px;overflow-wrap:anywhere}.student-profile-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.student-profile-details{margin:0}.student-profile-details>div{display:flex;gap:12px;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.student-profile-details>div:last-child{border:0;padding-bottom:0}.student-profile-details dt{color:var(--muted);flex:0 0 38%}.student-profile-details dd{margin:0;text-align:end;overflow-wrap:anywhere;white-space:pre-wrap}.student-profile-subheading{font-size:13px;margin-top:25px}.student-profile-timeline{list-style:none;margin:18px 0 0;padding:0}.student-profile-timeline li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;padding:15px 0;position:relative;border-bottom:1px solid var(--line)}.student-profile-timeline li:last-child{border:0}.student-profile-event-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--olive-light);color:var(--olive)}.student-profile-event-icon svg{width:17px;height:17px}.student-profile-timeline h3{font-size:13px}.student-profile-timeline p{font-size:12px;color:var(--muted);margin:5px 0;white-space:pre-wrap;overflow-wrap:anywhere}.student-profile-timeline time{font-size:11px;color:var(--muted)}.student-profile-homework>div{padding:12px 0;border-bottom:1px solid var(--line)}.student-profile-homework strong{font-size:14px;margin-inline-end:12px}.student-profile-homework p{font-size:12px;color:var(--muted)}.student-profile-note{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}@media(max-width:1200px){.student-profile-grid{grid-template-columns:minmax(0,1fr) 280px}.student-profile-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.student-profile-card{padding:18px}}@media(max-width:800px){.student-profile-grid{grid-template-columns:1fr}.student-profile-side{grid-row:1}.student-profile-timeline li{grid-template-columns:32px minmax(0,1fr)}.student-profile-timeline time{grid-column:2}.student-profile-side{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.student-profile-side{grid-template-columns:1fr}.student-profile-metric strong{font-size:18px}}@media print{.student-profile-grid{grid-template-columns:minmax(0,1fr) 280px}.student-profile-card,.student-profile-identity{break-inside:avoid}.student-profile-timeline li{break-inside:avoid}}
.student-profile-tabs{display:flex;gap:4px;padding:6px;background:#edf0e7;border-radius:30px;width:fit-content;max-width:100%;flex-wrap:wrap}.student-profile-tabs button{border:0;border-radius:24px;background:transparent;color:var(--muted);padding:11px 20px;font-size:13px;font-weight:600}.student-profile-tabs button[aria-selected=true]{background:var(--olive);color:#fff}.student-profile-tabs button:hover:not([aria-selected=true]){background:var(--olive-light);color:var(--olive-dark)}.student-profile-tab-panel{display:grid;gap:18px;min-width:0}.student-profile-fee{padding:16px 0;border-bottom:1px solid var(--line)}.student-profile-fee:last-child{border-bottom:0}@media(max-width:520px){.student-profile-tabs{width:100%;justify-content:space-between}.student-profile-tabs button{padding:10px 13px;font-size:12px}}
.juz-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.juz-stat{display:flex;flex-direction:column;gap:9px;padding:18px;border-radius:14px;background:var(--bg)}.juz-stat>span,.juz-panel>h2{font-size:10px;font-weight:650;letter-spacing:.8px;text-transform:uppercase;color:var(--olive-dark)}.juz-stat strong{font-size:15px;font-weight:550}.juz-stat small{font-size:11px;color:var(--muted)}.juz-panel>h2{margin-bottom:10px}.juz-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}.juz-cell{min-width:0;min-height:36px;border:1px solid transparent;border-radius:8px;font-size:12px}.juz-cell.completed,.juz-legend .completed{background:#e2f3e8;color:#226343;border-color:#74b88b}.juz-cell.in-progress,.juz-legend .in-progress{background:#fff1ce;color:#805919;border-color:#dca94d}.juz-cell.not-started,.juz-legend .not-started{background:#f0f2ee;color:#717b7c;border-color:#e7eae5}.juz-cell[aria-pressed=true]{outline:2px solid var(--olive);outline-offset:1px}.juz-legend{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0;font-size:11px;color:var(--muted)}.juz-legend span{display:flex;align-items:center;gap:7px}.juz-legend i{width:9px;height:9px;border:1px solid;border-radius:50%}.juz-detail{margin-top:15px;background:var(--olive-light);padding:13px;border-radius:8px;font-size:12px;color:var(--olive-dark)}.juz-detail p{margin:5px 0}.juz-explanation{font-size:11px}details.student-profile-card>summary{cursor:pointer;color:var(--olive-dark);font-size:13px;font-weight:650}@media(max-width:520px){.juz-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.juz-stat{padding:13px}.juz-stat strong{font-size:13px}}
.curriculum-tabs{margin:22px 0}.curriculum-panels{display:grid;gap:22px}.curriculum-section{padding:25px}.curriculum-section>h2{font-size:13px;text-transform:uppercase;color:var(--olive-dark);letter-spacing:.6px;margin-bottom:25px}.curriculum-section>.sub{margin-bottom:22px}.curriculum-subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:15px;margin-top:22px}.curriculum-subject{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:18px;padding:20px;min-width:0}.curriculum-subject.enabled{border-color:#b7bc78;background:#fafbf3}.curriculum-subject .grow{flex:1;min-width:0}.curriculum-subject h3{font-size:15px;overflow-wrap:anywhere}.curriculum-subject p{font-size:12px;color:var(--muted);margin:6px 0}.curriculum-subject .class-mark{padding:10px;border-radius:50%}.curriculum-toggle{border:0;background:#eee;color:var(--muted);border-radius:20px;padding:7px 12px;font-size:12px;white-space:nowrap}.curriculum-toggle[aria-checked=true]{background:var(--olive-light);color:var(--olive-dark)}.curriculum-toggle:disabled{cursor:default}.curriculum-target-group{border-top:1px solid var(--line);padding-top:5px;margin-top:24px}.curriculum-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.curriculum-chip{border:1px solid transparent;background:#f0f1ef;color:#777e80;border-radius:24px;padding:10px 15px;font-size:12px;font-weight:600}.curriculum-chip[aria-pressed=true]{background:var(--olive);color:white;border-color:var(--olive-dark)}.curriculum-chip:hover{border-color:var(--olive)}.curriculum-chip[hidden]{display:none}.curriculum-chip:disabled{opacity:.6;cursor:wait}.curriculum-search{max-width:460px}.curriculum-section>.field{margin-top:20px}@media(max-width:600px){.curriculum-section{padding:18px}.curriculum-subject-grid{grid-template-columns:1fr}.curriculum-chip{padding:9px 12px}}

.attendance-rate{margin:0 24px;padding:18px 20px;background:var(--bg);border-radius:16px}.attendance-rate>div:first-child{display:flex;justify-content:space-between;gap:16px}.attendance-rate>div:first-child strong:last-child{color:var(--olive-dark)}.attendance-rate-track{height:10px;background:#e7eae5;border-radius:20px;overflow:hidden;margin-top:14px}.attendance-rate-track>span{display:block;height:100%;background:var(--olive);border-radius:inherit;transition:width .2s}.attendance-rate p{font-size:12px;color:var(--muted);margin:10px 0 0}.attendance-status-filters{display:flex;flex-wrap:wrap;gap:9px;padding:18px 24px}.attendance-status-filters button{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:24px;background:white;color:var(--muted);padding:10px 15px;font-size:13px}.attendance-status-filters button[aria-pressed=true]{background:var(--olive);border-color:var(--olive);color:white}.attendance-status-count{background:var(--bg);color:var(--muted);padding:2px 7px;border-radius:12px;font-size:12px}.attendance-status-dot{width:8px;height:8px;border-radius:50%;background:#939a92}.status-all{display:none}.status-present{background:var(--green)}.status-absent{background:var(--red)}.status-late{background:var(--gold)}.status-excused{background:#788cab}.attendance-filter-empty{padding:16px 24px;color:var(--muted)}[data-attendance-row][hidden],.attendance-filter-empty[hidden]{display:none!important}@media(max-width:600px){.attendance-rate{margin:0 14px;padding:15px}.attendance-status-filters{padding:15px 14px;gap:7px}.attendance-status-filters button{padding:9px 11px}}

.syllabus-surah-names{display:flex;flex-wrap:wrap;gap:5px;max-height:145px;overflow-y:auto;margin:12px 0}.syllabus-surah-names .badge{font-size:11px}.syllabus-picker{max-height:45vh;overflow-y:auto}.syllabus-picker label{display:flex;gap:7px;align-items:center;cursor:pointer}.syllabus-picker label:has(input:checked){background:var(--olive);color:white}.syllabus-picker input{accent-color:var(--olive-dark)}

.assessment-target-list{display:grid;gap:10px;margin-top:18px}.assessment-target-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:var(--bg)}.assessment-target-row>strong{min-width:0;overflow-wrap:anywhere}.assessment-target-row>.btn{flex-shrink:0}

.assessment-subject-group{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.assessment-subject-group>h3{color:var(--olive-dark);display:flex;align-items:center;gap:10px;margin:0 0 12px}.assessment-subject-group>.sub{margin:0}

.application-level-review{margin:18px 0;background:var(--olive-light)}.application-level-text{white-space:pre-wrap;overflow-wrap:anywhere}

.parent-feedback-panel{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.parent-feedback-panel h4{color:var(--olive-dark);margin:0 0 12px}.parent-feedback-record{background:var(--bg);padding:12px;border-radius:10px;margin:10px 0}.parent-feedback-record small{display:block;color:var(--muted);margin-top:6px}.parent-feedback-record p{white-space:pre-wrap;overflow-wrap:anywhere}.parent-homework-check{display:flex;align-items:center;gap:9px;margin:12px 0}.parent-homework-check input{accent-color:var(--olive)}.parent-feedback-panel summary{cursor:pointer;color:var(--olive-dark)}

.syllabus-student{min-width:0}.syllabus-student .panel-head .sub{margin:8px 0 0}.syllabus-slider{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x proximity;padding:8px 24px 24px;scroll-padding-inline:24px}.syllabus-card{flex:0 0 276px;max-width:100%;border:1px solid var(--line);border-radius:20px;padding:18px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:stretch;background:#fff}.syllabus-card.is-complete{border-color:var(--olive);background:#fcfcf6}.syllabus-card header{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px;min-height:65px}.syllabus-card small{display:block;color:var(--muted);margin-top:5px;font-size:12px}.syllabus-meter{display:flex;gap:14px;align-items:center;margin-top:16px}.syllabus-ring{flex-shrink:0;width:58px;height:58px;border-radius:50%;background:conic-gradient(var(--olive) var(--syllabus-percent),var(--olive-light) 0);display:grid;place-items:center}.syllabus-ring span{width:46px;height:46px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--olive-dark)}.syllabus-card>.btn{align-self:flex-end;margin-top:auto}.syllabus-card>.sub{margin:14px 0}.syllabus-card>.mini{margin-top:0}@media(max-width:600px){.syllabus-slider{padding-inline:14px}.syllabus-card{flex-basis:260px}}@media print{.syllabus-slider{flex-wrap:wrap;overflow:visible}.syllabus-student .actions,.syllabus-card>.btn{display:none}}

.syllabus-record{cursor:pointer}.syllabus-record:hover{background:var(--olive-light)}.syllabus-student-link{border:0;padding:0;background:transparent;color:var(--olive-dark);font-weight:650;text-align:start}.syllabus-student-link:hover{text-decoration:underline}dialog.syllabus-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(760px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-inline-start:1px solid var(--line);border-radius:18px 0 0 18px;padding:0;overflow-y:auto;background:var(--bg);box-shadow:-12px 0 40px #202c3020}dialog.syllabus-drawer[open]{animation:syllabus-enter .22s ease-out}.syllabus-drawer::backdrop{background:#202c3066}.syllabus-drawer>.dialog-head{position:sticky;top:0;z-index:1;background:white}.syllabus-drawer-body{padding:20px}.syllabus-drawer .syllabus-slider{flex-wrap:wrap;overflow:visible}.syllabus-drawer .syllabus-card{flex:1 1 250px}.syllabus-drawer .syllabus-student .actions{display:none}[dir=rtl] dialog.syllabus-drawer{inset:0 auto 0 0;border-radius:0 18px 18px 0;animation-name:syllabus-enter-rtl}@keyframes syllabus-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes syllabus-enter-rtl{from{transform:translateX(-100%)}to{transform:translateX(0)}}@media(prefers-reduced-motion:reduce){dialog.syllabus-drawer[open]{animation:none}}@media(max-width:600px){.syllabus-drawer-body{padding:12px}}

/* Compact syllabus cards in the student slide-out panel. */
.syllabus-drawer .syllabus-slider{gap:12px;padding:6px 16px 16px}
.syllabus-drawer .syllabus-card{flex:0 0 196px;padding:12px;border-radius:14px}
.syllabus-drawer .syllabus-card header{gap:8px;min-height:48px;padding-bottom:10px;font-size:13px}
.syllabus-drawer .syllabus-card .task-icon{width:30px;height:30px;flex-shrink:0}
.syllabus-drawer .syllabus-card .task-icon svg{width:17px;height:17px}
.syllabus-drawer .syllabus-card small{font-size:11px;margin-top:3px}
.syllabus-drawer .syllabus-meter{gap:10px;margin-top:12px;font-size:13px}
.syllabus-drawer .syllabus-ring{width:44px;height:44px}
.syllabus-drawer .syllabus-ring span{width:34px;height:34px;font-size:11px}
.syllabus-drawer .syllabus-card>.sub{font-size:12px;margin:10px 0}
.syllabus-drawer .syllabus-card>.btn{font-size:11px;padding:6px 10px;min-height:30px}
@media(max-width:480px){.syllabus-drawer .syllabus-card{flex:1 1 150px}}

.lesson-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}
.lesson-stats .stat{padding:12px 14px;border-radius:10px}
.lesson-stats .stat-label{font-size:12px;margin:0 0 6px;padding-inline-end:26px}
.lesson-stats .stat-number{font-size:32px;line-height:1.2;text-align:left}
.lesson-stats .stat-icon{top:10px;inset-inline-end:10px;padding:5px;border-radius:7px}
.lesson-stats .stat-icon svg{width:16px;height:16px}
.lesson-stats .stat-foot:empty{display:none}
@media(max-width:900px){.lesson-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.lesson-stats .stat-label{padding-inline-end:0}}
@media(max-width:480px){.lesson-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.lesson-stats .stat{padding:10px 12px}}

/* Attendance status colours retain the text labels for accessibility. */
select[data-lesson-att]{font-weight:600}
select[data-lesson-att][data-attendance-status="Present"],select[data-lesson-att] option[value="Present"]{color:#176344;background-color:#e9f6ee}
select[data-lesson-att][data-attendance-status="Absent"],select[data-lesson-att] option[value="Absent"]{color:#9a3039;background-color:#fcecee}
select[data-lesson-att][data-attendance-status="Late"],select[data-lesson-att] option[value="Late"]{color:#805600;background-color:#fff4d6}
select[data-lesson-att][data-attendance-status="Excused"],select[data-lesson-att] option[value="Excused"]{color:#285b91;background-color:#eaf2fc}
select[data-lesson-att][data-attendance-status="Unmarked"],select[data-lesson-att] option[value="Unmarked"]{color:#58616a;background-color:#f0f2f4}

.role-switch{display:flex;align-items:center;gap:6px;font-size:12px}.role-switch select{padding:6px;border:1px solid var(--line);border-radius:8px;background:var(--olive-light);color:var(--olive-dark)}

.account-role-filters .role-manager{background:var(--gold)}.account-role-filters .role-teacher{background:var(--green)}.account-role-filters .role-parent{background:#788cab}.account-role-filters button:focus-visible{outline:2px solid var(--olive);outline-offset:3px}

.baseline-ayah-row { display:flex; align-items:end; gap:12px; }
.baseline-ayah-row .field { flex:1; min-width:0; }
.baseline-ayah-row button { margin-bottom:0; flex-shrink:0; }
#baseline-surahs[hidden], #baseline-juz[hidden], #baseline-passage[hidden] { display:none; }

.homework-save-feedback{padding:12px 16px;margin:12px 0 0;border:1px solid var(--line);border-radius:8px;font-weight:600;white-space:normal}.homework-save-feedback.saved{background:#e8f5ed;color:#175b36;border-color:#9fcab0}.homework-save-feedback.failed{background:#fff0f0;color:#922c36;border-color:#e5abb0}.homework-save-feedback[hidden]{display:none}

.modal-notice{position:sticky;top:0;z-index:5;padding:14px 18px;margin-bottom:16px;background:#fff6dc;color:#543e08;border:1px solid #cbb66e;border-radius:8px;font-weight:600}

#class-student-list small{display:block;color:var(--muted);margin-top:3px}

#class-search-results .class-card{display:block}

.lesson-hifdh-position{min-width:180px}.lesson-hifdh-position small{display:block;color:var(--muted);margin-top:4px}

/* Keep long translated dialog actions inside the footer on narrow screens. */
.dialog-foot{flex-wrap:wrap}
.dialog-foot .btn{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}
.dialog-foot .btn[hidden]{display:none}

.dialog-foot.recitation-actions{flex-wrap:nowrap;gap:8px;padding-inline:16px}
.dialog-foot.recitation-actions .btn{min-width:0;flex:1 1 auto;padding:10px 9px;font-size:12px;line-height:1.35}
.dialog-foot.recitation-actions .btn:first-child{flex:0 1 auto}

.parent-homework-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px}
.parent-homework-card{min-width:0;margin-bottom:0;overflow-wrap:anywhere}
.parent-homework-card h3{margin:14px 0 8px}.parent-homework-card p{margin:8px 0}
.parent-homework-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.parent-homework-card .btn{width:100%;min-height:44px;white-space:normal;margin-top:12px}
.parent-homework-shortcut{margin-bottom:24px}.parent-mobile-nav{display:none}
@media(max-width:760px){.parent-layout .content{padding-bottom:100px}.parent-homework-shortcut .section-title{align-items:flex-start;gap:12px;flex-wrap:wrap}.parent-mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:35;background:white;border-top:1px solid var(--line);padding:8px 12px calc(8px + env(safe-area-inset-bottom));gap:8px}.parent-mobile-nav a{flex:1;min-height:48px;display:flex;align-items:center;justify-content:center;text-align:center;border-radius:8px;color:var(--ink);text-decoration:none;font-size:13px}.parent-mobile-nav a[aria-current="page"]{background:var(--olive);color:white}.parent-homework-grid{grid-template-columns:1fr}}
@media print{.parent-mobile-nav{display:none}}

.next-lesson-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.next-lesson-grid h4{margin:12px 0 8px}.next-lesson-grid p{margin:8px 0}.next-lesson-grid ul{padding-inline-start:20px;margin:8px 0}.next-lesson-summary{overflow-wrap:anywhere}.next-lesson-summary .actions{flex-wrap:wrap}@media(max-width:600px){.next-lesson-grid{grid-template-columns:1fr}}

.backup-entry{padding:16px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.backup-entry .actions{flex-wrap:wrap}.backup-entry .btn{white-space:normal}#backups{overflow-wrap:anywhere}

.actions.assessment-bulk-controls{align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}
.assessment-bulk-controls>.field{margin:0}

/* Separate the summary title visually from its subsection headings. */
.next-lesson-summary>summary{font-size:22px;line-height:1.35;font-weight:700;color:var(--olive-dark);background:var(--olive-light);border-inline-start:4px solid var(--olive);border-radius:6px;padding:12px 16px;margin:0 0 14px}

.next-lesson-summary>summary{cursor:pointer}.next-lesson-summary:not([open])>summary{margin-bottom:0}
@media(max-width:760px){
 .lesson-filters .toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.lesson-filters .toolbar label{min-width:0;width:100%}
 .lesson-roster{overflow:visible;padding:12px}.lesson-roster table,.lesson-roster tbody{display:block;width:100%}.lesson-roster thead{display:none}
 .lesson-roster tr{display:block;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:14px;background:white}
 .lesson-roster td{display:block;border:0;padding:8px 0;white-space:normal;overflow-wrap:anywhere}
 .lesson-roster td::before{content:attr(data-label);display:block;font-weight:600;color:var(--muted);font-size:12px;margin-bottom:6px}
 .lesson-roster td:first-child::before,.lesson-roster td:nth-child(2)::before{display:none}
 .lesson-roster .syllabus-student-link{min-height:44px;font-size:18px;width:100%}.lesson-roster select{min-height:44px;width:100%}
 .lesson-roster .lesson-hifdh-position{min-width:0}
 dialog#lesson-drawer{inset:0;margin:0;width:100%;max-width:100%;border:0;border-radius:0;height:100dvh;max-height:100dvh}
 #lesson-drawer .dialog-head{gap:12px;padding:12px 16px}#lesson-drawer .dialog-head h2{min-width:0;overflow-wrap:anywhere}
 #lesson-drawer .btn{min-height:44px;white-space:normal}#lesson-drawer .lesson-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 #lesson-drawer .panel-body{padding:14px}#lesson-drawer .next-lesson-summary>summary{font-size:18px}
 #lesson-drawer .assessment-target-row{flex-wrap:wrap;gap:10px}#lesson-drawer .syllabus-card{flex:1 1 100%;min-width:0}
 .lesson-student-navigation{display:grid;grid-template-columns:1fr 1fr;padding-bottom:env(safe-area-inset-bottom)}
 dialog#modal.lesson-form-modal{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;inset:0;border-radius:0}
 dialog#modal.lesson-form-modal[open]{display:flex;flex-direction:column;overflow:hidden}
 .lesson-form-modal #modal-form{display:flex;flex-direction:column;flex:1;min-height:0}
 .lesson-form-modal .dialog-body{flex:1;min-height:0;overflow-y:auto;padding:16px}
 .lesson-form-modal .dialog-head,.lesson-form-modal .dialog-foot{flex-shrink:0;position:static}
 .lesson-form-modal .dialog-foot,.lesson-form-modal .dialog-foot.recitation-actions{display:flex;flex-wrap:wrap;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));gap:8px}
 .lesson-form-modal .dialog-foot .btn{flex:1 1 140px;min-height:44px;white-space:normal;font-size:13px}
 .lesson-form-modal input,.lesson-form-modal select,.lesson-form-modal textarea{font-size:16px;min-height:44px}
 .lesson-form-modal .table-wrap{overflow:visible}.lesson-form-modal table,.lesson-form-modal tbody,.lesson-form-modal tr,.lesson-form-modal td{display:block;width:100%}.lesson-form-modal thead{display:none}.lesson-form-modal td{padding:10px 0}.lesson-form-modal tr{border-bottom:1px solid var(--line)}
 .lesson-form-modal .baseline-ayah-row{flex-wrap:wrap}
}

.lesson-attendance-mobile,.lesson-mobile-open{display:none}
@media(max-width:760px){
 .lesson-roster{padding:8px}.lesson-roster tr{padding:14px;margin-bottom:12px;border-radius:12px}
 .lesson-roster td{padding:7px 0;font-size:14px;line-height:1.4}
 .lesson-roster td:first-child{border-bottom:1px solid var(--line);margin-bottom:8px;padding-top:0}
 .lesson-roster .syllabus-student-link{font-size:18px;min-height:44px}
 .lesson-roster td:nth-child(2)>.field{display:none}
 .lesson-attendance-mobile,.lesson-mobile-open{display:block}
 .lesson-roster td:nth-child(4),.lesson-roster td:nth-child(5){display:none}
 .lesson-roster .lesson-hifdh-position strong{font-size:14px}.lesson-roster .lesson-hifdh-position small{font-size:12px}
 .lesson-roster td::before{font-size:12px;margin-bottom:4px}
 .lesson-mobile-open{margin-top:10px}.lesson-mobile-open .btn{min-height:44px;width:100%}
}

/* Shared attendance buttons for desktop and mobile. */
.lesson-roster td:nth-child(2)>.field{display:none}
.lesson-attendance-mobile{display:block}
 .lesson-attendance-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
 .lesson-attendance-option{flex:1 1 28%;min-height:44px;padding:8px 5px;border:1px solid currentColor;border-radius:8px;font:inherit;font-size:12px;font-weight:600;background:white;cursor:pointer}
 .lesson-attendance-option[data-lesson-status="Present"]{color:#176344;background:#e9f6ee}
 .lesson-attendance-option[data-lesson-status="Absent"]{color:#9a3039;background:#fcecee}
 .lesson-attendance-option[data-lesson-status="Late"]{color:#805600;background:#fff4d6}
 .lesson-attendance-option[data-lesson-status="Excused"]{color:#285b91;background:#eaf2fc}
 .lesson-attendance-option[data-lesson-status="Unmarked"]{color:#58616a;background:#f0f2f4}
 .lesson-attendance-option[aria-pressed="true"]{box-shadow:inset 0 0 0 2px currentColor;font-weight:800}
 .lesson-attendance-option:disabled{opacity:.6;cursor:wait}

@media(min-width:761px){.lesson-attendance-mobile{width:240px;max-width:100%}.lesson-attendance-mobile>.mini{display:none}.lesson-attendance-options{margin-top:0}}

@media(min-width:761px){.lesson-attendance-mobile{width:210px}.lesson-attendance-options{gap:4px}.lesson-attendance-option{min-height:32px;padding:5px 6px;font-size:11px;border-radius:6px}}

/* Strong selected state, with a checkmark supplied by the attendance control. */
.lesson-attendance-option[aria-pressed="true"]{color:#fff;border-color:transparent;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--attendance-selected);background:var(--attendance-selected);font-weight:800}
.lesson-attendance-option[data-lesson-status="Present"][aria-pressed="true"]{--attendance-selected:#176344}
.lesson-attendance-option[data-lesson-status="Absent"][aria-pressed="true"]{--attendance-selected:#9a3039}
.lesson-attendance-option[data-lesson-status="Late"][aria-pressed="true"]{--attendance-selected:#805600}
.lesson-attendance-option[data-lesson-status="Excused"][aria-pressed="true"]{--attendance-selected:#285b91}
.lesson-attendance-option[data-lesson-status="Unmarked"][aria-pressed="true"]{--attendance-selected:#58616a}

/* Attendance register uses the same status colours as Class Lesson. */
.attendance-choices{display:flex;flex-wrap:wrap;gap:6px;padding:4px}
.attendance-choices button{min-height:32px;padding:5px 9px;border:1px solid var(--attendance-colour);border-radius:6px;font-size:11px;font-weight:600;color:var(--attendance-colour);background:var(--attendance-tint)}
.attendance-choices button[data-status="Present"]{--attendance-colour:#176344;--attendance-tint:#e9f6ee}
.attendance-choices button[data-status="Absent"]{--attendance-colour:#9a3039;--attendance-tint:#fcecee}
.attendance-choices button[data-status="Late"]{--attendance-colour:#805600;--attendance-tint:#fff4d6}
.attendance-choices button[data-status="Excused"]{--attendance-colour:#285b91;--attendance-tint:#eaf2fc}
.attendance-choices button[data-status="Unmarked"]{--attendance-colour:#58616a;--attendance-tint:#f0f2f4}
.attendance-choices button[aria-pressed="true"]{background:var(--attendance-colour);color:white;border-color:transparent;font-weight:800;box-shadow:0 0 0 2px white,0 0 0 4px var(--attendance-colour)}
.attendance-choices button[aria-pressed="true"]::before{content:"✓ ";}
@media(max-width:760px){.attendance-choices button{min-height:44px;padding:8px;font-size:12px}}

#attendance-autosave:not(:empty){position:fixed;bottom:20px;inset-inline-end:20px;z-index:30;display:block;max-width:min(440px,calc(100vw - 32px));padding:15px 20px;border:2px solid #176344;border-radius:12px;background:#e9f6ee;color:#145536;font-size:15px;font-weight:700;box-shadow:0 5px 24px #17271926;overflow-wrap:anywhere;pointer-events:none}
#attendance-autosave[data-state="saving"]{border-color:#805600;background:#fff4d6;color:#805600}
#attendance-autosave[data-state="error"]{border-color:#9a3039;background:#fcecee;color:#9a3039}
@media(max-width:760px){#attendance-autosave:not(:empty){bottom:max(12px,env(safe-area-inset-bottom));inset-inline:16px;max-width:none;font-size:14px;padding:12px 16px}.savebar:has(#attendance-autosave){padding-bottom:100px}}

@media(max-width:760px){
 .attendance-register .toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
 .attendance-register .toolbar label{width:100%;min-width:0}
 .attendance-register .table-wrap{overflow:visible;padding:12px}
 .attendance-register table,.attendance-register tbody{display:block;width:100%}
 .attendance-register thead{display:none}
 .attendance-register tr[data-attendance-row]{display:block;margin-bottom:14px;padding:16px;background:white;border:1px solid var(--line);border-radius:12px}
 .attendance-register tr[data-attendance-row][hidden]{display:none}
 .attendance-register td{display:block;width:100%;padding:0;border:0;white-space:normal;box-sizing:border-box}
 .attendance-register td:first-child{padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:12px}
 .attendance-register .student-cell{gap:12px;min-width:0}.attendance-register .student-cell>div{min-width:0}
 .attendance-register .student-cell strong{font-size:17px;overflow-wrap:anywhere}.attendance-register .student-cell small{overflow-wrap:anywhere;font-size:12px}
 .attendance-register .avatar{width:38px;height:38px;flex-shrink:0}
 .attendance-register .attendance-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0;width:100%;padding:4px;box-sizing:border-box}
 .attendance-register .attendance-choices button{width:100%;min-width:0;min-height:44px;margin:0;padding:8px 4px;font-size:12px;white-space:normal;overflow-wrap:anywhere}
 .attendance-register .attendance-note-cell{margin-top:14px}
 .attendance-register .attendance-note-cell::before{content:attr(data-label);display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
 .attendance-register .note-input{width:100%;min-width:0;max-width:100%;min-height:44px;font-size:16px;box-sizing:border-box}
 .attendance-register .attendance-status-filters{flex-wrap:wrap;gap:8px}
 .attendance-register .savebar{flex-direction:column;align-items:stretch;padding-bottom:110px}
}

.student-link-option{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.student-link-option label{flex:1;min-width:0}.student-link-option label span{overflow-wrap:anywhere}.student-link-option .btn{flex-shrink:0;min-height:36px}.student-link-option [hidden]{display:none!important}
@media(max-width:760px){.student-link-option .btn{min-height:44px}}
