@font-face{font-family:'IBM Plex Sans Arabic';src:url('fonts/IBMPlexSansArabic-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Sans Arabic';src:url('fonts/IBMPlexSansArabic-Medium.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:'IBM Plex Sans Arabic';src:url('fonts/IBMPlexSansArabic-SemiBold.ttf') format('truetype');font-style:normal;font-weight:600 900;font-display:swap}
:root{--bg:#f5f7f6;--surface:#fff;--primary:#0f766e;--primary-soft:#e5f1ed;--ink:#213c34;--muted:#596b64;--line:#dce5e0;--good:#146a48;--bad:#ae352e;--sidebar:#173d34;--space-control:12px;--space-section:24px;--space-page:32px;font:400 16px/1.65 'IBM Plex Sans Arabic',Tahoma,sans-serif;color:var(--ink);background:var(--bg)}
::selection{color:#123b31;background:#c9e7db}input,textarea{caret-color:var(--primary)}a{text-underline-offset:5px}body{font-synthesis:none}button,input,select,textarea{font-family:inherit}button{font-weight:500;min-height:42px;padding:8px 16px;border-radius:7px;font-size:14px;transition:background-color .16s,color .16s,border-color .16s}button:active:not(:disabled){filter:brightness(.96)}button:hover:not(:disabled){background:#edf4f0}button.primary{background:var(--primary);color:white;border-color:var(--primary)}button.primary:hover:not(:disabled){background:var(--primary);filter:brightness(.94)}button:disabled{opacity:.6}input,select,textarea{font-size:15px;min-height:44px;line-height:1.65;border-color:#cbd8d1;border-radius:7px}input::placeholder,textarea::placeholder{color:#63756c;opacity:1}select{padding-inline:12px 28px}label.field{font-size:14px;font-weight:500;gap:8px;margin-bottom:20px}textarea{min-height:100px}h1,h2,h3{text-wrap:balance;color:#213c34}h1{font-size:28px;line-height:1.5;font-weight:600;margin-bottom:5px}h2{font-size:20px;line-height:1.5;font-weight:600}h3{font-size:17px;font-weight:500}p{text-wrap:pretty;line-height:1.8}.hint,.sub,.section-footer{font-size:14px!important;line-height:1.7}strong{font-weight:600}.topbar{height:76px;padding-inline:28px;border-color:var(--line)}.wordmark{font-size:23px;gap:12px;font-weight:600}.wordmark .latin{font-family:inherit;font-size:12px;border:0;padding:0;color:var(--muted)}.wordmark svg{width:30px;height:30px}.role-label{font-size:14px}.role-label select{font-size:14px;min-height:40px}.workspace-name{font-size:15px;font-weight:500}.shell{grid-template-columns:236px minmax(0,1fr);min-height:calc(100vh - 76px)}aside{padding:24px 14px;background:var(--sidebar);border:0;color:#dbeae3}.side-title{font-size:13px;color:#b5cdc1;padding:0 14px 24px}nav{gap:8px}nav a{color:#d3e5db;font-size:15px;font-weight:400;min-height:48px;border-radius:6px;padding:11px 13px;gap:12px}nav a:hover{background:#224c40;color:#fff}nav a.active{background:#dcefe4;color:#133d2e;font-weight:500}.sidebar-bottom{padding:30px 14px 0;gap:16px}.sidebar-bottom a,.sidebar-bottom .text-button{color:#dfefe7;font-size:14px}.private-note{color:#aac8b8;font-size:13px}.ico{stroke-width:1.6;width:20px;height:20px}.icon-button{display:grid;place-items:center;width:40px;height:40px;min-height:40px;padding:0}.mobile-menu{min-height:40px}.text-button{min-height:38px}.demo-banner{font-size:13px;padding:12px 0;color:#5a6d63}.demo-banner a{font-size:13px}main{padding:0 28px 36px}.page-head{margin:26px 0 22px;align-items:center}.page-head p{font-size:15px;line-height:1.7}.panel{border-radius:10px;border-color:var(--line);margin-bottom:24px;box-shadow:none}.panel-head{padding:18px 22px}.panel-body{padding:22px}.toolbar{gap:14px}.summary-line{margin:8px 0 26px;padding:16px 0}.summary-line span{font-size:14px}.summary-line strong{font-size:24px;font-weight:600}.two-col{gap:24px}.list-row{padding:18px 0}.list-row p{font-size:14px}.table-wrap{outline-offset:-3px;scrollbar-color:#a4bbad #f3f7f4}table{font-size:15px}th{font-size:13px;font-weight:500;color:#5c6d63;background:#f6f9f7;padding:14px 20px}td{padding:17px 20px;border-color:#edf1ee}td button{font-size:14px;padding:7px 12px;min-height:38px}tbody tr:hover{background:#f6faf7}td .sub{margin-top:4px}.amount{font-variant-numeric:tabular-nums;white-space:nowrap}.status{font-size:14px}.course-price{font-size:22px}.course-cover{background:#edf3ec;color:#2e5c43;border-color:#dce7d9}.course-row p{font-size:14px}.tabs button{font-size:15px;padding:12px 8px}.tabs{gap:24px}.notice{font-size:14px;line-height:1.8;border:1px solid #ebd9b5;border-radius:6px;background:#fff9ed;color:#725a30}.message-preview{font-size:16px;line-height:1.9;border-color:var(--line);background:#f4f9f5}.checkline{font-size:14px}.recipient-list .muted{font-size:14px}.recipient-list label{padding:14px 0}.recipient-list input{flex-shrink:0}.code{font-size:13px}.form-grid{gap:0 20px}.modal-actions{border-top:1px solid var(--line);padding-top:18px}.modal-actions .primary{min-width:130px}.dialog-head{padding:18px 22px}dialog{width:min(700px,calc(100vw - 32px));border:0;border-radius:12px;box-shadow:0 8px 32px #0000001f}#modal-body{padding:22px}.form-error{color:var(--bad);font-size:14px;min-height:0}.form-error:empty{display:none}#toast{font-size:14px;line-height:1.8;background:#173d34;box-shadow:none}.phone{border-radius:12px;box-shadow:none}.phone-header{font-size:17px}.phone-content h2{font-size:21px}.phone-content h3{font-size:17px}.phone-content p{font-size:15px}.phone-content button{font-size:15px}.phone-content .hint{font-size:13px!important}.phone-content .list-row{font-size:15px}.phone-nav button{font-size:13px;padding:7px 12px;min-height:58px;gap:5px}.phone-status{font-size:12px}.app-layout{grid-template-columns:minmax(300px,1fr) 390px;gap:32px}.phone-content{min-height:480px}.mobile-preview-bar{font-size:12px}.mobile-selectors .field{font-size:14px}.mobile-selectors select{font-size:15px}.mobile-app #view{max-width:440px}.mobile-app .phone-content{min-height:calc(100dvh - 300px)}
/* One workspace with task-level tabs. */
.school-tabs{display:flex;gap:32px;border-bottom:1px solid var(--line);margin-bottom:24px}.school-tabs button{display:flex;gap:9px;align-items:center;background:transparent;border:0;border-radius:0;color:var(--muted);padding:12px 5px 15px;min-height:50px;font-size:16px;position:relative}.school-tabs button[aria-selected=true]{color:var(--primary);font-weight:600}.school-tabs button[aria-selected=true]::after{content:'';position:absolute;bottom:-1px;inset-inline:0;height:3px;background:var(--primary);border-radius:2px}.school-tabs button:hover{background:none;color:var(--primary)}.school-tabs button:focus-visible{outline-offset:-4px}.filter-bar{display:flex;align-items:flex-end;gap:16px;padding:20px 22px}.search-field{display:flex;gap:8px;align-items:center;position:relative;flex:1;min-width:150px}.search-field>.ico{position:absolute;right:14px;color:var(--muted);pointer-events:none}.search-field>input{width:100%;background:#fff}.search-field>.ico+input{padding-right:43px}.compact-field{display:grid;gap:5px;min-width:140px;font-size:13px;color:var(--muted)}.compact-field select{font-size:14px;max-width:240px}.result-line{display:flex;justify-content:space-between;gap:12px;padding:0 22px 16px;font-size:13px;color:var(--muted)}.result-line>span:first-child{font-weight:500;color:var(--ink)}.students-table{min-width:710px}.students-table td,.groups-table td{white-space:normal}.students-table th{white-space:nowrap}.student-identity{display:flex;gap:12px;align-items:center}.student-avatar{display:grid;place-items:center;background:#e8f0e9;color:#355c44;border-radius:50%;width:38px;height:38px;flex-shrink:0;font-size:13px;font-weight:500}.name-button{min-height:0;padding:0;border:0;background:none;text-align:right;font-size:15px;font-weight:500;color:var(--ink);line-height:1.7}.name-button:hover{color:var(--primary);text-decoration:underline;background:none!important}.student-identity .sub{font-size:12px!important;color:#687a70;display:block;text-align:right}.state-label{display:inline-block;font-size:14px;font-weight:500}.good{color:var(--good)}.bad{color:var(--bad)}.groups-table{min-width:830px}.groups-table .actions{flex-wrap:nowrap}.empty-state{text-align:center;padding:48px 24px 56px;max-width:580px;margin:auto}.empty-state>.ico{width:32px;height:32px;color:#668574;margin-bottom:14px}.empty-state h2{font-size:20px}.empty-state p{font-size:15px;color:var(--muted);margin:10px 0 20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* The attendance action is the table, not a per-student dialog. */
.attendance-picker{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(170px,.8fr) 1fr;gap:22px;align-items:center;padding:22px;background:#fafcfb;border-bottom:1px solid var(--line)}.attendance-picker .field{margin:0}.autosave-explainer{display:flex;align-items:center;gap:10px;color:var(--good);font-size:14px;padding-top:20px}.autosave-explainer span{display:block;color:var(--muted);font-size:13px}.roster-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 22px 18px}.roster-head h2{font-size:20px}.roster-head p{font-size:14px;color:var(--muted);margin:5px 0 0}.roster-head button{font-size:13px}.attendance-counts{display:flex;gap:26px;padding:0 22px 20px;border-bottom:1px solid var(--line);font-size:14px;flex-wrap:wrap}.attendance-counts strong{font-weight:600;font-size:18px;margin-inline-start:7px}.roster-search{display:flex;gap:14px;padding:16px 22px;align-items:center}.roster-search .search-field{max-width:360px}.roster-search>select{font-size:14px;max-width:170px;margin-inline-start:auto}.attendance-table{table-layout:fixed;white-space:normal}.attendance-table .check-col{width:82px;text-align:center;padding:0}.attendance-table th:nth-child(2){width:40%}.attendance-table th:nth-child(3){width:180px}.attendance-table th.time-col{width:auto}.attendance-table td{padding:15px 22px}.attendance-table .student-identity{gap:12px}.attendance-table select{width:100%;font-size:14px;min-height:40px;background:#fff;padding:7px 10px 7px 22px}.attendance-check{display:grid;place-items:center;min-width:48px;min-height:56px;cursor:pointer}.attendance-check input{appearance:none;-webkit-appearance:none;min-height:0;width:24px;height:24px;margin:0;border:1.5px solid #96ab9e;border-radius:5px;cursor:pointer;display:grid;place-items:center;background:white;accent-color:var(--primary)}.attendance-check input:checked{background:var(--primary);border-color:var(--primary)}.attendance-check input:checked::after{content:'';width:9px;height:5px;border-left:2px solid white;border-bottom:2px solid white;transform:rotate(-45deg);margin-top:-3px}.attendance-table .is-present,.attendance-table .is-present:hover{background:#f0f8f2}.time-col{color:var(--muted);font-size:13px}.roster-caption{font-size:13px;color:var(--muted);padding:14px 22px;border-top:1px solid var(--line)}.save-footer{padding:15px 22px;background:#f7faf8;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--good);font-size:14px;border-top:1px solid var(--line);min-height:66px}.save-footer button{font-size:14px}.mobile-time{display:none}.back-link{display:flex;gap:6px;align-items:center;font-size:14px;margin-top:24px}.back-link .ico{transform:rotate(180deg);width:16px}.profile-strip{display:flex;gap:18px;align-items:center;margin:24px 0}.student-avatar.large{width:62px;height:62px;font-size:22px}.profile-strip p{margin:5px 0 0;font-size:15px;color:var(--muted)}.profile-tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin-bottom:24px}.profile-tabs a{padding:12px 0;border-bottom:2px solid transparent;color:var(--muted)}.profile-tabs a.selected{color:var(--primary);border-color:var(--primary)}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.notes-title{margin-top:24px}
@media(max-width:1150px){.shell{grid-template-columns:215px minmax(0,1fr)}.topbar{padding-inline:22px}.wordmark .latin{display:none}main{padding-inline:22px}.app-layout{grid-template-columns:1fr}.app-controls .steps{display:none}.attendance-picker{grid-template-columns:1fr 190px}.autosave-explainer{grid-column:1/-1;padding:0}.roster-head{align-items:flex-start}.roster-head .actions{max-width:200px;justify-content:flex-end}.attendance-counts{gap:18px}.attendance-table .student-avatar{display:none}.attendance-table .time-col{display:none}.attendance-table th:nth-child(2){width:auto}.attendance-table th:nth-child(3){width:165px}.mobile-time{display:block;font-size:12px;color:var(--muted)}.filter-bar{flex-wrap:wrap}.filter-bar .search-field{min-width:100%}.compact-field{flex:1}.compact-field select{max-width:none}.profile-grid{grid-template-columns:1fr}}
@media(max-width:760px){.topbar{min-height:70px;height:auto;padding:12px 16px;gap:8px}.wordmark{font-size:20px;gap:9px}.wordmark svg{width:25px}.top-controls{gap:9px}.role-label{font-size:0}.role-label select{font-size:12px;max-width:146px;min-height:38px;padding:6px 7px}.shell{display:block}.workspace-name{display:none}aside{padding:14px}aside.open{display:flex}.side-title{display:none}nav{gap:7px}nav a{font-size:14px;padding:10px;min-height:45px}.sidebar-bottom{padding-top:16px}main{padding:0 16px 24px}.demo-banner{font-size:12px;padding:10px 0}.page-head{margin:22px 0 18px;align-items:flex-start}.page-head p{font-size:14px;max-width:40ch}h1{font-size:25px;line-height:1.5}.page-head .actions button{font-size:14px}.panel{border-radius:8px}.panel-body{padding:18px}.panel-head{padding:16px 18px}.panel-head button{font-size:14px}.school-tabs{gap:22px;margin-bottom:20px}.school-tabs button{font-size:15px;gap:7px;padding:12px 2px;min-height:48px}.school-tabs .ico{width:18px}.filter-bar{padding:16px;gap:12px}.compact-field{min-width:120px}.search-field input{font-size:14px}.result-line{padding:0 16px 14px;font-size:13px}.result-line>span:last-child{display:none}.student-panel .section-footer{font-size:13px!important}.attendance-picker{padding:18px 16px;gap:16px;grid-template-columns:1fr}.attendance-picker .field{font-size:14px}.attendance-picker select,.attendance-picker input{width:100%;max-width:100%}.autosave-explainer{grid-column:auto;gap:8px;font-size:14px}.autosave-explainer span{font-size:13px}.roster-head{padding:20px 16px 16px;display:block}.roster-head h2{font-size:19px}.roster-head p{font-size:13px}.roster-head .actions{max-width:none;justify-content:flex-start;margin-top:16px;gap:8px}.roster-head button{font-size:13px;padding:8px 10px;min-height:42px}.attendance-counts{padding:0 16px 16px;gap:12px 18px;font-size:13px}.attendance-counts strong{font-size:17px;margin-inline-start:4px}.roster-search{padding:14px 16px;gap:10px;flex-wrap:wrap}.roster-search .search-field{min-width:100%;max-width:none}.roster-search>select{margin:0;width:100%;max-width:none}.attendance-table{min-width:0;width:100%;font-size:14px}.attendance-table th{font-size:12px;padding:12px 8px}.attendance-table .check-col{width:48px}.attendance-table th:nth-child(2){width:auto}.attendance-table th:nth-child(3){width:114px}.attendance-table td{padding:14px 8px}.attendance-table .name-button{font-size:14px}.attendance-table .student-identity .sub{font-size:12px!important}.attendance-table select{min-height:44px;font-size:13px;padding:6px 5px 6px 16px}.attendance-table .student-avatar{display:none}.attendance-check{min-width:44px;min-height:54px}.roster-caption{padding:14px 16px;font-size:12px;line-height:1.8}.save-footer{padding:12px 16px;flex-wrap:wrap;font-size:13px;min-height:65px}.save-footer button{font-size:13px}.empty-state{padding:35px 20px}.empty-state p{font-size:14px}.hint,.sub,.section-footer{font-size:13px!important}.form-grid{grid-template-columns:1fr}.profile-tabs{font-size:14px;gap:22px}.profile-strip{gap:12px}.readout{font-size:14px}.course-row{grid-template-columns:70px 1fr}.course-row p{font-size:14px}.course-row h2{font-size:18px}.course-cover{font-size:22px}.phone-content p,.phone-content button{font-size:15px}.phone-nav button{font-size:12px}.phone{max-width:390px}.phone-content{padding:20px;min-height:440px}.app-layout{gap:20px}.mobile-preview-bar{padding:10px 12px;font-size:12px}.mobile-selectors{padding:12px}.mobile-app .phone-content{min-height:calc(100dvh - 300px)}.notice{font-size:13px}.summary-line>div{padding:0 14px}.summary-line span{font-size:13px}.summary-line strong{font-size:22px}.two-col{gap:0}.mobile-app .shell{display:block}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:760px){.attendance-picker{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 12px}.attendance-picker>.field:first-child{grid-column:1/-1}.attendance-picker>.autosave-explainer{padding-top:21px;font-size:13px;gap:6px}.attendance-picker>.autosave-explainer .ico{width:16px}.attendance-picker>.autosave-explainer span{font-size:12px}.roster-search{flex-wrap:nowrap;gap:8px}.roster-search .search-field{min-width:0}.roster-search>select{width:120px;flex-shrink:0;font-size:13px}.roster-search input{font-size:13px}.roster-head{padding-top:18px}.attendance-counts{gap:8px 16px}.attendance-panel .roster-caption{font-size:12px!important}}

.sidebar-bottom .text-button:hover:not(:disabled){background:#224c40;color:#fff}
