:root{--bg:#f6f8fc;--card:#fff;--ink:#172033;--muted:#667085;--line:#e2e7f0;--brand:#24375f;--brand2:#c6a35a;--brandSoft:#eef2f8;--brandGoldSoft:#fbf6ea;--danger:#b42318;--ok:#177245;--shadow:0 6px 20px rgba(22,34,63,.07)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Tahoma,Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}.app{min-height:100vh}.top{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line)}.topin{max-width:1500px;margin:auto;padding:12px 18px;display:flex;gap:14px;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px}.mark{width:38px;height:38px;border-radius:12px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700;font-size:18px}.brand b{font-size:18px}.brand small{display:block;color:var(--muted);margin-top:2px}.userbox{display:flex;align-items:center;gap:8px}.username{background:#eef2f8;color:var(--brand);padding:7px 10px;border-radius:10px;font-weight:700}.wrap{max-width:1500px;margin:auto;padding:18px;display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px;transition:grid-template-columns .2s ease}.wrap.side-collapsed{grid-template-columns:62px minmax(0,1fr)}.side,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.side{padding:10px;height:max-content;position:sticky;top:82px;overflow:visible}.sideTop{display:flex;justify-content:flex-start;margin-bottom:6px}.sideToggle{width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:10px;cursor:pointer;color:var(--brand);display:grid;place-items:center;box-shadow:var(--shadow)}.sideToggle:hover{background:var(--brandSoft)}.nav{display:grid;gap:5px}.nav a{border:0;text-decoration:none;background:transparent;text-align:right;padding:11px 12px;border-radius:11px;cursor:pointer;color:#344054;display:flex;align-items:center;gap:9px}.nav .ico{width:20px;display:grid;place-items:center;flex:0 0 20px}.nav .label{white-space:nowrap}.wrap.side-collapsed .nav .label{display:none}.wrap.side-collapsed .nav a{justify-content:center;padding-inline:7px}.wrap.side-collapsed .sideTop{justify-content:center}.wrap.side-collapsed .sideToggle{transform:rotate(180deg)}.nav a.active{background:#eef2f8;color:var(--brand);font-weight:700}.content{min-width:0}.panel{padding:16px}.head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.head h1{font-size:21px;margin:0 0 4px}.sub{color:var(--muted)}.btn{border:0;border-radius:10px;padding:9px 13px;cursor:pointer;font-weight:700}.btn.primary{background:var(--brand);color:#fff}.btn.soft{background:#f2f4f7;color:#344054}.btn.danger{background:#fff0ef;color:var(--danger)}.btn.small{padding:6px 9px;font-size:12px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.field{display:grid;gap:5px}.field label{font-size:12px;color:var(--muted);font-weight:700}.control{border:1px solid #d7dbe3;background:#fff;border-radius:9px;padding:8px 10px;min-height:38px;outline:none}.control:focus{border-color:#7f90b6;box-shadow:0 0 0 3px #eef2f8}.search{min-width:250px}.count{margin-inline-start:auto;color:var(--muted);font-weight:700}.tablewrap{overflow-x:auto;overflow-y:visible;border:1px solid var(--line);border-radius:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x pan-y;cursor:grab}.tablewrap::-webkit-scrollbar{display:none}.tablewrap.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.grid{width:100%;border-collapse:separate;border-spacing:0;min-width:860px}.grid th,.grid td{border-bottom:1px solid var(--line);border-left:1px solid var(--line);padding:8px;vertical-align:middle;background:#fff}.grid th{position:sticky;top:0;z-index:5;background:#f8fafc;color:#475467;font-size:12px;white-space:nowrap}.grid tr:last-child td{border-bottom:0}.grid td:first-child,.grid th:first-child{position:sticky;right:0;z-index:4;background:#fff;box-shadow:-1px 0 0 var(--line)}.grid th:first-child{z-index:7;background:#f8fafc}.grid input,.grid select,.grid textarea{width:100%;border:1px solid transparent;background:transparent;padding:6px;border-radius:7px;resize:vertical}.grid input:focus,.grid select:focus,.grid textarea:focus{border-color:#8b9abd;background:#fff;outline:none}.grid th:last-child,.grid td:last-child{width:1%;white-space:nowrap;padding-inline:5px}.studentName{font-size:13px;font-weight:700;color:var(--brand)}.gradeLabel{display:block;margin-top:3px;font-size:10px;color:var(--muted);background:#f2f4f7;border-radius:999px;padding:3px 7px;width:max-content;max-width:170px;white-space:nowrap}.phoneCell{display:flex;align-items:center;gap:6px}.waLink{color:var(--brand);font-weight:700;text-decoration:none;white-space:nowrap}.chips{display:flex;gap:5px;flex-wrap:wrap}.chip{background:#eef2f8;color:var(--brand);padding:4px 7px;border-radius:999px;font-size:12px;white-space:nowrap}.formbox{border:1px solid var(--line);border-radius:14px;background:#fafbfc;padding:14px;margin-bottom:14px}.formgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.span2{grid-column:span 2}.subjects{display:flex;gap:7px;flex-wrap:wrap;border:1px solid #d7dbe3;border-radius:10px;padding:9px;background:#fff;min-height:42px}.subjectQuick{width:100%;display:flex;gap:7px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:2px;border-bottom:1px dashed var(--line)}.quickPick{border:1px solid #dbe2ef;background:var(--brandSoft);color:var(--brand);border-radius:9px;padding:6px 9px;cursor:pointer;font-weight:700}.quickPick.lang{background:var(--brandGoldSoft);border-color:#f3d98f;color:#8a6300}.quickPick:disabled{opacity:.45;cursor:not-allowed}.subjects label{display:flex;align-items:center;gap:5px;background:#f7f8fa;border-radius:8px;padding:5px 7px;cursor:pointer}.formactions{display:flex;gap:8px;justify-content:flex-start;margin-top:12px}.flash{margin-bottom:10px;padding:10px 12px;border-radius:10px;background:#ecfdf3;color:#067647;font-weight:700}.cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px}.card{border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff}.card:nth-child(3),.card:nth-child(7){border-top:3px solid var(--brand2)}.card .n{font-size:25px;font-weight:800;margin-top:6px}.card .t{color:var(--muted);font-size:12px}.groupgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.gcard{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fff;cursor:pointer}.gcard.complete{box-shadow:inset 0 3px 0 var(--ok)}.gcard.near{box-shadow:inset 0 3px 0 var(--brand2)}.ghead{display:flex;justify-content:space-between;gap:8px}.gcount{font-weight:800;font-size:20px}.tiny{font-size:11px;color:var(--muted)}.empty{padding:34px;text-align:center;color:var(--muted)}.logincover{position:fixed;top:0;right:0;bottom:0;left:0;background:#f6f7fb;z-index:100;display:grid;place-items:center}.login{width:min(430px,92vw);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:22px}.login h2{margin:18px 0 6px}.login .field{margin-top:10px}.login .btn{width:100%;margin-top:14px}.error{margin-top:10px;color:var(--danger);font-weight:700}.loading{display:grid;place-items:center;min-height:50vh;color:var(--muted)}@media(max-width:1050px){.wrap,.wrap.side-collapsed{grid-template-columns:1fr}.side{position:static}.sideTop{display:none}.nav{display:flex;overflow:auto}.nav a{white-space:nowrap}.cards{grid-template-columns:repeat(3,1fr)}.groupgrid,.formgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.topin{padding:10px}.wrap{padding:10px;gap:10px}.panel{padding:11px}.brand small{display:none}.formgrid{grid-template-columns:1fr}.span2{grid-column:span 1}.cards{grid-template-columns:repeat(2,1fr)}.groupgrid{grid-template-columns:1fr}.toolbar .field,.toolbar .control{width:100%}.search{min-width:0}.count{margin-inline-start:0}.grid{min-width:980px}.username{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.passwordControl{position:relative}.passwordControl .control{width:100%;padding-left:44px}.passwordToggle{position:absolute;left:7px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;color:var(--muted);border-radius:8px;cursor:pointer;display:grid;place-items:center}.passwordToggle:hover{background:var(--brandSoft);color:var(--brand)}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#11182773;display:grid;place-items:center;padding:18px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.studentModal{width:min(820px,96vw);max-height:90vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px #11182733;padding:18px}.modalHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.modalHead h2{margin:0 0 4px;font-size:20px}.modalClose{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);cursor:pointer;display:grid;place-items:center}.modalClose:hover{background:var(--brandSoft);color:var(--brand)}.modalActions{display:flex;justify-content:flex-start;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.wrap.side-collapsed .nav a{position:relative}.wrap.side-collapsed .nav a:after{content:attr(data-tooltip);position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%) translate(4px);background:#17212b;color:#fff;padding:7px 10px;border-radius:8px;font-size:12px;font-weight:700;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;transition:.15s ease;z-index:50;box-shadow:var(--shadow)}.wrap.side-collapsed .nav a:before{content:"";position:absolute;right:calc(100% + 4px);top:50%;transform:translateY(-50%);border-width:5px 0 5px 6px;border-style:solid;border-color:transparent transparent transparent #17212b;opacity:0;visibility:hidden;transition:.15s ease;z-index:50}.wrap.side-collapsed .nav a:hover:after,.wrap.side-collapsed .nav a:hover:before{opacity:1;visibility:visible;transform:translateY(-50%) translate(0)}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card{min-height:118px;padding:18px;display:flex;flex-direction:column;justify-content:center}.card .n{font-size:34px;margin-top:10px}.card .t{font-size:13px;font-weight:700}.card:nth-child(1),.card:nth-child(6){border-top:3px solid var(--brand)}.card:nth-child(2),.card:nth-child(5){border-top:3px solid var(--brand2)}.clearFilters{background:#f2f4f7;color:#98a2b3;border:1px solid #e4e7ec;transition:.15s ease}.clearFilters:disabled{cursor:default;opacity:.65}.clearFilters.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 4px 12px #165d5629;cursor:pointer}.clearFilters.active:hover{filter:brightness(.96)}@media(max-width:1050px){.cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.card{min-height:104px}.card .n{font-size:30px}.studentModal{padding:14px}.modalBackdrop{padding:10px}}@media(max-width:430px){.cards{grid-template-columns:1fr 1fr;gap:9px}.card{padding:13px}.card .t{font-size:11px}.card .n{font-size:27px}}.studentModal{position:relative}.confirmLayer{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffe0;display:grid;place-items:center;padding:18px;border-radius:18px;z-index:4;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirmCard{width:min(390px,92%);background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 16px 40px #11182724;padding:18px;text-align:right}.confirmCard b{font-size:16px}.confirmCard p{color:var(--muted);margin:8px 0 16px}.confirmActions{display:flex;gap:8px}.gradeSelect{display:block!important;margin-top:4px!important;width:auto!important;max-width:185px!important;border:0!important;background:#f2f4f7!important;border-radius:999px!important;padding:3px 24px 3px 7px!important;font-size:10px!important;color:var(--muted)!important;cursor:pointer!important}.gradeSelect:focus{outline:1px solid #8b9abd!important;background:#fff!important}.subjectEditor{position:relative;min-width:190px}.subjectEditButton{width:100%;border:1px solid transparent;background:transparent;border-radius:9px;padding:4px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;color:var(--brand)}.subjectEditButton:hover{border-color:#d7e7e4;background:var(--brandSoft)}.subjectPlaceholder{color:var(--muted);font-size:12px}.subjectEditPanel{margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff;display:flex;gap:6px;flex-wrap:wrap;min-width:260px;box-shadow:var(--shadow)}.subjectEditPanel>label{display:flex;align-items:center;gap:5px;background:#f7f8fa;border-radius:8px;padding:5px 7px;cursor:pointer;font-size:12px}.subjectEditPanel input[type=checkbox]{width:auto!important}.subjectEditPanel .subjectQuick{margin-bottom:4px}.subjectDone{margin-inline-start:auto}.phoneCell{display:flex;align-items:center;gap:5px;white-space:nowrap}.waLink{display:inline-block}.iconEdit{width:27px;height:27px;border:0;background:#f2f4f7;color:var(--muted);border-radius:7px;cursor:pointer;display:grid;place-items:center;flex:0 0 27px}.iconEdit:hover{background:var(--brandSoft);color:var(--brand)}.phoneEdit input{max-width:145px!important;border:1px solid #8b9abd!important;background:#fff!important}.actionButtons{display:flex;gap:4px}.gradeSelect{display:none!important}.gradeEditor{position:relative;display:inline-flex;align-items:center;gap:3px;margin-top:4px;max-width:185px;background:#f2f4f7;border-radius:999px;padding:2px 4px 2px 7px;color:var(--muted);font-size:10px}.gradeText{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;pointer-events:none}.gradeArrow{width:20px;height:20px;border:0;background:transparent;color:var(--muted);border-radius:50%;cursor:pointer;display:grid;place-items:center;padding:0;flex:0 0 20px}.gradeArrow:hover,.gradeArrow:focus{background:#e2e7f0;color:var(--brand);outline:none}.gradeMenu{position:absolute;right:0;top:calc(100% + 5px);z-index:30;width:205px;max-height:270px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px #11182724;padding:5px}.gradeMenu button{display:block;width:100%;border:0;background:#fff;text-align:right;padding:8px 9px;border-radius:7px;cursor:pointer;color:#344054;font-size:12px}.gradeMenu button:hover{background:var(--brandSoft);color:var(--brand)}.gradeMenu button.current{background:#eef2f8;color:var(--brand);font-weight:700}.grid th:nth-child(3),.grid td:nth-child(3){width:360px;min-width:360px;max-width:360px}.subjectEditor{min-width:0!important;width:100%}.subjectEditButton{align-items:flex-start!important;min-height:56px}.subjectEditButton .chips{display:flex;flex-wrap:wrap;align-content:flex-start;gap:4px;width:100%;max-width:320px}.subjectEditButton .chip{font-size:10px;padding:3px 5px;line-height:1.25}.subjectEditPanel{position:absolute;right:0;top:100%;z-index:28;width:330px;min-width:330px;max-height:330px;overflow:auto}.modalRow{height:0!important}.modalRow>td{padding:0!important;border:0!important;height:0!important}.archiveConfirmBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;background:#11182757;display:grid;place-items:center;padding:18px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.archiveConfirmCard{width:min(410px,94vw);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px #11182738;padding:20px;text-align:right}.archiveConfirmCard b{font-size:17px}.archiveConfirmCard p{margin:9px 0 18px;color:var(--muted);line-height:1.7}.archiveConfirmCard strong{color:var(--ink)}@media(max-width:900px){.grid th:nth-child(3),.grid td:nth-child(3){width:320px;min-width:320px;max-width:320px}.subjectEditButton .chips{max-width:280px}}.grid{min-width:1120px;table-layout:fixed}.grid th:nth-child(1),.grid td:nth-child(1){width:190px;min-width:190px;max-width:190px}.grid th:nth-child(2),.grid td:nth-child(2){width:112px;min-width:112px;max-width:112px}.grid th:nth-child(3),.grid td:nth-child(3){width:370px!important;min-width:370px!important;max-width:370px!important}.grid th:nth-child(4),.grid td:nth-child(4){width:180px;min-width:180px;max-width:180px}.grid th:nth-child(5),.grid td:nth-child(5){width:150px;min-width:150px;max-width:150px}.grid th:nth-child(6),.grid td:nth-child(6){width:220px;min-width:220px;max-width:220px}.grid th:nth-child(7),.grid td:nth-child(7){width:56px;min-width:56px;max-width:56px}.periodSelect,.statusSelect{white-space:nowrap!important;min-width:0!important;width:100%!important;padding-inline:7px 22px!important;text-overflow:clip!important}.statusSelect{font-size:12px!important}.gradeEditor{position:relative;z-index:auto}.gradeMenuPortal{position:fixed!important;z-index:1000!important;width:220px!important;max-height:270px!important;overflow:auto!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:10px!important;box-shadow:0 18px 48px #11182738!important;padding:5px!important}.subjectEditor{position:relative;width:100%;min-width:0!important}.subjectDisplay{min-height:58px;display:flex;align-items:flex-start;gap:7px;width:100%;padding:3px 2px}.subjectDisplay .chips{display:flex;flex-wrap:wrap;align-content:flex-start;gap:4px;flex:1;min-width:0}.subjectDisplay .chip{font-size:10px;padding:3px 5px;line-height:1.25}.subjectPencil{margin-inline-start:auto;flex:0 0 27px}.subjectEditButton,.subjectEditPanel{display:none!important}.subjectModalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#11182761;display:grid;place-items:center;padding:18px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.subjectModal{width:min(680px,95vw);max-height:88vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px #11182738;padding:18px}.subjectModal .subjectQuick{margin-bottom:12px}.subjectModalList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.subjectModalList label{display:flex;align-items:center;gap:8px;background:#f7f8fa;border:1px solid #eef0f3;border-radius:9px;padding:9px 10px;cursor:pointer}.subjectModalList input{width:auto!important;flex:0 0 auto}.modalRow{display:none!important}.archiveConfirmBackdrop{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1200!important;width:100vw!important;height:100vh!important;margin:0!important;background:#11182757!important;display:grid!important;place-items:center!important;padding:18px!important;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);overflow:auto}.archiveConfirmCard{position:relative!important;width:min(410px,94vw)!important;margin:0!important}@media(max-width:900px){.grid{min-width:1080px}.grid th:nth-child(3),.grid td:nth-child(3){width:340px!important;min-width:340px!important;max-width:340px!important}.subjectModalList{grid-template-columns:1fr}}.wrap.side-collapsed .nav a:after,.wrap.side-collapsed .nav a:before{display:none!important}.navTooltipPortal{position:fixed;z-index:5000;transform:translateY(-50%);background:#17212b;color:#fff;padding:7px 10px;border-radius:8px;font-size:12px;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:0 10px 28px #11182738}.navTooltipPortal:after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border-width:5px 0 5px 6px;border-style:solid;border-color:transparent transparent transparent #17212b}.subjectDisplay,.subjectDisplay .chips,.subjectDisplay .chip{cursor:grab}.tablewrap.dragging .subjectDisplay,.tablewrap.dragging .subjectDisplay .chips,.tablewrap.dragging .subjectDisplay .chip{cursor:grabbing}.subjectPencil{cursor:pointer!important}.studentModal{width:min(900px,96vw)}.studentModal .formgrid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}.studentModal .subjectsField{grid-column:1/-1}.studentModal .statusField{grid-column:span 1}.studentModal .notesField{grid-column:span 3}.studentModal .subjects{width:100%;align-content:flex-start}.studentModal .subjects label{min-width:max-content}@media(max-width:760px){.studentModal .formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.studentModal .subjectsField{grid-column:1/-1}.studentModal .statusField,.studentModal .notesField{grid-column:span 1}}@media(max-width:520px){.studentModal .formgrid{grid-template-columns:1fr}.studentModal .subjectsField,.studentModal .statusField,.studentModal .notesField{grid-column:1/-1}}.statsPage{display:grid;gap:16px}.statsPage>.head{margin-bottom:0}.statsSection{border:1px solid var(--line);border-radius:15px;background:#fbfcfd;overflow:hidden}.sectionHeader{width:100%;border:0;background:#fff;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:right;cursor:pointer;color:var(--ink)}.sectionHeader:hover{background:#fafcfc}.sectionHeader>div,.sectionTitle{display:grid;gap:4px}.sectionHeader b,.sectionTitle b{font-size:15px}.sectionHeader span,.sectionTitle span{font-size:12px;color:var(--muted);font-weight:400}.sectionChevron{color:var(--brand);transition:transform .2s ease;flex:0 0 auto}.summarySection.collapsed .sectionChevron{transform:rotate(90deg)}.sectionBody{padding:14px 16px 16px;border-top:1px solid var(--line)}.statsPage .cards{margin:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.statsPage .card{min-height:116px}.groupsSection{padding:16px}.sectionTitle{margin-bottom:14px}.statsFilters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px;align-items:end}.statsFilters .field{min-width:0}.statsFilters .control{width:100%;min-width:0}.statsPage .groupgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.statsPage .gcard{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:right;font:inherit;color:inherit;width:100%;min-height:178px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;overflow:hidden}.statsPage .gcard:hover{transform:translateY(-1px);box-shadow:0 10px 24px #11182712;border-color:#cbd4e3}.statsPage .gcard.complete{box-shadow:inset 0 3px 0 var(--ok)}.statsPage .gcard.near{box-shadow:inset 0 3px 0 var(--brand2)}.statsPage .gcard.incomplete{box-shadow:inset 0 3px #98a2b3}.gcardTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-height:42px}.gsubject{font-size:15px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-width:0}.groupBadge{flex:0 0 auto;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:800;white-space:nowrap}.groupBadge.complete{background:#ecfdf3;color:#067647}.groupBadge.near{background:#fff7df;color:#8a6300}.groupBadge.incomplete{background:#f2f4f7;color:#475467}.gmeta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:11px;line-height:1.5;min-height:32px}.metaDot{opacity:.55}.gbody{display:flex;align-items:center;justify-content:center;flex:1;min-height:50px}.statsPage .gcount{display:flex;align-items:baseline;gap:6px;color:var(--ink)}.statsPage .gcount strong{font-size:32px;line-height:1;font-weight:900;color:var(--brand)}.statsPage .gcount span{font-size:14px;font-weight:800}.gfooter{border-top:1px solid #eef0f3;padding-top:9px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}.gfooter b{color:#344054;font-size:12px;white-space:nowrap}.statsPage .empty{grid-column:1/-1;border:1px dashed var(--line);border-radius:12px;background:#fff}@media(max-width:1150px){.statsPage .groupgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.statsPage .groupgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.statsFilters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.statsPage .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.statsFilters,.statsPage .groupgrid{grid-template-columns:1fr}.groupsSection,.sectionBody,.sectionHeader{padding:12px}}.brandLogoCrop{width:44px;height:44px;border-radius:12px;overflow:hidden;position:relative;background:#fff;border:1px solid #e6e9ef;box-shadow:0 2px 8px #24375f1a;flex:0 0 44px}.brandLogoCrop img{position:absolute;width:88px;height:auto;max-width:none;left:50%;top:-3px;transform:translate(-50%);display:block}.top{border-bottom-color:#dfe5ef}.username,.nav a.active{background:var(--brandSoft);color:var(--brand)}.quickPick{border-color:#d7dfed}.control:focus{border-color:#8b9abd;box-shadow:0 0 0 3px var(--brandSoft)}.studentName,.waLink{color:var(--brand)}.chip{background:var(--brandSoft);color:var(--brand)}.gmeta{font-size:13px!important;font-weight:800!important;color:#35466d!important;gap:8px!important;min-height:34px!important}.gmeta span{font-weight:800!important}.gmeta .metaDot{font-weight:400!important;opacity:.65}.sectionHeader span{font-size:13px;line-height:1.55}.statsPage .gcard{border-color:#dfe5ef}.statsPage .gcount strong{color:var(--brand)}.groupBadge.near{background:#fbf6ea;color:#7b5b22}.card:nth-child(3),.card:nth-child(6){border-top-color:var(--brand2)}.navTooltipPortal{background:var(--brand)}.navTooltipPortal:after{border-color:transparent transparent transparent var(--brand)}:root{--ink:#101828;--muted:#475467;--line:#d8dfeb;--brand:#24375f;--brandSoft:#eaf0f9;--bg:#f3f6fb}body{background:var(--bg);color:var(--ink)}.sub,.tiny,.field label{color:#526079}.grid th{background:#edf2f8!important;color:#253858!important;font-weight:800!important;border-bottom-color:#cbd5e3!important}.grid tbody tr:nth-child(2n) td{background:#fbfcfe}.grid tbody tr:hover td,.grid tbody tr:hover td:first-child{background:#f5f8fc}.grid td{color:#263247}.studentName{font-weight:800!important}.waLink{font-weight:800!important;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.gradeEditor{color:#3f4f68!important;background:#edf1f6!important;font-weight:700}.periodSelect,.statusSelect{color:#27364f!important;font-weight:700!important;background:#f8fafc!important;border-color:#e2e8f0!important}.notesCell,.grid textarea{color:#344054!important}.card .t{color:#46536b!important}.card .n{color:#17233e}.gmeta{color:#263d68!important}.gfooter{color:#526079!important}.gfooter b{color:#263247!important}.subjectChip{border:1px solid currentColor;font-weight:800;box-shadow:0 1px #10182808}.brandLogoCrop{width:54px;height:54px;border-radius:12px;overflow:hidden;position:relative;background:#fff;border:1px solid #dfe5ef;box-shadow:0 2px 8px #24375f1a;flex:0 0 54px;padding:3px}.brandLogoCrop img{position:static!important;width:100%!important;height:100%!important;max-width:100%!important;transform:none!important;display:block;object-fit:contain!important}.usersPage .userCreateForm{background:#f8faff;border-color:#dbe3ef}.usersGrid{table-layout:auto!important}.usersGrid th:nth-child(1),.usersGrid td:nth-child(1){width:28%!important;min-width:160px!important;max-width:none!important}.usersGrid th:nth-child(2),.usersGrid td:nth-child(2){width:42%!important;min-width:240px!important;max-width:none!important}.usersGrid th:nth-child(3),.usersGrid td:nth-child(3){width:20%!important;min-width:120px!important;max-width:none!important}.usersGrid th:nth-child(4),.usersGrid td:nth-child(4){width:64px!important;min-width:64px!important;max-width:64px!important;text-align:center}.userEmail{direction:ltr;text-align:left;font-weight:700;color:#344054}.roleBadge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.roleBadge.admin{background:#eaf0f9;color:#24375f;border:1px solid #cfd9e9}.roleBadge.employee{background:#eef8f3;color:#286146;border:1px solid #cee7d8}.dangerIcon{color:#b42318!important;background:#fff1f0!important}.dangerIcon:hover{background:#ffe4e1!important}@media(max-width:650px){.brandLogoCrop{width:46px;height:46px;flex-basis:46px}.usersGrid{min-width:760px!important}}.grid th:nth-child(4),.grid td:nth-child(4){width:165px;min-width:165px;max-width:165px}.grid th:nth-child(5),.grid td:nth-child(5){width:138px;min-width:138px;max-width:138px}.statusSelect{padding-inline:6px 20px!important}.periodSelect{background-color:transparent!important;box-shadow:none!important;filter:none!important}.subsectionTitle{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:18px 0 10px;padding-top:2px}.subsectionTitle>div{display:grid;gap:3px}.subsectionTitle b{font-size:14px;color:#24375f}.subsectionTitle span{font-size:12px;color:var(--muted)}.materialGroupsTitle{margin-top:20px;padding-top:16px;border-top:1px solid #e6eaf0}.classGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.classGrid>.empty{grid-column:1/-1;border:1px dashed var(--line);border-radius:12px;background:#fff}.classCard{border:1px solid #dce3ee;background:#fff;border-radius:14px;padding:14px;display:grid;gap:12px;box-shadow:0 2px 8px #24375f0a}.classCardHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid #edf0f4}.classCardHead b{font-size:14px;color:#24375f;line-height:1.4}.classCardHead span{flex:0 0 auto;border-radius:999px;background:#edf2f8;color:#35466d;padding:5px 9px;font-size:12px;font-weight:800}.trackRows{display:grid;grid-template-columns:1fr 1fr;gap:9px}.trackRow{border:1px solid #e0e5ed;border-radius:11px;padding:10px;background:#f9fafc;display:grid;gap:8px}.trackRow>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.trackRow strong{font-size:14px;color:#253858}.trackRow>div span{font-size:12px;color:#526079;font-weight:700}.trackRow>b{font-size:12px;width:max-content;padding:4px 8px;border-radius:999px;background:#f2f4f7;color:#475467}.trackRow.complete{border-color:#bfe3ce;background:#f5fcf8}.trackRow.complete>b{background:#e8f8ef;color:#067647}.trackRow.near{border-color:#ead9a5;background:#fffaf0}.trackRow.near>b{background:#fff1c7;color:#7b5b22}.subjectLabelStat{display:inline-flex!important;width:max-content;max-width:70%;align-items:center;border:1px solid currentColor;border-radius:999px;padding:5px 9px;font-size:13px!important;font-weight:900!important;line-height:1.25!important;white-space:normal;overflow:visible!important;-webkit-line-clamp:unset!important;box-shadow:0 1px #10182808}@media(max-width:1100px){.classGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.classGrid{grid-template-columns:1fr}.classCard{padding:12px}.trackRows{grid-template-columns:1fr 1fr}.subjectLabelStat{max-width:72%}}@media(max-width:430px){.trackRows{grid-template-columns:1fr}.classCardHead{align-items:flex-start}.classCardHead b{font-size:13px}.subjectLabelStat{max-width:68%;font-size:12px!important}}.completeClass{position:relative;border-color:#cbdaf3;background:linear-gradient(180deg,#fff,#f8fbff)}.classCardHead>div{display:grid;gap:3px}.classCardHead small{font-size:12px;color:#61708d;font-weight:700}.trackRow.neutral{background:#f7f9fc;border-color:#e4e9f2}.trackRow.neutral strong{color:#24375f}.trackRow.neutral span{color:#5d6a82}.classCompleteBadge{justify-self:start;border-radius:999px;background:#e8f6ee;color:#17633e;border:1px solid #bfe4cf;padding:5px 10px;font-size:12px;font-weight:900}.activityPage{display:grid;gap:16px}.activityFilters{align-items:end}.activityFilters .control{min-width:145px}.activityFilters .search{min-width:210px}.activityTableWrap{overflow:auto;border:1px solid #e1e6ef;border-radius:14px;background:#fff}.activityGrid{min-width:980px;margin:0}.activityGrid th{white-space:nowrap}.activityDate{white-space:nowrap;color:#4f5e79;font-weight:700}.activityDetails{min-width:340px}.activityBadge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900;white-space:nowrap;border:1px solid #d8dfeb;background:#f5f7fa;color:#34435f}.activityBadge.create{background:#eaf7f0;color:#1d6545;border-color:#c5e7d5}.activityBadge.archive{background:#fff4e7;color:#8b5117;border-color:#f0d2ad}.activityBadge.restore{background:#eaf4ff;color:#215f9c;border-color:#c7def8}.activityBadge.delete{background:#fff0f1;color:#a03a45;border-color:#f0c9ce}.changeLine{display:grid;grid-template-columns:minmax(90px,auto) minmax(70px,1fr) auto minmax(70px,1fr);gap:7px;align-items:center;padding:3px 0}.changeLine b{color:#24375f}.oldValue{color:#7a5360;text-decoration:line-through}.newValue{color:#225c45;font-weight:800}.changeArrow{color:#9aa5b8}@media(max-width:760px){.activityFilters{display:grid;grid-template-columns:1fr 1fr;gap:8px}.activityFilters .control,.activityFilters .search{min-width:0;width:100%}.activityFilters .search,.activityFilters .count{grid-column:1/-1}.activityTableWrap{border:0;background:transparent;overflow:visible}.activityGrid{min-width:0;display:block}.activityGrid thead{display:none}.activityGrid tbody{display:grid;gap:10px}.activityGrid tr{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#fff;border:1px solid #e1e6ef;border-radius:14px;padding:12px}.activityGrid td{display:block;border:0!important;padding:0!important}.activityGrid td:nth-child(1){grid-column:1/-1;font-size:12px}.activityGrid td:nth-child(5){grid-column:1/-1;padding-top:7px!important;border-top:1px solid #edf0f5!important}.activityDetails{min-width:0}.changeLine{grid-template-columns:1fr;gap:2px;border-bottom:1px dashed #edf0f5;padding:6px 0}.changeArrow{display:none}}@media(max-width:430px){.activityFilters{grid-template-columns:1fr}.activityFilters .search,.activityFilters .count{grid-column:auto}.activityGrid tr{grid-template-columns:1fr}.activityGrid td:nth-child(1),.activityGrid td:nth-child(5){grid-column:auto}}
