@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/build/assets/vazirmatn-arabic-wght-normal-Cafbb7Zc.woff2)format("woff2-variations");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+897-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/build/assets/vazirmatn-latin-ext-wght-normal-tDTa1Fj6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Vazirmatn Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/build/assets/vazirmatn-latin-wght-normal-BFexNX-K.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.teacher-dashboard-date{color:var(--muted);margin:-12px 0 24px}.teacher-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;display:grid}.teacher-shortcut{border:1px solid var(--line);min-width:0;color:var(--ink);background:#fff;border-radius:20px;flex-direction:column;padding:22px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.teacher-shortcut:hover{border-color:var(--primary);box-shadow:0 8px 24px #102b5010}.teacher-shortcut:focus-visible{outline:3px solid var(--primary);outline-offset:4px}.teacher-shortcut-visual{min-height:140px;color:var(--primary);background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:14px;place-items:center;margin-bottom:18px;display:grid}.teacher-shortcut h2{margin:0 0 8px;font-size:18px}.teacher-shortcut p{color:var(--muted);margin:0 0 20px;font-size:13px}.teacher-shortcut-action{color:var(--primary);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;font-weight:600;display:flex}@media (width<=1200px){.teacher-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.teacher-shortcuts{gap:12px}.teacher-shortcut{border-radius:16px;padding:14px}.teacher-shortcut-visual{min-height:100px;margin-bottom:12px}.teacher-shortcut h2{font-size:15px}.teacher-shortcut p{margin-bottom:14px;font-size:12px}.teacher-shortcut-action{font-size:12px}}@media (width<=340px){.teacher-shortcuts{grid-template-columns:minmax(0,1fr)}}:root{--bg:#f5f7f8;--ink:#20334f;--muted:#718096;--line:#e4eaf3;--primary:#2563eb;--navy:#102b50;--accent:#dbeafe;--red:#c65556;--yellow:#bf8e29}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Vazirmatn Variable,Tahoma,Arial,sans-serif;font-size:13px;line-height:1.8}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}input,textarea,select{color:var(--ink);background:#fff;border:1px solid #dcdfe4;border-radius:9px;outline:none;min-width:0;padding:10px 12px}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1b}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #93b5fa}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Vazirmatn Variable,Tahoma,sans-serif;font-weight:700}h1{letter-spacing:-.7px;margin-bottom:7px;font-size:26px;line-height:1.5}h2{margin-bottom:0;font-size:16px}h3{font-size:16px}p{color:var(--muted)}small{font-size:11px}strong{font-weight:700}.initial,.loading{text-align:center;padding:80px}.layout{min-height:100vh;display:flex}.sidebar{background:var(--navy);color:#e5e8ed;z-index:10;flex-direction:column;flex-shrink:0;width:240px;padding:30px 20px;display:flex;position:fixed;top:0;bottom:0;right:0}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--accent);width:43px;height:43px;color:var(--navy);border-radius:13px;flex-shrink:0;place-items:center;font-size:29px;line-height:1;display:grid}.brand strong{min-width:0;font-size:27px;line-height:1.25}.brand strong span{color:#a9b5c5;margin-top:5px;font-size:10px;font-weight:400;display:block}.school-label{color:#808fa5;margin:38px 14px 16px;font-size:10px}.nav-item{color:#abb5c2;text-align:right;background:0 0;border-radius:10px;align-items:center;gap:14px;width:100%;margin-bottom:6px;padding:12px 15px;font-size:12px;display:flex;position:relative}.nav-item>span{min-width:22px;font-size:21px;line-height:1}.nav-item:hover{color:#fff;background:#ffffff0b}.nav-item.active{background:var(--accent);color:var(--navy);font-weight:700}.nav-item i{background:var(--navy);border-radius:50%;width:5px;height:5px;margin-right:auto}.sidebar-bottom{margin-top:auto;padding-top:36px}.profile{border-top:1px solid #ffffff12;align-items:center;gap:10px;padding-top:20px;display:flex}.avatar{color:#d8e1ee;background:#435165;border-radius:50%;flex-shrink:0;place-items:center;width:35px;height:35px;font-size:16px;display:grid}.avatar.light{color:#546377;background:#dfe5ed}.avatar.large{width:52px;height:52px;margin-bottom:15px;font-size:22px}.profile strong{font-size:10px;display:block}.profile small{color:#8f9cad;font-size:9px;display:block}.logout{color:#b7c0cd;background:0 0;margin-right:auto;font-size:23px}.workspace{width:calc(100% - 240px);margin-right:240px}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:15px;height:86px;padding:0 35px;display:flex}.topbar-label,.topbar-end{align-items:center;gap:12px;display:flex}.topbar-label strong{font-size:13px}.topbar-label strong span{color:var(--muted);font-size:9px;font-weight:400;display:block}.school-icon{color:#697a92;background:#f0f2f5;border-radius:11px;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:22px;display:grid}.date-label{color:#838890;font-size:11px}.topbar select{border-color:#e9ebee;padding:8px 10px;font-size:11px}.mobile-menu{display:none}#content{max-width:1700px;min-height:calc(100vh - 150px);margin:auto;padding:30px 35px 25px}.page-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:25px;display:flex}.eyebrow{color:#9398a0;margin-bottom:9px;font-size:10px}.page-heading p{max-width:650px;margin:0;font-size:11px}.heading-actions{flex-shrink:0;gap:9px;display:flex}.primary,.secondary{white-space:nowrap;border-radius:9px;min-height:40px;padding:10px 16px;font-size:11px;font-weight:600}.primary{background:var(--primary);color:#fff;box-shadow:0 3px 6px #14335f20}.primary:hover{background:#1d4ed8}.secondary{color:#535c69;background:#fff;border:1px solid #dcdfe4}.secondary:hover{background:#f7f8fa}.wide{width:100%}.text-button{color:var(--primary);background:0 0;padding:4px 7px;font-size:11px}.danger{color:var(--red)}.icon-button{color:#8b929b;background:0 0;border-radius:8px;padding:5px 9px;font-size:19px}.overview-banner{background:#e0e6ee;border:1px solid #d9dfe8;border-radius:14px;justify-content:space-between;align-items:center;min-height:145px;margin-bottom:22px;padding:23px 30px;display:flex;position:relative;overflow:hidden}.banner-kicker{color:#677890;font-size:10px}.overview-banner h2{color:#344153;letter-spacing:-.6px;margin:8px 0 5px;font-size:21px}.overview-banner p{color:#707c8e;margin:0;font-size:11px}.banner-symbol{width:120px;height:100px;margin-left:25px;position:relative}.banner-symbol>span{color:#546987;z-index:1;background:#fffdf6;border:1px solid #c9d2de;border-radius:15px;place-items:center;width:73px;height:82px;font-size:45px;display:grid;position:absolute;top:8px;left:10px;transform:rotate(-12deg);box-shadow:8px 8px #c8d3e2}.banner-symbol i{border:1px dashed #9dadc4;border-radius:50%;width:130px;height:130px;position:absolute;top:-10px;left:-20px}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:23px;display:grid}.stat-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:20px 23px}.stat-top{color:#7b818a;justify-content:space-between;align-items:center;font-size:11px;display:flex}.stat-icon{border-radius:10px;place-items:center;width:34px;height:34px;font-size:21px;display:grid}.stat-icon.neutral{color:#687689;background:#e9ecf1}.stat-icon.present{color:#315485;background:#e7edf5}.stat-icon.absent{color:#c76c6c;background:#fbecec}.stat-icon.late{color:#c39c47;background:#fff5de}.stat-card>strong{margin-top:7px;font-family:Tahoma,sans-serif;font-size:30px;font-weight:500;line-height:1.6;display:block}.stat-card>small{color:#a1a5aa;font-size:9px}.dashboard-grid{grid-template-columns:1.25fr 1fr;gap:22px;margin-bottom:23px;display:grid}.card{border:1px solid var(--line);background:#fff;border-radius:13px;overflow:hidden}.card-heading{border-bottom:1px solid #f0f1f3;justify-content:space-between;align-items:center;gap:12px;padding:22px 23px;display:flex}.card-heading p{margin:3px 0 0;font-size:10px}.lesson-row{border-bottom:1px solid #f0f1f3;align-items:center;gap:11px;margin:0 21px;padding:19px 0;display:flex}.lesson-row:last-child{border:0}.period-number{color:#798392;background:#f2f4f6;border:1px solid #e4e7ec;border-radius:8px;flex-shrink:0;place-items:center;width:34px;height:38px;font-size:16px;display:grid}.lesson-info{flex:1;min-width:0}.lesson-info strong{font-size:11px}.lesson-info small{color:#969ba1;margin-top:3px;font-size:9px;display:block}.lesson-time{color:#878d95;font-size:10px}.badge{white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:3px 9px;font-size:9px;line-height:1.9;display:inline-flex}.badge i{background:currentColor;border-radius:50%;width:5px;height:5px}.badge.present{color:#3a5c8c;background:#eaeff5}.badge.absent{color:#bf595e;background:#fbeeee}.badge.late{color:#ae8533;background:#fff5df}.badge.pending{color:#949aa3;background:#f2f3f5}.small-tag{color:#858f9d;background:#f2f4f6;border-radius:5px;padding:3px 8px;font-size:9px;font-weight:400;display:inline-block}.chart-legend{color:#93979d;gap:17px;margin:17px 23px 0;font-size:9px;display:flex}.chart-legend span{align-items:center;gap:5px;display:flex}.chart-legend i{border-radius:2px;width:6px;height:6px}.present{--status-color:#a5b3c6}.absent{--status-color:#e7a2a2}.late{--status-color:#ead197}.chart-legend i,.bar-stack>div{background:var(--status-color)}.bar-chart{direction:rtl;background:repeating-linear-gradient(0deg,#0000,#0000 42px,#f5f6f8 43px 44px) padding-box content-box;justify-content:space-around;align-items:flex-end;gap:10px;height:194px;padding:20px 23px 10px;display:flex}.bar-col{text-align:center;flex:1;max-width:44px;font-size:9px}.bar-col small{color:#9ba0a6;white-space:nowrap;font-size:8px}.bar-value{color:#8d939c;margin-bottom:5px;font-size:9px}.bar-track{align-items:flex-end;height:113px;display:flex}.bar-stack{width:100%;height:var(--height);border-radius:5px 5px 0 0;flex-direction:column;min-height:2px;display:flex;overflow:hidden}.bar-stack>div{height:var(--height);min-height:0}.chart-footer{color:#8791a0;border-top:1px solid #f0f1f3;justify-content:space-between;align-items:center;gap:8px;margin:12px 23px 20px;padding-top:14px;font-size:10px;display:flex}.chart-footer strong{color:#4e6079;margin-right:9px;font-size:14px}.chart-footer small{color:#9ba1aa;font-size:8px}.table-wrap{overflow:auto}table{border-collapse:collapse;text-align:right;white-space:nowrap;width:100%}th{color:#8e939a;border-bottom:1px solid var(--line);background:#f9fafb;padding:14px 22px;font-size:10px;font-weight:400}td{border-bottom:1px solid #f0f1f3;padding:17px 22px;font-size:11px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfd}.cell-sub{color:#9ba0a6;margin-top:2px;font-size:9px;display:block}.text-absent{color:#c87878}.text-late{color:#b69650}.empty{text-align:center;padding:42px 20px}.empty>span{color:#b3b8bf;font-size:30px}.empty p{margin:9px 0;font-size:12px}.alerts-card{margin-top:20px}footer{color:#a6aab0;border-top:1px solid #e8ebee;margin-top:15px;padding:15px 35px;font-size:9px}footer>span{margin:0 8px}.footer-left{float:left}.attendance-controls{align-items:flex-end;gap:22px;margin-bottom:20px;padding:22px;display:flex}.field{color:#767f8b;flex-direction:column;gap:7px;font-size:11px;display:flex}.field input,.field textarea,.field select{width:100%;min-height:42px}.field input[type=hidden]{display:none}.field textarea{resize:vertical;line-height:1.8}.attendance-controls .field:first-child{width:170px}.attendance-controls .field:nth-child(2){flex:1}.attendance-context{color:#6f7885;text-align:left;padding-bottom:5px;font-size:11px}.attendance-context small{color:#9ea4ac;display:block}.attendance-manager-selection-hint{flex-direction:column;flex:1;gap:5px;padding-bottom:3px;display:flex}.attendance-manager-selection-hint strong{color:var(--ink);font-size:14px}.attendance-manager-selection-hint small{color:var(--muted)}.attendance-lesson-picker{margin-bottom:20px;padding:22px}.attendance-lesson-picker-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.attendance-lesson-picker-heading h2{margin:0;font-size:17px}.attendance-lesson-picker-heading p{color:var(--muted);margin:5px 0 0;font-size:12px}.attendance-lesson-search{flex:0 320px;width:min(320px,100%)}.attendance-lesson-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px;display:grid}.attendance-lesson-card{border:1px solid var(--line);min-width:0;min-height:190px;color:var(--ink);text-align:right;font:inherit;cursor:pointer;background:#fff;border-radius:16px;flex-direction:column;align-items:flex-start;gap:8px;padding:17px;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s;display:flex}.attendance-lesson-card:hover:not(:disabled),.attendance-lesson-card:focus-visible{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 8px 20px #1759b31a}.attendance-lesson-card.selected{border:2px solid var(--primary);cursor:default;background:#f3f7ff}.attendance-lesson-card>strong{font-size:17px}.attendance-lesson-card>span:not(.attendance-lesson-period):not(.attendance-lesson-action){color:var(--ink)}.attendance-lesson-card small{color:var(--muted);line-height:1.7}.attendance-lesson-period{color:var(--primary);background:#edf3ff;border-radius:8px;padding:4px 9px;font-size:11px;font-weight:700}.attendance-lesson-action{border-top:1px solid var(--line);width:100%;color:var(--primary);justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px;font-size:12px;font-weight:700;display:flex}.attendance-lesson-action .icon{width:17px;height:17px}.roster-legend{gap:8px;display:flex}.roster-toolbar,.list-toolbar{border-bottom:1px solid #eff1f3;align-items:center;gap:16px;padding:18px 23px;display:flex}.search{background:#f8f9fb;min-width:220px;font-size:11px}.save-state{color:#919aa6;margin-right:auto;font-size:9px}.status-picker{background:#f9fafb;border:1px solid #e5e8ec;border-radius:8px;gap:3px;width:max-content;padding:3px;display:flex}.status-picker button{color:#9fa3a8;background:0 0;border-radius:6px;min-width:55px;padding:5px 15px;font-size:10px}.status-picker button.selected.present{color:#4a6181;background:#dfe5ee}.status-picker button.selected.absent{color:#b85d62;background:#f7e4e4}.status-picker button.selected.late{color:#b39340;background:#faf0d7}.minutes-input{text-align:center;width:80px;padding:6px}.row-number{color:#a7acb4}.save-bar{z-index:2;background:#fff;border:1px solid #dee3e9;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding:18px 23px;display:flex;position:sticky;bottom:15px;box-shadow:0 5px 25px #24304012}.save-bar strong{font-size:12px}.save-bar small{color:#999fa8;margin-top:4px;font-size:9px;display:block}.save-bar>div:last-child{gap:8px;display:flex}.user-cell{align-items:center;gap:12px;display:flex}.week-tabs{gap:8px;margin-bottom:20px;display:flex}.week-tabs button{color:#929aa6;background:#fff;border:1px solid #e2e6eb;border-radius:9px;padding:9px 25px;font-size:11px}.week-tabs button.active{color:#485a74;background:#dfe5ee;border-color:#cad3df}.class-list{margin-top:24px}.class-chips{flex-wrap:wrap;gap:20px;padding:22px;display:flex}.class-chips>div{border:1px solid #e3e7ec;border-radius:10px;grid-template-columns:35px 1fr;gap:5px 12px;min-width:240px;padding:15px 20px;display:grid}.class-chips .stat-icon{grid-row:span 2}.class-chips strong{font-size:11px}.class-chips small{color:#929ca9;font-size:9px}.class-chips .class-edit{grid-column:2;justify-self:start;margin-top:4px}.check-label{color:#8e98a6;align-items:center;gap:8px;margin-right:auto;font-size:10px;display:flex}.list-filters{flex-wrap:wrap;gap:8px;margin-right:auto;display:flex}.filter-toggle{border:1px solid var(--line);min-height:34px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:10px;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.filter-toggle:hover{border-color:var(--primary);color:var(--ink)}.filter-toggle input{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;margin:0}.filter-toggle:has(input:checked){background:var(--accent);border-color:var(--primary);color:var(--primary);font-weight:600}.filter-toggle:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.table-sort-button{width:100%;min-height:36px;color:inherit;font:inherit;text-align:start;background:0 0;border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:5px 6px;transition:background-color .12s,color .12s;display:flex}.audit-card .list-toolbar{flex-wrap:wrap;align-items:end;gap:14px;display:flex}.audit-card .list-toolbar>.field{flex:220px;min-width:0;margin:0}.audit-card .list-toolbar>.search{flex:220px;min-width:0}.audit-details-cell{white-space:nowrap;width:150px}.audit-details-button{padding:8px 12px;font-size:12px}.audit-details-dialog{width:min(720px,100vw - 28px)}.audit-details-body{padding:20px}.audit-activity-summary{gap:12px;margin:0 0 20px;display:grid}.audit-activity-summary dt{color:var(--muted);font-size:12px}.audit-activity-summary dd{overflow-wrap:anywhere;margin:4px 0 0}.audit-readable-details{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--line);background:#f8fbff;border-radius:12px;width:100%;min-width:0;padding:16px;font-size:13px;line-height:1.9}.audit-readable-list{margin:0}.audit-readable-list>div+div{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.audit-readable-list dt{color:var(--muted);margin-bottom:4px;font-size:12px}.audit-readable-list dd{color:var(--ink);margin:0}.audit-readable-list .audit-readable-list{border-inline-start:2px solid #dbeafe;padding-inline-start:12px}.audit-readable-details>p{margin-bottom:0}.table-sort-button:hover{color:var(--ink);background:#e8eef7}.table-sort-label{min-width:0}.table-sort-indicator{fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;flex-shrink:0;display:block}.table-sort-chevron{stroke:#a9b5c6}.table-sort-chevron.is-active{stroke:var(--primary);stroke-width:2.2px}.table-sort-button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}th[aria-sort=ascending] .table-sort-button,th[aria-sort=descending] .table-sort-button{color:var(--primary)}.report-filters{align-items:flex-end;gap:18px;margin-bottom:20px;padding:22px;display:flex}.report-filters .field{flex:1}.report-summary{align-items:center;gap:10px;margin:20px 0;font-size:13px;display:flex}.report-summary small{color:#8f98a5;margin-right:auto}.message-cell{white-space:normal;color:#838d9a;min-width:250px;max-width:330px;font-size:10px}.details-card{margin-top:22px}.settings-grid{grid-template-columns:1fr 1.2fr;gap:22px;display:grid}.settings-body{padding:25px}.settings-body p{margin:10px 0 20px;font-size:11px}.muted{color:#8e97a4;font-size:11px}.year-row{border-bottom:1px solid #e9ecf1;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.year-row strong{font-size:12px}.full{grid-column:1/-1}.period-settings{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:22px;display:grid}.period-form{border:1px solid #dee3ea;border-radius:10px;align-items:flex-end;gap:12px;padding:15px;display:flex}.period-form>strong{white-space:nowrap;align-self:center;font-size:11px}.period-form input{padding:7px}.period-form .field{flex:1}dialog{width:min(620px,100vw - 28px);color:var(--ink);border:0;border-radius:16px;max-height:90vh;padding:0;box-shadow:0 20px 80px #132e3133}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#13243c55}.modal-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:21px 25px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:20px;padding:25px;display:grid}.modal-footer{border-top:1px solid var(--line);background:#f5f7fa;justify-content:flex-end;gap:10px;padding:20px 25px;display:flex}.form-error{color:var(--red);white-space:normal;margin:0 25px 15px;font-size:11px}.form-error:empty{display:none}.notice{color:#607086;background:#e9eef6;border:1px solid #cdd9e9;border-radius:10px;padding:15px;font-size:11px;line-height:2}.notice code{word-break:break-word;display:block}.class-checks{border:1px solid #dae0e9;border-radius:9px;padding:15px}.class-checks legend{color:#808da0;font-size:10px}.class-checks label{align-items:center;gap:8px;padding:7px 0;font-size:11px;display:flex}#toast{color:#425671;z-index:100;opacity:0;pointer-events:none;background:#e9eef6;border:1px solid #cfd9e7;border-radius:12px;max-width:calc(100vw - 45px);padding:15px 22px;font-size:12px;transition:all .2s;position:fixed;bottom:25px;left:30px;transform:translateY(15px);box-shadow:0 4px 25px #1a2a4014}#toast.show{opacity:1;transform:translateY(0)}#toast.error{color:#b44e50;background:#fff0ef;border-color:#f1d8d5}.setup-error{text-align:center;max-width:700px;margin:100px auto;padding:30px}@media (width>=1450px){.sidebar{width:260px;padding:32px 25px}.workspace{width:calc(100% - 260px);margin-right:260px}#content{padding:35px 45px}.topbar{padding:0 45px}.lesson-row{padding:22px 0}.stat-card{padding:24px}}@media (width<=1150px){.sidebar{width:210px;padding:25px 15px}.workspace{width:calc(100% - 210px);margin-right:210px}#content{padding:25px 22px}.topbar{padding:0 22px}.dashboard-grid{grid-template-columns:1fr}.stat-card{padding:17px 15px}.stats-grid{gap:12px}.lesson-info{flex:1}.page-heading{align-items:flex-start}.heading-actions{flex-wrap:wrap;justify-content:flex-end;max-width:240px}.page-heading h1{font-size:23px}.date-label{display:none}.report-filters{flex-wrap:wrap}.report-filters .field{flex:150px}.period-settings{grid-template-columns:1fr}}@media (width<=760px){.sidebar-backdrop{z-index:9;width:100%;height:100%;box-shadow:none;cursor:pointer;background:#122b4a33;border:0;border-radius:0;margin:0;padding:0;position:fixed;inset:0}.sidebar-backdrop:hover{background:#122b4a33}.sidebar{width:235px;transition:transform .2s;transform:translate(100%);box-shadow:-10px 0 30px #16253b20}.sidebar.open{transform:translate(0)}.workspace{width:100%;margin:0}.mobile-menu{display:block}.topbar{height:72px;padding:0 15px}.topbar-label{gap:6px}.school-icon{display:none}.topbar select{max-width:125px;font-size:9px}.topbar-label strong{font-size:11px}.topbar-label strong span{font-size:8px}#content{padding:22px 15px}.page-heading{margin-bottom:20px;display:block}.page-heading h1{font-size:22px}.page-heading p{font-size:10px}.heading-actions{justify-content:flex-start;max-width:none;margin-top:16px}.overview-banner{min-height:135px;padding:20px}.overview-banner h2{max-width:270px;font-size:17px}.banner-symbol{width:60px;margin-left:10px}.banner-symbol>span{width:50px;height:62px;font-size:30px}.banner-symbol i{width:90px;height:90px;top:0;left:-10px}.overview-banner p{font-size:9px}.stats-grid{grid-template-columns:1fr 1fr;gap:12px}.stat-card{padding:16px}.stat-card>strong{font-size:27px}.stat-top{font-size:10px}.stat-icon{width:30px;height:30px}.dashboard-grid{gap:18px}.card-heading{padding:18px 16px}.card-heading h2{font-size:14px}.card-heading .text-button{font-size:9px}.lesson-row{gap:8px;margin:0 15px}.lesson-time{display:none}.lesson-info small,.lesson-row .badge{font-size:8px}.lesson-info strong{font-size:10px}th{padding:12px 16px;font-size:9px}td{padding:14px 16px;font-size:10px}.attendance-controls{flex-wrap:wrap;gap:15px;padding:18px}.attendance-controls .field:first-child{width:100%}.attendance-controls .field:nth-child(2){flex-basis:100%}.attendance-context{display:none}.roster-toolbar{flex-wrap:wrap;gap:10px;padding:15px}.search{flex:1;width:100%;min-width:0}.save-state{width:100%;margin:0}.roster-legend{gap:4px}.roster-legend .badge{padding:2px 5px;font-size:8px}.save-bar{flex-wrap:wrap;padding:15px;bottom:8px}.save-bar>div:last-child{width:100%}.save-bar .primary{flex:1}.save-bar strong{font-size:11px}.save-bar small{font-size:8px}.week-tabs{gap:6px;padding-bottom:5px;overflow:auto}.week-tabs button{flex-shrink:0;padding:8px 18px;font-size:10px}.class-chips>div{width:100%}.list-toolbar{flex-wrap:wrap;padding:15px}.check-label{margin:0}.list-filters{width:100%;margin:0}.filter-toggle{flex:140px;justify-content:center}.report-filters{gap:12px;padding:15px}.report-filters .field{flex-basis:100%}.report-filters button{flex:1}.report-summary{flex-wrap:wrap;gap:6px}.report-summary small{width:100%;margin-top:8px;font-size:9px}.settings-grid{grid-template-columns:1fr}.period-form{flex-wrap:wrap}.period-form>strong{width:100%}.form-grid{grid-template-columns:1fr;gap:15px;padding:20px}.full{grid-column:1}.modal-heading{padding:18px 20px}.modal-footer{padding:15px 20px}footer{padding:15px;font-size:8px}.footer-left{display:none}}.sidebar .close-sidebar{color:#c7ced8;justify-content:center;align-items:center;width:44px;min-width:44px;max-width:44px;height:44px;padding:0;display:none;position:absolute;top:8px;left:8px}@media (width<=760px){.sidebar .close-sidebar{display:inline-flex}}.login{background:var(--bg);place-items:center;min-height:100dvh;padding:32px 20px;display:grid}.login-box{border:1px solid var(--line);background:#fff;border-radius:16px;width:100%;max-width:390px;padding:32px;box-shadow:0 8px 32px #102b5006}.login-brand{justify-content:center;align-items:center;gap:10px;margin-bottom:22px;display:flex}.login-brand .brand-mark{border-radius:11px;width:36px;height:36px;font-size:25px}.login-brand strong{color:var(--navy);font-size:24px}.login-box h1{text-align:center;letter-spacing:0;margin-bottom:4px;font-size:22px}.login-description{text-align:center;margin-bottom:26px;font-size:11px}.login-box .field{margin-bottom:18px;font-size:12px}.login-box .field input{padding:12px 14px;font-size:13px}.login-box .primary{min-height:45px;margin-top:4px;font-size:13px}.login-parent-link{justify-content:center;align-items:center;min-height:45px;margin-top:14px;display:flex}.login-box .form-error{margin:0 0 15px}.login-note{text-align:center;margin:20px 0 0;font-size:10px;line-height:2}.login-demo{border-top:1px solid var(--line);color:var(--muted);margin-top:20px;padding-top:14px;font-size:10px}.login-demo summary{cursor:pointer;text-align:center}.login-demo p{text-align:center;margin:12px 0 0;line-height:2.2}@media (width<=480px){.login{padding:24px 16px}.login-box{padding:28px 24px}}.date-trigger{color:var(--ink);width:100%;height:42px;min-height:42px;font-size:inherit;background:#fff;border:1px solid #dcdfe4;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.date-trigger>span:last-child{color:var(--primary);flex-shrink:0;font-size:18px;line-height:1}.date-trigger:hover{border-color:var(--primary)}.persian-calendar{width:min(340px,100vw - 28px);padding:18px;overflow:auto}.calendar-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.calendar-heading h2{font-size:14px}.calendar-navigation{align-items:center;gap:7px;margin-bottom:16px;display:flex}.calendar-navigation select{flex:1;padding:7px 8px;font-size:12px}.calendar-navigation .icon-button{padding:4px 7px}.calendar-weekdays,.calendar-days{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-weekdays{color:var(--muted);padding-bottom:10px;font-size:11px}.calendar-days button{aspect-ratio:1;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:9px;font-size:13px}.calendar-days button:hover{background:#edf0f5}.calendar-days button.today{border-color:#91a2bb}.calendar-days button.selected{background:var(--primary);color:#fff}.calendar-days button:disabled{color:#c5c8cd;cursor:default;opacity:.6}.calendar-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;margin-top:15px;padding-top:12px;font-size:11px;display:flex}.calendar-help{text-align:center;margin:10px 0 0;font-size:9px}.date-range-trigger{font-variant-numeric:tabular-nums;border-radius:12px;height:50px;min-height:50px;padding:10px 14px}.date-range-trigger .icon{width:22px;height:22px}.date-range-calendar{width:min(760px,100vw - 28px)}.date-range-calendar .calendar-heading{margin-bottom:16px}.date-range-calendar .calendar-heading h2{margin:0}.date-range-calendar .calendar-heading p{color:var(--muted);margin:5px 0 0;font-size:11px}.range-selection-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.range-selection-fields button{border:1px solid var(--line);min-width:0;color:var(--ink);text-align:right;background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;display:flex}.range-selection-fields button[aria-pressed=true]{border-color:var(--primary);background:#f3f7ff}.range-selection-fields small{color:var(--muted);font-size:10px}.range-navigation{align-items:center;gap:8px;margin-bottom:12px;display:flex}.range-navigation>.custom-select{flex:1;min-width:0}.range-months{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.range-month{border:1px solid var(--line);border-radius:12px;min-width:0;padding:10px}.range-month h3{color:var(--ink);text-align:center;margin:0 0 10px;font-size:12px}.date-range-calendar .calendar-days button.in-range{color:var(--primary);background:#eaf1ff;border-radius:8px}.date-range-calendar .calendar-days button.selected{background:var(--primary);color:#fff;border-radius:9px}.date-range-footer{justify-content:flex-end;gap:12px}.time-selects{align-items:center;gap:5px;display:flex}.time-selects select{text-align:center;min-width:52px;padding:8px}.time-selects>span{color:var(--muted)}#local-clock{color:var(--primary);font-variant-numeric:tabular-nums;direction:ltr;margin-right:8px;display:inline-block}.custom-select{vertical-align:middle;width:100%;min-width:0;display:inline-flex;position:relative}.select-source{clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.select-trigger{width:100%;min-width:0;min-height:42px;color:var(--ink);text-align:start;background:#fff;border:1px solid #dcdfe4;border-radius:9px;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.select-trigger:hover{border-color:#8b99ad}.select-trigger:focus-visible,.select-trigger[aria-expanded=true]{border-color:var(--primary);outline:0;box-shadow:0 0 0 3px #2563eb1b}.select-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.select-arrow{color:#637184;flex:0 0 18px;width:18px;height:18px;margin-inline:0;transition:transform .15s}.select-trigger[aria-expanded=true] .select-arrow{transform:rotate(180deg)}.select-trigger:disabled{cursor:default;background:#f4f5f7}.select-menu{color:var(--ink);z-index:1000;overscroll-behavior:contain;font:inherit;direction:rtl;background:#fff;border:1px solid #dce1e8;border-radius:11px;max-height:280px;margin:0;padding:5px;position:fixed;inset:auto;overflow-y:auto;box-shadow:0 12px 36px #102b5026}.select-menu[hidden]{display:none!important}.select-option{cursor:pointer;overflow-wrap:anywhere;border-radius:7px;padding:9px 12px 9px 30px;line-height:1.6;position:relative}.select-option:hover,.select-option.active{background:#edf0f5}.select-option[aria-selected=true]{color:var(--primary);background:#eaeef4;font-weight:700}.select-option[aria-selected=true]:after{content:"✓";position:absolute;top:9px;left:10px}.select-option[aria-disabled=true]{opacity:.45;cursor:default}.time-selects>.custom-select{flex:0 76px;width:76px}.time-selects .select-trigger{gap:12px;padding:8px 10px}.time-selects .select-value{text-align:center;font-variant-numeric:tabular-nums;flex:1}.calendar-navigation>.custom-select{flex:1;width:0}.calendar-navigation .select-trigger{gap:9px;min-height:36px;padding:7px 9px;font-size:12px}@media (width<=760px){.time-selects>.custom-select{width:76px}}.period-form{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.period-form>strong{grid-column:1/-1}.period-form .field{min-width:0}.period-form .time-selects{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);width:100%;display:grid}.period-form .time-selects>.custom-select{width:100%;min-width:0}.period-form .time-selects .select-trigger{gap:6px;min-height:42px;padding:8px}.period-actions{grid-column:1/-1;justify-content:flex-end;align-items:center;gap:8px;display:flex}.period-actions>button{width:auto;min-height:40px;padding:8px 18px}.period-form button:disabled{cursor:not-allowed}.confirmation-dialog{width:min(440px,100vw - 28px)}.confirmation-body{align-items:flex-start;gap:14px;padding:25px;display:flex}.confirmation-body p{color:var(--ink);margin:0;font-size:13px;line-height:1.9}.confirmation-icon{height:38px;color:var(--primary);background:#e9edf3;border-radius:12px;flex:0 0 38px;place-items:center;font-size:22px;line-height:1;display:grid}.confirmation-icon.danger{color:var(--red);background:#faeeee}.confirmation-danger{background:var(--red)}@media (width<=760px){.confirmation-body{padding:20px}}.busy-label{justify-content:center;align-items:center;gap:8px;display:inline-flex}.spinner{border:2px solid;border-inline-end-color:#0000;border-radius:50%;flex:0 0 15px;width:15px;height:15px;animation:.8s linear infinite loading-spin;display:inline-block}.loading{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:180px;padding:40px 20px;display:flex}.loading small{color:var(--muted);font-size:11px}.initial{padding:clamp(24px,8vw,80px)}.network-status{z-index:110;border:1px solid var(--line);max-width:calc(100vw - 28px);color:var(--primary);pointer-events:none;text-align:center;background:#fff;border-radius:12px;padding:10px 16px;font-size:12px;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 18px #16253b12}.network-status.offline{color:var(--red);background:#fff6f4}@keyframes loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.app-loading{min-height:max(320px,100dvh - 380px);color:var(--primary);text-align:center;gap:0}.app-loading-screen{background:radial-gradient(#eaedf2 0,#f6f7f8 65%);min-height:100dvh}.app-loading-mark{place-items:center;width:92px;height:92px;margin-bottom:18px;display:grid;position:relative}.app-loading-orbit{border:2px solid #dce1e8;border-top-color:var(--primary);border-inline-end-color:#a4b1c3;border-radius:50%;animation:1.8s linear infinite loading-spin;position:absolute;inset:0}.app-loading-logo{background:var(--navy);color:#b8cdea;border-radius:20px;place-items:center;width:64px;height:64px;font-size:38px;line-height:1;display:grid;box-shadow:0 8px 22px #16253b15}.app-loading-brand{margin-bottom:12px;font-size:25px;font-weight:700}.app-loading-title{color:var(--ink);font-size:15px;line-height:1.8}.app-loading small{max-width:310px;margin-top:8px;line-height:1.9}.app-loading-dots{gap:7px;margin-top:22px;display:flex}.app-loading-dots i{background:var(--primary);opacity:.3;border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite loading-dot}.app-loading-dots i:nth-child(2){animation-delay:.15s}.app-loading-dots i:nth-child(3){animation-delay:.3s}body:has(.app-loading) .network-status:not(.offline){display:none}@keyframes loading-dot{50%{opacity:1;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.app-loading-orbit,.app-loading-dots i{animation:none}}.account-card{align-self:start}.account-body{flex-direction:column;gap:20px;padding:24px;display:flex}.account-body>.account-details,.account-body>.account-session-note{margin-block:0}.account-photo-action{align-self:flex-start}.account-identity{align-items:center;gap:16px;display:flex}.account-avatar{color:#536277;background:#e6ebf2;border-radius:18px;flex:0 0 60px;place-items:center;height:60px;font-size:26px;font-weight:700;display:grid}.account-identity>div{min-width:0}.account-identity h3{overflow-wrap:anywhere;margin:0 0 5px;font-size:16px}.account-role{color:var(--primary);background:#edf0f5;border-radius:6px;padding:2px 8px;font-size:10px;display:inline-block}.account-details{margin:22px 0}.account-details>div{border:1px solid var(--line);background:#fafbfc;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.account-details dt{color:var(--muted);font-size:11px}.account-details dd{letter-spacing:1px;margin:0;font-size:13px;font-weight:700}.account-security{justify-content:space-between;align-items:center;gap:16px;display:flex}.account-security strong{font-size:12px}.account-security p{margin:3px 0 0;font-size:10px;line-height:1.8}.account-password{white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:8px;display:inline-flex}.account-session-note{color:#747b84;background:#f3f4f6;border-radius:10px;align-items:flex-start;gap:8px;margin-top:22px;padding:12px;font-size:10px;line-height:1.9;display:flex}.account-session-note svg{flex:0 0 17px;margin-top:1px}@media (width<=1100px){.account-security{flex-direction:column;align-items:flex-start;gap:12px}}@media (width<=760px){.account-body{padding:20px}.account-password{width:100%}}.brand-logo{border-radius:inherit;object-fit:contain;background:0 0;width:100%;height:100%;display:block}:is(.brand-mark:has(.brand-logo),.school-icon:has(.brand-logo)){background:0 0}.brand>.brand-mark,.login-brand>.brand-mark{width:60px;height:60px}.school-icon:has(.brand-logo){width:44px;height:44px}.app-loading-logo{background:0 0}button:focus-visible,a:focus-visible,input:focus-visible,.select-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.sidebar button:focus-visible,.sidebar a:focus-visible{outline-color:var(--accent)}.skip-link{top:12px;z-index:150;color:var(--primary);background:#fff;border-radius:10px;padding:10px 18px;position:fixed;inset-inline-start:12px;transform:translateY(-180%);box-shadow:0 4px 18px #16253b20}.skip-link:focus{transform:translateY(0)}kbd{border:1px solid #dcdfe4;color:var(--ink);direction:ltr;background:#f6f7f8;border-bottom-width:2px;border-radius:6px;padding:3px 7px;font-family:Arial,sans-serif;font-size:10px;display:inline-block}.roster-keyboard-hint{margin:0;padding:0 22px 12px;font-size:10px}@media (width<=760px){.topbar-end{gap:8px}}.login-remember{cursor:pointer;align-items:center;gap:9px;margin-top:16px;font-size:12px;display:flex}.login-remember input{width:17px;height:17px;accent-color:var(--primary);flex-shrink:0;margin:0}fieldset.form-grid{border:0;min-width:0;margin:0}.photo-upload{min-width:0}.photo-upload-heading{justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;display:flex}.photo-upload-heading small{color:var(--muted);margin-inline-start:6px;font-size:10px;font-weight:400}.photo-private{color:var(--primary);background:#edf0f4;border-radius:6px;padding:4px 8px;font-size:10px}.photo-dropzone{background:#f7f8fa;border:1.5px dashed #bec4cd;border-radius:13px;align-items:center;gap:18px;padding:18px;transition:background .15s,border-color .15s;display:flex;position:relative}.photo-dropzone.dragging{border-color:var(--primary);background:#e7ecf3}.photo-preview{width:76px;height:86px;color:var(--primary);background:#e3e8ee;border-radius:10px;flex-shrink:0;place-items:center;font-size:30px;display:grid;overflow:hidden}.photo-preview img{object-fit:cover;width:100%;height:100%}.photo-upload-details{min-width:0}.photo-upload-details p{margin:0 0 6px;font-size:12px;font-weight:600}.photo-upload-details small{color:var(--muted);font-size:10px}.photo-upload-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.photo-upload-actions .secondary{min-height:32px;padding:7px 12px;font-size:10px}.photo-file-input{opacity:0;border:0;width:1px;height:1px;padding:0;position:absolute}.photo-upload-status{color:var(--muted);margin:8px 0 0;font-size:10px;line-height:1.8}.student-identity{align-items:center;gap:10px;display:flex}.student-avatar{width:36px;height:40px;color:var(--primary);background:#e4e9f0;border-radius:8px;flex-shrink:0;place-items:center;font-size:16px;display:grid;overflow:hidden}.student-avatar img{object-fit:cover;width:100%;height:100%}@media (width<=480px){.photo-dropzone{gap:12px;padding:12px}.photo-preview{width:58px;height:70px}.photo-upload-details p{font-size:11px}}.photo-upload-status.has-error{color:var(--red)}.student-class-note{color:var(--muted);align-self:center;margin:0;font-size:10px;line-height:1.9}.student-contacts-heading{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:18px;display:flex}.student-contacts-heading strong{font-size:12px}.student-contacts-heading small{color:var(--muted);font-size:10px;line-height:1.8}.student-contact-list{flex-direction:column;gap:5px;min-width:140px;display:flex}.student-contact-list>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.student-contact-list small{color:var(--muted);font-size:10px}#modal[open]{overflow:hidden}#dialog-form{flex-direction:column;max-height:90dvh;display:flex}#dialog-form .form-dialog-body{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}#dialog-form .modal-heading,#dialog-form .modal-footer,#dialog-form>.form-error{flex-shrink:0}.report-filters{flex-wrap:wrap}.report-filters .field{min-width:140px}.report-status-card{text-align:right;cursor:pointer;color:var(--text);font:inherit;border:2px solid #0000}.report-status-card[aria-pressed=true]{background:#eef1f6;border-color:#24426c;box-shadow:0 0 0 3px #24426c12}.report-status-card:hover{border-color:#8c98a9}.report-status-card small{display:block}.report-count-note{color:#646e7b;margin:-8px 0 22px;font-size:13px}.report-chart{margin-bottom:24px}.report-chart .card-heading{flex-wrap:wrap;gap:18px}.report-chart .field{min-width:170px}.report-chart-body{grid-template-columns:180px minmax(0,1fr);gap:28px;padding:24px;display:grid}.report-rate{text-align:center;background:#eff2f6;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px 16px;display:flex}.report-rate strong{color:#24426c;font-size:38px}.report-rate small{color:#646e7b}.report-bars{min-width:0}.report-bar-list{max-height:360px;padding-left:8px;overflow:auto}.report-bar-row{border-bottom:1px solid #edeff1;grid-template-columns:155px minmax(70px,1fr);align-items:center;gap:8px 18px;padding:12px 0;display:grid}.report-bar-row strong{font-size:14px;font-weight:600}.report-bar-row small{color:#646e7b;grid-column:2;font-size:12px}.report-bar-track{background:#f2f3f5;border-radius:7px;height:20px;display:flex;overflow:hidden}.report-bar-track .present{background:#677d9b}.report-bar-track .absent{background:#d78279}.report-bar-track .late{background:#dfbc64}.report-template-card{margin-bottom:24px}.report-template-card summary{cursor:pointer;padding:22px 24px;font-size:16px;font-weight:600}.report-template-card summary small{color:#646e7b;margin-inline-start:18px;font-size:13px;font-weight:400;display:inline-block}.message-editor{padding:0 24px 24px}.message-editor>p{color:#646e7b}.template-tokens,.template-actions{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.message-editor textarea{resize:vertical;width:100%;min-height:110px;font:inherit;border:1px solid #d5dae0;border-radius:12px;padding:14px;line-height:1.9}.message-preview{background:#f3f5f7;border:1px solid #e0e4e9;border-radius:14px;margin-top:16px;padding:18px}.message-preview p,.message-cell{white-space:pre-wrap;overflow-wrap:anywhere}.report-table-card .card-heading{flex-wrap:wrap;gap:16px}.report-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.report-pagination{justify-content:center;align-items:center;gap:18px;padding:20px;display:flex}.report-table-card td{line-height:1.8}.official-report-print{display:none}.attendance-exit-permit{color:#1d4ed8;white-space:normal;background:#eff6ff;border-radius:8px;align-items:flex-start;gap:6px;margin-top:8px;padding:6px 9px;font-size:12px;line-height:1.8;display:flex}.attendance-exit-permit svg{flex-shrink:0;margin-top:3px}.attendance-exit-permit small{color:#475569;display:block}@media print{@page{size:A4 landscape;margin:10mm}body.report-print-mode{color:#111;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff}body.report-print-mode>#app{display:none!important}body.report-print-mode>.official-report-print{display:block!important}.official-report-print{color:#17253b;direction:rtl;width:100%;font-family:Vazirmatn Variable,Vazirmatn,sans-serif;font-size:9pt}.official-report-header{border-bottom:2px solid #233f65;margin-bottom:5mm;padding-bottom:8mm}.official-report-brand{font-size:11pt;font-weight:700}.official-report-header h1{text-align:center;margin:3mm 0;font-size:16pt}.official-report-meta,.official-report-totals{flex-wrap:wrap;gap:3mm 8mm;margin-top:3mm;display:flex}.official-report-totals{font-weight:700}.official-report-table{table-layout:fixed;border-collapse:collapse;direction:rtl;width:100%;font-size:8pt}.official-report-table th,.official-report-table td{text-align:right;vertical-align:top;overflow-wrap:anywhere;border:1px solid #64748b;padding:2mm}.official-report-table th{color:#17253b;font-weight:700;background:#e8eef6!important}.official-report-table th:first-child{width:5%}.official-report-table th:nth-child(2){width:18%}.official-report-table th:nth-child(3){width:10%}.official-report-table th:nth-child(4){width:16%}.official-report-table th:nth-child(5){width:38%}.official-report-table th:nth-child(6){width:13%}.official-report-table thead{display:table-header-group}.official-report-table tbody tr{break-inside:avoid;page-break-inside:avoid}.official-report-table td>small,.official-report-detail{margin-top:1mm;display:block}.official-period-summary{margin-bottom:1mm;display:block}.official-report-count{font-weight:700;text-align:center!important}.official-signature-cell{min-height:15mm}.official-report-signoff{justify-content:space-between;gap:10mm;margin-top:12mm;font-weight:700;display:flex}.official-report-signoff span{border-bottom:1px solid #64748b;min-width:45mm;min-height:16mm}}@media (width<=700px){.report-chart-body{grid-template-columns:1fr;padding:18px}.report-rate{padding:16px}.report-bar-row{grid-template-columns:1fr}.report-bar-row small{grid-column:1}.report-status-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.report-status-card{padding:16px}.report-template-card summary small{margin:8px 0 0;display:block}}.sidebar nav{scrollbar-width:thin;scrollbar-color:#ffffff25 transparent;min-height:0;overflow-y:auto}.sidebar .brand,.sidebar .school-label,.sidebar-bottom{flex-shrink:0}.nav-group{margin-top:5px;padding-top:3px}.nav-group-toggle{min-height:44px;padding:10px 12px;font-size:12px}.nav-group-items[hidden]{display:none}.nav-group-toggle .nav-group-arrow{min-width:12px;margin-inline-start:auto;font-size:16px}.nav-group-toggle.group-active{color:#bdd0ea}.nav-group-items{border-inline-start:1px solid #ffffff25;margin:8px 18px 12px 0;padding-inline-start:18px}.nav-group-items .nav-item{padding:11px 14px;font-size:12px}.catalog-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:end;gap:18px;padding:24px;display:flex}.catalog-toolbar .field{flex:1;min-width:180px;max-width:380px}.catalog-toolbar .small-tag{margin-inline-start:auto}.catalog-inactive{cursor:pointer;align-items:center;gap:10px;padding:11px 0;display:flex}.catalog-inactive input{accent-color:#24426c;width:18px;height:18px}.catalog-access-note{background:#eff2f6;border-radius:12px;padding:16px;line-height:1.9}.catalog-permissions{max-width:420px;line-height:1.8}.sidebar .school-label{margin-top:24px;margin-bottom:12px}.sidebar nav>.nav-item{margin-bottom:4px;padding-block:10px}.class-picker-banner{background:linear-gradient(110deg,#dce4ef,#eef2f7);border:1px solid #d2dbe8;border-radius:22px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;padding:24px 32px;display:flex}.class-picker-banner h2{color:#21344f;margin:8px 0;font-size:25px}.class-picker-banner p{color:#586271;margin:0}.class-picker-banner img{object-fit:contain;flex-shrink:0}.class-picker-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.class-picker-heading h2{font-size:19px}.class-picker-step{color:#646e7b;margin-bottom:6px;font-size:12px;display:block}.class-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.class-choice-card{color:var(--ink);font:inherit;text-align:center;background:#fff;border:1px solid #e0e3e8;border-radius:22px;flex-direction:column;align-items:center;gap:10px;padding:22px;transition:border-color .15s,box-shadow .15s;display:flex;box-shadow:0 5px 14px #1b2c4308}.class-choice-card:hover{border-color:#576d8b;box-shadow:0 8px 22px #1b2c4314}.class-choice-card.current{background:#f9fbfd;border:2px solid #5b718f}.class-choice-tag{color:#525f72;background:#ebeff4;border-radius:8px;align-self:flex-start;padding:3px 10px;font-size:12px}.class-choice-card img{object-fit:contain;max-width:100%;margin:4px 0 8px}.class-choice-card strong{overflow-wrap:anywhere;font-size:19px;line-height:1.8}.class-choice-meta{color:#646e7b;font-size:13px}.class-choice-combined{color:#425268;font-size:12px}.class-choice-action{color:#284165;border-top:1px solid #edeff2;justify-content:center;gap:12px;width:100%;margin-top:auto;padding-top:16px;font-size:14px;font-weight:700;display:flex}.class-picker-selected{color:#35465e;background:#ebeff4;border-radius:14px;padding:16px 20px;font-size:17px;font-weight:700}.lesson-choice-list{gap:14px;display:grid}.lesson-choice{text-align:right;font:inherit;color:var(--ink);background:#fff;border:1px solid #dfe3e8;border-radius:18px;align-items:center;gap:22px;padding:22px 24px;display:flex}.lesson-choice.current{background:#f9fbfd;border:2px solid #5b718f}.lesson-choice.future{opacity:.7;cursor:not-allowed}.lesson-choice-period{background:#ebeff4;border-radius:12px;padding:12px 16px;font-size:15px;font-weight:700}.lesson-choice-info{flex-direction:column;flex:1;gap:6px;display:flex}.lesson-choice-info strong{font-size:19px}.lesson-choice-info>span{color:#646e7b;font-size:14px}.lesson-choice-arrow{color:#475a74;font-size:23px}.class-picker-note{margin:18px 0;font-size:13px}.class-picker-search{max-width:400px;margin-bottom:20px}.teacher-selected-class{flex-direction:column;flex:1;gap:4px;display:flex}.teacher-selected-class>span{color:var(--muted);font-size:12px}.teacher-selected-class strong{font-size:17px}.teacher-selected-class small{color:#646e7b;font-size:13px}@media (width<=1000px){.class-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.class-picker-banner{border-radius:18px;gap:12px;padding:18px}.class-picker-banner img{width:100px;height:100px}.class-picker-banner h2{font-size:20px}.class-picker-banner>div>span,.class-picker-banner p{font-size:12px}.class-choice-grid{gap:12px}.class-choice-card{border-radius:18px;padding:15px 12px}.class-choice-card img{width:108px;height:108px}.class-choice-card strong{font-size:16px}.class-choice-tag,.class-choice-meta,.class-choice-combined{font-size:11px}.class-picker-heading{flex-wrap:wrap;align-items:flex-start}.class-picker-heading h2{font-size:17px}.lesson-choice{flex-wrap:wrap;gap:12px;padding:16px}.lesson-choice-period{padding:10px;font-size:13px}.lesson-choice-info strong{font-size:17px}.lesson-choice-info>span{font-size:13px}.lesson-choice .badge{margin-inline-start:auto}}@media (prefers-reduced-motion:reduce){.class-choice-card{transition:none}}.list-pagination{text-align:center;border-top:1px solid var(--line,#e1e4e8);flex-flow:column wrap;justify-content:center;align-items:center;gap:14px;padding:20px 28px;display:flex}.pagination-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.pagination-size{color:var(--muted);white-space:nowrap;align-items:center;gap:12px;display:flex}.pagination-size .custom-select{width:100px}.pagination-actions>button,.pagination-size .select-trigger{box-sizing:border-box;height:48px;min-height:48px}.pagination-actions>button{min-width:108px}.student-report-search{display:contents}.report-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));align-items:start;gap:16px;display:grid}.report-filters .field{min-width:0;margin:0}.report-filters .field>input,.report-filters .custom-select,.report-filters .select-trigger{width:100%;min-width:0}.report-filters .field>input,.report-filters .select-trigger{min-height:44px}.report-filters>button[type=submit]{order:2;grid-column:1/-1;justify-self:start;width:auto;min-height:44px}.report-filters .student-search-help{order:1;grid-column:1/-1;margin:0}@media (width<=600px){.list-pagination{padding:16px}.pagination-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:340px;display:grid}.pagination-size{grid-column:1/-1;justify-content:center}}.photo-import-dialog[open]{flex-direction:column;width:min(960px,100vw - 28px);display:flex}.photo-import-dialog .modal-heading,.photo-import-dialog .modal-footer{flex-shrink:0}.photo-import-dialog .modal-heading h2{font-size:18px}.photo-import-body{min-height:0;padding:24px;overflow-y:auto}.photo-import-dropzone{text-align:center;border:2px dashed var(--line);border-radius:14px;flex-direction:column;align-items:center;gap:14px;margin:18px 0;padding:24px;display:flex}.photo-import-dropzone.dragging{background:#dfe8f5;border-color:#526278}.photo-import-dropzone small{color:var(--muted)}.photo-import-summary{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:20px 0;display:grid}.photo-import-summary>div{background:#eff2f6;border-radius:12px;flex-direction:column;gap:8px;padding:16px;display:flex}.photo-import-summary strong{font-size:24px}.photo-import-summary span{font-size:13px}.photo-import-replace{flex-wrap:wrap;margin:20px 0}.photo-import-replace small{flex-basis:100%}.photo-import-filename{overflow-wrap:anywhere;max-width:290px;display:block}.photo-import-body td{white-space:normal;overflow-wrap:anywhere}.photo-import-error{color:var(--red)}.photo-import-progress{background:#eff2f6;border-radius:10px;padding:16px}@media (width<=600px){.photo-import-body{padding:16px}.photo-import-dialog .modal-footer{flex-wrap:wrap}.photo-import-dialog .modal-footer button{flex:1}}.photo-import-progress progress{accent-color:#526278;width:100%;height:12px;margin:12px 0;display:block}.occurrence-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.5rem;display:flex}.occurrence-status{flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0;display:inline-flex}.occurrence-status small{color:var(--muted);white-space:normal}.occurrence-history{align-items:flex-start;gap:.75rem;line-height:1.9;display:flex}.occurrence-history input{flex:none;width:1.25rem;height:1.25rem;margin-top:.35rem}.report-type-switch{flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;display:flex}.occurrence-summary{margin-bottom:1.5rem}.lesson-row{flex-wrap:wrap}@media (width<=640px){.occurrence-toolbar>button{width:100%}.report-type-switch>button{flex:100%}}.analytics-filter-card{margin-bottom:24px;padding:24px}.analytics-student-picker,.analytics-range-form{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.analytics-student-picker{margin-bottom:20px}.analytics-student-picker>.field{flex:240px}.analytics-student-picker>small{flex-basis:100%}.analytics-range-form .field{flex:180px}.analytics-range-form>button{min-height:50px}.analytics-presets,.analytics-history-filters{flex-wrap:wrap;gap:10px;display:flex}.analytics-presets{margin-top:16px}.analytics-profile{background:linear-gradient(120deg,#fff,#f1f4f8);grid-template-columns:minmax(0,1fr) minmax(260px,1fr);gap:32px;margin-bottom:20px;padding:28px;display:grid}.analytics-profile-identity{align-items:center;gap:20px;min-width:0;display:flex}.analytics-profile .student-avatar{border:1px solid var(--line);border-radius:16px;width:90px;height:110px;font-size:32px}.analytics-profile-identity h2{overflow-wrap:anywhere;margin:6px 0 10px}.analytics-profile-identity small{color:#586372;margin:10px 0;line-height:1.9;display:block}.analytics-contacts{grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:18px;margin:0;display:grid}.analytics-contacts dt{color:#646e7b;font-size:12px}.analytics-contacts dd{text-align:right;overflow-wrap:anywhere;margin:8px 0 0;font-size:15px}.analytics-range-caption{color:#586372;margin-bottom:16px;line-height:1.9}.analytics-stat-cards .stat-card>small{color:#646e7b;font-size:12px}.analytics-last-events{color:#646e7b;flex-wrap:wrap;gap:16px 32px;padding:0 4px 24px;font-size:13px;line-height:1.8;display:flex}.analytics-last-events strong{color:var(--text)}.analytics-distribution,.analytics-breakdown{--analytics-present:#36537b;--analytics-late:#e8b454;--analytics-absent:#d87a73;margin-bottom:24px}.analytics-distribution-body{grid-template-columns:220px minmax(0,1fr);align-items:center;gap:36px;padding:28px;display:grid}.analytics-donut{border-radius:50%;place-items:center;width:200px;height:200px;margin:auto;padding:20px;display:grid}.analytics-donut.no-data{background:#eef0f2}.analytics-donut>div{background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:100%;display:flex}.analytics-donut strong{color:var(--primary);font-size:32px}.analytics-donut span{color:#646e7b;font-size:13px}.analytics-distribution-legend>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(100px,1fr) 1fr 60px;align-items:center;gap:12px;padding:14px 0;display:grid}.analytics-distribution-legend>div>span{align-items:center;gap:10px;display:flex}.analytics-distribution-legend i{border-radius:3px;flex-shrink:0;width:11px;height:11px}.analytics-distribution-legend i.present,.analytics-breakdown .report-bar-track .present{background:var(--analytics-present)}.analytics-distribution-legend i.late,.analytics-breakdown .report-bar-track .late{background:var(--analytics-late)}.analytics-distribution-legend i.absent,.analytics-breakdown .report-bar-track .absent{background:var(--analytics-absent)}.analytics-distribution-legend p{color:#646e7b;font-size:12px;line-height:1.9}.analytics-trend-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin:12px 0 20px;display:flex}.analytics-trend-heading .field{min-width:210px}.analytics-trend-heading h2{margin:0;font-size:18px}.analytics-bar-list{overscroll-behavior:contain;max-height:440px;padding:24px;overflow-y:auto}.analytics-bar-item{margin-bottom:24px}.analytics-bar-item:last-child{margin-bottom:0}.analytics-bar-label{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.analytics-bar-label strong{overflow-wrap:anywhere}.analytics-bar-label small{color:#646e7b;flex-shrink:0}.analytics-bar-counts{color:#646e7b;flex-wrap:wrap;gap:8px 16px;margin-top:8px;font-size:12px;display:flex}.analytics-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.analytics-history .card-heading{flex-wrap:wrap;gap:16px}.analytics-history-filters{border-bottom:1px solid var(--line);padding:20px 24px}.analytics-history{margin-bottom:24px}.analytics-history+.exam-card{margin-top:28px;margin-bottom:32px}.exam-card+.discipline-embedded-heading{margin:28px 0 16px;font-size:18px;line-height:1.6}@media (width<=900px){.analytics-profile,.analytics-chart-grid{grid-template-columns:1fr}}@media (width<=560px){.analytics-filter-card,.analytics-profile{padding:18px}.analytics-distribution-body{grid-template-columns:1fr;gap:20px;padding:20px}.analytics-profile-identity{align-items:flex-start;gap:14px}.analytics-profile .student-avatar{width:64px;height:80px}.analytics-distribution-legend>div{grid-template-columns:minmax(90px,1fr) 1fr 48px;gap:8px;font-size:13px}.analytics-range-form>button,.analytics-trend-heading .field{width:100%}.analytics-bar-list{padding:18px}.analytics-presets button{flex:40%}}.sida-import-dialog[open]{width:min(1180px,100vw - 28px)}.sida-class-mapping{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;margin:20px 0;display:grid}.sida-import-dialog td .custom-select{min-width:160px}.sida-phone-input{width:160px;min-width:150px}.sida-import-dialog td input[type=checkbox]{width:20px;height:20px;accent-color:var(--primary)}.sida-import-dialog .photo-import-dropzone small{overflow-wrap:anywhere;max-width:100%}.icon{vertical-align:middle;pointer-events:none;flex-shrink:0;display:inline-block}.primary,.secondary,.text-button,.icon-button:not(.mobile-menu):not(.close-sidebar),.logout{justify-content:center;align-items:center;gap:8px;display:inline-flex}.nav-item>.icon{width:22px;height:22px}.stat-icon .icon,.school-icon .icon{width:24px;height:24px}.banner-symbol .icon{width:48px;height:48px}.empty>.icon{color:#b3b8bf;width:36px;height:36px}.date-trigger>.icon{color:var(--primary)}.date-label,.photo-private{align-items:center;gap:6px;display:inline-flex}@media (prefers-reduced-motion:reduce){.select-arrow{transition:none}}.parent-portal{background:var(--bg);min-height:100vh}.parent-header{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:18px;padding:18px max(20px,50vw - 590px);display:flex}.parent-brand{align-items:center;gap:12px;margin-inline-end:auto;display:flex}.parent-brand strong{min-width:0;font-size:18px;line-height:1.7}.parent-brand small{color:var(--muted);font-size:12px;display:block}.parent-content{max-width:1180px;margin:auto;padding:28px 20px}.parent-login{max-width:430px;margin:40px auto;padding:32px}.parent-login h1{font-size:26px}.parent-login .field{margin-block:20px}.parent-error{color:var(--red);background:#fff7f7;border:1px solid #edc4c4;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;padding:16px;display:flex}.parent-title{justify-content:space-between;align-items:center;gap:20px;margin:24px 0;display:flex}.parent-title .field{min-width:220px}.parent-student{align-items:center;gap:20px;margin-bottom:20px;padding:24px;display:flex}.parent-student .avatar{margin:0}.parent-stats{margin-bottom:24px}.parent-stats .stat-card{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.parent-stats strong{font-size:32px}.parent-card{margin-bottom:20px;padding:24px}.parent-cases>.table-wrap{margin-block-start:16px}.parent-card h2{margin:0 0 12px}.parent-card>p{color:var(--muted);line-height:2}.parent-card td{white-space:normal;overflow-wrap:anywhere;max-width:340px}.parent-message{border-bottom:1px solid var(--line);padding:22px 0}.parent-message p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:2}.parent-reason-form{background:#f2f4f7;border-radius:14px;margin-top:20px;padding:24px}.parent-reason-actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.parent-review-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.missing-attendance-card{margin-bottom:24px}.school-calendar-card{grid-column:1/-1;min-width:0}.missing-attendance-card td,.school-calendar-card td{white-space:normal;overflow-wrap:anywhere}.school-closure-notice{background:#e9eef6;margin-bottom:20px;padding:24px}.school-closure-notice p{margin:8px 0 0}.parent-review-actions .secondary{border-radius:7px;flex:none;width:auto;min-width:0;min-height:32px;padding:5px 10px;font-size:11px;line-height:1.5}.parent-review-actions .parent-review-approve{color:var(--primary);background:#edf1f6;border-color:#bdc9da}.parent-review-actions .parent-review-reject{color:var(--red);background:#fff5f5;border-color:#ebc4c4}.private-attachment .photo-import-dropzone{margin-block:16px}.private-attachment .photo-upload-actions{justify-content:center;margin-top:0}.photo-import-dropzone>strong{overflow-wrap:anywhere;max-width:100%}@media (width<=760px){.parent-header{flex-wrap:wrap;gap:8px;padding:14px}.parent-header .text-button{font-size:11px}.parent-content{padding:18px 14px}.parent-title{display:block}.parent-title .field{margin-top:20px}.parent-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-card,.parent-login,.parent-reason-form{padding:18px}.parent-card .list-pagination{padding-inline:0}}.user-avatar{flex-shrink:0;overflow:hidden}.student-avatar,.user-avatar{position:relative}.private-photo-shimmer{border-radius:inherit;pointer-events:none;background:#e4eaf3;position:absolute;inset:0}.private-photo-shimmer:after{content:"";background:linear-gradient(90deg,#0000,#ffffffa6,#0000);animation:1.6s ease-in-out infinite private-photo-shimmer;position:absolute;inset:0;transform:translate(-100%)}.student-avatar .private-photo,.user-avatar .private-photo{opacity:0}.student-avatar .private-photo-loaded,.user-avatar .private-photo-loaded{opacity:1}@keyframes private-photo-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.private-photo-shimmer:after{animation:none}}.user-avatar img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.user-avatar-link{cursor:zoom-in;text-decoration:none}.user-avatar-link:focus-visible{outline:3px solid var(--primary,#2563eb);outline-offset:4px}.parent-reason-dialog .modal-heading h2{margin:0;font-size:18px}.parent-reason-dialog .modal-heading p{color:var(--muted);margin:4px 0 0}.parent-reason-dialog .parent-reason-form{background:#fff;border:0;border-radius:0;margin:0}.parent-reason-dialog textarea{width:100%}.school-timetable{min-width:0;margin-bottom:24px}.timetable-toolbar{justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex}.timetable-toolbar h2{margin:0;font-size:19px}.timetable-toolbar p{color:var(--muted);margin:6px 0 0}.timetable-view{flex-shrink:0;gap:8px;display:flex}.timetable-view button{min-height:40px;padding:8px 16px}.timetable-view button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}.timetable-filters{grid-template-columns:repeat(2,minmax(0,280px));gap:14px;padding:0 20px 16px;display:grid}.timetable-days{margin:0;padding:0 20px 14px}.timetable-scroll{border-top:1px solid var(--line);border-radius:0 0 20px 20px;overflow:auto}.timetable-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;min-width:960px}.timetable-grid th,.timetable-grid td{border-bottom:1px solid var(--line);border-inline-end:1px solid var(--line);white-space:normal;vertical-align:top;padding:8px}.timetable-grid thead th{text-align:center;color:var(--ink);background:#f2f4f6;font-size:14px}.timetable-grid th small{color:var(--muted);margin-top:5px;font-size:11px;font-weight:400;display:block}.timetable-grid .timetable-time{z-index:1;text-align:center;vertical-align:middle;background:#f8f9fa;width:130px;position:sticky;right:0}.timetable-grid thead .selected-day{color:#253b59;background:#dce4f0}.timetable-grid td.selected-day{background:#f7f9fc}.timetable-lesson{overflow-wrap:anywhere;background:#fff;border:1px solid #dce1e7;border-radius:10px;margin-bottom:6px;padding:8px 10px}.timetable-lesson:last-child{margin-bottom:0}.timetable-lesson>strong{font-size:13px;line-height:1.7;display:block}.timetable-teacher{color:#606a79;align-items:center;gap:6px;margin:4px 0;font-size:12px;display:flex}.timetable-teacher svg{flex-shrink:0}.timetable-classes{flex-wrap:wrap;gap:4px;display:flex}.timetable-classes span{color:#3b4d66;background:#eef0f4;border-radius:6px;padding:2px 6px;font-size:11px}.timetable-lesson .timetable-delete{min-height:32px;margin-top:2px;padding:4px 0;font-size:11px}.timetable-free{text-align:center;color:#989fa8;padding:24px 0;font-size:12px;display:block}.timetable-daily .timetable-grid{min-width:0}.timetable-grid caption{text-align:right;color:var(--muted);background:#fff;padding:12px 24px;font-size:12px}@media (width<=700px){.timetable-toolbar{flex-direction:column;align-items:flex-start;gap:12px;padding:18px}.timetable-view{width:100%;display:flex}.timetable-view button{width:100%}.timetable-filters{grid-template-columns:1fr;gap:12px;padding:0 18px 18px}.timetable-days{padding:0 18px 16px;display:flex;overflow-x:auto}.timetable-days button{flex-shrink:0}.timetable-grid{min-width:0}.timetable-grid th:not(.timetable-time):not(.selected-day),.timetable-grid td:not(.selected-day){display:none}.timetable-grid .timetable-time{width:100px;padding:10px 6px}.timetable-grid td{padding:10px}.timetable-grid caption{padding:10px 18px}}.schedule-day-list{border-top:1px solid var(--line);padding:0 20px 16px}.schedule-day-heading{justify-content:space-between;align-items:center;padding:14px 0;display:flex}.schedule-day-heading span{color:var(--muted);font-size:12px}.schedule-period{border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}.schedule-period:last-child{margin-bottom:0}.schedule-period-heading{background:#f2f4f6;align-items:center;gap:14px;padding:8px 14px;display:flex}.schedule-period-heading span{color:#646d7a;font-size:12px}.schedule-compact-lesson{border-top:1px solid var(--line);grid-template-columns:minmax(180px,1fr) minmax(0,1fr) auto;align-items:center;gap:16px;padding:10px 14px;display:grid}.schedule-compact-lesson>div{overflow-wrap:anywhere;min-width:0}.schedule-compact-lesson>div>strong{font-size:13px}.schedule-compact-lesson .text-button{min-height:36px;padding:5px 8px;font-size:11px}@media (width<=700px){.schedule-day-list{padding:0 14px 14px}.schedule-compact-lesson{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;padding:10px 12px}.schedule-compact-lesson>.timetable-classes{grid-area:2/1/auto/-1}.schedule-compact-lesson>button{grid-area:1/2;min-height:44px}.timetable-days{flex-wrap:wrap;gap:6px;overflow:visible}.timetable-days button{flex:none;min-height:38px;padding:6px 10px}}.report-scope-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:18px;display:grid}.report-scope-option{text-align:right;white-space:normal;color:var(--navy);flex-direction:column;align-items:flex-start;gap:14px;padding:26px;display:flex}.report-scope-option strong{font-size:18px}.report-scope-option span{color:var(--muted);font-weight:400}.report-scope-option.selected{border-color:var(--primary)}.report-scope-picker,.report-scope-summary{flex-wrap:wrap;align-items:center;gap:16px;margin:22px 0;display:flex}.report-scope-picker{align-items:flex-end;padding:24px}.report-scope-picker .field{flex:230px;min-width:0}.report-scope-summary{justify-content:space-between}.report-analysis-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px;padding:20px;display:grid}.report-analysis-grid~.report-count-note{padding:0 20px}.report-analysis-grid>div{background:var(--bg);border-radius:12px;flex-direction:column;gap:10px;padding:16px;display:flex}.report-analysis-grid strong{font-size:22px}.attendance-insights{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:20px;display:grid}.attendance-insight{border:1px solid var(--line);border-radius:16px;min-width:0;padding:22px}.attendance-insight h3{margin:0 0 6px;font-size:16px}.attendance-insight p{color:var(--muted);margin:0 0 16px}.attendance-donut{width:175px;max-width:100%;margin:0 auto 16px;display:block}.donut-total{fill:var(--ink);font-size:21px;font-weight:700}.donut-caption{fill:var(--muted);font-size:12px}.insight-legend,.excuse-chart{margin:0;padding:0;list-style:none}.insight-legend li{align-items:center;gap:10px;padding:7px 0;display:flex}.insight-legend i{border-radius:50%;flex-shrink:0;width:10px;height:10px}.insight-legend strong{white-space:nowrap;margin-inline-start:auto}.excuse-chart li{margin-top:24px}.excuse-chart li>div:first-child{justify-content:space-between;gap:12px;display:flex}.excuse-chart-track{background:var(--bg);border-radius:8px;height:12px;margin-top:8px;overflow:hidden}.excuse-chart-track span{border-radius:inherit;height:100%;display:block}.excuse-chart small{color:var(--muted)}.attendance-trend{grid-column:1/-1}.attendance-trend-scroll{direction:ltr;overflow-x:auto}.attendance-trend svg{width:100%;min-width:420px;max-height:300px;display:block}.attendance-trend text{fill:var(--muted);font-size:10px}.attendance-trend circle:focus-visible{stroke:var(--navy);stroke-width:3px;outline:none}.insight-empty{text-align:center;padding:30px 0}@media (width<=760px){.attendance-insights{grid-template-columns:minmax(0,1fr);gap:14px;padding:14px}.attendance-insight{padding:16px}}.discipline-tabs{border:1px solid var(--line);background:#fff;border-radius:14px;gap:6px;width:fit-content;max-width:100%;margin-bottom:20px;padding:5px;display:flex}.discipline-entry-choices{grid-template-columns:minmax(0,1fr);gap:18px;width:100%;margin:28px 0;display:grid}.discipline-entry-card{border:1px solid var(--line);min-height:190px;color:var(--navy);text-align:right;font:inherit;cursor:pointer;background:#fff;border-radius:18px;align-items:center;gap:18px;padding:24px;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex}.discipline-entry-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 10px 28px #13305b17}.discipline-entry-card:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.discipline-entry-card>span:nth-child(2){flex:1;gap:8px;display:grid}.discipline-entry-card strong{font-size:19px}.discipline-entry-card small{color:var(--muted);font-size:14px}.discipline-entry-card-icon{background:var(--accent);width:52px;height:52px;color:var(--primary);border-radius:15px;flex:0 0 52px;place-items:center;font-size:28px;font-weight:700;display:grid}.discipline-entry-card-arrow{color:var(--primary);font-size:23px}.discipline-entry-prompt{align-items:center;gap:18px;padding:24px;display:flex}.discipline-entry-prompt>div{flex:1}.discipline-entry-prompt h2,.discipline-entry-prompt p{margin:0}.discipline-entry-prompt p{color:var(--muted);margin-top:6px}@media (width<=640px){.discipline-entry-choices{grid-template-columns:minmax(0,1fr);gap:12px;margin:18px 0}.discipline-entry-card{min-height:112px;padding:18px}.discipline-entry-prompt{flex-wrap:wrap;align-items:flex-start}.discipline-entry-prompt button{width:100%}}.discipline-tabs button{min-height:44px;color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:10px;flex:1;padding:10px 22px;font-weight:600}.discipline-tabs button[aria-selected=true]{background:var(--accent);color:var(--navy)}.discipline-tabs button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (width<=480px){.discipline-tabs{width:100%}.discipline-tabs button{padding-inline:12px}}.discipline-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));align-items:end;gap:18px;margin-bottom:22px;padding:24px;display:grid}.discipline-filters .field,.discipline-filters .student-report-search{min-width:0}.discipline-charts{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px;padding:20px;display:grid}.discipline-chart{border:1px solid var(--line);border-radius:14px;max-height:340px;padding:20px;overflow:auto}.discipline-chart h3{margin-top:0}.discipline-chart ul{margin:0;padding:0;list-style:none}.discipline-chart li{margin-bottom:14px}.discipline-chart li>div:first-child{justify-content:space-between;gap:12px;display:flex}.discipline-search{max-width:420px;margin:20px}.discipline-details{white-space:normal;overflow-wrap:anywhere;max-width:270px;margin-top:8px}.discipline-details summary{cursor:pointer;color:var(--primary)}.discipline-details p{white-space:pre-wrap}.discipline-void-row{background:var(--bg)}.discipline-results .table-actions{flex-wrap:wrap;gap:8px;display:flex}.discipline-results .table-actions button{min-height:34px;padding:6px 12px;font-size:12px}.exam-card{min-width:0;margin-top:1.25rem;padding:1.5rem}.exam-card>h2{margin-top:0}.exam-card .table-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.exam-card td .table-actions{flex-wrap:nowrap}.exam-card td .table-actions button{min-height:36px;padding:7px 12px;font-size:12px}.exam-card .card-heading{flex-wrap:wrap;gap:20px;margin-bottom:24px;padding:0 0 24px}.exam-card .card-heading>div{min-width:0}.exam-card .card-heading .table-actions{gap:12px}.exam-roster-search{margin:24px 0 20px}.exam-toolbar{flex-wrap:wrap;align-items:end;gap:1rem;margin:1.25rem 0;display:flex}.exam-toolbar>.field{flex:220px;min-width:0}.exam-distribution{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;margin:1.5rem 0;display:grid}.exam-distribution strong{margin:.5rem 0;display:block}.exam-grade-form{grid-column:1/-1;min-width:0}.exam-grade-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(90px,.6fr);align-items:end;gap:1rem;padding:1rem 0;display:grid}.exam-grade-row small{overflow-wrap:anywhere;color:var(--muted);margin-top:.4rem;display:block}.exam-notes{overflow-wrap:anywhere;white-space:pre-wrap}@media (width<=640px){.exam-card{padding:1rem}.exam-distribution{grid-template-columns:repeat(2,minmax(0,1fr))}.exam-grade-row{grid-template-columns:minmax(0,1fr) minmax(90px,.6fr)}.exam-grade-row>div:first-child{grid-column:1/-1}.exam-card .card-heading{flex-direction:column;align-items:stretch;gap:1rem}.exam-card .card-heading>div{width:100%;min-width:0}.exam-card .card-heading .table-actions{flex-wrap:wrap;justify-content:flex-start}.exam-card .card-heading .table-actions button{white-space:normal;flex:100%}.exam-card .report-analysis-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.auth-page,.parent-auth-page{background:#103d70;min-height:100dvh}.parent-auth-page .parent-content{max-width:none;padding:0}.auth-shell{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100dvh;display:grid}.auth-form-side{background:linear-gradient(140deg,#0a326bd9,#146dadc9),url(/build/assets/blue-pattern-BFCexhLH.png) 50%/cover;place-items:center;padding:36px clamp(24px,4vw,64px);display:grid}.auth-card{background:linear-gradient(145deg,#fff,#f3f8ff);border:1px solid #ffffffb3;border-radius:30px;width:100%;max-width:510px;padding:30px clamp(22px,3vw,42px) 0;overflow:hidden;box-shadow:0 22px 70px #06244340}.auth-brand{text-align:center;color:#153c6c;flex-direction:column;align-items:center;gap:12px;font-size:13px;font-weight:600;display:flex}.auth-brand .brand-logo{object-fit:contain;width:62px;height:90px}.auth-card h1{text-align:center;color:#103464;margin:24px 0 10px;font-size:clamp(21px,2vw,27px);line-height:1.7}.auth-intro{text-align:center;color:#7489a6;margin:0 0 22px;font-size:12px;line-height:1.9}.auth-panel-choice{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:26px;display:grid}.auth-panel-choice a{color:#395370;background:#f2f5fa;border:1px solid #dce5f1;border-radius:15px;align-items:center;gap:10px;padding:15px 12px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.auth-panel-choice a[aria-current=page]{color:#114778;background:#e0edff;border-color:#68a7ff;box-shadow:0 3px 8px #0068ee0d}.auth-panel-choice small{margin-top:4px;font-size:10px;font-weight:400;display:block}.auth-panel-choice .icon{flex-shrink:0}.auth-card .auth-field{color:#526986;margin-bottom:18px;font-size:12px}.auth-input{color:#446b9d;background:#f5f7fb;border:1px solid #d4e0f1;border-radius:13px;align-items:center;gap:12px;padding:0 14px;display:flex}.auth-input:focus-within{border-color:#438aef;box-shadow:0 0 0 3px #2563eb12}.auth-card .auth-input input{width:100%;min-width:0;min-height:50px;box-shadow:none;background:0 0;border:0;border-radius:0;padding:10px 0;font-size:14px}.auth-card .auth-input input:focus-visible{outline:none}.auth-password-toggle{color:#446b9d;cursor:pointer;background:0 0;border:0;place-items:center;min-width:36px;min-height:36px;padding:8px;display:grid}.auth-card .primary.wide{background:linear-gradient(100deg,#104eb3,#079df4);border-radius:14px;justify-content:center;align-items:center;gap:14px;min-height:50px;margin-top:12px;font-size:14px;display:flex}.auth-card .parent-login .primary.wide{margin-bottom:14px}.auth-card .form-error:empty{display:none}.auth-card .form-error{margin-block:12px}.auth-card .login-note{color:#7b8ba1;font-size:11px}.auth-card .login-demo{margin-bottom:18px}.auth-motto{color:#2462a4;border-top:1px solid #dfebf7;justify-content:center;gap:18px;margin-top:24px;padding:18px 0;font-size:13px;display:flex}.auth-motto span{color:#8cafda}.auth-school-side{background:#cae4f4;min-height:100%;position:relative;overflow:hidden}.auth-school-side>img{object-fit:cover;object-position:center;width:100%;height:100%;position:absolute}.auth-school-caption{inset-inline:30px;color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#153d56b8;border:1px solid #fff5;border-radius:22px;align-items:center;gap:18px;padding:22px 26px;display:flex;position:absolute;bottom:30px}.auth-school-caption p{margin:0;font-size:13px}.auth-school-caption strong{margin-top:6px;font-size:19px;display:block}.auth-card .parent-login{max-width:none;margin:0;padding:0}.auth-card .parent-login h1{text-align:right;margin:0 0 8px;font-size:18px}.auth-card .parent-login>p{font-size:12px;line-height:1.9}.auth-card .parent-login .field input{background:#f5f7fb;border-color:#d4e0f1;min-height:50px}@media (width<=900px){.auth-shell{grid-template-columns:minmax(0,1fr)}.auth-school-side{display:none}.auth-form-side{min-height:100dvh;padding:28px 20px}}@media (width<=480px){.auth-form-side{padding:20px 14px}.auth-card{border-radius:24px;padding:24px 20px 0}.auth-card h1{font-size:21px}.auth-panel-choice{gap:8px}.auth-panel-choice a{gap:7px;padding:13px 9px;font-size:12px}.auth-panel-choice .icon{width:23px;height:23px}}.notification-bell{border:1px solid var(--line);width:44px;height:44px;color:var(--navy);cursor:pointer;background:#fff;border-radius:12px;flex-shrink:0;place-items:center;display:grid;position:relative}.notification-badge{top:-5px;color:#fff;background:#d54848;border:2px solid #fff;border-radius:20px;min-width:20px;padding:2px 5px;font-size:10px;line-height:1.4;position:absolute;inset-inline-end:-5px}.notification-dialog{border:1px solid var(--line);width:min(520px,100vw - 28px);max-width:none;max-height:calc(100dvh - 40px);color:var(--ink);background:#fff;border-radius:20px;padding:0;overflow:auto}.notification-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#102b5070}.page-transition{animation:.22s cubic-bezier(.2,.7,.25,1) both page-enter}dialog[open]{animation:.18s cubic-bezier(.2,.7,.25,1) both dialog-enter}dialog[open]::backdrop{animation:.18s ease-out both backdrop-enter}@keyframes page-enter{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes dialog-enter{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes backdrop-enter{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.page-transition,dialog[open],dialog[open]::backdrop{animation:none}}.notification-panel{padding:22px}.notification-panel>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding-bottom:18px;display:flex}.notification-panel h2{margin:0;font-size:19px}.notification-panel header p{color:var(--muted);margin:6px 0 0;font-size:12px}.notification-toolbar,.notification-actions,.notification-pagination,.parent-header-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.notification-toolbar{justify-content:space-between;margin:18px 0}.notification-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.notification-list li>button{text-align:start;border:1px solid var(--line);width:100%;color:var(--ink);cursor:pointer;white-space:normal;background:#fafbfd;border-radius:12px;padding:16px;display:block}.notification-list li>button.unread{background:#eff6ff;border-color:#c7dcfa}.notification-list li>button>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.notification-list strong{overflow-wrap:anywhere;font-size:13px}.notification-list p{-webkit-line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;margin:8px 0;font-size:12px;display:-webkit-box;overflow:hidden}.notification-list small{color:var(--muted);font-size:10px}.notification-important-tag{color:#865708;background:#fff1d5;border-radius:6px;flex-shrink:0;padding:3px 8px;font-size:10px;display:inline-block}.notification-detail{padding-top:18px}.notification-detail>.notification-important-tag{margin-inline-start:12px}.notification-detail h3{overflow-wrap:anywhere;font-size:18px}.notification-detail>p{white-space:pre-wrap;overflow-wrap:anywhere;margin-block:20px;line-height:2}.notification-detail small{color:var(--muted)}.notification-pagination{justify-content:center;margin-top:20px;font-size:12px}.notification-compose fieldset{border:0;gap:18px;min-width:0;margin:0;padding:0;display:grid}.notification-important{align-items:center;gap:10px;font-size:13px;display:flex}.notification-compose .muted{margin:0;font-size:12px;line-height:1.9}.notification-empty{text-align:center;color:var(--muted);padding:35px 10px}@media (width<=480px){.notification-panel{padding:16px}.notification-panel h2{font-size:17px}.notification-toolbar button,.notification-actions button{flex:1}.parent-header-actions{gap:8px}}#modal:has(.discipline-entry-form){width:min(760px,100vw - 24px)}.discipline-entry-form{grid-column:1/-1;min-width:0}.discipline-entry-tabs{background:#eff6ff;border-radius:12px;gap:8px;margin-bottom:18px;padding:6px;display:flex}.discipline-entry-tabs button{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 8px;display:flex}.discipline-entry-tabs button[aria-selected=true]{color:var(--primary);background:#fff;border-color:#bfdbfe;font-weight:700}.discipline-entry-tabs button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.discipline-form-section{border:1px solid var(--line);border-radius:14px;gap:14px;margin-bottom:16px;padding:18px;display:grid}.discipline-form-section h3{color:var(--navy);align-items:center;gap:8px;margin:0;font-size:15px;display:flex}.discipline-form-grid,.discipline-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0;display:grid}.discipline-form-section .field{min-width:0;margin:0}.discipline-form-section p{margin:0}.discipline-student-summary{background:#eff6ff;border-radius:8px;padding:10px 12px;font-size:12px}.discipline-choice{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:12px;display:flex}.discipline-choice:has(input:checked){color:var(--primary);background:#eff6ff;border-color:#93c5fd}.discipline-choice input,.discipline-return-toggle input{width:18px;height:18px;accent-color:var(--primary);flex-shrink:0;margin:0}.discipline-return-toggle{align-items:center;gap:8px;margin:2px 0 4px;display:flex}.discipline-form-section .time-selects{gap:8px;display:flex}.discipline-form-section .time-selects>.custom-select{flex:1 1 0;width:0;min-width:0}.discipline-time-grid{align-items:start;gap:18px}.discipline-form-footnote{color:var(--muted);margin:0;padding:10px 0;font-size:12px}.discipline-form-footnote>.icon{vertical-align:middle;margin-inline-end:6px}@media (width<=600px){.discipline-form-grid,.discipline-choice-grid{grid-template-columns:minmax(0,1fr)}.discipline-form-section{padding:14px}.discipline-entry-tabs button{font-size:13px}}.notification-compose{margin-top:22px}.notification-compose h3,.notification-confirmation h3{margin:0 0 18px;font-size:17px}.notification-compose .field{flex-direction:column;gap:8px;min-width:0;margin:0;display:flex}.notification-compose input:not([type=checkbox]),.notification-compose textarea{width:100%}.notification-compose textarea{resize:vertical}.notification-compose .notification-actions{border-top:1px solid var(--line);margin-top:4px;padding-top:16px}.notification-important input{width:18px;height:18px;accent-color:var(--primary);flex-shrink:0;margin:0}.notification-detail{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.notification-detail h3,.notification-detail>p,.notification-detail>.notification-important-tag{margin:0}.notification-detail .notification-actions{border-top:1px solid var(--line);width:100%;margin-top:12px;padding-top:16px}.notification-confirmation{overflow-wrap:anywhere;background:#f8fbff;border:1px solid #bfdbfe;border-radius:14px;margin-top:22px;padding:18px}.notification-confirmation>p{margin:14px 0}.notification-confirmation .notification-preview{white-space:pre-wrap;border:1px solid var(--line);background:#fff;border-radius:10px;max-height:240px;padding:14px;overflow:auto}.notification-confirmation .notification-actions{margin-top:20px}.notification-actions button{white-space:normal;min-width:100px}@media (width<=480px){.notification-confirmation{padding:14px}.notification-actions{gap:10px}}.login-captcha{margin:18px 0}.login-captcha-row{align-items:stretch;gap:12px;min-width:0;display:flex}.login-captcha-question{min-height:52px;color:var(--navy);white-space:nowrap;-webkit-user-select:none;user-select:none;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;flex:1;place-items:center;min-width:0;padding:0 14px;font-size:20px;font-weight:700;display:grid;overflow:hidden}.login-captcha-canvas{-webkit-user-select:none;user-select:none;width:100%;max-width:240px;height:52px;display:block}.login-captcha .login-captcha-row>input{text-align:center;flex:0 0 110px;width:110px;min-width:0;min-height:52px}.login-captcha-refresh{align-items:center;gap:6px;margin-top:8px;display:inline-flex}@media (width<=380px){.login-captcha-row{gap:8px}.login-captcha-question{padding:0 10px;font-size:18px}.login-captcha .login-captcha-row>input{flex-basis:80px;width:80px}}.attendance-class-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));align-items:stretch;gap:14px}.attendance-class-grid .class-choice-card{text-align:right;border-color:var(--line);box-shadow:none;cursor:pointer;border-radius:16px;align-items:stretch;gap:12px;min-width:0;padding:18px}.attendance-class-grid .class-choice-card:hover:not(:disabled){background:#f8fbff;border-color:#93c5fd;box-shadow:0 4px 16px #1759b30a}.attendance-class-grid .class-choice-card:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.attendance-class-card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.attendance-class-symbol{width:42px;height:42px;color:var(--primary);background:#eff6ff;border-radius:12px;flex-shrink:0;place-items:center;display:grid}.attendance-class-grid .class-choice-tag{color:#475569;white-space:nowrap;background:#f1f5f9;align-self:center;font-size:12px;font-weight:500}.attendance-class-names{gap:4px;display:grid}.attendance-class-grid .class-choice-card strong{font-size:16px;line-height:1.65}.attendance-class-grid .class-choice-meta{overflow-wrap:anywhere;font-size:12px;line-height:1.8}.attendance-class-grid .class-choice-combined{color:var(--primary);align-items:center;gap:6px;font-size:12px;display:flex}.attendance-class-grid .class-choice-action{color:var(--primary);justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;font-size:13px}@media (width<=600px){.attendance-lesson-picker{padding:16px}.attendance-lesson-picker-heading{flex-direction:column;align-items:stretch;gap:12px}.attendance-lesson-search{flex:initial;width:100%}.attendance-class-grid .class-choice-card{padding:16px}.date-range-calendar{max-height:calc(100dvh - 28px);padding:16px;overflow-y:auto}.range-months{grid-template-columns:minmax(0,1fr);gap:12px}.date-range-footer{flex-wrap:wrap}.date-range-trigger{height:auto;min-height:50px}.date-range-trigger>span{white-space:normal;overflow-wrap:anywhere;min-width:0}}.user-role-options{border:1px solid var(--line);border-radius:12px;grid-column:1/-1;min-width:0;margin:0;padding:16px}.user-role-options legend{padding-inline:6px;font-weight:600}.user-role-options>p{color:var(--muted);margin:0 0 12px;font-size:12px}.user-role-options>div{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:10px;display:grid}.user-role-options label{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:center;gap:10px;min-height:48px;padding:10px 12px;display:flex}.user-role-options label:has(input:checked){color:var(--primary);background:#eff6ff;border-color:#93c5fd}.user-role-options input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);flex-shrink:0;margin:0}.job-health{margin-bottom:20px;padding:22px}.job-health-row{flex-wrap:wrap;align-items:center;gap:10px 20px;margin-bottom:12px;display:flex}.job-health-row small{color:var(--muted)}.job-warning{color:#7c4527;background:#fff8ef;border:1px solid #f0c9ac;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.9}.job-health .muted{font-size:12px;line-height:1.9}.job-stat{text-align:right;font:inherit;cursor:pointer;color:var(--ink)}.job-stat>span{font-size:13px}.job-stat.selected{background:#eff6ff;border-color:#2563eb}.job-stat:focus-visible{outline-offset:3px;outline:2px solid #2563eb}.job-filters{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:16px;display:grid}.job-filters .field{min-width:0}.job-details{min-width:210px;max-width:340px}.job-details p{font-size:12px;line-height:1.9}@media (width<=1000px){.job-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=540px){.job-filters{grid-template-columns:minmax(0,1fr)}.job-health{padding:16px}}.staff-otp-actions{background:0 0;flex-wrap:wrap;padding:16px 0}.staff-otp-actions button{white-space:normal;max-width:100%}.finance-rows{border:1px solid var(--line);border-radius:12px;gap:16px;padding:18px;display:grid}.finance-rows-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.finance-rows ol{gap:14px;margin:0;padding:0;list-style:none;display:grid}.finance-rows li{background:var(--bg);border-radius:10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:start;gap:14px;padding:14px;display:grid}.finance-rows-head .table-actions{flex-wrap:wrap;gap:10px;display:flex}.finance-rows>p{margin:0}.finance-rows li>button{margin-top:26px}.finance-amount-field small{min-height:1.8em;font-size:11px}.link-button{color:var(--primary);font:inherit;cursor:pointer;text-align:start;background:0 0;border:0;padding:0;font-weight:600}.link-button:hover,.link-button:focus-visible{text-decoration:underline}.finance-subheading{margin:22px 20px 8px;font-size:15px}.finance-file{padding-bottom:20px}.finance-total-row td{background:var(--bg);font-weight:700}.finance-collection{gap:6px;min-width:100px;display:grid}.finance-collection .excuse-chart-track{height:8px;margin-top:0}@media (width<=720px){.finance-rows li{grid-template-columns:1fr}.finance-rows li>button{margin-top:0}}.finance-stack{gap:20px;margin-bottom:24px;display:grid}.finance-stack>*{margin:0}.finance-stack .report-analysis-grid+.discipline-search,.finance-file .report-analysis-grid{padding-bottom:8px}.finance-stack .discipline-search{margin:0 20px 16px}.finance-stack .discipline-chart{background:#fff;max-height:none}.finance-quick{gap:16px;margin-top:24px;padding:24px;display:grid}.finance-quick .field strong{color:var(--navy);font-size:17px}.finance-quick input[type=search]{min-height:52px;font-size:16px}.finance-quick-results{gap:10px;margin:0;padding:0;list-style:none;display:grid}.finance-quick-results button{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--navy);font:inherit;text-align:right;cursor:pointer;border-radius:14px;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:18px;padding:16px 18px;display:grid}.finance-quick-results button:hover,.finance-quick-results button:focus-visible{border-color:var(--primary);background:#fff}.finance-quick-text{gap:4px;display:grid}.finance-quick-results strong{font-size:15px}.finance-quick-results small{color:var(--muted);font-size:12px}@media (width<=640px){.finance-quick-results button{grid-template-columns:minmax(0,1fr) auto}.finance-quick-results .discipline-entry-card-arrow{display:none}}.finance-file:not(.parent-card)>p,.finance-file:not(.parent-card)>.muted{margin:0 20px 12px}.finance-file:not(.parent-card)>.table-wrap,.finance-file:not(.parent-card)>table{margin-bottom:8px}.parent-card .finance-subheading{margin-inline:0}.finance-stack .badge,.finance-quick .badge,.finance-file .badge{padding:4px 10px;font-size:12px}.finance-stack .badge i,.finance-quick .badge i,.finance-file .badge i{width:7px;height:7px}.finance-receipt-format{white-space:nowrap;color:var(--muted);align-items:center;gap:8px;display:flex}.finance-receipt-format .custom-select{min-width:210px}.finance-stack .card-heading{flex-wrap:wrap}.print-form{margin-bottom:24px;padding:24px}.print-form fieldset{border:0;gap:20px;min-width:0;margin:0;padding:0;display:grid}.print-form input,.print-form textarea{font-size:15px}.print-dropzone{background:var(--bg);margin:0;padding:28px 20px}.print-dropzone strong{font-size:16px}.print-file-list{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.print-file-list li{border:1px solid var(--line);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.print-file-list li>span{flex:1;min-width:0;display:grid}.print-file-list strong{overflow-wrap:anywhere}.print-file-list small{color:var(--muted)}.print-options{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));align-items:start;gap:18px;display:grid}.print-sides{grid-template-columns:1fr 1fr;gap:8px;display:grid}.print-sides button{min-height:46px;color:var(--ink);font:inherit;cursor:pointer;background:#fff;border:1px solid #dcdfe4;border-radius:9px;font-size:15px}.print-sides button.selected{border-color:var(--primary);background:var(--accent);color:var(--primary);font-weight:700}.print-form-actions{flex-wrap:wrap;gap:12px;display:flex}.print-form-actions button{min-width:160px;min-height:48px;font-size:15px}.print-section-title{margin:8px 0 16px;font-size:18px}.print-list{gap:18px;margin-bottom:24px;display:grid}.print-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));align-items:end;gap:18px;padding:20px 24px;display:grid}.print-cards{gap:16px;margin:0;padding:0;list-style:none;display:grid}.print-card{gap:16px;padding:20px 24px;display:grid}.print-card.urgent{border-color:var(--red);box-shadow:inset 4px 0 0 var(--red)}.print-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.print-card-head h3{margin:0 0 4px;font-size:17px}.print-card-head small{color:var(--muted);font-size:12px}.print-card .badge{padding:4px 10px;font-size:12px}.print-facts{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:10px;display:grid}.print-facts span{background:var(--bg);border-radius:10px;gap:2px;padding:12px 14px;display:grid}.print-facts small{color:var(--muted)}.print-facts strong{font-size:15px}.print-note{border-right:3px solid var(--line);white-space:pre-wrap;margin:0;padding:12px 14px}.print-card .notice,.print-card .muted{margin:0}.print-downloads{flex-wrap:wrap;gap:10px;display:flex}.print-downloads a{align-items:center;gap:10px;max-width:100%;text-decoration:none;display:inline-flex}.print-downloads a span{text-align:right;overflow-wrap:anywhere;display:grid}.print-downloads small{color:var(--muted);font-size:11px}.print-card-actions{flex-wrap:wrap;gap:10px;display:flex}.print-card-actions:empty{display:none}.print-card-actions button{min-height:44px;font-size:14px}.print-kind{background:var(--bg);color:var(--muted);border-radius:10px;margin:0;padding:12px 14px}.finance-summary{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}.finance-summary>div{justify-content:space-between;gap:12px;min-width:0}.finance-summary span{color:var(--muted);font-size:13px}.finance-summary strong{flex-wrap:wrap;align-items:baseline;gap:6px;font-size:clamp(17px,1.5vw,22px);line-height:1.4;display:flex}.finance-summary bdi{white-space:nowrap;font-variant-numeric:tabular-nums}.finance-summary strong small{color:var(--muted);font-size:12px;font-weight:500}.finance-summary>div{overflow:hidden;container-type:inline-size}.finance-summary strong{font-size:clamp(15px,9cqi,22px)}.finance-summary em{color:var(--muted);font-size:12px;font-style:normal}.finance-summary>div{justify-content:flex-start}@media (width>=761px){.mobile-menu{place-items:center;display:grid}.sidebar,.workspace{transition:transform .2s,margin .2s,width .2s}.layout.sidebar-collapsed .sidebar{visibility:hidden;transform:translate(100%)}.layout.sidebar-collapsed .workspace{width:100%;margin-right:0}}@media (width>=761px) and (prefers-reduced-motion:reduce){.sidebar,.workspace{transition:none}}.finance-scope{gap:20px;padding:28px;display:grid}.finance-scope h2{margin:0;font-size:18px}.finance-scope-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:18px;display:grid}.finance-scope-actions{flex-wrap:wrap;gap:12px;display:flex}.finance-scope-actions button{min-width:180px;min-height:48px;font-size:15px}.finance-scope-bar{flex-wrap:wrap;align-items:end;gap:18px;padding:18px 24px;display:flex}.finance-scope-bar>div:first-child{gap:2px;margin-inline-end:auto;display:grid}.finance-scope-bar small{color:var(--muted)}.finance-scope-bar strong{font-size:17px}.finance-scope-bar .field{min-width:200px}.print-sides button:disabled{cursor:not-allowed;opacity:.55}.finance-charts{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:20px;display:grid}.finance-groups{padding:22px 24px}.finance-groups h3{margin:0 0 16px;font-size:16px}.finance-groups ul{gap:16px;margin:0;padding:0;list-style:none;display:grid}.finance-group-head{flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin-bottom:6px;display:flex}.finance-group-head span,.finance-groups small{color:var(--muted);font-size:12px}.finance-group-bar{background:var(--bg);border-radius:8px;height:12px;margin-bottom:4px;display:flex;overflow:hidden}.finance-group-paid,.finance-key-paid{background:var(--primary)}.finance-group-rest,.finance-key-rest{background:#f3b3b3}.finance-donut{justify-items:center;gap:14px;margin:0;display:grid}.finance-donut svg{width:min(100%,200px);height:auto}.finance-donut circle{fill:none;stroke-width:18px}.finance-donut-rest{stroke:#f3b3b3}.finance-donut-paid{stroke:var(--primary);stroke-linecap:round}.finance-donut-value{fill:var(--navy);font-size:22px;font-weight:800}.finance-donut-label{fill:var(--muted);font-size:11px}.finance-donut figcaption{gap:6px;font-size:13px;display:grid}.finance-donut figcaption span{align-items:center;gap:8px;display:flex}.finance-donut i{border-radius:4px;width:12px;height:12px;display:inline-block}.print-classes{border:1px solid var(--line);border-radius:12px;gap:12px;min-width:0;margin:0;padding:16px 18px;display:grid}.print-classes legend{padding:0 6px;font-weight:600}.print-class-group{gap:8px;display:grid}.print-class-all,.print-class-list label{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.print-class-all input,.print-class-list input{width:18px;height:18px}.print-class-list{flex-wrap:wrap;gap:8px;padding-inline-start:26px;display:flex}.print-class-list label{border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 12px}.print-class-list label.on{border-color:var(--primary);background:var(--accent);color:var(--primary)}.print-tag{vertical-align:middle;border-radius:8px;margin-inline-start:8px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.print-tag.urgent{color:var(--red);background:#fde8e8}.print-tag.secret{color:var(--yellow);background:#fff4dc}.print-audience{background:var(--accent);color:var(--navy);border-radius:10px;margin:0;padding:10px 14px}.print-audience small{color:var(--muted)}.finance-analytics{margin:24px 0}.finance-sms-bar{border:1px solid var(--line);background:var(--bg);border-radius:12px;gap:12px;margin:0 20px 16px;padding:16px 18px;display:grid}.finance-sms-select,.finance-sms-send{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.finance-sms-select strong{margin-inline-end:8px}.finance-sms-bar .muted{margin:0}.finance-pick{vertical-align:middle;margin-inline-end:8px;display:inline-flex}.finance-pick input{width:18px;height:18px}.action-menu{position:relative}.action-menu>button{align-items:center;gap:8px;display:inline-flex}.action-menu-caret{color:var(--muted);font-size:11px}.action-menu-list{top:calc(100% + 6px);z-index:60;border:1px solid var(--line);background:#fff;border-radius:12px;gap:2px;min-width:280px;padding:6px;display:grid;position:absolute;inset-inline-end:0;box-shadow:0 14px 34px #102b5024}.action-menu-list button{width:100%;color:var(--ink);font:inherit;text-align:right;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.action-menu-list button:hover:not(:disabled),.action-menu-list button:focus-visible{background:var(--bg);outline:none}.action-menu-list button:disabled{opacity:.5;cursor:not-allowed}.action-menu-list button .icon{color:var(--primary);flex:none;margin-top:2px}.action-menu-list span{gap:2px;display:grid}.action-menu-list small{color:var(--muted);font-size:11px}@media (width<=760px){.action-menu-list{min-width:min(280px,100vw - 32px);inset-inline:0 auto}}.counseling-card{gap:12px;padding:22px 24px;display:grid}.counseling-card h2{margin:0;font-size:17px}.counseling-card.warning{border-color:var(--yellow)}.counseling-card>.muted{margin:0}.counseling-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.counseling-appointment{border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:14px 16px;display:flex}.counseling-appointment>div:first-child{flex:220px;gap:2px;min-width:0;display:grid}.counseling-appointment span,.counseling-appointment small{color:var(--muted)}.counseling-appointment .badge{padding:4px 10px;font-size:12px}.counseling-actions{flex-wrap:wrap;gap:8px;display:flex}.counseling-sessions{gap:14px;margin:0;padding:0;list-style:none;display:grid}.counseling-sessions li{background:var(--bg);border-right:4px solid var(--primary);border-radius:12px;padding:16px 18px}.counseling-session-head{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.counseling-session-head>div:first-child{gap:2px;display:grid}.counseling-session-head small{color:var(--muted)}.counseling-sessions p{white-space:pre-wrap;margin:10px 0 0;line-height:2}.counseling-next{gap:12px;display:grid}.counseling-next-options{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.counseling-scope{max-width:360px}.parent-card .card-heading{flex-wrap:wrap;margin-bottom:14px;padding:0 0 14px}.parent-card .card-heading h2{margin:0}.parent-card .card-heading .table-actions{flex-wrap:wrap;gap:8px;display:flex}.parent-card>p{margin:0 0 16px}.parent-card .finance-summary{margin-bottom:8px;padding:0}.parent-card .finance-subheading{margin:22px 0 10px}.parent-card .table-wrap{margin-top:4px}.parent-card .pagination{margin-top:16px}.parent-stats strong,.stat-card>strong{font-family:inherit;font-weight:700}.parent-stats .stat-card>span{color:var(--ink);font-size:13px}.parent-stats .stat-card>small{font-size:11px}.empty{border:1px dashed var(--line);background:var(--bg);color:var(--muted);border-radius:14px;justify-items:center;gap:6px;margin:8px 0;padding:36px 20px;display:grid}.empty>span{background:#fff;border-radius:16px;place-items:center;width:56px;height:56px;display:grid}.empty>span .icon{width:28px;height:28px}.empty p{max-width:420px;color:var(--muted);margin:0;font-size:14px;line-height:2}.card>.empty,.card>div>.empty{margin:16px 20px}.parent-card>.empty,.parent-card>div>.empty{margin:8px 0}
