
    :root{--bg:#edf3ff;--card:#fff;--line:#c9d5e6;--txt:#10203d;--muted:#5a6980;--brand:#950000;--brand2:#6d0000;--teal:#167d76;--teal2:#0f5e59;--soft:#dde4ef;--active:#169c57;--inactive:#8995a7;--warn:#a16207;--activecard:#7d848f;--chat:#ffffff;--chat-bg:#e4f2e9;--protiva-chat-keyboard-bottom:0px;--protiva-safe-top:clamp(0px,env(safe-area-inset-top),14px)}
    html.protivaIosNativeShell{--protiva-safe-top:max(0px,env(safe-area-inset-top,0px))}
    *{box-sizing:border-box} html{scroll-behavior:smooth;overflow-x:hidden}
    body{margin:0;background:linear-gradient(180deg,#edf3ff 0%,#eef5fb 100%);color:var(--txt);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;overflow-x:hidden;-webkit-text-size-adjust:100%}
    html.privateTeacherChatPageLocked,html.privateTeacherChatPageLocked body{overflow:hidden;overscroll-behavior:none}
    html.studentProfileWebModalLocked,html.studentProfileWebModalLocked body{overflow:hidden;overscroll-behavior:none}
    .protivaSmoothAppear{animation:protivaCalmFadeIn .18s cubic-bezier(.2,.72,.2,1) both;backface-visibility:hidden;transform:translateZ(0)}
    @keyframes protivaCalmFadeIn{from{opacity:0;transform:translate3d(0,5px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
    @media (prefers-reduced-motion:reduce){.protivaSmoothAppear{animation:none!important}}
    button{cursor:pointer;transition:transform .08s ease,filter .12s ease,opacity .15s ease,box-shadow .15s ease}
    button:active{transform:scale(.97);filter:brightness(.96);box-shadow:0 0 0 3px rgba(16,32,61,.08) inset}
    button:disabled{opacity:.7;cursor:not-allowed}
    .wrap{max-width:780px;margin:0 auto;padding:calc(14px + var(--protiva-safe-top)) calc(14px + env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));width:100%}
    .login,.checker,.card,.sum{background:#fff;border:1px solid var(--line);border-radius:16px}
    .login{max-width:420px;padding:24px 20px 20px;display:grid;gap:14px;margin:34px auto 14px;border:1px solid #e7d5d2;border-radius:24px;background:linear-gradient(180deg,#ffffff 0%,#fffaf8 100%);box-shadow:0 20px 48px rgba(86,25,25,.10),0 8px 20px rgba(16,32,61,.06)}
    .loginBrand{display:none;align-items:center;justify-content:center;padding:2px 0 4px}
    .loginBrand.show{display:flex}
    .loginBrand img{display:block;max-width:min(230px,88%);max-height:94px;width:auto;height:auto;object-fit:contain}
    .loginHero{display:grid;gap:5px;text-align:center}
    .loginTitle{font-weight:900;font-size:25px;line-height:1.15;letter-spacing:-.02em;color:#7b0909}
    .loginSubtitle{font-size:13px;font-weight:800;color:#7a5e5e}
    .loginPrompt{font-size:12px;font-weight:800;color:var(--muted);text-align:center}
    .loginChoiceGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .loginChoiceBtn{min-height:54px;border:1.5px solid #d9e4f1!important;border-radius:16px;background:#fff!important;color:#10203d!important;font-size:15px!important;font-weight:950;box-shadow:0 10px 22px rgba(16,32,61,.07)!important;padding:12px!important}
    .loginChoiceBtn.primary{border-color:#10203d!important;background:#10203d!important;color:#fff!important}
    .loginTeacherForm{display:none;gap:10px}
    .login.teacherLoginOpen .loginTeacherForm{display:grid}
    .login input,.search,.checker input,.form input,.form select,.form textarea,.composer textarea{width:100%;padding:14px;border:2px solid var(--line);border-radius:14px;font-size:17px;font-weight:700;background:#fff}
    .loginCodeWrap{position:relative}
    .loginCodeWrap input{padding-right:54px}
    .loginEyeBtn{position:absolute;top:50%;right:10px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;border-radius:999px;background:#eef2f8;color:#475569;font-size:18px}
    .loginRemember{display:none;align-items:center;justify-content:flex-start;gap:10px;font-size:13px;font-weight:900;color:#475569;margin-top:-2px}
    .loginRemember input{width:18px;height:18px;margin:0;accent-color:#10203d}
    .rememberedBootPending #loginBox,.studentProfileRouteBoot #loginBox{display:none!important}
    .login input{border-color:#e2d5d3;background:#fffdfc;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
    .login input:focus{outline:none;border-color:#b77c7c;box-shadow:0 0 0 4px rgba(149,0,0,.08)}
    .login button,.btn.on{background:linear-gradient(180deg,var(--brand),var(--brand2));color:#fff}
.login button,.notesBtn,.today,.saveBtn,.shareBtn,.sendBtn,.close,.miniBtn,.btn{border:none;border-radius:12px;font-weight:900}
.login button{padding:16px;font-size:20px;box-shadow:0 12px 24px rgba(149,0,0,.18)}
    .loginError,.saveMsg{min-height:18px;font-size:13px;font-weight:800;color:#b42318}
    .publicLegalLinks{margin-top:-10px;text-align:center;font-size:10px;line-height:1.2;font-weight:800;color:#6b7280}
    .publicLegalLinks a{color:#6b7280;text-decoration:none}
    .publicLegalLinks a:hover,.publicLegalLinks a:focus-visible{color:#10203d;text-decoration:underline;text-underline-offset:3px}
    .topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px;position:relative}
    .topbarBrand{min-width:0}
    .topbarTitleRow{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
    .topbarDateMini{font-size:12px;font-weight:900;color:#64748b;line-height:1.1;padding-bottom:4px}
    .topbarActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:relative;justify-content:flex-end}
    #main .topbar{display:grid;grid-template-columns:1fr;gap:10px}
    #main .topbarActions{width:100%;justify-content:flex-start}
    .studentHeaderActions{display:grid;grid-template-rows:auto auto;gap:7px;width:100%;min-width:0;padding-bottom:2px}
    .studentHeaderPrimaryActions,.studentHeaderSecondaryActions{display:flex;align-items:center;justify-content:flex-start;gap:8px;min-width:0;width:100%}
    .studentHeaderPrimaryActions{flex-wrap:nowrap}
    .studentHeaderSecondaryActions{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:1px max(2px,env(safe-area-inset-right)) 3px max(2px,env(safe-area-inset-left));scroll-padding-inline:10px}
    .studentHeaderSecondaryActions::-webkit-scrollbar{display:none}
    .studentHeaderActions .miniBtn,.studentHeaderActions .navIconBtn,.studentHeaderActions .logoutBtn,.studentHeaderActions .installBtn,.studentHeaderActions .feedbackBtn{flex:0 0 auto}
    .studentHeaderSecondaryActions .navIconBtn,.studentHeaderSecondaryActions .logoutBtn,.studentHeaderSecondaryActions .installBtn,.studentHeaderSecondaryActions .feedbackBtn{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;font-size:17px}
    .studentHeaderSecondaryActions .feedbackBtn{width:auto;min-width:82px;padding:0 12px;font-size:13px}
    .homeworkSheet{max-width:980px}
    .homeworkModalHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
    .homeworkTitleWrap{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
    .homeworkTitleWrap::-webkit-scrollbar{display:none}
    .homeworkModalHead .mhead{margin-bottom:0;font-size:18px;line-height:1.1;white-space:nowrap}
    .homeworkTimerBadge{display:none;align-items:center;border:1px solid #bbf7d0;background:#ecfdf5;color:#0f766e;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900;line-height:1}
    .homeworkTopClose{width:40px;height:40px;border:1px solid #dbe5f1;border-radius:12px;background:#f8fafc;color:#334155;font-size:20px;font-weight:900;line-height:1;flex:0 0 auto}
    .homeworkMetaRow{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}
    .homeworkMetaRow .meta{margin:0;min-width:0}
    .homeworkDraftStatus{display:none;border:1px solid #dbe5f1;background:#f8fafc;color:#64748b;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900;line-height:1;white-space:nowrap}
    .homeworkDraftStatus.saved{color:#047857;background:#ecfdf5;border-color:#bbf7d0}
    .homeworkDraftStatus.error{color:#b91c1c;background:#fff1f2;border-color:#fecdd3}
    .homeworkTop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-bottom:10px}
    .homeworkLinkInput{width:100%;padding:12px;border:2px solid var(--line);border-radius:12px;font-size:13px;font-weight:800;background:#f8fafc;color:#10203d}
    .homeworkReminder{padding:10px 12px;border:1px solid #f4c27a;background:#fff7ed;border-radius:12px;color:#92400e;font-weight:900;margin:8px 0;display:none}
    .homeworkLevelBlock{margin-top:12px;border:1px solid #dbe5f1;border-radius:18px;padding:12px;box-shadow:0 12px 26px rgba(16,32,61,.06)}
    .homeworkLevelTone0{background:#fff8df}.homeworkLevelTone1{background:#ecfdf5}.homeworkLevelTone2{background:#eef6ff}.homeworkLevelTone3{background:#fff1f7}.homeworkLevelTone4{background:#f5f3ff}.homeworkLevelTone5{background:#f1f5f9}
    .homeworkLevelTitle{font-size:18px;font-weight:900;color:#10203d;margin:2px 0 8px}
    .homeworkSlotCard{border:1px solid #dbe5f1;border-radius:18px;padding:12px;background:linear-gradient(180deg,#fff,#fbfdff);margin-bottom:10px;box-shadow:0 8px 18px rgba(16,32,61,.05)}
    .homeworkSlotHead{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:16px;font-weight:900;color:#10203d;margin-bottom:10px}
    .homeworkCellGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .homeworkCell{border:1px solid #e2e8f0;border-radius:14px;padding:10px;background:#f8fafc;box-shadow:inset 0 1px 0 rgba(255,255,255,.85)}
    .homeworkCellTitle{font-size:12px;font-weight:900;color:#5a6980;margin-bottom:6px}
    .homeworkCell textarea.homeworkInstructionInput{width:100%;min-height:44px;max-height:180px;padding:10px 11px;border:1px solid #d8e2ef;border-radius:10px;background:#fff;font-size:14px;font-weight:800;line-height:1.35;resize:none;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}
    .homeworkCellTools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
    .homeworkTinyBtn{border:1px solid #d8e2ef;border-radius:10px;background:#fff;padding:8px 10px;font-size:12px;font-weight:900;color:#10203d}
    .homeworkTinyBtn.danger{color:#9f1239;background:#fff1f2;border-color:#fecdd3}
    .homeworkTinyBtn.active{background:#10203d;border-color:#10203d;color:#fff}
    .homeworkAiModeToggle{display:inline-flex;align-items:center;gap:7px;border:1.5px solid #99f6e4;border-radius:999px;background:#f0fdfa;color:#0f766e;padding:5px 6px 5px 10px;font-size:11px;font-weight:950;line-height:1;white-space:nowrap;box-shadow:0 8px 18px rgba(15,118,110,.10)}
    .homeworkAiModeToggle i{position:relative;display:inline-block;width:32px;height:18px;border-radius:999px;background:#cbd5e1;box-shadow:inset 0 1px 2px rgba(16,32,61,.18)}
    .homeworkAiModeToggle i:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:999px;background:#fff;box-shadow:0 2px 5px rgba(16,32,61,.22);transition:transform .16s ease}
    .homeworkAiModeToggle.on{border-color:#5eead4;background:#ecfeff;color:#0f766e}
    .homeworkAiModeToggle.on i{background:linear-gradient(90deg,#14b8a6,#10203d)}
    .homeworkAiModeToggle.on i:after{transform:translateX(14px)}
    .homeworkAiModeInfoOverlay{position:fixed;inset:0;z-index:99999;background:rgba(16,32,61,.24);display:grid;place-items:center;padding:18px}
    .homeworkAiModeInfoCard{width:min(360px,100%);border:1px solid #bae6fd;border-radius:18px;background:#fff;padding:16px;box-shadow:0 18px 48px rgba(16,32,61,.20)}
    .homeworkAiModeInfoTitle{font-size:17px;font-weight:950;color:#10203d;margin-bottom:8px}
    .homeworkAiModeInfoCard p{margin:0 0 14px;color:#475569;font-size:13px;font-weight:800;line-height:1.45}
    .homeworkAiModeInfoCard button{width:100%;border:none;border-radius:12px;background:#10203d;color:#fff;padding:12px;font-size:14px;font-weight:950}
    .homeworkSubmittedHeadBtn{border:1.5px solid #ffd2b8;border-radius:999px;background:linear-gradient(135deg,#fff7e6,#ffd9c2);color:#8a1952;padding:8px 12px;font-size:12px;font-weight:950;box-shadow:0 8px 18px rgba(255,172,119,.18);white-space:nowrap}
    .homeworkSubmittedHeadBtn.active{background:linear-gradient(135deg,#10203d,#8a1952);border-color:#10203d;color:#fff;box-shadow:0 0 0 4px rgba(255,209,102,.18),0 12px 24px rgba(16,32,61,.20)}
    .homeworkScissorBtn{width:34px;height:34px;border:1.5px solid #fecdd3;border-radius:999px;background:#fff1f2;color:#9f1239;font-size:15px;font-weight:950;display:inline-grid;place-items:center;box-shadow:0 8px 18px rgba(159,18,57,.10);flex:0 0 auto}
    .homeworkImagePreview{max-width:100%;max-height:120px;border-radius:10px;border:1px solid #dbe5f1;margin-top:8px;object-fit:contain;background:#fff}
    .homeworkUploadSummary{margin:10px 0 0;padding:10px 12px;border-radius:14px;border:1px solid #fde68a;background:linear-gradient(135deg,#fffbea,#fff7f7);color:#92400e;font-size:13px;font-weight:900;line-height:1.4}
    .homeworkProgressPanel{display:none;margin:10px 0;padding:10px;border:1px solid #dbe5f1;border-radius:16px;background:linear-gradient(135deg,#f8fbff,#fff7fb);box-shadow:0 8px 18px rgba(16,32,61,.05)}
    .homeworkProgressPanel.show{display:block}
    .homeworkProgressHead{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:950;color:#10203d;margin-bottom:8px}
    .homeworkProgressPill{border:1px solid #bbf7d0;border-radius:999px;background:#ecfdf5;color:#047857;padding:4px 8px;font-size:11px;font-weight:950;white-space:nowrap}
    .homeworkProgressPill.warn{border-color:#fde68a;background:#fffbeb;color:#92400e}
    .homeworkProgressPill.error{border-color:#fecdd3;background:#fff1f2;color:#b91c1c}
    .homeworkProgressRows{display:grid;gap:6px}
    .homeworkProgressRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;border:1px solid #eef2f7;border-radius:12px;background:rgba(255,255,255,.82);padding:7px 8px;font-size:11px;font-weight:900;color:#5a6980}
    .homeworkProgressDot{width:9px;height:9px;border-radius:999px;background:#cbd5e1;box-shadow:0 0 0 3px rgba(203,213,225,.18)}
    .homeworkProgressRow.saved .homeworkProgressDot{background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.16)}
    .homeworkProgressRow.uploading .homeworkProgressDot{background:#0ea5e9;box-shadow:0 0 0 3px rgba(14,165,233,.16);animation:homeworkStatusPulse 1.15s ease-in-out infinite}
    .homeworkProgressRow.error .homeworkProgressDot{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.14)}
    .homeworkProgressRow strong{color:#10203d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .homeworkProgressReason{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;color:#64748b}
    .homeworkProgressRow.error .homeworkProgressReason{color:#b91c1c}
    .homeworkImageAuditCard{margin:10px 0 12px;padding:11px;border:1px solid #f7d56a;border-radius:16px;background:linear-gradient(135deg,#fffaf0,#fff7fb 62%,#eefcff);box-shadow:0 12px 26px rgba(16,32,61,.08)}
    .homeworkImageAuditHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:13px;font-weight:950;color:#10203d}
    .homeworkImageAuditCount{border:1px solid #bbf7d0;border-radius:999px;background:#ecfdf5;color:#047857;padding:4px 8px;font-size:11px;font-weight:950;white-space:nowrap}
    .homeworkImageAuditRows{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
    .homeworkImageAuditRow{display:grid;grid-template-columns:46px minmax(0,1fr);gap:8px;align-items:center;border:1px solid rgba(219,229,241,.88);border-radius:13px;background:rgba(255,255,255,.9);padding:7px;text-align:left;color:#10203d;box-shadow:0 8px 16px rgba(16,32,61,.05)}
    .homeworkImageAuditRow img{width:46px;height:46px;border-radius:10px;border:1px solid #dbe5f1;object-fit:cover;background:#fff}
    .homeworkImageAuditRow strong{display:block;font-size:12px;font-weight:950;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .homeworkImageAuditRow span{display:block;margin-top:2px;font-size:11px;font-weight:900;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .homeworkCell .meta.uploading{color:#0f766e}
    .homeworkCell .meta.error{color:#b91c1c}
    .homeworkThumbPreviewBtn{display:inline-flex;align-items:center;justify-content:center;margin-top:6px;padding:3px;border:1px solid #dbe5f1;border-radius:12px;background:#fff;box-shadow:0 6px 14px rgba(16,32,61,.08);touch-action:manipulation}
    .homeworkThumbPreview{width:54px;height:54px;border-radius:10px;border:1px solid #dbe5f1;object-fit:cover;background:#fff}
    .homeworkPublishBar{display:grid;gap:10px;margin-top:14px;padding-top:10px}
    .homeworkPublishBar .saveBtn{margin:0}
    .homeworkMsg{font-size:13px;font-weight:900;color:#5a6980;min-height:18px;margin-top:8px}
    .homeworkSearchBox{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:10px 0;padding:10px;border:1px solid #dbe5f1;border-radius:14px;background:#f8fafc}
    .homeworkSearchBox input{width:100%;padding:10px 11px;border:2px solid #d8e2ef;border-radius:12px;font-size:14px;font-weight:900;background:#fff}
    .homeworkSlotCard.homeworkSlotHighlight{outline:3px solid rgba(14,165,233,.35);box-shadow:0 0 0 5px rgba(14,165,233,.12)}
    .homeworkSlotCard.uploading{outline:2px solid rgba(14,165,233,.24);box-shadow:0 0 0 5px rgba(14,165,233,.08),0 8px 18px rgba(16,32,61,.05)}
    .homeworkSlotCard.inactive{border-style:dashed;background:linear-gradient(180deg,#f8fafc,#f1f5f9);opacity:.92}
    .homeworkProgressiveActions{display:grid;gap:9px;margin:12px 0 4px}
    .homeworkLoadMoreBtn{width:100%;min-height:42px;background:#fff;color:#10203d}
    .homeworkInactiveDisclosure{padding:9px;border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc;text-align:center}
    .homeworkInactiveDisclosure .homeworkTinyBtn{width:100%;background:#f1f5f9;color:#475569}
    .homeworkScreenBlocker{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.28);backdrop-filter:blur(2px);touch-action:none;pointer-events:auto}
    .homeworkScreenBlocker.show{display:flex}
    .homeworkScreenBlockerCard{width:min(320px,88vw);border:1px solid rgba(251,207,232,.95);border-radius:18px;background:linear-gradient(135deg,#fff,#fff7fb 58%,#ecfeff);box-shadow:0 22px 50px rgba(16,32,61,.22);padding:18px;text-align:center;color:#10203d;font-size:14px;font-weight:950;line-height:1.35}
    .homeworkScreenBlockerSpinner{width:34px;height:34px;border-radius:999px;border:4px solid #fbcfe8;border-top-color:#0f766e;margin:0 auto 10px;animation:homeworkStatusSpin .85s linear infinite}
    @keyframes homeworkStatusSpin{to{transform:rotate(360deg)}}
    .homeworkValidityBox{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:8px;align-items:center;margin:10px 0;padding:10px;border:1px solid #dbe5f1;border-radius:14px;background:#f8fafc}
    .homeworkValidityBox label{font-size:13px;font-weight:900;color:#10203d}
    .homeworkValidityBox input{width:170px;padding:10px;border:2px solid #d8e2ef;border-radius:12px;font-size:15px;font-weight:900;background:#fff;text-align:center}
    .homeworkReadonlyDate{width:170px;padding:10px;border:2px solid #d8e2ef;border-radius:12px;font-size:15px;font-weight:900;background:#fff;text-align:center;color:#10203d}
    .homeworkPlanTimer{font-size:13px;font-weight:900;color:#0f766e;background:#ecfdf5;border:1px solid #bbf7d0;border-radius:12px;padding:9px 10px;margin:8px 0;display:none}
    @keyframes homeworkStatusPulse{0%,100%{transform:scale(1);opacity:.75}50%{transform:scale(1.35);opacity:1}}
    .homeworkPublicBody{background:linear-gradient(160deg,#fff7fb 0%,#ffe5f1 42%,#e9f7ff 100%);min-height:100vh;position:relative;overflow-x:hidden}
    .homeworkPublicBody:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 16%,rgba(255,137,194,.26) 0 18px,transparent 19px),radial-gradient(circle at 86% 20%,rgba(151,215,255,.28) 0 22px,transparent 23px),radial-gradient(circle at 18% 78%,rgba(255,212,236,.34) 0 28px,transparent 29px);animation:homeworkGlow 5s ease-in-out infinite alternate}
    .homeworkPublicPage{max-width:760px;margin:0 auto;padding:calc(12px + var(--protiva-safe-top)) calc(8px + env(safe-area-inset-right)) calc(26px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left));position:relative;z-index:1}
    .homeworkPublicPage:before,.homeworkPublicPage:after{content:"\2726";position:fixed;color:#ff7bbb;font-size:28px;font-weight:900;text-shadow:0 0 18px rgba(255,123,187,.7);animation:homeworkSparkle 2.7s ease-in-out infinite;pointer-events:none}
    .homeworkPublicPage:before{top:78px;left:22px}
    .homeworkPublicPage:after{right:26px;bottom:92px;animation-delay:1.2s}
    body.studentProfileRouteBoot .homeworkPublicPage:before,body.studentProfileRouteBoot .homeworkPublicPage:after{content:none!important;display:none!important}
    .homeworkPublicCard{background:rgba(255,255,255,.92);border:1px solid rgba(255,159,207,.48);border-radius:16px;padding:16px;box-shadow:0 14px 34px rgba(255,115,181,.16);margin-bottom:12px;position:relative;overflow:hidden;isolation:isolate}
    .homeworkPublicCard:before{content:"";position:absolute;top:0;left:-80%;width:55%;height:100%;background:linear-gradient(110deg,transparent,rgba(255,255,255,.74),transparent);animation:homeworkShine 4.5s ease-in-out infinite;pointer-events:none;z-index:0}
    .homeworkPublicCard>*{position:relative;z-index:1}
    .homeworkPublicCard.studentAchievementProfileCard{overflow:visible;padding-top:16px}
    .homeworkPublicCard.studentAchievementProfileCard:before{display:none}
    .homeworkKittyHero{display:flex;align-items:center;gap:12px;margin-bottom:10px}
    .homeworkKittyImg{width:76px;height:66px;object-fit:contain;filter:drop-shadow(0 10px 14px rgba(255,87,152,.24));animation:homeworkFloat 2.8s ease-in-out infinite;flex:0 0 auto}
    .homeworkBrandLogo{width:78px;height:78px;border-radius:18px;object-fit:contain;background:#fff;padding:6px;border:1px solid rgba(255,159,207,.45)}
    .studentProfileAvatarBtn{display:grid;gap:5px;justify-items:center;border:none;background:transparent;padding:0;cursor:pointer;touch-action:manipulation;flex:0 0 auto}
    .studentProfileAvatarBtn.achievementProfileAvatarBtn{width:clamp(122px,33vw,168px);min-width:clamp(122px,33vw,168px);padding-top:6px}
    .studentProfileAvatarFrame{position:relative;width:84px;height:84px;border-radius:999px;overflow:hidden;border:1px solid rgba(255,159,207,.55);background:linear-gradient(180deg,#fff,#fff7fb);box-shadow:0 10px 22px rgba(255,115,181,.14);isolation:isolate}
    .studentProfileAvatarFrame img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit;position:relative;z-index:2}
    .studentProfileAvatarPlaceholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:10px;text-align:center;font-size:13px;font-weight:950;line-height:1.15;color:#9d1457;background:linear-gradient(180deg,#fff8fc,#ffe8f2);border-radius:inherit;position:relative;z-index:2}
    .studentProfileAvatarOverlay{position:absolute;left:7px;right:7px;bottom:7px;border-radius:999px;background:rgba(157,20,87,.92);color:#fff;padding:4px 7px;font-size:10px;font-weight:950;line-height:1;text-align:center;z-index:5}
    .studentProfileAvatarHint{font-size:10px;font-weight:950;color:#9d1457;line-height:1.1}
    .studentProfileAvatarProgress{margin-top:8px;max-width:220px}
    .studentProfileAvatarProgress .homeworkQuestProgressText{font-size:10px}
    .homeworkKittyPeek{position:absolute;right:-14px;bottom:-10px;width:82px;height:70px;object-fit:contain;opacity:.16;pointer-events:none;transform:rotate(-5deg)}
    .homeworkPublicTitle{font-size:30px;font-weight:900;color:#10203d;margin-bottom:4px;text-shadow:0 0 14px rgba(255,144,203,.32)}
    .homeworkPublicMeta{font-size:14px;font-weight:800;color:#6b5870;line-height:1.45}
    .studentProfileSupportNote{margin:6px 0 10px;color:#7b657b;font-size:11px;font-weight:800;line-height:1.42;opacity:.86}
    .studentProfileSupportNoteTitle{margin-bottom:3px;color:#8a1952;font-weight:950}
    .studentProfileSupportNote ul{margin:2px 0 0 16px;padding:0}
    .studentProfileSupportNote li{margin:2px 0}
    .studentProfileHeroText{min-width:0}
    .studentProfileHeroDashboard{position:relative;overflow:hidden;display:grid;grid-template-columns:clamp(142px,38vw,196px) minmax(0,1fr);align-items:stretch;gap:8px;min-height:174px;border:1.5px solid rgba(255,196,223,.82);border-radius:18px;background:radial-gradient(circle at 16% 18%,rgba(255,209,102,.36),transparent 30%),radial-gradient(circle at 48% 92%,rgba(255,244,214,.46),transparent 42%),radial-gradient(circle at 92% 38%,rgba(255,123,188,.20),transparent 25%),radial-gradient(circle at 99% 88%,rgba(255,195,105,.22),transparent 30%),repeating-linear-gradient(35deg,rgba(157,20,87,.022) 0 1px,transparent 1px 7px),repeating-linear-gradient(125deg,rgba(255,255,255,.24) 0 1px,transparent 1px 8px),linear-gradient(105deg,#fff7fb 0%,#fffdf8 42%,#fff7e8 68%,#fff0f8 84%,#ffe4ef 100%);padding:8px 42px 8px 9px;box-shadow:0 14px 30px rgba(157,20,87,.12),0 0 0 2px rgba(255,255,255,.24) inset,0 0 24px rgba(255,144,203,.14)}
    .studentProfileHeroDashboard:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.62) 45%,transparent 58%);transform:translateX(-82%);animation:studentProfileHeaderShine 4.2s ease-in-out infinite;pointer-events:none}
    .studentProfileHeroDashboard>*{position:relative;z-index:1}
    .studentProfileHeroDashboard.noAchievementHero{min-height:154px}
    .studentProfileHeroAvatarColumn{display:grid;grid-template-rows:auto 1fr;align-content:start;justify-items:center;gap:0;min-width:0}
    .studentProfileHeroAvatarStage{display:flex;align-items:center;justify-content:center;min-height:86px;overflow:visible}
    .studentProfileHeroDashboard.achievementHeroL1 .studentProfileHeroAvatarStage,.studentProfileHeroDashboard.achievementHeroL2 .studentProfileHeroAvatarStage,.studentProfileHeroDashboard.achievementHeroL3 .studentProfileHeroAvatarStage{transform:translateY(-8px)}
    .studentProfileHeroDashboard.noAchievementHero .studentProfileHeroAvatarStage{min-height:132px}
    .studentProfileHeroDashboard.noAchievementHero .studentProfileAvatarBtn{width:clamp(106px,30vw,136px)}
    .studentProfileHeroDashboard.noAchievementHero .studentProfileAvatarFrame{width:86px;height:86px;border-radius:999px}
    .studentProfileHeroDashboard .studentProfileAvatarHint{display:none}
    .studentProfileHeroDashboard .homeworkKittyHero{align-items:flex-start;margin-bottom:0;gap:10px}
    .studentProfileHeroDashboard .homeworkPublicTitle{white-space:normal;line-height:1.04;font-size:24px;overflow:hidden;text-overflow:ellipsis;color:#10203d;text-shadow:0 2px 14px rgba(255,255,255,.56)}
    .studentProfileHeroDashboard.studentAchievementHero .homeworkKittyHero{align-items:flex-start;gap:9px}
    .studentProfileHeroDashboard.studentAchievementHero .studentProfileHeroText{padding-top:5px;min-width:0;flex:1}
    .studentProfileHeroDashboard.studentAchievementHero .studentProfileHeaderMeta{white-space:nowrap}
    .studentProfileHeroDashboard.studentAchievementHero .studentProfileHeaderPoints{gap:6px;flex-wrap:nowrap}
    .studentProfileNameWithStatus{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;white-space:nowrap}
    .studentProfileStatusDot{width:10px;height:10px;border-radius:999px;display:inline-block;flex:0 0 auto;box-shadow:0 0 0 3px rgba(107,114,128,.12)}
    .studentProfileStatusDot.active{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.14)}
    .studentProfileStatusDot.inactive{background:#9ca3af}
    .studentProfileHeaderMeta{font-size:11px;font-weight:950;color:#5b4660;line-height:1.22;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
    .studentProfileTimingText.timingReference,.studentSlotLevelLine.timingReference,.feeSlotLevelLine.timingReference,.leftArchiveSlotText.timingReference{color:#b91c1c}
    .studentProfileQuestBoard{display:grid;gap:9px;margin-top:10px;justify-items:stretch;min-width:0;width:min(100%,318px)}
    .studentProfileQuestStats{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center;min-width:0;width:100%}
    .studentProfileRewardStack{display:grid;gap:8px;margin-top:9px;justify-items:start;min-width:0}
    .studentProfileRewardRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:0;min-width:0}
    .studentProfileHeaderPoints{display:inline-flex;align-items:center;justify-content:center;margin-top:5px;border-radius:999px;background:#fff4d6;border:1px solid #ffd166;color:#8a1952;padding:5px 9px;font-size:12px;font-weight:900;white-space:nowrap}
    .studentProfileRewardRow .studentProfileHeaderPoints{margin-top:0}
    .studentProfileHeroDashboard .studentProfileHeaderPoints{position:relative;overflow:hidden;gap:7px;min-height:44px;width:100%;background:linear-gradient(135deg,#fffdf4 0%,#ffe082 35%,#fff7c6 64%,#ffe8f4 100%);border:1.5px solid #f4c34f;color:#8a1952;padding:6px 10px;font-size:16px;font-weight:950;box-shadow:0 9px 20px rgba(0,0,0,.12),0 0 0 3px rgba(255,209,102,.16),inset 0 0 0 1px rgba(255,255,255,.82);text-shadow:0 1px 0 rgba(255,255,255,.72)}
    .studentProfileHeroDashboard .studentProfileHeaderPoints:after{content:"";position:absolute;top:-40%;bottom:-40%;width:34px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.76),transparent);transform:translateX(-48px) rotate(18deg);animation:achievementHeaderChipShine 3.2s ease-in-out infinite;pointer-events:none}
    .studentAchievementBadge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;font-weight:950;font-size:11px;line-height:1;border:1px solid rgba(255,255,255,.82);box-shadow:0 8px 18px rgba(140,22,85,.16);vertical-align:middle;white-space:nowrap;max-width:100%;position:relative;overflow:hidden}
    .studentProfileHeroBadgeStage{display:flex;align-items:center;justify-content:center;min-width:0;width:100%}
    .studentProfileStartingTutorialBtn{font-size:18px;font-weight:950;line-height:1}
    .studentProfileStartingTutorialBtn:active{transform:scale(.94)}
    .studentAchievementBadgeProfile{margin-left:0;min-height:44px;width:100%;justify-content:center;padding:6px 10px;font-size:13px}
    .studentAchievementBadgeFriends{margin-left:5px;font-size:10px;padding:2px 6px;flex:0 0 auto}
    .studentAchievementBadgeIcon{display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:0 0 auto}
    .achievementBadgeIconImg{width:18px;height:18px;object-fit:contain;display:block;filter:drop-shadow(0 2px 4px rgba(80,24,8,.22))}
    .studentAchievementBadgeProfile .achievementBadgeIconImg{width:30px;height:30px}
    .studentAchievementBadgeFriends .achievementBadgeIconImg{width:15px;height:15px}
    .achievementMiniBadge .achievementBadgeIconImg{width:15px;height:15px}
    .studentAchievementBadgeText{letter-spacing:0}
    .achievementBadgeL0{background:linear-gradient(135deg,#fff,#fff4d8);color:#9d1457;border-color:#f2bfd6}
    .achievementBadgeL1{background:linear-gradient(135deg,#fff7cd,#f4c24f);color:#653900}
    .achievementBadgeL2{background:linear-gradient(135deg,#e8f8ff,#f7dcff,#fff5c8);color:#7b1a89}
    .achievementBadgeL3{background:linear-gradient(135deg,#fff7cf,#ff8bd6,#6ce7ff);color:#40114d;animation:achievementBadgeGlow 2.4s ease-in-out infinite}
    .achievementBadgeL4,.achievementBadgeL5,.achievementBadgeL6,.achievementBadgeL7,.achievementBadgeL8,.achievementBadgeL9,.achievementBadgeL10,.achievementBadgeL11,.achievementBadgeL12,.achievementBadgeL13,.achievementBadgeL14,.achievementBadgeL15{background:linear-gradient(135deg,#ffe9a8,#ff6ec7,#8c5cff,#56f0ff);color:#210a45}
    .achievementBadgeL7,.achievementBadgeL9,.achievementBadgeL12,.achievementBadgeL14,.achievementBadgeL15{animation:achievementBadgeGlow 2.6s ease-in-out infinite}
    .studentAchievementBadgeProfile.achievementBadgeL1,.studentAchievementBadgeProfile.achievementBadgeL2,.studentAchievementBadgeProfile.achievementBadgeL3,.studentAchievementBadgeProfile.achievementBadgeL4,.studentAchievementBadgeProfile.achievementBadgeL5,.studentAchievementBadgeProfile.achievementBadgeL6,.studentAchievementBadgeProfile.achievementBadgeL7,.studentAchievementBadgeProfile.achievementBadgeL8,.studentAchievementBadgeProfile.achievementBadgeL9,.studentAchievementBadgeProfile.achievementBadgeL10,.studentAchievementBadgeProfile.achievementBadgeL11,.studentAchievementBadgeProfile.achievementBadgeL12,.studentAchievementBadgeProfile.achievementBadgeL13,.studentAchievementBadgeProfile.achievementBadgeL14,.studentAchievementBadgeProfile.achievementBadgeL15{background:linear-gradient(135deg,#fffaf0 0%,#ffd873 48%,#fff3bd 100%);color:#8a1952;border-color:#f1bf43;box-shadow:0 5px 12px rgba(138,25,82,.12),inset 0 0 0 1px rgba(255,255,255,.72);animation:none}
    .studentAchievementBadgeProfile.achievementBadgeL1 .achievementBadgeIconImg,.studentAchievementBadgeFriends.achievementBadgeL1 .achievementBadgeIconImg{animation:studentBadgeSlowSpin 7.5s linear infinite;transform-origin:center center}
    .studentAchievementBadgeProfile.achievementBadgeL8,.studentAchievementBadgeProfile.achievementBadgeL10,.studentAchievementBadgeProfile.achievementBadgeL13,.studentAchievementBadgeProfile.achievementBadgeL15{background:linear-gradient(135deg,#fff2a8 0%,#ff7ac8 38%,#775cff 70%,#62efff 100%);color:#fff;border-color:#ffe080;padding:5px 10px;font-size:12px;box-shadow:0 8px 20px rgba(138,25,82,.22),0 0 18px rgba(255,209,102,.34),0 0 0 2px rgba(255,255,255,.42) inset;text-shadow:0 1px 5px rgba(33,10,69,.42);animation:achievementHeaderBadgePop 3.2s ease-in-out infinite}
    .studentAchievementBadgeProfile.achievementBadgeL8:after,.studentAchievementBadgeProfile.achievementBadgeL10:after,.studentAchievementBadgeProfile.achievementBadgeL13:after,.studentAchievementBadgeProfile.achievementBadgeL15:after{content:"";position:absolute;inset:-30%;background:linear-gradient(105deg,transparent 34%,rgba(255,255,255,.42) 50%,transparent 66%);transform:translateX(-70%);animation:achievementHeaderBadgeShine 3.4s ease-in-out infinite;pointer-events:none}
    .studentProfileBadgeSpotlight{position:relative;display:grid;justify-items:center;align-content:center;gap:0;width:100%;min-height:46px;margin-top:-10px;padding:0 4px 1px;overflow:hidden;border-radius:18px;background:radial-gradient(ellipse at 50% 86%,rgba(255,210,95,.24),transparent 58%);isolation:isolate}
    .studentProfileBadgeSpotlight:before{content:"";position:absolute;left:50%;top:50%;width:82px;height:62px;border-radius:999px;background:radial-gradient(ellipse,rgba(255,223,102,.52),rgba(255,118,196,.22) 48%,rgba(255,255,255,.02) 72%,transparent 78%);filter:blur(7px);transform:translate(-50%,-45%) scale(.88);opacity:.64;animation:studentBadgeAuraPulse 2.8s ease-in-out infinite;z-index:0;pointer-events:none}
    .studentProfileBadgeGlow{position:absolute;left:50%;bottom:11px;width:84%;height:38px;border-radius:999px;background:radial-gradient(ellipse,rgba(255,215,103,.58),rgba(255,139,207,.16) 54%,transparent 72%);filter:blur(5px);transform:translateX(-50%) scale(.94);z-index:0;animation:studentBadgeGlowPulse 2.8s ease-in-out infinite}
    .studentProfileBadgeBig{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:66px;height:58px;filter:drop-shadow(0 8px 10px rgba(98,45,12,.22));animation:studentBadgeSpotlightZoom 3.2s ease-in-out infinite}
    .studentProfileBadgeSpotlightImg{display:block;max-width:76px;max-height:66px;width:100%;height:100%;object-fit:contain}
    .studentProfileBadgeSpotlight.achievementBadgeL1 .studentProfileBadgeSpotlightImg,.studentProfileBadgeSpotlight.achievementBadgeL2 .studentProfileBadgeSpotlightImg,.studentProfileBadgeSpotlight.achievementBadgeL7 .studentProfileBadgeSpotlightImg{animation:studentBadgeSlowSpin 7.5s linear infinite;transform-origin:center center}
    .studentProfileHeroDashboard.achievementHeroL2 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL3 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL4 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL5 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL6 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL7 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL8 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL9 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL10 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL11 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL12 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL13 .studentProfileBadgeSpotlight{transform:translateY(16px)}
    .studentProfileHeroDashboard.achievementHeroL3 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL4 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL5 .studentProfileBadgeSpotlight,.studentProfileHeroDashboard.achievementHeroL6 .studentProfileBadgeSpotlight{transform:translateY(22px)}
    .studentProfileHeroDashboard.achievementHeroL3 .studentProfileBadgeSpotlight{transform:translateY(44px)}
    .studentProfileHeroDashboard.achievementHeroL7 .studentProfileBadgeSpotlight{transform:translateY(30px)}
    .studentProfileBadgeSpotlightIcon{font-size:40px;line-height:1;color:#a81661;text-shadow:0 3px 12px rgba(255,209,102,.72)}
    .studentProfileBadgeSpotlight.achievementBadgeL11 .studentProfileBadgeBig,.studentProfileBadgeSpotlight.achievementBadgeL12 .studentProfileBadgeBig{width:82px;height:54px}
    .studentProfileBadgeSpotlight.achievementBadgeL14 .studentProfileBadgeBig{width:72px;height:82px}
    @keyframes studentBadgeSpotlightZoom{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.08)}}
    @keyframes studentBadgeAuraPulse{0%,100%{opacity:.45;transform:translate(-50%,-45%) scale(.88)}50%{opacity:.88;transform:translate(-50%,-45%) scale(1.14)}}
    @keyframes studentBadgeGlowPulse{0%,100%{opacity:.62;transform:translateX(-50%) scale(.94)}50%{opacity:.98;transform:translateX(-50%) scale(1.12)}}
    @keyframes studentBadgeSlowSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
    .studentProfileAvatarFrame.achievementFrameL2,.achievementAvatarWrap.achievementFrameL2{border-radius:999px;border-color:#fff1a6;box-shadow:0 0 0 3px #ffd96a,0 0 0 6px rgba(255,112,196,.35),0 12px 28px rgba(171,48,128,.24)}
    .studentProfileAvatarFrame.achievementFrameL4,.achievementAvatarWrap.achievementFrameL4{border-radius:999px;border-color:#fff7bf;box-shadow:0 0 0 3px #fff1a6,0 0 0 6px rgba(255,91,190,.45),0 0 26px rgba(115,94,255,.45),0 14px 34px rgba(105,23,135,.25);animation:achievementFramePulse 2.2s ease-in-out infinite}
    .studentProfileAvatarFrame.achievementFrameOrnate{overflow:visible;border:2px solid #f6c14e;background:linear-gradient(135deg,#fff8dd,#d99822 54%,#fff4b8);box-shadow:0 0 0 3px rgba(105,36,10,.18),0 0 0 7px rgba(255,218,101,.34),0 13px 30px rgba(171,48,128,.25)}
    .studentProfileAvatarFrame.achievementFrameOrnate:before{content:"";position:absolute;inset:-13px;border-radius:999px;background:conic-gradient(from -24deg,#9e111a 0 10deg,#fff7e7 10deg 18deg,#cf931f 18deg 34deg,#ffe796 34deg 48deg,#7f0710 48deg 60deg,#fff 60deg 69deg,#d9a331 69deg 92deg,#a50f19 92deg 106deg,#fff4df 106deg 118deg,#f5c44d 118deg 180deg,#9e111a 180deg 190deg,#fff7e7 190deg 198deg,#cf931f 198deg 214deg,#ffe796 214deg 228deg,#7f0710 228deg 240deg,#fff 240deg 249deg,#d9a331 249deg 272deg,#a50f19 272deg 286deg,#fff4df 286deg 298deg,#f5c44d 298deg 360deg);box-shadow:0 0 0 2px rgba(255,255,255,.72) inset,0 0 22px rgba(255,210,97,.48);z-index:0;pointer-events:none}
    .studentProfileAvatarFrame.achievementFrameWing:before{inset:-18px;background:radial-gradient(circle at 50% 97%,#d31425 0 8px,#ffe8a4 9px 15px,transparent 16px),conic-gradient(from -28deg,#9b0710 0 10deg,#fff8ec 10deg 18deg,#d99f25 18deg 31deg,#fff2b8 31deg 46deg,#a20c16 46deg 58deg,#fff 58deg 70deg,#be871b 70deg 90deg,#8f0711 90deg 106deg,#fff4df 106deg 118deg,#f0ba3b 118deg 180deg,#9b0710 180deg 190deg,#fff8ec 190deg 198deg,#d99f25 198deg 211deg,#fff2b8 211deg 226deg,#a20c16 226deg 238deg,#fff 238deg 250deg,#be871b 250deg 270deg,#8f0711 270deg 286deg,#fff4df 286deg 298deg,#f0ba3b 298deg 360deg)}
    .studentProfileAvatarFrame.achievementFrameShine:after,.achievementAvatarWrap.achievementFrameShine:after{content:"";position:absolute;inset:-12px;border-radius:999px;background:linear-gradient(105deg,transparent 0%,transparent 34%,rgba(255,255,255,.16) 43%,rgba(255,246,204,.42) 50%,rgba(255,255,255,.16) 57%,transparent 66%,transparent 100%);mix-blend-mode:screen;opacity:.78;transform:translateX(-72%) rotate(8deg);animation:achievementFrameThinkingShine 3.8s ease-in-out infinite;pointer-events:none;z-index:4}
    .studentProfileAvatarFrame.achievementFrameGlow:after,.achievementAvatarWrap.achievementFrameGlow:after{content:"";position:absolute;inset:-6px;border-radius:inherit;border:1px solid rgba(255,255,255,.72);box-shadow:0 0 14px rgba(255,255,255,.84),0 0 24px rgba(255,86,188,.34);pointer-events:none;z-index:4}
    .studentProfileAvatarFrame.achievementFrameShine.achievementFrameGlow:after,.achievementAvatarWrap.achievementFrameShine.achievementFrameGlow:after{background:linear-gradient(105deg,transparent 0%,transparent 34%,rgba(255,255,255,.16) 43%,rgba(255,246,204,.42) 50%,rgba(255,255,255,.16) 57%,transparent 66%,transparent 100%);border:1px solid rgba(255,255,255,.38);box-shadow:0 0 14px rgba(255,255,255,.28),0 0 20px rgba(255,208,106,.18);animation:achievementFrameThinkingShine 3.8s ease-in-out infinite}
    .achievementAvatarWrap{position:relative;display:inline-flex;width:34px;height:34px;border-radius:999px;flex:0 0 34px;isolation:isolate}
    .achievementAvatarWrap.achievementFrameOrnate:before{content:"";position:absolute;inset:-5px;border-radius:999px;background:conic-gradient(from -28deg,#9b0710 0 18deg,#fff8ec 18deg 30deg,#d99f25 30deg 66deg,#fff2b8 66deg 92deg,#a20c16 92deg 114deg,#fff 114deg 132deg,#be871b 132deg 180deg,#9b0710 180deg 198deg,#fff8ec 198deg 210deg,#d99f25 210deg 246deg,#fff2b8 246deg 272deg,#a20c16 272deg 294deg,#fff 294deg 312deg,#be871b 312deg 360deg);box-shadow:0 0 12px rgba(255,210,97,.45);z-index:0}
    .studentProfileAvatarFrame.achievementFrameAsset,.achievementAvatarWrap.achievementFrameAsset{border-color:transparent;background:transparent;box-shadow:none;overflow:visible}
    .achievementFrameAssetL2{--achievement-frame-image:url("/assets/achievement-frame-level2.png");--achievement-frame-scale:1.78;--achievement-frame-shadow:0 8px 18px rgba(166,101,16,.26)}
    .achievementFrameAssetL4{--achievement-frame-image:url("/assets/achievement-frame-level4.png");--achievement-frame-scale:2.08;--achievement-frame-shadow:0 10px 24px rgba(144,21,30,.34),0 0 22px rgba(255,215,106,.28)}
    .achievementFrameAssetL8{--achievement-frame-image:url("/assets/achievement-frame-level8.png");--achievement-frame-scale:2;--achievement-frame-shadow:0 10px 22px rgba(173,35,52,.34),0 0 18px rgba(255,215,106,.24)}
    .achievementFrameAssetL10{--achievement-frame-image:url("/assets/achievement-frame-level10.png");--achievement-frame-scale:2.02;--achievement-frame-shadow:0 10px 24px rgba(138,25,24,.28),0 0 18px rgba(255,215,106,.26)}
    .achievementFrameAssetL13{--achievement-frame-image:url("/assets/achievement-frame-level13.png");--achievement-frame-scale:2.16;--achievement-frame-shadow:0 12px 28px rgba(60,39,129,.34),0 0 22px rgba(103,220,255,.24)}
    .achievementFrameAssetL15{--achievement-frame-image:url("/assets/achievement-frame-level15.png");--achievement-frame-scale:2.2;--achievement-frame-shadow:0 14px 32px rgba(93,47,10,.36),0 0 26px rgba(255,219,112,.32)}
    .studentProfileAvatarFrame.achievementFrameAsset:before,.achievementAvatarWrap.achievementFrameAsset:before{content:"";position:absolute;left:50%;top:50%;width:calc(100% * var(--achievement-frame-scale,1.8));height:calc(100% * var(--achievement-frame-scale,1.8));border-radius:0;background-image:var(--achievement-frame-image);background-position:center;background-repeat:no-repeat;background-size:contain;filter:drop-shadow(var(--achievement-frame-shadow,0 6px 14px rgba(166,101,16,.24)));transform:translate(-50%,-50%);z-index:3;pointer-events:none}
    .achievementAvatarWrap .friendsGroupAvatarImg,.achievementAvatarWrap .friendsGroupAvatar{width:100%;height:100%;min-width:0;flex:0 0 auto}
    .achievementAvatarWrap .friendsGroupAvatarImg,.achievementAvatarWrap .friendsGroupAvatar{position:relative;z-index:2}
    .friendsGroupPost.achievementFriendPost .achievementAvatarWrap{justify-self:center;margin-top:5px}
    .achievementMiniBadge{position:absolute;right:-5px;bottom:-5px;width:17px;height:17px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1;border:1px solid rgba(255,255,255,.9);background:#fff;box-shadow:0 4px 10px rgba(93,13,72,.2);z-index:5}
    .studentAchievementPreview{margin:8px 0 12px;padding:10px;border:1px solid rgba(238,174,210,.8);border-radius:16px;background:rgba(255,255,255,.76);box-shadow:0 8px 18px rgba(255,115,181,.08)}
    .studentAchievementPreviewTitle{font-size:12px;font-weight:950;color:#10203d;margin-bottom:7px}
    .studentAchievementPreviewBtns{display:flex;gap:6px;flex-wrap:wrap}
    .studentAchievementPreviewBtn{border:1px solid rgba(238,174,210,.9);border-radius:999px;background:#fff;color:#102448;font-weight:950;padding:7px 10px;cursor:pointer}
    .studentAchievementPreviewBtn.active{background:linear-gradient(135deg,#ffedf7,#ffd978);color:#8b1551;box-shadow:0 8px 18px rgba(183,45,125,.18)}
    .studentAchievementPreviewNote{font-size:10px;font-weight:900;color:#8a1952;margin-top:7px}
    .studentProfileDatePill{display:inline-flex;align-items:center;justify-content:center;margin-top:5px;border:1px solid #ffc4df;border-radius:999px;background:#fff7fb;color:#9d1457;padding:5px 8px;font-size:11px;font-weight:900;white-space:nowrap}
    .studentProfileLogoutIcon{width:32px;height:32px;border:1.5px solid #ffc4df;border-radius:999px;background:#fff7fb;color:#9d1457;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(255,115,181,.1);cursor:pointer;touch-action:manipulation}
    .studentProfileHeroDashboard .studentProfileLogoutIcon{position:absolute;top:8px;right:8px;z-index:4;background:linear-gradient(135deg,#fff,#fff3fa,#fff7d8);box-shadow:0 8px 18px rgba(157,20,87,.14),0 0 0 2px rgba(255,255,255,.68) inset}
    .studentProfileHeroDashboard .studentProfileStartingTutorialBtn{top:46px;right:8px;font-size:18px}
    .studentProfileLogoutIcon svg{width:16px;height:16px;display:block;stroke:currentColor}
    .studentProfileMenu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
    .studentProfileMenuBtn{border:1.5px solid #ffc4df;border-radius:13px;background:linear-gradient(135deg,#fff 0%,#fff7fb 58%,#fff4d6 100%);color:#10203d;padding:10px 9px;min-height:46px;font-size:13px;font-weight:950;box-shadow:0 7px 15px rgba(255,115,181,.1),inset 0 0 0 1px rgba(255,255,255,.78);text-align:center;cursor:pointer;touch-action:manipulation;position:relative;z-index:2;overflow:hidden;transition:transform .12s ease,box-shadow .18s ease,border-color .18s ease}
    .studentProfileMenuBtn:active{transform:scale(.975);box-shadow:0 0 0 3px rgba(255,209,102,.26),0 0 18px rgba(255,115,181,.26),inset 0 0 0 1px rgba(255,255,255,.9);animation:studentProfileTapGlow .42s ease}
    .studentProfileMenuBtn.active{background:linear-gradient(135deg,#10203d 0%,#24457a 52%,#9d1457 100%);border-color:#ffd166;color:#fff;box-shadow:0 10px 20px rgba(16,32,61,.18),0 0 0 2px rgba(255,209,102,.16)}
    .studentProfileMenuBtn.chatTeacherWhatsAppBtn{display:inline-flex;align-items:center;justify-content:center;gap:0;border-color:#0f766e;background:linear-gradient(135deg,#075e54 0%,#0f766e 58%,#064e46 100%);color:#fff;text-shadow:0 1px 6px rgba(3,44,38,.34);box-shadow:0 9px 18px rgba(7,94,84,.20),0 0 0 2px rgba(255,255,255,.48) inset;isolation:isolate}
    .studentProfileMenuBtn.chatTeacherWhatsAppBtn:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.24) 48%,transparent 62%);transform:translateX(-88%);animation:studentProfileHeaderShine 4.8s ease-in-out infinite;pointer-events:none;z-index:0}
    .studentProfileMenuBtn.chatTeacherWhatsAppBtn,.studentProfileMenuBtn.chatTeacherWhatsAppBtn:link,.studentProfileMenuBtn.chatTeacherWhatsAppBtn:visited{text-decoration:none}
    .studentProfileMenuBtn.chatTeacherWhatsAppBtn:before{content:none;display:none;animation:none}
    .chatTeacherWhatsAppText{position:relative;z-index:1}
    .chatTeacherWhatsAppText{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .studentProfileDpPrompt{margin:9px 0 0;border:1px solid #ffc4df;border-radius:999px;background:#fff7fb;color:#9d1457;padding:7px 11px;font-size:12px;font-weight:950;line-height:1.2;box-shadow:0 8px 18px rgba(255,115,181,.10)}
    .studentClassCard{border:1px solid #ffc4df;border-radius:14px;background:#fff;padding:11px;box-shadow:0 8px 18px rgba(255,115,181,.08);display:grid;gap:9px;overflow:hidden}
    .studentClassTeacher{position:sticky;top:8px;z-index:1;background:linear-gradient(180deg,#fff,#fff7fb)}
    .studentClassTeacherTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .studentClassTeacherName{font-size:16px;font-weight:950;color:#10203d;line-height:1.15}
    .studentClassChipGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .studentClassChip{display:inline-flex;align-items:center;justify-content:center;min-height:32px;border:1px solid #ffd0e5;border-radius:999px;background:linear-gradient(135deg,#fff,#fff3fa,#fff8db);color:#10203d;text-decoration:none;font-size:11px;font-weight:950;text-align:center;padding:6px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .12s ease,box-shadow .18s ease}
    .studentClassChip.primary{background:linear-gradient(135deg,#10203d,#24457a);border-color:#10203d;color:#fff}
    .studentClassChip.teal{background:linear-gradient(135deg,#20c7b5,#0f8a7d);border-color:#0f8a7d;color:#fff}
    .studentClassChip[disabled],.studentClassChip.disabled{opacity:.48;background:#f8fafc;color:#64748b}
    .studentClassToday{border-color:#b7efe8;background:linear-gradient(180deg,#f2fffd,#fff)}
    .studentClassTitle{font-size:15px;font-weight:950;color:#10203d}
    .studentClassMeta{font-size:12px;font-weight:900;color:#6b5870;line-height:1.35}
    .studentClassPause{border:1px solid #ffd166;border-radius:12px;background:#fff7db;color:#8a5a00;padding:9px 10px;font-size:12px;font-weight:900;line-height:1.35}
    .studentClassControlCard{border-color:#ffc4df;background:linear-gradient(135deg,#fff 0%,#fff7fb 54%,#fff8df 100%)}
    .studentClassControlHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
    .studentClassControlHeader .homeworkCardTitle{margin:0}
    .studentClassControlRemainingInfo{flex:0 0 auto;max-width:none;border:1px solid #f2dca0;border-radius:999px;background:#fffaf0;color:#805313;font-size:10px;font-weight:900;line-height:1.2;padding:6px 9px;text-align:center;white-space:nowrap;box-shadow:0 5px 14px rgba(190,139,28,.1)}
    .studentClassControlList{display:grid;gap:10px;margin-top:0}
    .studentClassControlOption{border:1.5px solid #ffd0e5;border-radius:16px;background:rgba(255,255,255,.82);padding:12px;box-shadow:0 8px 18px rgba(255,115,181,.08)}
    .studentClassControlOptionTop{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;margin-bottom:7px}
    .studentClassControlOptionTitle{font-size:16px;font-weight:950;color:#10203d;line-height:1.15}
    .studentClassControlStatus{flex:0 0 auto;border:1px solid #f0d49e;border-radius:999px;background:#fff8e6;color:#8a4b00;padding:5px 8px;font-size:10px;font-weight:950;line-height:1;white-space:nowrap}
    .studentClassControlText{font-size:12px;font-weight:850;color:#5d4b5f;line-height:1.45}
    .studentClassControlForm{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}
    .studentClassControlForm label{display:grid;gap:5px;font-size:11px;font-weight:950;color:#6b5870}
    .studentClassControlForm label.wide{grid-column:1/-1}
    .studentClassControlForm input,.studentClassControlForm textarea{width:100%;box-sizing:border-box;border:1.5px solid #ffd0e5;border-radius:12px;background:#fff;color:#10203d;padding:10px 11px;font-size:13px;font-weight:850;outline:none}
    .studentClassControlForm textarea{resize:vertical;min-height:58px}
    .studentClassControlSaveBtn{grid-column:1/-1;border:0;border-radius:13px;background:#9d1457;color:#fff;padding:11px 13px;font-size:14px;font-weight:950;box-shadow:0 10px 18px rgba(157,20,87,.18)}
    .studentClassControlSaveBtn:disabled{opacity:.62}
    .studentClassControlPreview{grid-column:1/-1;border:1px solid #f2dca0;border-radius:13px;background:#fffaf0;color:#77510d;padding:8px 10px;font-size:9.8px;font-weight:850;line-height:1.3}
    .studentClassControlPreview div+div{margin-top:2px}
    .studentClassControlPreview .bullet{padding-left:2px}
    .studentClassControlPreview.loading{color:#64748b;background:#f8fafc;border-color:#dbeafe}
    .studentClassControlPreview.error{color:#9f1239;background:#fff1f2;border-color:#fecdd3}
    .studentClassPauseSavingFun{position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;padding:22px;background:rgba(16,32,61,.46);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#9d1457;font-size:15px;font-weight:950;text-transform:lowercase}
    .studentClassPauseSavingFun img{width:min(340px,78vw);border-radius:22px;display:block;box-shadow:0 22px 46px rgba(16,32,61,.28),0 0 0 8px rgba(255,255,255,.72)}
    .studentClassPauseSavingFun span{display:inline-flex;align-items:center;justify-content:center;min-width:118px;padding:8px 15px;border:1px solid #f8d1e2;border-radius:999px;background:linear-gradient(135deg,#fff7fb,#fffaf0);box-shadow:0 10px 24px rgba(157,20,87,.14)}
    .studentClassActiveBreak{margin-top:10px;border:1px solid #f2dca0;border-radius:14px;background:#fffaf0;color:#77510d;padding:10px 11px;font-size:11px;font-weight:850;line-height:1.35}
    .studentClassActiveBreakTitle{font-size:13px;font-weight:950;color:#10203d;margin-bottom:4px}
    .studentClassActiveBreakLine+.studentClassActiveBreakLine{margin-top:2px}
    .studentClassActiveBreak.loading{color:#64748b;background:#f8fafc;border-color:#dbeafe}
    .studentClassActiveBreak.error{color:#9f1239;background:#fff1f2;border-color:#fecdd3}
    .studentClassActiveBreak.error button{margin-top:7px;border:0;border-radius:999px;background:#10203d;color:#fff;padding:6px 11px;font-size:10px;font-weight:950}
    .studentClassActiveBreakActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
    .studentClassResumeEarlyBtn{border:0;border-radius:999px;background:#9d1457;color:#fff;padding:9px 10px;font-size:11.5px;font-weight:950;line-height:1.12;box-shadow:0 8px 14px rgba(157,20,87,.16);white-space:nowrap}
    .studentClassResumeEarlyBtn.secondary{background:#7f1d5f}
    .studentClassResumeEarlyBtn:disabled{opacity:.62}
    .studentClassEarlyRejoinBox{margin-top:9px;border:1px solid #f2dca0;border-radius:12px;background:#fff;color:#77510d;padding:8px 9px;font-size:10.5px;font-weight:850;line-height:1.35}
    .studentClassEarlyRejoinBox div+div{margin-top:2px}
    .studentClassEarlyRejoinBox.loading{color:#64748b;background:#f8fafc;border-color:#dbeafe}
    .studentClassEarlyRejoinBox.error{color:#9f1239;background:#fff1f2;border-color:#fecdd3}
    .studentClassEarlyRejoinDateField{display:block;color:#6b3f68;font-size:10.5px;font-weight:950;margin-bottom:8px}
    .studentClassEarlyRejoinDateField input{display:block;width:100%;box-sizing:border-box;margin-top:4px;border:1px solid #efc6dc;border-radius:12px;background:#fff;color:#172554;padding:9px 10px;font-size:13px;font-weight:900;outline:none}
    .studentClassEarlyRejoinDateField input:focus{border-color:#b01261;box-shadow:0 0 0 3px rgba(176,18,97,.12)}
    .studentClassEarlyRejoinSlotHeading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px!important;padding-top:7px;border-top:1px solid #f2dca0;color:#5f3c08}
    .studentClassEarlyRejoinSlotHeading span{font-size:9.5px;color:#7c6f64}
    .studentClassEarlyRejoinSlotList{display:grid;grid-template-columns:1fr;gap:6px;margin-top:6px!important;max-height:210px;overflow:auto}
    .studentClassEarlyRejoinSlotList .guardianFeeRejoinSlot{margin:0;font-size:10px;text-align:left}
    .studentClassChangeSlotOpenBtn{width:100%;margin-top:10px;border:0;border-radius:12px;background:#10203d;color:#fff;padding:10px 12px;font-size:13px;font-weight:950}
    .studentClassChangeSlotPanel{display:grid;gap:8px;margin-top:10px;padding-top:9px;border-top:1px solid #f2dca0}
    .studentClassChangeSlotHeading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#10203d;font-size:12px;font-weight:950}
    .studentClassChangeSlotHeading span,.studentClassChangeSlotSelectionStatus{color:#6b5870;font-size:10px;font-weight:850}
    .studentClassChangeSlotSelectionStatus{text-align:right}
    .studentClassChangeSlotActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .studentClassChangeSlotActions button{min-height:38px;border:0;border-radius:11px;background:#0f8075;color:#fff;padding:9px 11px;font-size:12px;font-weight:950}
    .studentClassChangeSlotActions button.secondary{background:#e9eef6;color:#10203d}
    .studentClassChangeSlotActions button:disabled{opacity:.55}
    .studentClassExtendBox{padding:10px;background:linear-gradient(180deg,#fffdf7,#fff7fb);border-color:#efd88c;box-shadow:0 8px 20px rgba(157,20,87,.08)}
    .studentClassExtendHeader{display:flex;align-items:flex-start;justify-content:space-between;color:#172554;margin-bottom:7px}
    .studentClassExtendHeader strong{display:block;font-size:12.5px;font-weight:950}
    .studentClassExtendHeader span{display:block;margin-top:1px;color:#7c6078;font-size:10.5px;font-weight:800}
    .studentClassExtendDateLabel{display:block;color:#6b3f68;font-size:10.5px;font-weight:950}
    .studentClassExtendDateLabel span{display:block;margin-bottom:4px}
    .studentClassExtendDateLabel input{width:100%;box-sizing:border-box;border:1px solid #efc6dc;border-radius:12px;background:#fff;color:#172554;padding:9px 10px;font-size:13px;font-weight:900;outline:none}
    .studentClassExtendDateLabel input:focus{border-color:#b01261;box-shadow:0 0 0 3px rgba(176,18,97,.12)}
    .studentClassExtendHint{margin-top:6px;color:#7a5e5e;font-size:10.5px;font-weight:800}
    .studentClassExtendChecking{margin-top:7px;color:#64748b;background:#f8fafc;border:1px solid #dbeafe;border-radius:10px;padding:7px 8px}
    .studentClassExtendPreview{margin-top:7px;background:#fffaf0;border:1px solid #f2dca0;border-radius:10px;padding:7px 8px;color:#77510d}
    .studentClassResumeEarlyBtn.confirm{display:block;width:100%;border-radius:12px;margin-top:8px;padding:9px 12px}
    @media(max-width:380px){.studentClassActiveBreakActions{grid-template-columns:1fr}.studentClassResumeEarlyBtn{white-space:normal}}
    .studentClassControlMsg{grid-column:1/-1;border-radius:12px;padding:9px 10px;font-size:12px;font-weight:900;line-height:1.35}
    .studentClassControlMsg.error{background:#fff1f2;color:#9f1239;border:1px solid #fecdd3}
    .studentClassControlMsg.success{background:#ecfdf5;color:#047857;border:1px solid #bbf7d0}
    .studentClassMobilePanel{display:grid;gap:10px;margin-top:10px}
    .studentClassMobileCurrent{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid #fde2a8;background:#fff8e7;border-radius:13px;padding:10px 12px;font-size:12px;font-weight:900;color:#6b4a12}
    .studentClassMobileCurrent strong{font-size:14px;color:#10203d}
    .studentClassMobileUpdate{display:grid;gap:7px;border:1px solid #ffd0e5;background:rgba(255,255,255,.78);border-radius:13px;padding:10px}
    .studentClassMobileLabel{font-size:12px;font-weight:950;color:#10203d}
    .studentClassMobilePhoneRow,.studentClassMobilePhoneRow .admissionPhoneWidget{max-width:100%}
    .studentClassMobileNote{font-size:12px;font-weight:850;line-height:1.45;color:#5d4b5f}
    .studentClassMobileOtpBox{margin-top:2px}
    @media(max-width:520px){.studentClassControlForm{grid-template-columns:1fr}}
    .studentClassSocials{display:flex;gap:7px;flex-wrap:wrap}
    .studentClassSocial{width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #ffd0e5;background:#fff;color:#9d1457;text-decoration:none;font-size:12px;font-weight:950}
    .studentClassHeroCard{position:relative;top:auto;z-index:1;border:2px solid #ffb8d7;border-radius:19px;background:linear-gradient(135deg,#fff7fb 0%,#fff 45%,#fff1c6 100%);padding:11px;box-shadow:0 12px 26px rgba(157,20,87,.13),0 0 0 2px rgba(255,255,255,.62) inset;display:grid;gap:9px;overflow:hidden;width:100%;max-width:100%;box-sizing:border-box}
    .studentClassHeroCard:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.54) 48%,transparent 62%);transform:translateX(-86%);animation:studentProfileHeaderShine 4.6s ease-in-out infinite;pointer-events:none}
    .studentClassHeroCard>*{position:relative;z-index:1}
    .studentClassHeroTop{display:grid;grid-template-columns:74px minmax(0,1fr);gap:11px;align-items:center;min-width:0;padding:8px;border:1px solid rgba(255,184,215,.72);border-radius:16px;background:rgba(255,255,255,.68);box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
    .studentClassTeacherAvatar{width:74px;height:74px;border-radius:20px;border:2px solid rgba(255,184,215,.95);background:linear-gradient(135deg,#dff7ff,#fff,#fff1c6);display:grid;place-items:center;overflow:hidden;box-shadow:0 10px 22px rgba(16,32,61,.13)}
    .studentClassTeacherAvatar img{width:100%;height:100%;object-fit:cover;background:#fff;padding:0}
    .studentClassTeacherAvatarPlaceholder{font-size:29px;font-weight:950;color:#10203d}
    .studentClassTeacherIdentity{display:grid;gap:4px;min-width:0}
    .studentClassTeacherKicker{font-size:12px;font-weight:950;color:#9d1457;text-transform:uppercase;letter-spacing:0}
    .studentClassTeacherTitleRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}
    .studentClassTeacherTitle{font-size:25px;font-weight:950;color:#10203d;line-height:1.04;min-width:0;overflow-wrap:anywhere}
    .studentClassReviewBadge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;border:2px solid #ffd86d;background:linear-gradient(135deg,#fff7db,#ffd166,#ff8ac7);color:#10203d;padding:7px 11px;font-size:15px;font-weight:950;white-space:nowrap;box-shadow:0 5px 0 rgba(255,184,73,.28),0 8px 16px rgba(255,115,181,.16)}
    .studentClassHeroActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .studentClassHeroBtn{min-height:38px;border:1px solid #f4c5d8;border-radius:13px;background:linear-gradient(135deg,#fff1f7,#ffdfe9,#fff7c6);color:#8b1856;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:13px;font-weight:950;padding:7px 11px;cursor:pointer;white-space:nowrap;box-shadow:0 6px 14px rgba(255,182,193,.14);transition:transform .12s ease,box-shadow .18s ease}
    .studentClassHeroBtn:active,.studentClassMiniBtn:active,.studentClassChip:active{transform:scale(.975);animation:studentProfileTapGlow .42s ease;box-shadow:0 0 0 3px rgba(255,209,102,.22),0 0 16px rgba(255,115,181,.24)}
    .studentClassHeroBtn.primary{background:linear-gradient(180deg,#fff8e9,#ffe7bf);border-color:#f0d49e;color:#8a4b00;box-shadow:0 6px 14px rgba(255,212,143,.18)}
    .studentClassHeroBtn.teal{background:linear-gradient(180deg,#fff1f7,#ffd9e8);border-color:#f1bfd3;color:#9d1457;box-shadow:0 6px 14px rgba(255,182,193,.15)}
    .studentClassHeroBtn[disabled],.studentClassHeroBtn.disabled{opacity:.92;background:linear-gradient(180deg,#f8fafc,#eef2f7);border-color:#dde5ef;color:#94a3b8;box-shadow:none;cursor:default}
    .studentClassExciteBanner{position:relative;overflow:hidden;border:1.5px solid #ffd166;border-radius:15px;background:linear-gradient(135deg,#10203d 0%,#8a1952 50%,#ff8a2a 100%);color:#fff;padding:7px 8px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;box-shadow:0 9px 18px rgba(157,20,87,.15),0 0 0 2px rgba(255,209,102,.14);min-width:0;margin-top:8px}
    .studentClassExciteBanner:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.28) 48%,transparent 62%);transform:translateX(-90%);animation:studentProfileHeaderShine 4s ease-in-out infinite;pointer-events:none}
    .studentClassExciteBanner>*{position:relative;z-index:1}
    .studentClassExciteClock{width:34px;height:34px;border-radius:999px;background:linear-gradient(135deg,#fff,#fff5c4);color:#10203d;display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-weight:950;box-shadow:0 0 0 4px rgba(255,255,255,.15),0 7px 14px rgba(16,32,61,.16)}
    .studentClassExciteBanner.today .studentClassExciteClock{animation:studentClassClockVibrate .66s ease-in-out infinite}
    .studentClassExciteBanner.next .studentClassExciteClock{animation:none}
    .studentClassExciteText{display:grid;gap:2px;min-width:0}
    .studentClassExciteTitle{display:flex;align-items:center;gap:5px;min-width:0;font-size:14px;font-weight:950;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .studentClassExciteInlineCountdown{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.46);border-radius:999px;background:rgba(255,255,255,.14);padding:3px 7px;font-size:9.5px;font-weight:950;line-height:1;color:#fff;white-space:nowrap;max-width:45%;overflow:hidden;text-overflow:ellipsis}
    .studentClassExciteSub{font-size:10px;font-weight:900;line-height:1.18;color:#fff7d6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .studentProfileNoticeStack{display:grid;gap:7px;margin-top:8px}
    .studentProfileNoticeCard{appearance:none;width:100%;text-align:initial;border:1.5px solid #ead9b0;border-radius:18px;background:linear-gradient(135deg,#fffdf8 0%,#fff8ec 62%,#f6e7bf 100%);color:#10203d;padding:11px;display:block;box-shadow:0 8px 18px rgba(138,106,42,.10),0 0 0 2px rgba(255,248,234,.55);cursor:default;position:relative;overflow:hidden}
    .studentProfileNoticeCard:before{content:"";position:absolute;inset:0;background:linear-gradient(118deg,transparent 0%,rgba(255,255,255,.62) 48%,transparent 65%);transform:translateX(-88%);animation:studentProfileHeaderShine 5.4s ease-in-out infinite;pointer-events:none}
    .studentProfileNoticePosterInner{position:relative;z-index:1;display:grid;gap:8px;border:1px solid rgba(191,145,44,.28);border-radius:15px;background:rgba(255,255,255,.74);padding:12px 12px 13px;min-width:0}
    .studentProfileNoticeTitle{display:block;text-align:center;font-family:Georgia,serif;font-size:14.85px;font-weight:900;line-height:1.14;color:#10203d;overflow-wrap:anywhere}
    .studentProfileNoticeMiniRule{justify-self:center;width:45%;height:2px;background:#bf912c;border-radius:999px;opacity:.75}
    .studentProfileNoticePreview{display:block;border:1px solid rgba(235,214,165,.88);border-radius:13px;background:rgba(255,255,255,.86);padding:12px 12px;text-align:center;font-size:10.45px;font-weight:820;line-height:1.55;color:#332a1d;overflow-wrap:anywhere}
    .studentProfileNoticeBodyArea{min-height:96px;height:auto;overflow:visible;white-space:pre-wrap}
    .studentProfileNoticeFooter{justify-self:center;max-width:96%;border-radius:999px;background:#8e6714;color:#fff;padding:8px 15px;text-align:center;font-size:9.5px;font-weight:900;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .studentProfileNoticeModal{position:fixed;inset:0;z-index:10060;background:rgba(16,32,61,.48);display:grid;place-items:center;padding:16px}
    .studentProfileNoticeDialog{width:min(720px,100%);max-height:88vh;overflow:auto;border:1.5px solid #ead9b0;border-radius:20px;background:linear-gradient(135deg,#fffdf8 0%,#fffaf1 62%,#f4e0b1 100%);color:#10203d;padding:22px 22px 18px;box-shadow:0 24px 60px rgba(16,32,61,.25);display:grid;gap:12px;position:relative;text-align:center}
    .studentProfileNoticeDialog:before{content:"";position:absolute;left:24px;right:24px;top:20px;height:2px;background:#bf912c;pointer-events:none}
    .studentProfileNoticeDialog:after{content:"";position:absolute;left:24px;right:24px;bottom:19px;height:2px;background:#bf912c;pointer-events:none}
    .studentProfileNoticeDialog>*{position:relative;z-index:1}
    .studentProfileNoticeDialogHead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;text-align:left;padding:9px 38px 0 0}
    .studentProfileNoticeDialogKicker{font-family:Georgia,serif;font-size:13px;font-weight:900;color:#10203d;line-height:1.1;text-transform:uppercase;letter-spacing:0}
    .studentProfileNoticeDialogSub{margin-top:3px;font-size:9.5px;font-weight:800;color:#332a1d;line-height:1.25;overflow-wrap:anywhere}
    .studentProfileNoticeDialogBadge{display:inline-flex;align-items:center;justify-content:center;border:1px solid #e2c57c;border-radius:999px;background:#fff4d5;color:#5b4215;padding:6px 12px;font-size:11px;font-weight:950;white-space:nowrap}
    .studentProfileNoticeDialogTitle{font-family:Georgia,serif;font-size:26px;font-weight:900;line-height:1.12;color:#10203d;overflow-wrap:anywhere;margin-top:3px}
    .studentProfileNoticeDialogRule{justify-self:center;width:min(360px,62%);height:3px;background:#bf912c;border-radius:999px}
    .studentProfileNoticeDialogClose{position:absolute;top:9px;right:9px;width:34px;height:34px;border-radius:999px;border:1px solid #ead9b0;background:#fffdf8;color:#8a1952;font-size:18px;font-weight:950;cursor:pointer;z-index:2}
    .studentProfileNoticeDialogBody{border:1px solid rgba(235,214,165,.92);border-radius:15px;background:rgba(255,255,255,.88);padding:16px 14px;font-size:15px;font-weight:820;line-height:1.62;color:#332a1d;overflow-wrap:anywhere;text-align:center}
    .studentProfileNoticeDialogFooter{justify-self:center;width:min(520px,92%);border-radius:999px;background:#8e6714;color:#fff;padding:10px 16px;font-size:13px;font-weight:900;line-height:1.25;overflow-wrap:anywhere}
    .studentProfileNoticeDialogSign{justify-self:end;display:grid;gap:1px;min-width:110px;color:#202020;text-align:center;font-family:Georgia,serif}
    .studentProfileNoticeDialogSign span{display:block;height:1px;background:rgba(80,80,80,.55);margin:2px 0 1px}
    .studentProfileNoticeDialogSign strong{font-size:12px;font-style:italic;font-weight:900}
    .studentProfileNoticeDialogSign small{font:800 8.5px Segoe UI,system-ui,-apple-system,sans-serif;color:#334155}
    .studentWhatsappIssueModal{position:fixed;inset:0;z-index:10080;background:rgba(16,32,61,.56);display:grid;place-items:center;padding:16px}
    .studentWhatsappIssueCard{width:min(430px,100%);border:1.5px solid #ffc4df;border-radius:18px;background:linear-gradient(135deg,#fff 0%,#fff8fb 55%,#fff4dc 100%);color:#10203d;padding:18px;box-shadow:0 24px 58px rgba(16,32,61,.28);display:grid;gap:11px;text-align:left}
    .studentWhatsappIssueBadge{justify-self:start;border:1px solid #fbbf24;border-radius:999px;background:#fff7d6;color:#7c4a03;padding:5px 10px;font-size:11px;font-weight:950;line-height:1}
    .studentWhatsappIssueTitle{font-size:18px;font-weight:950;line-height:1.18;color:#10203d}
    .studentWhatsappIssueText{border:1px solid #ffd0e5;border-radius:13px;background:rgba(255,255,255,.84);padding:12px;font-size:13px;font-weight:850;line-height:1.48;color:#5d4b5f}
    .studentWhatsappIssueActions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
    .studentWhatsappIssueActions button{border-radius:12px;padding:11px 10px;font-size:13px;font-weight:950;line-height:1.1;cursor:pointer}
    .studentWhatsappIssuePrimary{border:1px solid #9d1457;background:linear-gradient(135deg,#9d1457,#10203d);color:#fff}
    .studentWhatsappIssueSecondary{border:1px solid #ffd0e5;background:#fff;color:#9d1457}
    .studentWhatsappIssueActions .studentWhatsappIssuePrimary:only-child{grid-column:1/-1}
    .studentWhatsappIssueTargetPulse{animation:studentWhatsappIssuePanelPulse 1.6s ease-in-out 1}
    @keyframes studentWhatsappIssuePanelPulse{0%,100%{box-shadow:none}35%{box-shadow:0 0 0 4px rgba(255,209,102,.45),0 0 22px rgba(157,20,87,.22)}}
    @media(max-width:420px){.studentWhatsappIssueActions{grid-template-columns:1fr}.studentWhatsappIssueCard{padding:15px}.studentWhatsappIssueTitle{font-size:17px}}
    .studentClassResourceGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;min-width:0}
    .studentClassResourceGridModern{grid-template-columns:minmax(0,1.15fr) minmax(170px,.85fr)}
    .studentClassResourceGroup{border:2px solid #ffd0e5;border-radius:17px;background:rgba(255,255,255,.82);padding:8px;display:grid;gap:7px;box-shadow:0 8px 18px rgba(157,20,87,.06);min-width:0}
    .studentClassMeetingGroup{grid-column:1/-1;background:radial-gradient(circle at 94% 8%,rgba(123,131,235,.18) 0 46px,transparent 47px),linear-gradient(145deg,rgba(255,255,255,.98),rgba(248,247,255,.95) 50%,rgba(255,246,251,.92));border-color:#a8a8ff;box-shadow:0 16px 34px rgba(70,71,117,.16),0 0 0 2px rgba(98,100,167,.08)}
    .studentClassMeetingTitle{font-size:19px;color:#10203d;text-shadow:0 1px 0 rgba(255,255,255,.9);line-height:1.18}
    .studentClassTeamsBanner{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) 126px;gap:8px;align-items:center;min-height:72px;border:1px solid rgba(98,100,167,.24);border-radius:16px;background:radial-gradient(circle at 88% 20%,rgba(123,131,235,.2) 0 30px,transparent 31px),linear-gradient(135deg,#fff 0%,#f3f2ff 58%,#fff8fb 100%);padding:8px 8px 8px 10px;box-shadow:0 10px 22px rgba(70,71,117,.14),inset 0 0 0 1px rgba(255,255,255,.9);overflow:hidden}
    .studentClassTeamsBanner:before{content:"LIVE";position:absolute;right:-22px;top:8px;width:82px;transform:rotate(36deg);background:#6264a7;color:#fff;text-align:center;font-size:8px;font-weight:950;letter-spacing:.08em;padding:2px 0;box-shadow:0 4px 10px rgba(70,71,117,.2)}
    .studentClassTeamsBannerLogo{width:44px;height:42px;object-fit:contain;display:block;filter:drop-shadow(0 6px 10px rgba(70,71,117,.2))}
    .studentClassTeamsBannerText{display:grid;gap:1px;min-width:0}
    .studentClassTeamsBannerText span{color:#464775;font-size:13px;font-weight:950;line-height:1.15}
    .studentClassTeamsBannerGrid{width:126px;height:58px;border:1px solid rgba(98,100,167,.22);border-radius:11px;background:#fff;object-fit:cover;object-position:center;box-shadow:0 8px 16px rgba(70,71,117,.12)}
    .studentClassMeetingActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:0}
    .studentClassMeetingQuickBtn{min-height:46px;border:1.5px solid #f2c58e;border-radius:13px;background:linear-gradient(180deg,#fff8e6,#ffe2a8);color:#8a4b00;padding:8px 10px;font-size:13px;font-weight:950;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:6px;box-shadow:0 8px 16px rgba(255,183,77,.18);cursor:pointer}
    .studentClassMeetingQuickBtn.primary,.studentClassMeetingQuickBtn.youtube,.studentClassMeetingQuickBtn.guide{background:linear-gradient(180deg,#fff8e6,#ffe2a8);border-color:#f2c58e;color:#8a4b00;box-shadow:0 8px 16px rgba(255,183,77,.18)}
    .studentClassMeetingQuickBtn[disabled]{background:linear-gradient(180deg,#f8fafc,#eef2f7);border-color:#dde5ef;color:#94a3b8;box-shadow:none;cursor:default}
    .studentClassYoutubeMark{width:20px;height:14px;border-radius:5px;background:#ff0000;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:9px;line-height:1;box-shadow:0 4px 9px rgba(255,0,0,.18)}
    .studentClassTeamsIcon{width:18px;height:18px;display:inline-block;flex:0 0 auto}
    .studentClassTeamsMark{width:18px;height:18px;border-radius:5px;background:linear-gradient(135deg,#6264a7,#464775);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:950;line-height:1;box-shadow:0 4px 9px rgba(70,71,117,.2)}
    .studentClassWebMark{width:18px;height:18px;border-radius:999px;background:#fff;color:#0f766e;display:inline-flex;align-items:center;justify-content:center;font-size:13px;line-height:1;box-shadow:0 3px 8px rgba(15,118,110,.16)}
    .studentClassMeetingHelp{border:1px solid #ffd0e5;border-radius:13px;background:rgba(255,255,255,.82);color:#4d3f54;padding:9px 10px;font-size:12px;font-weight:900;line-height:1.42}
    .studentClassMeetingModal{position:fixed;inset:0;z-index:10070;background:rgba(16,32,61,.52);display:grid;place-items:center;padding:18px}
    .studentClassMeetingModalCard{position:relative;width:min(420px,100%);border:2px solid #ffd0e5;border-radius:19px;background:linear-gradient(145deg,#fff,#fff7fb);box-shadow:0 22px 55px rgba(16,32,61,.28);padding:18px;display:grid;gap:12px;color:#10203d}
    .studentClassMeetingModalClose{position:absolute;right:10px;top:10px;width:34px;height:34px;border:1px solid #ffd0e5;border-radius:999px;background:#fff;color:#9d1457;font-size:22px;font-weight:950;line-height:1}
    .studentClassMeetingModalTitle{font-size:20px;font-weight:950;color:#10203d;padding-right:36px}
    .studentClassMeetingModalRows{display:grid;gap:8px;font-size:13px;font-weight:850;color:#6b5870;line-height:1.35}
    .studentClassMeetingModalRows div{display:grid;gap:3px;border:1px solid #ffd0e5;border-radius:13px;background:#fff;padding:9px}
    .studentClassMeetingModalRows b{color:#9d1457}
    .studentClassMeetingModalRows span{word-break:break-word}
    .studentClassResourceGroupTitle{font-size:15px;font-weight:950;color:#9d1457}
    .studentClassRecordingTabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px}
    .studentClassRecordingTab{min-height:40px;border:1.5px solid #ffd0e5;border-radius:13px;background:#fff7fb;color:#9d1457;font-size:13px;font-weight:950;box-shadow:0 6px 14px rgba(157,20,87,.08);cursor:pointer}
    .studentClassRecordingTab.active{background:linear-gradient(135deg,#10203d,#9d1457);border-color:#10203d;color:#fff;box-shadow:0 10px 20px rgba(16,32,61,.18)}
    .studentClassAllRecordingTools{display:flex;justify-content:flex-end;margin:0 0 8px}
    .studentClassAllRecordingTools label{display:inline-flex;align-items:center;gap:8px;border:1px solid #ffd0e5;border-radius:999px;background:#fff;padding:6px 8px 6px 12px;color:#9d1457;font-size:12px;font-weight:950}
    .studentClassAllRecordingTools select{border:0;background:#fff7fb;border-radius:999px;color:#10203d;font-size:12px;font-weight:950;padding:6px 8px;outline:none}
    .studentClassRecordingLoadMore{width:100%;min-height:40px;margin-top:8px;border:0;border-radius:13px;background:#10203d;color:#fff;font-size:13px;font-weight:950;box-shadow:0 10px 20px rgba(16,32,61,.14);cursor:pointer}
    .studentClassResourceRow{border:2px solid #ffd0e5;border-radius:15px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 9px;min-height:52px;box-shadow:0 4px 10px rgba(255,153,200,.05);min-width:0}
    .studentClassResourceLabel{font-size:14px;font-weight:950;color:#10203d;line-height:1.15;min-width:0}
    .studentClassResourceValue{font-size:12px;font-weight:900;color:#6b5870;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:145px}
    .studentClassMiniBtn{min-height:29px;min-width:70px;border:1px solid #f4c5d8;border-radius:11px;background:linear-gradient(135deg,#fff4f8,#ffe4ee,#fff8db);color:#9d1457;padding:5px 12px;font-size:11px;font-weight:950;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;cursor:pointer;box-shadow:0 4px 10px rgba(255,182,193,.12);transition:transform .12s ease,box-shadow .18s ease}
    .studentClassMiniBtn.primary{background:linear-gradient(180deg,#fff8e8,#ffe7bb);border-color:#edd29a;color:#8a4b00;box-shadow:0 4px 10px rgba(255,212,143,.16)}
    .studentClassMiniBtn.teal{background:linear-gradient(180deg,#ecfffb,#d7f7ef);border-color:#b8ebdf;color:#0f766e;box-shadow:0 4px 10px rgba(129,230,217,.14)}
    .studentClassMiniBtn.disabled{background:linear-gradient(180deg,#f8fafc,#eef2f7);border-color:#dde5ef;color:#94a3b8;cursor:default;box-shadow:none}
    @media(max-width:440px){.studentClassResourceGridModern{grid-template-columns:1fr}}
    .studentClassDatePanel{border:2px solid #ffbdd9;border-radius:17px;background:linear-gradient(180deg,#fff,#fff8e8);padding:12px;display:grid;gap:7px;box-shadow:0 10px 20px rgba(157,20,87,.1)}
    .studentClassDateLine{font-size:17px;font-weight:950;color:#10203d;line-height:1.28}
    .studentClassSafetyNote{font-size:13px;font-weight:950;color:#9d1457;line-height:1.35}
    .studentTeacherChatOverlay{position:fixed;inset:0;top:0;left:0;right:0;bottom:0;z-index:10040;width:100%;height:100dvh;max-width:100%;box-sizing:border-box;overflow:hidden;min-width:0;background:linear-gradient(180deg,#fff3fa 0%,#f4fbff 100%);display:none;flex-direction:column;color:#10203d}
    .studentTeacherChatOverlay.show{display:flex}
    .studentTeacherChatHead{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;align-items:center;padding:calc(4px + var(--protiva-safe-top,clamp(0px,env(safe-area-inset-top),14px))) calc(10px + env(safe-area-inset-right)) 7px calc(10px + env(safe-area-inset-left));border-bottom:1px solid #ffd0e5;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);position:sticky;top:0;z-index:8}
    .studentTeacherChatAvatar{width:38px;height:38px;border-radius:12px;border:1px solid #ffd0e5;background:#fff;object-fit:cover;display:block;box-shadow:0 6px 12px rgba(16,32,61,.08)}
    .studentTeacherChatAvatarFallback{width:38px;height:38px;border-radius:12px;background:#10203d;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:17px;font-weight:950;box-shadow:0 6px 12px rgba(16,32,61,.12)}
    .studentTeacherChatHeadText{min-width:0;display:grid;gap:1px}
    .studentTeacherChatTitle{font-size:17px;font-weight:950;color:#10203d;line-height:1.06;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .studentTeacherChatSub{font-size:11px;font-weight:900;color:#8a1952;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .studentTeacherChatClose,.studentTeacherChatBack{width:34px;height:34px;border:1.5px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#9d1457;font-size:19px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
    .studentTeacherChatCanvas{position:relative;flex:1;width:100%;max-width:100%;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px 12px 108px;box-sizing:border-box}
    .studentTeacherChatLoadMoreWrap{display:flex;justify-content:center;margin:0 0 10px}
    .studentTeacherChatLoadMore{border:1px solid #ffd0e5;border-radius:999px;background:#fff;color:#8a1952;padding:8px 14px;font-size:12px;font-weight:950;cursor:pointer}
    .privateTeacherChatOlderLoader{position:relative;z-index:1;min-height:12px;margin:0 0 8px;text-align:center;color:#8a1952;font-size:11px;font-weight:950;line-height:1.2}
    .privateTeacherChatOlderLoader.loading{min-height:24px;padding:5px 0}
    .privateTeacherChatOlderDots:after{content:'...';display:inline-block;animation:privateTeacherChatOlderDots 1.1s steps(4,end) infinite;overflow:hidden;width:0;vertical-align:bottom}
    @keyframes privateTeacherChatOlderDots{0%{width:0}100%{width:1.4em}}
    .privateTeacherChatWatermark{position:sticky;top:50%;height:0;z-index:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:.06;transform:translateY(-50%)}
    .privateTeacherChatWatermark img{width:128px;max-width:34vw;height:auto;display:block;filter:saturate(.9)}
    html.protivaChatKeyboardActive .studentTeacherChatOverlay,html.protivaChatKeyboardActive .classHubOverlay.immersive{overscroll-behavior:contain}
    html.protivaChatKeyboardActive.protivaNativeVisualViewportActive .studentTeacherChatOverlay,html.protivaChatKeyboardActive.protivaNativeVisualViewportActive .classHubOverlay.immersive{top:var(--protiva-chat-visual-top,0px)!important;bottom:auto!important;height:var(--protiva-chat-visual-height,100dvh)!important}
    html.protivaChatKeyboardActive.protivaAppleVisualViewportActive .studentTeacherChatOverlay,html.protivaChatKeyboardActive.protivaAppleVisualViewportActive .classHubOverlay.immersive{top:var(--protiva-chat-apple-visual-top,0px)!important;bottom:auto!important;height:var(--protiva-chat-apple-visual-height,100dvh)!important}
    html.protivaChatKeyboardActive.protivaAppleVisualViewportActive .studentTeacherChatOverlay:after,html.protivaChatKeyboardActive.protivaAppleVisualViewportActive .classHubOverlay.immersive:after{content:"";position:fixed;left:0;right:0;top:calc(var(--protiva-chat-apple-visual-top,0px) + var(--protiva-chat-apple-visual-height,100dvh));bottom:0;z-index:100000;display:block;background:linear-gradient(180deg,#fff3fa 0%,#f4fbff 100%);pointer-events:auto;touch-action:none}
    html.protivaChatKeyboardActive.protivaAppleVisualViewportActive body .studentTeacherChatCanvas{flex:1 1 auto;min-height:0;padding-bottom:12px}
    html.protivaChatKeyboardActive.protivaAppleVisualViewportActive body .studentTeacherChatComposer{position:relative!important;bottom:auto!important;flex-shrink:0}
    html.protivaAppleMobile.protivaChatKeyboardActive body .studentTeacherChatCanvas{flex:1 1 auto;min-height:0;padding-bottom:12px}
    html.protivaAppleMobile.protivaChatKeyboardActive body .studentTeacherChatComposer{position:relative!important;bottom:auto!important;flex-shrink:0}
    html.protivaAppleMobile.protivaChatKeyboardActive .studentTeacherChatList{overflow:visible!important}
    html.protivaAppleMobile.protivaChatKeyboardActive .studentTeacherChatRow,html.protivaAppleMobile.protivaChatKeyboardActive .studentTeacherChatDate,html.protivaAppleMobile.protivaChatKeyboardActive .classHubChatRow{content-visibility:visible!important;contain-intrinsic-size:auto!important}
    html.protivaIosNativeShell.protivaChatKeyboardActive body .studentTeacherChatCanvas{flex:1 1 auto;min-height:0;padding-bottom:12px}
    html.protivaIosNativeShell.protivaChatKeyboardActive body .studentTeacherChatComposer{position:relative!important;bottom:auto!important;flex-shrink:0}
    html.protivaChatKeyboardActive .studentTeacherChatCanvas,html.protivaChatKeyboardActive .classHubChatMessages{scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom));overscroll-behavior:contain}
    html.protivaChatKeyboardActive .studentTeacherChatComposer,html.protivaChatKeyboardActive .classHubChatComposer{box-shadow:0 -10px 24px rgba(16,32,61,.10)}
    html.protivaChatKeyboardActive body .studentTeacherChatHead,html.protivaChatKeyboardActive body .classHubChatThreadHead{position:relative!important;top:auto!important;min-height:50px!important;box-sizing:border-box;flex-shrink:0;z-index:20!important}
    html.protivaChatKeyboardActive body .classHubChatThreadCard.fullscreen{grid-template-rows:minmax(50px,auto) minmax(0,1fr) auto}
    .studentTeacherChatList,.classHubChatMessages>.studentTeacherChatRow,.classHubChatMessages>.studentTeacherChatDate,.classHubChatMessages>.privateTeacherChatOlderLoader,.classHubChatMessages>.studentTeacherChatEmpty,.classHubChatMessages>.friendsGroupStatus{position:relative;z-index:1}
    .studentTeacherChatList{display:grid;gap:6px;align-content:start;grid-auto-rows:max-content;width:100%;max-width:680px;margin:0 auto;min-width:0;box-sizing:border-box;overflow:hidden}
    .studentTeacherChatEmpty{border:1px dashed #ffc4df;border-radius:16px;background:#fff;color:#8a1952;text-align:center;padding:22px 16px;font-size:13px;font-weight:900;line-height:1.45}
    .studentTeacherChatDate{display:flex;justify-content:center;margin:2px 0;content-visibility:auto;contain-intrinsic-size:24px}
    .studentTeacherChatDate span{border:none;border-radius:0;background:transparent;color:#8a1952;padding:2px 0;font-size:10px;font-weight:950;box-shadow:none}
    .studentTeacherChatRow{display:flex;align-items:flex-start;width:100%;max-width:100%;min-width:0;box-sizing:border-box;touch-action:pan-y;transition:transform .14s ease;content-visibility:auto;contain-intrinsic-size:76px;animation:none!important}
    .studentTeacherChatRow.privateTeacherChatSwipingReply{will-change:transform}
    .studentTeacherChatRow.privateTeacherChatReplyHint .studentTeacherChatBubble{box-shadow:0 8px 18px rgba(15,138,125,.12)}
    .studentTeacherChatList .studentTeacherChatRow:last-child,.classHubChatMessages>.studentTeacherChatRow:last-child{animation:none!important}
    .studentTeacherChatModal.scrollBusy .studentTeacherChatList .studentTeacherChatRow:last-child,.classHubChatThreadCard.scrollBusy .classHubChatMessages>.studentTeacherChatRow:last-child,.studentTeacherChatModal.scrollBusy .privateTeacherChatNodeEnter,.classHubChatThreadCard.scrollBusy .privateTeacherChatNodeEnter,.studentTeacherChatModal.scrollBusy .studentTeacherChatBubbleImageBtn img,.classHubChatThreadCard.scrollBusy .studentTeacherChatBubbleImageBtn img{animation:none!important;will-change:auto}
    .studentTeacherChatRow.student{justify-content:flex-end}
    .studentTeacherChatBubble{max-width:min(78%,300px,calc(100vw - 44px));min-width:0;box-sizing:border-box;border:1px solid #ffd0e5;border-radius:10px;background:#fff;padding:7px 9px;box-shadow:0 3px 10px rgba(16,32,61,.06);display:grid;gap:3px}
    .studentTeacherChatRow.onboarding{justify-content:center;width:100%;min-width:0;contain-intrinsic-size:360px}
    .studentTeacherChatRow.onboarding .studentTeacherChatBubble{width:100%;max-width:min(100%,560px);min-width:0;box-sizing:border-box;border:0;background:transparent;padding:0;box-shadow:none;gap:4px}
    .studentTeacherChatRow:last-child .studentTeacherChatBubble{will-change:auto;backface-visibility:hidden}
    .studentTeacherChatRow.student .studentTeacherChatBubble{background:linear-gradient(180deg,#eafffb,#fff);border-color:#b7efe8}
    .studentTeacherChatBubbleText{font-size:13px;font-weight:900;color:#10203d;line-height:1.3;white-space:pre-wrap;overflow-wrap:anywhere}
    .privateTeacherChatLinkActions{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
    .privateTeacherChatLinkBtn{border:1px solid #b7efe8;border-radius:999px;background:linear-gradient(180deg,#f1fffb,#fff);color:#0f766e;padding:6px 10px;font-size:11px;font-weight:950;line-height:1;cursor:pointer;box-shadow:0 5px 12px rgba(15,138,125,.08)}
    .privateTeacherChatLinkBtn:active{transform:scale(.97)}
    .privateTeacherChatQuickActions{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
    .privateTeacherChatQuickActionBtn{border:1px solid rgba(15,138,125,.22);border-radius:999px;background:#f0fdf4;color:#0f766e;padding:5px 8px;font-size:10px;font-weight:950;line-height:1.05;cursor:pointer;box-shadow:0 4px 10px rgba(15,138,125,.07);max-width:100%;overflow:hidden;text-overflow:ellipsis}
    .privateTeacherChatQuickActionBtn:active{transform:scale(.97)}
    .privateTeacherChatAutoReplyFeedback{display:flex;align-items:center;gap:5px;margin-top:3px}
    .privateTeacherChatAutoReplyFeedbackBtn{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid rgba(15,138,125,.16);border-radius:999px;background:#fff;color:#10203d;padding:0;font-size:11px;line-height:1;cursor:pointer;box-shadow:0 3px 8px rgba(16,32,61,.05)}
    .privateTeacherChatAutoReplyFeedbackBtn.active.like{border-color:#99f6e4;background:#ecfdf5}
    .privateTeacherChatAutoReplyFeedbackBtn.active.dislike{border-color:#fecdd3;background:#fff1f2}
    .privateTeacherChatAutoReplyFeedbackBtn:disabled{opacity:.72;cursor:default}
    .privateTeacherChatAutoReplyReportBtn{width:max-content;max-width:100%;border:0;background:transparent;color:#9d1457;padding:2px 0 0;font-size:9px;font-weight:950;line-height:1;text-decoration:underline;cursor:pointer;justify-self:start}
    .privateTeacherChatAutoReplyReportBtn:disabled{color:#0f766e;text-decoration:none;cursor:default}
    .privateChatOnboardingCard{display:grid;gap:7px;width:100%;max-width:min(100%,520px);min-width:0;box-sizing:border-box;margin:0 auto;border:1.5px solid rgba(255,209,102,.92);border-radius:16px;background:radial-gradient(circle at 10% 12%,rgba(255,209,102,.26) 0 28px,transparent 29px),linear-gradient(135deg,#fffaf4 0%,#fff 42%,#fff0f7 100%);padding:10px;box-shadow:0 10px 22px rgba(157,20,87,.12),0 0 0 2px rgba(255,255,255,.72) inset;text-align:center}
    .privateChatOnboardingHead{display:grid;gap:3px;justify-items:center}
    .privateChatOnboardingTitle{font-size:17px;font-weight:950;color:#10203d;line-height:1.12}
    .privateChatOnboardingSubtitle{font-size:10px;font-weight:950;color:#9d1457;line-height:1.15;text-transform:uppercase;letter-spacing:.02em}
    .privateChatOnboardingClassLabel{font-size:10px;font-weight:950;color:#8a1952;text-transform:uppercase;letter-spacing:.04em;margin-top:1px}
    .privateChatOnboardingChips{display:flex;flex-wrap:wrap;gap:5px;justify-content:center}
    .privateChatOnboardingChip{border:1px solid rgba(157,20,87,.22);border-radius:999px;background:linear-gradient(180deg,#fff,#fff3f8);color:#9d1457;padding:5px 9px;font-size:10.5px;font-weight:950;line-height:1}
    .privateChatOnboardingPanel{border:1px solid rgba(244,194,224,.72);border-radius:12px;background:rgba(255,255,255,.70);padding:7px;display:grid;gap:6px;text-align:left}
    .privateChatOnboardingPanelTitle{font-size:10.5px;font-weight:950;color:#9d1457;text-transform:uppercase;letter-spacing:.04em;text-align:center}
    .privateChatOnboardingText{font-size:12px;font-weight:850;color:#263653;line-height:1.28;white-space:pre-wrap}
    .privateChatOnboardingGuideLine{font-size:11px;font-weight:850;color:#263653;line-height:1.28;text-align:left}
    .privateChatOnboardingGuideLine b{color:#10203d;font-weight:950}
    .privateChatOnboardingReminder{font-size:11px;font-weight:900;color:#8a1952;line-height:1.25;text-align:center}
    .privateChatOnboardingPointList{display:grid;gap:6px}
    .privateChatOnboardingPoint{display:grid;grid-template-columns:20px minmax(0,1fr);gap:6px;align-items:start;font-size:13px;font-weight:850;color:#263653;line-height:1.32}
    .privateChatOnboardingPoint:before{content:'\2713';display:grid;place-items:center;width:18px;height:18px;border-radius:999px;background:#ecfdf5;color:#0f766e;border:1px solid #bbf7d0;font-size:10px;font-weight:950;line-height:1}
    .privateChatOnboardingGuideInline{display:grid;gap:3px}
    .privateChatOnboardingGuideLegacy{display:none}
    .privateChatOnboardingGuideTitle{font-size:11px;font-weight:950;color:#10203d;line-height:1.2}
    .privateChatOnboardingGuideBody{font-size:10.5px;font-weight:800;color:#5f6d82;line-height:1.22}
    .privateChatOnboardingLinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
    .privateChatOnboardingLinks .privateTeacherChatLinkBtn{border-color:rgba(157,20,87,.22);background:linear-gradient(180deg,#fff,#fff3f8);color:#9d1457;box-shadow:0 5px 12px rgba(157,20,87,.08);font-size:10px;padding:7px 6px;width:100%;min-height:30px;line-height:1.1;white-space:normal;text-align:center}
    @media(max-width:380px){.privateChatOnboardingLinks{grid-template-columns:1fr 1fr}.privateChatOnboardingCard{padding:9px}.privateChatOnboardingTitle{font-size:16px}}
    .privateTeacherChatReplyQuote{border-left:3px solid rgba(15,138,125,.34);border-radius:8px;background:rgba(15,138,125,.06);padding:5px 7px;margin-bottom:2px;display:grid;gap:1px;max-width:100%}
    .privateTeacherChatReplyQuoteName{font-size:10px;font-weight:950;color:#0f8a7d;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .privateTeacherChatReplyQuoteText{font-size:10px;font-weight:850;color:#58627a;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .studentTeacherChatBubbleImageBtn{position:relative;display:block;border:0;background:transparent;padding:0;margin:0;cursor:pointer;border-radius:10px;overflow:hidden;width:100%;max-width:min(230px,100%);box-sizing:border-box}
    .studentTeacherChatBubbleImageBtn img{display:block;width:100%;max-width:100%;max-height:260px;object-fit:cover;border-radius:10px;background:#fff7fb;border:1px solid rgba(255,208,229,.82);box-sizing:border-box;animation:none!important;backface-visibility:hidden;transform:none;will-change:auto}
    .protivaAdaptivePerf .studentTeacherChatBubbleImageBtn img{animation:none!important;transform:none;will-change:auto}
    .homeworkCorrectionCard{display:grid;gap:8px;width:min(100%,292px);border:1.5px solid #ffd166;border-radius:13px;background:radial-gradient(circle at 12% 12%,rgba(255,209,102,.24) 0 20px,transparent 21px),linear-gradient(135deg,#fff 0%,#fff7fb 54%,#fff8d8 100%);padding:9px;box-shadow:0 8px 18px rgba(157,20,87,.10),0 0 0 2px rgba(255,255,255,.62) inset}
    .homeworkCorrectionCardHead{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#10203d;font-size:13px;font-weight:950;line-height:1.15}
    .homeworkCorrectionCardBadge{border:1px solid #bbf7d0;border-radius:999px;background:#ecfdf5;color:#0f766e;padding:4px 7px;font-size:9px;font-weight:950;white-space:nowrap}
    .homeworkCorrectionCardSub{font-size:10px;font-weight:900;color:#8a1952;line-height:1.25}
    .homeworkCorrectionCompare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .homeworkCorrectionSheetStage{position:relative;border:1px solid #ffd166;border-radius:13px;background:#fff;padding:6px;box-shadow:0 0 0 2px rgba(255,209,102,.18)}
    .homeworkCorrectionReferenceOverlay{position:absolute;left:9px;top:28px;width:72px;border:2px solid #fff;border-radius:11px;background:#fff;box-shadow:0 6px 16px rgba(16,32,61,.18),0 0 0 1px rgba(255,209,102,.7);padding:0;overflow:hidden;z-index:4}
    .homeworkCorrectionReferenceOverlay img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;background:#fff7fb}
    .homeworkCorrectionReferenceOverlay span{display:block;background:#fff8db;color:#8a1952;font-size:8px;font-weight:950;line-height:1.1;padding:3px 2px;text-align:center}
    .homeworkCorrectionImageTile{min-width:0;border:1px solid #ffd0e5;border-radius:12px;background:#fff;padding:5px;display:grid;gap:5px}
    .homeworkCorrectionImageTile.homeworkCorrectionMarked{border-color:#ffd166;box-shadow:0 0 0 2px rgba(255,209,102,.18)}
    .homeworkCorrectionImageLabel{font-size:9px;font-weight:950;color:#8a1952;text-align:center;line-height:1.15}
    .homeworkCorrectionImageBtn{border:0;background:transparent;padding:0;border-radius:9px;overflow:hidden;position:relative;display:block;width:100%}
    .homeworkCorrectionImageBtn img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:9px;background:#fff7fb;display:block}
    .homeworkCorrectionImageFrame{position:relative;display:block;width:100%;line-height:0;border-radius:9px;overflow:hidden;background:#fff7fb}
    .homeworkCorrectionImageFrame img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-radius:9px;background:#fff7fb}
    .homeworkCorrectionStrokeOverlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
    .homeworkCorrectionImageFrame .homeworkCorrectionStrokeOverlay{inset:0}
    .homeworkCorrectionNote{border:1px solid #ffd0e5;border-radius:12px;background:#fff;color:#10203d;padding:8px;font-size:12px;font-weight:900;line-height:1.32;white-space:pre-wrap;overflow-wrap:anywhere}
    .homeworkCorrectionNote b{display:block;color:#8a1952;font-size:10px;margin-bottom:3px;text-transform:uppercase;letter-spacing:.02em}
    .homeworkCorrectionOptional{display:grid;grid-template-columns:58px minmax(0,1fr);gap:8px;align-items:center;border:1px solid #bbf7d0;border-radius:12px;background:#f0fdf4;padding:6px}
    .homeworkCorrectionOptional .homeworkCorrectionImageBtn img{aspect-ratio:1/1}
    .homeworkCorrectionOptionalText{font-size:11px;font-weight:950;color:#0f766e;line-height:1.25}
    @media(max-width:380px){.homeworkCorrectionCompare{grid-template-columns:1fr}.homeworkCorrectionCard{width:100%}}
    .protivaAdaptivePerf .protivaSmoothAppear{animation:none!important}
    .privateTeacherChatNodeEnter{animation:none!important;will-change:auto}
    .studentTeacherChatImagePendingOverlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(16,32,61,.16);border-radius:10px;backdrop-filter:blur(1px);pointer-events:none}
    .studentTeacherChatImageSpinner{width:34px;height:34px;border:3px solid rgba(255,255,255,.88);border-top-color:#0f8a7d;border-right-color:#0f8a7d;border-radius:999px;animation:studentTeacherChatImageSpin .78s linear infinite;box-shadow:0 5px 16px rgba(16,32,61,.18)}
    @keyframes studentTeacherChatImageSpin{to{transform:rotate(360deg)}}
    .studentTeacherChatImageCaption{margin-top:3px}
    .studentTeacherChatBubbleMeta{display:flex;justify-content:flex-end;align-items:center;gap:4px;font-size:9px;font-weight:900;color:#8a1952}
    .privateTeacherChatAutoReplyBadge{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin-bottom:5px;border:1px solid rgba(15,138,125,.18);border-radius:999px;background:#ecfdf5;color:#0f766e;padding:2px 7px;font-size:8px;font-weight:950;line-height:1;letter-spacing:0}
    .privateTeacherChatAutoGeneratedLabel{font-size:8px;font-weight:900;line-height:1;color:#0f766e;opacity:.82}
    .privateTeacherChatWhatsappBtn{display:inline-flex;align-items:center;justify-content:center;vertical-align:baseline;margin:0 2px;border:1px solid rgba(15,138,125,.24);border-radius:999px;background:#e7fff7;color:#087566;padding:2px 8px;font-size:12px;font-weight:950;line-height:1.15;text-decoration:none;white-space:nowrap}
    .privateTeacherChatWhatsappBtn:active{transform:scale(.98)}
    .studentTeacherChatTick{font-size:10px;font-weight:950;letter-spacing:0;color:#8590a3;line-height:1}
    .studentTeacherChatTick.seen{color:#1687f2;font-weight:950;opacity:1;text-shadow:0 0 1px rgba(22,135,242,.2)}
    .studentTeacherChatTick.pending{color:#b77d99}
    .studentTeacherChatSub.typing,.classHubChatThreadSub.typing{color:#0f8a7d}
    .compactChatScrollDown{position:absolute;right:9px;top:50%;z-index:6;width:28px;height:28px;border:1px solid rgba(138,25,82,.18);border-radius:999px;background:rgba(255,255,255,.78);color:#8a1952;font-size:15px;font-weight:950;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 14px rgba(16,32,61,.08);opacity:0;pointer-events:none;transform:translate(10px,-50%) scale(.92);transition:opacity .18s ease,transform .18s ease,background .18s ease}
    .compactChatScrollDown.show{opacity:.86;pointer-events:auto;transform:translate(0,-50%) scale(1)}
    .compactChatScrollDown:active{transform:translate(0,-50%) scale(.94)}
    .compactChatNewMessage{position:absolute;left:50%;bottom:76px;z-index:7;border:none;background:rgba(16,32,61,.78);color:#fff;border-radius:999px;padding:5px 10px;font-size:10px;font-weight:900;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%,7px);transition:opacity .2s ease,transform .2s ease}
    .compactChatNewMessage.show{opacity:.86;transform:translate(-50%,0)}
    .studentTeacherChatComposer{position:sticky;bottom:0;z-index:2;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:1px solid #ffd0e5;background:rgba(255,251,253,.96);backdrop-filter:blur(10px)}
    .studentTeacherChatRow.aiThinking .studentTeacherChatBubble{position:relative;overflow:hidden;border-color:rgba(45,212,191,.52);box-shadow:0 0 0 1px rgba(124,58,237,.08),0 5px 16px rgba(45,212,191,.16)}
    .studentTeacherChatRow.aiThinking .studentTeacherChatBubble:after{content:'';position:absolute;inset:-35% -65%;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.78) 47%,rgba(45,212,191,.24) 52%,transparent 64%);transform:translateX(-58%);animation:studentTeacherChatAiShine 1.15s ease-in-out infinite;pointer-events:none}
    @keyframes studentTeacherChatAiShine{to{transform:translateX(58%)}}
    .studentTeacherChatAiModeBar{position:relative;display:flex;justify-content:flex-end;align-items:center;gap:5px;margin:0 0 5px;min-height:25px}
    .studentTeacherChatAiModeHint{flex:1 1 auto;min-width:0;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#6b7280;font-size:9.5px;font-weight:850;line-height:1.15}
    .studentTeacherChatAiModeBtn{height:25px;border:1px solid rgba(255,208,229,.9);border-radius:999px;background:#fff;color:#8a1952;padding:2px 4px 2px 8px;display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:950;line-height:1;box-shadow:0 4px 12px rgba(16,32,61,.06);cursor:pointer}
    .studentTeacherChatAiModeBtn:disabled{opacity:.68;cursor:wait}
    .studentTeacherChatAiModeLabel{white-space:nowrap}
    .studentTeacherChatAiModeTrack{width:34px;height:18px;border-radius:999px;background:#e7edf5;position:relative;box-shadow:inset 0 1px 3px rgba(16,32,61,.14)}
    .studentTeacherChatAiModeKnob{position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:999px;background:#fff;box-shadow:0 2px 5px rgba(16,32,61,.22);transition:transform .16s ease,background .16s ease}
    .studentTeacherChatAiModeBtn.on{border-color:rgba(45,212,191,.48);background:#fff;color:#0f766e}
    .studentTeacherChatAiModeBtn.on .studentTeacherChatAiModeTrack{background:linear-gradient(90deg,#2dd4bf,#7c3aed)}
    .studentTeacherChatAiModeBtn.on .studentTeacherChatAiModeKnob{transform:translateX(16px);background:#fff}
    .studentTeacherChatAiInfoBtn{width:23px;height:23px;border:1px solid rgba(255,208,229,.9);border-radius:999px;background:#fff;color:#8a1952;font-size:12px;font-weight:950;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(16,32,61,.06);padding:0}
    .studentTeacherChatAiInfoPopup{position:absolute;right:0;bottom:31px;z-index:9;width:min(310px,calc(100vw - 24px));border:1px solid #ffd0e5;border-radius:12px;background:#fff;color:#263653;padding:10px;box-shadow:0 14px 34px rgba(16,32,61,.16);display:grid;gap:7px;text-align:left}
    .studentTeacherChatAiInfoPopup p{margin:0;font-size:11px;font-weight:850;line-height:1.32}
    .studentTeacherChatAiInfoGotItBtn{justify-self:end;border:1px solid rgba(15,138,125,.24);border-radius:999px;background:#f0fdf4;color:#0f766e;padding:6px 12px;font-size:11px;font-weight:950;line-height:1}
    .protivaAdaptivePerf .studentTeacherChatRow.aiThinking .studentTeacherChatBubble:after{animation:none}
    .studentTeacherChatComposerInner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:5px;align-items:end}
    .privateTeacherChatComposerTools{display:flex;align-items:end;justify-content:center;gap:3px;min-width:32px;align-self:end}
    .privateTeacherChatComposerToolStack{display:grid;grid-template-rows:22px 22px;gap:2px;width:32px;height:46px;align-content:center;justify-items:center}
    .privateTeacherChatComposerToolStack .classHubChatPresetBtn,.privateTeacherChatComposerToolStack .privateTeacherChatStickerBtn{width:30px;height:22px;min-width:30px;border-radius:8px;padding:0;font-size:14px;line-height:1;box-shadow:none}
    .privateTeacherChatComposerInputShell{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:end;gap:3px;min-height:42px;border:1.5px solid #ffd0e5;border-radius:22px;background:#fff;color:#10203d;padding:3px 4px 3px 12px;box-shadow:0 2px 8px rgba(16,32,61,.05);min-width:0}
    .privateTeacherChatComposerInputShell .classHubChatInput,.privateTeacherChatComposerInputShell .studentTeacherChatInput{width:100%;min-height:28px;max-height:116px;border:0;border-radius:0;background:transparent;color:#10203d;padding:8px 4px 7px 0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px;font-weight:500;line-height:1.32;resize:none;box-sizing:border-box;outline:none;overflow-y:auto;-webkit-overflow-scrolling:touch}
    .privateTeacherChatComposerInputShell .classHubChatInput::placeholder,.privateTeacherChatComposerInputShell .studentTeacherChatInput::placeholder{color:#7a8495;font-weight:500}
    .privateTeacherChatComposerInputShell .privateTeacherChatImageBtn{width:28px;height:28px;border:0;border-radius:999px;background:transparent;box-shadow:none;color:#78909c;font-size:15px;padding:0}
    .privateTeacherChatStickerBtn,.privateTeacherChatImageBtn{width:34px;height:34px;border:1.5px solid #ffd0e5;border-radius:999px;background:linear-gradient(180deg,#fff,#fff7fb);color:#9d1457;font-size:16px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 5px 10px rgba(16,32,61,.05);padding:0}
    .privateTeacherChatStickerBtn:active,.privateTeacherChatImageBtn:active,.studentTeacherChatSend:active,.classHubChatSendBtn:active{transform:scale(.97)}
    .privateTeacherChatImageBtn:disabled,.privateTeacherChatStickerBtn:disabled{opacity:.55;cursor:wait}
    .privateTeacherChatFileInput{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
    .privateTeacherChatImageStatus{grid-column:1/-1;border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#8a1952;padding:6px 10px;font-size:11px;font-weight:950;line-height:1;text-align:center}
    .privateTeacherChatReplyChip{grid-column:1/-1;border:1px solid rgba(15,138,125,.16);border-left:3px solid rgba(15,138,125,.38);border-radius:12px;background:linear-gradient(180deg,#f1fffb,#fff);padding:6px 8px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;box-shadow:0 6px 14px rgba(16,32,61,.05)}
    .privateTeacherChatReplyChipText{min-width:0;display:grid;gap:1px}
    .privateTeacherChatReplyChipName{font-size:10px;font-weight:950;color:#0f8a7d;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .privateTeacherChatReplyChipBody{font-size:10px;font-weight:850;color:#58627a;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .privateTeacherChatReplyChipClose{width:24px;height:24px;border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#9d1457;font-size:13px;font-weight:950;display:grid;place-items:center}
    .privateTeacherChatStickerSheet{position:absolute;left:10px;right:10px;bottom:calc(56px + env(safe-area-inset-bottom));z-index:8;border:1.5px solid #ffd0e5;border-radius:18px;background:rgba(255,255,255,.98);box-shadow:0 18px 38px rgba(16,32,61,.16);padding:9px;opacity:0;pointer-events:none;transform:translateY(10px) scale(.98);transition:opacity .16s ease,transform .16s ease;max-height:min(300px,44vh);display:grid;gap:8px}
    .privateTeacherChatStickerSheet.show{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
    .privateTeacherChatStickerSheetHead{display:flex;align-items:center;justify-content:space-between;gap:8px}
    .privateTeacherChatStickerTabs{display:flex;align-items:center;gap:5px}
    .privateTeacherChatStickerTabBtn{height:27px;border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#9d1457;padding:0 10px;font-size:11px;font-weight:950;line-height:1}
    .privateTeacherChatStickerTabBtn.active{background:#10203d;border-color:#10203d;color:#fff}
    .privateTeacherChatStickerSheetClose{width:28px;height:28px;border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#9d1457;font-size:14px;font-weight:950;display:inline-flex;align-items:center;justify-content:center}
    .privateTeacherChatStickerGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;overflow:auto;-webkit-overflow-scrolling:touch;padding:1px;max-height:228px}
    .privateTeacherChatEmojiGrid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;overflow:auto;-webkit-overflow-scrolling:touch;padding:1px;max-height:228px}
    .privateTeacherChatStickerSheet.stickerMode .privateTeacherChatEmojiGrid,.privateTeacherChatStickerSheet.emojiMode .privateTeacherChatStickerGrid{display:none}
    .privateTeacherChatStickerTile{height:64px;border:1px solid rgba(255,208,229,.82);border-radius:14px;background:linear-gradient(180deg,#fff,#fff7fb);display:flex;align-items:center;justify-content:center;padding:4px;box-shadow:0 6px 13px rgba(16,32,61,.06);overflow:hidden}
    .privateTeacherChatStickerTile img{display:block;max-width:100%;max-height:100%;object-fit:contain}
    .privateTeacherChatEmojiTile{height:38px;border:1px solid rgba(255,208,229,.82);border-radius:12px;background:linear-gradient(180deg,#fff,#fff7fb);display:flex;align-items:center;justify-content:center;font-size:21px;box-shadow:0 6px 13px rgba(16,32,61,.05)}
    .privateTeacherChatStickerTile:active,.privateTeacherChatEmojiTile:active{transform:scale(.96)}
    .studentTeacherChatStickerBubble{display:block;border:0;background:transparent;padding:0;margin:0;cursor:default;border-radius:14px;overflow:hidden;width:max-content;max-width:min(168px,100%);box-sizing:border-box;box-shadow:none}
    .studentTeacherChatStickerBubble img{display:block;width:148px;max-width:42vw;max-height:148px;object-fit:contain;border-radius:14px;background:transparent}
    .studentTeacherChatRow.student .studentTeacherChatStickerBubble img{margin-left:auto}
    .studentTeacherChatInput{width:100%;min-height:38px;max-height:72px;border:1.5px solid #ffd0e5;border-radius:14px;background:#fff;color:#10203d;padding:9px 11px;font-size:13px;font-weight:900;line-height:1.28;resize:none;box-sizing:border-box}
    .studentTeacherChatSend{min-width:44px;height:44px;border:none;border-radius:999px;background:linear-gradient(180deg,#22cfc0,#0f8a7d);color:#fff;padding:7px 9px;font-size:12px;font-weight:950;cursor:pointer;box-shadow:0 9px 16px rgba(15,138,125,.16)}
    .studentTeacherChatSend:disabled{opacity:.42;cursor:default}
    .studentTeacherChatLoadMore:disabled{opacity:.64;cursor:wait}
    .privateTeacherChatImageViewer{position:fixed;inset:0;z-index:10080;background:rgba(16,32,61,.82);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;padding:14px;color:#fff}
    html.protivaIosNativeShell .privateTeacherChatImageViewer{padding-top:calc(14px + var(--protiva-safe-top))}
    .privateTeacherChatImageViewerHead{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:950}
    .privateTeacherChatImageViewerTitle{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .privateTeacherChatImageViewerClose,.privateTeacherChatImageViewerDownload{min-height:38px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:rgba(255,255,255,.12);color:#fff;padding:8px 13px;font-size:13px;font-weight:950;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
    .privateTeacherChatImageViewerMarker{min-width:58px;height:38px;border:1px solid rgba(225,29,72,.38);border-radius:999px;background:#fff1f2;color:#e11d48;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:950;letter-spacing:0;box-shadow:0 10px 22px rgba(225,29,72,.18)}
    .privateTeacherChatImageViewerMarker:disabled{opacity:.62;cursor:wait}
    .privateTeacherChatImageViewerMarker .privateTeacherChatMarkerIcon{width:17px;height:17px;display:block}
    .privateTeacherChatImageViewerStatus{min-height:16px;text-align:center;font-size:12px;font-weight:900;color:#fff}
    .privateTeacherChatImageViewerStage{min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden;overscroll-behavior:contain}
    .privateTeacherChatImageViewerStage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:12px;background:#fff;box-shadow:0 22px 55px rgba(0,0,0,.28);transform-origin:center;user-select:none;-webkit-user-select:none}
    .studentProfileFullscreenPanel{position:fixed;inset:0;z-index:10010;background:linear-gradient(180deg,#fff7fb,#f2fbff);overflow:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:calc(14px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));display:grid;align-content:start;gap:12px;box-sizing:border-box;max-width:100vw}
    .studentProfileFullscreenPanelClass{padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}
    .studentProfileFullscreenTop{position:relative;top:auto;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #ffd0e5;border-radius:18px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);padding:10px 12px;box-shadow:0 10px 24px rgba(255,115,181,.13)}
    .studentProfileFullscreenTitle{font-size:21px;font-weight:950;color:#10203d}
    .studentProfileFullscreenClose{width:44px;height:44px;border-radius:999px;border:1px solid #ffd0e5;background:#fff7fb;color:#9d1457;font-size:22px;font-weight:950;cursor:pointer}
    .studentProfileFullscreenBody{display:grid;gap:10px;min-width:0}
    .studentClassPublicCard{padding:10px;border-width:2px;border-radius:18px;width:100%;max-width:100%;box-sizing:border-box;margin-left:0;margin-right:0;box-shadow:0 10px 22px rgba(255,182,193,.12)}
    .studentClassPublicCard:before{display:none}
    .studentPointsRulesBtn{margin-top:5px;border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#9d1457;padding:5px 9px;font-size:11px;font-weight:950;cursor:pointer}
    .studentProfileRewardActions{display:inline-flex;align-items:center;justify-content:center;gap:4px;flex-wrap:nowrap;margin-top:0;border:1px solid rgba(255,208,106,.64);border-radius:999px;background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,247,207,.86),rgba(255,239,248,.9));padding:5px;width:100%;box-shadow:0 10px 20px rgba(255,115,181,.13),0 0 0 2px rgba(255,255,255,.56) inset;position:relative;overflow:visible}
    .studentProfileRewardActions:before{content:"";display:none}
    .studentProfileRewardActions>*{position:relative;z-index:1}
    .studentProfileRewardRow .studentProfileRewardActions{margin-top:0}
    .studentProfileRewardActions .studentPointsRulesBtn{margin-top:0}
    .studentProfileRewardActions .studentPointsRulesBtn{width:42px;min-width:42px;min-height:42px;padding:0;border-color:#ffd166;background:linear-gradient(135deg,#fff,#fff2fb 42%,#ffe58f 100%);box-shadow:0 9px 18px rgba(0,0,0,.18),0 0 0 2px rgba(255,255,255,.72) inset;display:inline-flex;align-items:center;justify-content:center;gap:0;font-size:0;text-transform:uppercase;letter-spacing:0}
    .studentProfileRewardActions .studentPointsRulesBtn .studentProfileActionIcon{animation:studentBookPulse 2.6s ease-in-out infinite}
    .studentProfileActionIcon{font-size:21px;line-height:1;filter:drop-shadow(0 2px 5px rgba(255,209,102,.72))}
    .studentAchievementGiftBtn,.studentToastHistoryBtn,.studentProfileSwitchBtn,.studentProfileWebBtn,.studentProfileTestPaymentResetBtn{width:42px;height:42px;border-radius:999px;border:1px solid #ffd166;background:linear-gradient(135deg,#fff9db,#ffd166,#ff8bc8);color:#8a1952;font-size:20px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 9px 18px rgba(0,0,0,.18),0 0 0 2px rgba(255,255,255,.64) inset,0 0 16px rgba(255,209,102,.18);cursor:pointer;animation:achievementGiftNudge 2.8s ease-in-out infinite;position:relative}
    .studentProfileTestPaymentResetBtn{background:linear-gradient(135deg,#fff,#ffe7e7 55%,#ffcaca);border-color:#f59e9e;color:#9f1239;font-size:22px;animation:none}
    .studentToastHistoryBtn{background:linear-gradient(135deg,#eef7ff,#fff,#ffe8f5);border-color:#ffc4df;color:#10203d;animation:none}
    .studentProfileSwitchBtn{background:linear-gradient(135deg,#eef7ff,#fff,#dbeafe);border-color:#a7d8ff;color:#0f4a8a;animation:none}
    .studentProfileWebBtn{background:linear-gradient(135deg,#e9f7ff,#fff,#d9f0ff 62%,#fff6d6);border-color:#8ecfff;color:#075985;font-size:19px;animation:none;overflow:hidden}
    .studentProfileWebBtn:before{content:"";position:absolute;inset:-35%;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.78) 50%,transparent 65%);transform:translateX(-80%) rotate(14deg);animation:studentProfileWebBtnShine 3.2s ease-in-out infinite;pointer-events:none}
    .studentProfileWebIcon{position:relative;z-index:1;filter:drop-shadow(0 2px 5px rgba(14,116,144,.24))}
    .studentToastHistoryBtn.hasStudentNotifications{animation:studentBellVibrate 1.8s ease-in-out infinite}
    .studentToastHistoryBtn.hasStudentNotifications:after{content:"";position:absolute;right:4px;top:4px;width:7px;height:7px;border-radius:999px;background:#ff4f9b;border:1px solid #fff;box-shadow:0 0 10px rgba(255,79,155,.55)}
    .studentProfileTutorialOverlay{position:fixed;inset:0;z-index:99999;display:grid;place-items:end center;padding:14px;pointer-events:auto}
    .studentProfileTutorialMask{position:fixed;background:rgba(255,247,251,.22);backdrop-filter:blur(6px) saturate(1.18);-webkit-backdrop-filter:blur(6px) saturate(1.18);box-shadow:inset 0 0 80px rgba(16,32,61,.12)}
    .studentProfileTutorialSpotlight{position:fixed;z-index:2;border:2px solid rgba(255,255,255,.94);border-radius:18px;background:rgba(255,255,255,.12);box-shadow:0 0 0 999px rgba(16,32,61,.08),0 0 0 6px rgba(255,209,102,.42),0 0 30px rgba(255,123,187,.58);pointer-events:auto}
    .studentProfileTutorialArrow{position:fixed;z-index:3;width:32px;height:32px;border-radius:999px;background:rgba(255,255,255,.82);border:1px solid rgba(255,196,223,.9);color:#9d1457;font-size:22px;font-weight:950;align-items:center;justify-content:center;box-shadow:0 12px 28px rgba(16,32,61,.18);pointer-events:none}
    .studentProfileTutorialCard{position:relative;z-index:4;width:min(96vw,520px);max-height:min(78vh,640px);overflow:auto;border-radius:18px;border:1.5px solid rgba(255,255,255,.76);background:linear-gradient(135deg,rgba(255,255,255,.76),rgba(255,247,251,.68) 56%,rgba(255,248,219,.68));backdrop-filter:blur(16px) saturate(1.18);-webkit-backdrop-filter:blur(16px) saturate(1.18);box-shadow:0 24px 58px rgba(16,32,61,.26),0 0 0 3px rgba(255,255,255,.36) inset;color:#10203d}
    .studentProfileTutorialTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 14px 10px;border-bottom:1px solid rgba(255,196,223,.68)}
    .studentProfileTutorialTop strong{display:block;margin-top:3px;font-size:18px;line-height:1.16;color:#10203d}
    .studentProfileTutorialStep{display:inline-flex;align-items:center;width:max-content;border-radius:999px;background:#fff0f7;border:1px solid #ffc4df;color:#9d1457;font-size:11px;font-weight:950;padding:4px 9px}
    .studentProfileTutorialClose{width:30px;height:30px;border-radius:999px;border:1px solid #ffc4df;background:#fff;color:#9d1457;font-size:15px;font-weight:950;cursor:pointer}
    .studentProfileTutorialBody{padding:12px 14px 4px}
    .studentProfileTutorialBody p{margin:0 0 9px;font-size:14px;font-weight:800;line-height:1.42;color:#4a3d50}
    .studentProfileTutorialActions{display:flex;gap:8px;justify-content:flex-end;padding:10px 14px 14px;position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.82))}
    .studentProfileTutorialActions button{min-height:38px;border-radius:999px;border:1px solid #ffc4df;background:#fff;color:#8a1952;font-weight:950;padding:0 14px;cursor:pointer}
    .studentProfileTutorialActions button:disabled{opacity:.42;cursor:not-allowed}
    .studentProfileTutorialActions .primary{background:linear-gradient(135deg,#10203d,#9d1457);border-color:#10203d;color:#fff;box-shadow:0 10px 20px rgba(157,20,87,.18)}
    .studentProfileTutorialTarget{position:relative;z-index:100000!important;outline:3px solid rgba(255,209,102,.95);outline-offset:4px;border-radius:16px;box-shadow:0 0 0 7px rgba(255,255,255,.72),0 0 24px rgba(255,123,187,.48);pointer-events:none}
    .studentPointsRulesModal{position:fixed;inset:0;z-index:10020;background:rgba(16,32,61,.42);display:grid;place-items:center;padding:18px}
    .studentProfileWebModal{background:radial-gradient(circle at 50% 9%,rgba(142,207,255,.28),transparent 38%),linear-gradient(180deg,rgba(16,32,61,.66),rgba(76,35,92,.48));touch-action:none;overscroll-behavior:contain;overflow:hidden}
    .studentPointsRulesCard{width:min(420px,100%);max-height:86vh;overflow:auto;border:1px solid #ffd0e5;border-radius:18px;background:linear-gradient(180deg,#fff 0%,#fff7fb 52%,#fff8dd 100%);color:#10203d;padding:16px;box-shadow:0 22px 50px rgba(16,32,61,.22),0 0 0 4px rgba(255,209,102,.12);position:relative;overflow:auto}
    .studentPointsRulesCard:before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 34%,rgba(255,255,255,.48) 50%,transparent 66%);transform:translateX(-82%);animation:achievementGiftRowSweep 4.2s ease-in-out infinite;pointer-events:none}
    .studentPointsRulesCard>*{position:relative;z-index:1}
    .studentPointsRulesHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
    .studentPointsRulesTitle{font-size:18px;font-weight:950}
    .studentPointsRulesClose{width:34px;height:34px;border-radius:999px;border:1px solid #ffd0e5;background:#fff7fb;color:#9d1457;font-size:18px;font-weight:950}
    .studentPointsRulesList{display:grid;gap:9px;font-size:13px;font-weight:850;line-height:1.35}
    .studentPointsRulesList b{color:#9d1457}
    .studentPointsRulesHero{border:1px solid #ffd166;border-radius:16px;background:linear-gradient(135deg,#10203d,#8a1952 58%,#ff7a35);color:#fff;padding:11px 12px;font-size:19px;font-weight:950;box-shadow:0 12px 24px rgba(138,25,82,.18)}
    .studentPointsRulesGroup{border:1px solid #ffd0e5;border-radius:15px;background:rgba(255,255,255,.88);padding:10px 11px;box-shadow:0 8px 18px rgba(255,115,181,.08)}
    .studentPointsRulesGroup b{display:block;color:#9d1457;font-size:13px;margin-bottom:5px}
    .studentPointsRulesLine{display:block;color:#10203d;font-size:12.5px;font-weight:900;line-height:1.38}
    .studentProfileSwitchCard{width:min(440px,100%);max-height:86vh;overflow:auto;border:1px solid #ffd0e5;border-radius:20px;background:linear-gradient(180deg,#fff 0%,#fff7fb 52%,#fff8dd 100%);color:#10203d;padding:16px;box-shadow:0 24px 54px rgba(16,32,61,.24),0 0 0 4px rgba(255,209,102,.10)}
    .studentProfileSwitchList{display:grid;gap:10px}
    .studentProfileSwitchProfileCard,.studentProfileSwitchAddCard{width:100%;border:1px solid #ffd0e5;border-radius:16px;background:rgba(255,255,255,.9);padding:10px;display:flex;align-items:center;gap:11px;text-align:left;color:#10203d;box-shadow:0 8px 18px rgba(255,115,181,.08);cursor:pointer}
    .studentProfileSwitchProfileCard.current{border-color:#ffd166;background:linear-gradient(135deg,#fff,#fff8dd)}
    .studentProfileSwitchProfileCard.needsLogin{border-style:dashed;background:linear-gradient(135deg,#fff7fb,#fff)}
    .studentProfileSwitchAvatar{width:48px;height:48px;border-radius:999px;border:1px solid #ffd0e5;background:linear-gradient(135deg,#eef7ff,#fff,#ffe8f5);display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 48px;color:#8a1952;font-size:15px;font-weight:950}
    .studentProfileSwitchAvatar img{width:100%;height:100%;object-fit:cover;display:block}
    .studentProfileSwitchInfo{display:grid;gap:2px;min-width:0;flex:1}
    .studentProfileSwitchName{font-size:15px;font-weight:950;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .studentProfileSwitchId{font-size:12px;font-weight:850;color:#6b5870}
    .studentProfileSwitchBadge{border:1px solid #ffd166;border-radius:999px;background:#fff8dd;color:#8a1952;padding:5px 8px;font-size:11px;font-weight:950;flex:0 0 auto}
    .studentProfileSwitchAddCard{justify-content:center;text-align:center;flex-direction:column;gap:3px;border-style:dashed;background:rgba(255,255,255,.76)}
    .studentProfileSwitchAddCard span{width:40px;height:40px;border-radius:999px;background:#10203d;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:28px;font-weight:950;line-height:1}
    .studentProfileSwitchAddCard b{font-size:15px;font-weight:950}
    .studentProfileSwitchAddCard small{font-size:11px;font-weight:800;color:#6b5870}
    .studentProfileSwitchAddForm{display:grid;gap:9px;border:1px solid #ffd0e5;border-radius:16px;background:rgba(255,255,255,.88);padding:10px}
    .studentProfileSwitchAddForm[hidden]{display:none}
    .studentProfileSwitchAddForm label{display:grid;gap:5px;color:#6b5870;font-size:12px;font-weight:950;text-transform:uppercase}
    .studentProfileSwitchAddForm input{width:100%;box-sizing:border-box;border:1px solid #ffd0e5;border-radius:12px;background:#fff;color:#10203d;padding:11px 12px;font-size:16px;font-weight:900;outline:none}
    .studentProfileSwitchAddForm input:focus{border-color:#9d1457;box-shadow:0 0 0 3px rgba(157,20,87,.12)}
    .studentProfileSwitchFormActions{display:grid;grid-template-columns:1fr 1.2fr;gap:8px}
    .studentProfileSwitchFormActions button{min-height:42px;border:1px solid #ffd0e5;border-radius:13px;background:#fff;color:#10203d;font-size:14px;font-weight:950}
    .studentProfileSwitchFormActions button:last-child{border-color:#11998e;background:#11998e;color:#fff}
    .studentProfileSwitchLimitNote{border:1px dashed rgba(157,20,87,.24);border-radius:16px;background:rgba(255,255,255,.72);padding:11px 12px;text-align:center;color:#6b5870;font-size:12px;font-weight:900;line-height:1.35}
    .studentProfileSwitchStatus,.studentProfileSwitchEmpty{min-height:16px;color:#8a1952;font-size:12px;font-weight:900;line-height:1.35}
    .studentProfileSwitchStatus.error{color:#b42318}
    .studentProfileWebCard{width:min(440px,100%);max-height:88vh;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;border:1px solid rgba(185,228,255,.92);border-radius:24px;background:radial-gradient(circle at 15% 7%,rgba(142,207,255,.32),transparent 27%),radial-gradient(circle at 92% 12%,rgba(255,209,102,.24),transparent 28%),linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(244,251,255,.96) 44%,rgba(255,248,223,.98) 100%);backdrop-filter:blur(14px);color:#10203d;padding:14px;box-shadow:0 30px 70px rgba(16,32,61,.34),0 0 0 4px rgba(142,207,255,.16),inset 0 0 0 1px rgba(255,255,255,.72);position:relative}
    .studentProfileWebCard:before{content:"";position:absolute;inset:0;background:linear-gradient(112deg,transparent 34%,rgba(255,255,255,.55) 50%,transparent 66%);transform:translateX(-88%);animation:studentProfileHeaderShine 4.3s ease-in-out infinite;pointer-events:none}
    .studentProfileWebCard>*{position:relative;z-index:1}
    .studentProfileWebHero{display:grid;gap:8px}
    .studentProfileLaptopShell{display:grid;justify-items:center;gap:0;margin:0 auto;width:min(342px,100%)}
    .studentProfileLaptopScreen{width:100%;aspect-ratio:16/10;border:8px solid #10203d;border-bottom-width:12px;border-radius:18px 18px 11px 11px;background:radial-gradient(circle at 50% 30%,#fff 0%,#fffaf0 42%,#e9f7ff 100%);box-shadow:0 18px 34px rgba(16,32,61,.23),0 0 0 2px rgba(255,255,255,.9) inset;overflow:hidden;position:relative}
    .studentProfileLaptopScreen:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.72) 48%,transparent 63%);transform:translateX(-90%);animation:studentProfileWebScreenShine 2.1s ease-out 1;pointer-events:none}
    .studentProfileLaptopTop{height:25px;background:linear-gradient(90deg,#10203d,#0e7490);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 10px;font-size:10px;font-weight:950}
    .studentProfileLaptopDots{display:inline-flex;gap:4px}
    .studentProfileLaptopDots i{width:6px;height:6px;border-radius:999px;background:#ffd166;display:block}
    .studentProfileLaptopSplash{height:calc(100% - 25px);position:relative;display:grid;place-items:center;padding:10px;box-sizing:border-box}
    .studentProfileLaptopLogoIntro{position:absolute;inset:0;display:grid;place-items:center;text-align:center;overflow:hidden;animation:studentProfileWebLogoZoom 14s ease-in-out infinite}
    .studentProfileLaptopLogoIntro:after{content:"";position:absolute;top:10%;bottom:10%;width:42px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.92),transparent);transform:translateX(-130px) rotate(18deg);animation:studentProfileWebLogoShine 14s ease-in-out infinite;pointer-events:none}
    .studentProfileLaptopLogoWrap{display:grid;justify-items:center;gap:8px;text-align:center}
    .studentProfileLaptopLogo{width:62px;height:62px;border-radius:18px;background:#fff;object-fit:contain;padding:5px;box-shadow:0 11px 24px rgba(16,32,61,.18),0 0 0 2px rgba(255,255,255,.9) inset}
    .studentProfileLaptopLogoText{font-size:17px;font-weight:950;color:#10203d;line-height:1}
    .studentProfileLaptopPreview{position:absolute;inset:9px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:7px;border:1px solid rgba(255,208,229,.8);border-radius:13px;background:linear-gradient(135deg,#fff,#fff8dc,#f1fbff);padding:8px;box-sizing:border-box;opacity:0;transform:translateY(8px) scale(.97);animation:studentProfileWebPreviewFade 14s ease-in-out infinite}
    .studentProfileLaptopPreviewTop{display:flex;align-items:center;gap:7px;color:#10203d;font-size:10px;font-weight:950}
    .studentProfileLaptopPreviewAvatar{width:28px;height:28px;border-radius:999px;background:linear-gradient(135deg,#ffd166,#ff8bc8);box-shadow:0 5px 10px rgba(157,20,87,.18)}
    .studentProfileLaptopPreviewMain{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-content:center}
    .studentProfileLaptopPreviewChip{border:1px solid #ffd166;border-radius:999px;background:#fff8dd;color:#8a1952;padding:5px;font-size:10px;font-weight:950;text-align:center}
    .studentProfileLaptopPreviewTile{border:1px solid #ffd0e5;border-radius:10px;background:#fff;color:#10203d;padding:7px 5px;font-size:10px;font-weight:950;text-align:center}
    .studentProfileLaptopBase{width:78%;height:16px;border-radius:0 0 18px 18px;background:linear-gradient(180deg,#dbeafe,#9bb8d8);box-shadow:0 14px 22px rgba(16,32,61,.14)}
    .studentProfileWebHeadline{font-size:20px;font-weight:950;line-height:1.08;color:#10203d;text-align:center;margin-top:2px}
    .studentProfileWebSteps{display:grid;gap:7px;margin-top:9px}
    .studentProfileWebStep{border:1px solid #c9eaff;border-radius:15px;background:rgba(255,255,255,.9);padding:9px 10px;color:#10203d;font-size:12px;font-weight:850;line-height:1.36;box-shadow:0 8px 18px rgba(14,116,144,.08)}
    .studentProfileWebStep b{color:#075985;font-weight:950}
    .studentProfileWebLinkBox{border:1.5px dashed #8ecfff;border-radius:14px;background:#f4fbff;color:#075985;padding:9px 10px;font-size:12px;font-weight:950;line-height:1.32;word-break:break-all;text-align:center}
    .studentProfileWebActions{display:grid;grid-template-columns:1.2fr .8fr;gap:9px;margin-top:12px}
    .studentProfileWebActions button{min-height:44px;border-radius:14px;border:1px solid #ffd0e5;background:#fff;color:#10203d;font-size:14px;font-weight:950;cursor:pointer}
    .studentProfileWebActions .studentProfileWebCopyBtn{border-color:#11998e;background:#11998e;color:#fff;box-shadow:0 11px 22px rgba(17,153,142,.18)}
    @keyframes studentProfileWebBtnShine{0%,58%{opacity:0;transform:translateX(-82%) rotate(14deg)}72%{opacity:.8}100%{opacity:0;transform:translateX(82%) rotate(14deg)}}
    @keyframes studentProfileWebScreenShine{0%{opacity:0;transform:translateX(-92%)}28%{opacity:.86}100%{opacity:0;transform:translateX(92%)}}
    @keyframes studentProfileWebLogoZoom{0%{opacity:0;transform:scale(.52);filter:blur(4px)}12%{opacity:1;transform:scale(1.05);filter:blur(0)}43%{opacity:1;transform:scale(1);filter:blur(0)}54%,100%{opacity:0;transform:scale(.96);filter:blur(1px)}}
    @keyframes studentProfileWebLogoShine{0%,18%{opacity:0;transform:translateX(-140px) rotate(18deg)}28%,46%{opacity:.92}52%,100%{opacity:0;transform:translateX(140px) rotate(18deg)}}
    @keyframes studentProfileWebPreviewFade{0%,48%{opacity:0;transform:translateY(8px) scale(.97)}58%,93%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(3px) scale(.99)}}
    @keyframes studentProfileWebAppOpen{0%{opacity:0;transform:scale(.84);filter:blur(3px)}42%{opacity:1;transform:scale(1.04);filter:blur(0)}100%{opacity:1;transform:scale(1);filter:blur(0)}}
    .studentAchievementGiftCard{width:min(470px,100%);max-height:88vh;overflow:auto;border:1px solid #ffd166;border-radius:22px;background:linear-gradient(180deg,#fffaf0 0%,#fff 46%,#fff2fa 100%);color:#10203d;padding:16px;box-shadow:0 26px 58px rgba(109,30,80,.26),0 0 0 4px rgba(255,209,102,.12);position:relative}
    .studentAchievementGiftHero{border:1px solid rgba(255,209,102,.88);border-radius:18px;background:radial-gradient(circle at 16% 18%,rgba(255,209,102,.34),transparent 30%),linear-gradient(135deg,#fff7cf,#fff,#ffe7f4);padding:12px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.75),0 10px 22px rgba(255,115,181,.10)}
    .studentAchievementGiftTitle{font-size:22px;font-weight:950;color:#8a1952;line-height:1.05}
    .studentAchievementGiftSub{font-size:12px;font-weight:900;color:#6b5870;margin-top:4px;line-height:1.35}
    .studentAchievementGiftScore{display:grid;gap:8px;margin-top:10px}
    .studentAchievementGiftHave,.studentAchievementGiftNext{display:flex;align-items:center;justify-content:center;gap:7px;border-radius:999px;font-weight:950;line-height:1.12}
    .studentAchievementGiftHave{min-height:44px;background:linear-gradient(135deg,#fff,#fff4c7,#ffe5f3);border:1.5px solid #ffd166;color:#10203d;font-size:17px;box-shadow:0 9px 18px rgba(255,115,181,.10),inset 0 0 0 1px rgba(255,255,255,.78)}
    .studentAchievementGiftNext{min-height:39px;background:linear-gradient(135deg,#10203d,#8a1952 58%,#ff7a35);border:1px solid #ffd166;color:#fff;font-size:13px;padding:8px 10px;box-shadow:0 10px 20px rgba(138,25,82,.18)}
    .studentAchievementGiftProgress{display:inline-flex;align-items:center;gap:5px;margin-top:8px;border-radius:999px;background:#fff;border:1px solid #ffd166;color:#8a1952;padding:6px 9px;font-size:12px;font-weight:950}
    .studentAchievementGiftGrid{display:grid;gap:10px;margin-top:12px}
    .studentAchievementGiftRow{display:grid;grid-template-columns:78px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #ffd0e5;border-radius:17px;background:rgba(255,255,255,.86);padding:9px;box-shadow:0 8px 18px rgba(255,115,181,.08);position:relative;overflow:hidden;min-height:94px}
    .studentAchievementGiftRow:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#ffd166,#ff8bc8);opacity:.72}
    .studentAchievementGiftVisual{width:78px;height:78px;border-radius:16px;background:linear-gradient(135deg,#fff7cf,#fff);display:flex;align-items:center;justify-content:center;font-size:29px;font-weight:950;color:#8a1952;position:relative;overflow:visible}
    .studentAchievementGiftVisual img{width:96px;height:96px;object-fit:contain;display:block;filter:drop-shadow(0 8px 14px rgba(120,45,12,.22))}
    .studentAchievementGiftRow.achievementBadgeL1 .studentAchievementGiftVisual img{animation:studentBadgeSlowSpin 7.5s linear infinite;transform-origin:center center}
    .studentAchievementGiftRow.premium{border-color:#ffd166;background:linear-gradient(135deg,#fff9db,#fff,#fff0f8);box-shadow:0 0 0 2px rgba(255,209,102,.18),0 10px 22px rgba(255,115,181,.12)}
    .studentAchievementGiftRow.premium:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 34%,rgba(255,255,255,.46) 50%,transparent 66%);transform:translateX(-80%);animation:achievementGiftRowSweep 4s ease-in-out infinite;pointer-events:none}
    .studentAchievementGiftName{font-size:14px;font-weight:950;color:#10203d;line-height:1.15}
    .studentAchievementGiftNeed{font-size:12px;font-weight:950;color:#9d1457;margin-top:5px}
    .studentAchievementGiftDesc{font-size:11px;font-weight:850;color:#6b5870;line-height:1.28;margin-top:3px}
    .studentAchievementGiftRow.unlocked{border-color:#73d397;background:linear-gradient(135deg,#f0fff7,#fff)}
    .studentAchievementGiftRow.locked{opacity:.88}
    .studentAchievementGiftCta{margin-top:10px;text-align:center;font-size:12px;font-weight:950;color:#8a1952;background:#fff7fb;border:1px dashed #ffc4df;border-radius:14px;padding:9px}
    .studentToastHistoryCard{width:min(450px,100%);max-height:84vh;overflow:auto;border:1px solid #ffd0e5;border-radius:20px;background:linear-gradient(180deg,#fff 0%,#fff7fb 58%,#fff8dc 100%);color:#10203d;padding:14px;box-shadow:0 24px 54px rgba(109,30,80,.22),0 0 0 4px rgba(255,209,102,.12);position:relative;overflow-x:hidden}
    .studentToastHistoryCard:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.54) 46%,transparent 62%);transform:translateX(-88%);animation:studentProfileHeaderShine 4.8s ease-in-out infinite;pointer-events:none}
    .studentToastHistoryCard>*{position:relative;z-index:1}
    .studentToastHistoryTabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
    .studentToastHistoryTabBtn{border:1.5px solid #ffd0e5;border-radius:999px;background:linear-gradient(135deg,#fff,#fff7fb,#fff8dc);color:#8a1952;min-height:38px;padding:8px 9px;font-size:11px;font-weight:950;line-height:1.1;box-shadow:0 6px 13px rgba(255,115,181,.08);cursor:pointer}
    .studentToastHistoryTabBtn.active{background:linear-gradient(135deg,#10203d,#8a1952);border-color:#10203d;color:#fff;box-shadow:0 10px 20px rgba(16,32,61,.20),0 0 0 3px rgba(255,209,102,.18)}
    .nativeNotificationSettingsBtn,.nativeDiagnosticLogBtn{width:100%;border:1.5px solid #ffd0e5;border-radius:14px;background:linear-gradient(135deg,#fff7fb,#fff8dc);color:#8a1952;padding:9px 11px;margin-top:10px;text-align:left;font-size:12px;font-weight:950;box-shadow:0 8px 18px rgba(255,115,181,.10);cursor:pointer}
    .nativeNotificationSettingsBtn.dropItem,.nativeDiagnosticLogBtn.dropItem{margin-top:0}
    .studentToastHistoryTabCount{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;margin-left:5px;padding:0 6px;border-radius:999px;background:rgba(255,255,255,.78);color:#8a1952;font-size:10px;font-weight:950}
    .studentToastHistoryTabBtn.active .studentToastHistoryTabCount{background:#fff;color:#10203d}
    .studentToastHistoryList{display:grid;gap:8px;margin-top:10px}
    .studentToastHistoryItem{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:start;border:1px solid #ffd0e5;border-radius:15px;background:#fff;padding:9px 10px;box-shadow:0 6px 14px rgba(255,115,181,.08)}
    .studentToastHistoryItem.success{border-color:#9ee6c4;background:linear-gradient(135deg,#f1fff8,#fff)}
    .studentToastHistoryItem.challenge{border-color:#ffd166;background:linear-gradient(135deg,#fff8d7,#fff,#fff0f8);box-shadow:0 0 0 2px rgba(255,209,102,.14),0 8px 16px rgba(240,45,143,.10)}
    .studentToastHistoryItem.class{border-color:#b7efe8;background:linear-gradient(135deg,#ecfffb,#fff,#fff8db)}
    .studentToastHistoryItem.statement{grid-template-columns:34px minmax(0,1fr);border-color:#ffd166;background:linear-gradient(135deg,#fffdf2,#fff,#fff6fb);box-shadow:0 0 0 2px rgba(255,209,102,.14),0 10px 18px rgba(16,32,61,.08)}
    .studentToastHistoryItem.statement.credit{border-color:#9ee6c4;background:linear-gradient(135deg,#f1fff8,#fff,#fff8db)}
    .studentToastHistoryItem.statement.debit{border-color:#ffd0e5;background:linear-gradient(135deg,#fff7fb,#fff,#fffaf0)}
    .studentToastHistoryIcon{width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#10203d,#8a1952);color:#fff;font-size:16px;font-weight:950;box-shadow:0 8px 16px rgba(16,32,61,.18)}
    .studentToastHistoryItem.success .studentToastHistoryIcon{background:linear-gradient(135deg,#22c55e,#14b8a6)}
    .studentToastHistoryItem.challenge .studentToastHistoryIcon{background:linear-gradient(135deg,#ffd166,#ff4f9b);color:#7a1048}
    .studentToastHistoryItem.class .studentToastHistoryIcon{background:linear-gradient(135deg,#20c7b5,#0f8a7d)}
    .studentToastHistoryTitle{font-size:13px;font-weight:950;color:#10203d;line-height:1.25}
    .studentToastHistoryMessage{font-size:11px;font-weight:850;color:#6b5870;line-height:1.35;margin-top:3px}
    .studentToastStatementLine{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
    .studentToastStatementChip{display:inline-flex;align-items:center;border:1px solid #ffd0e5;border-radius:999px;background:#fff;padding:3px 7px;font-size:10px;font-weight:950;color:#10203d;line-height:1}
    .studentToastStatementChip.balance{border-color:#ffd166;background:#fff9db;color:#8a1952}
    .studentToastHistorySectionTitle{margin:12px 0 0;font-size:12px;font-weight:950;color:#8a1952;text-transform:uppercase;letter-spacing:.04em}
    .studentToastHistoryTime{font-size:10px;font-weight:900;color:#9d1457;margin-top:4px}
    .studentToastHistoryThumb{margin-top:7px;border:1px solid #ffd0e5;border-radius:10px;background:#fff;padding:0;overflow:hidden;width:72px;height:72px;display:block}
    .studentToastHistoryThumb img{width:100%;height:100%;object-fit:cover;display:block}
    .friendsGroupChallengeNoticeOverlay{position:fixed;inset:0;z-index:12000;background:rgba(16,32,61,.54);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:18px}
    .friendsGroupChallengeNoticeCard{width:min(420px,100%);border:1.5px solid #ffd166;border-radius:20px;background:linear-gradient(160deg,#fff 0%,#fff7fb 58%,#fff6d8 100%);box-shadow:0 24px 56px rgba(16,32,61,.30),0 0 0 4px rgba(255,209,102,.18);padding:14px;color:#10203d;position:relative;overflow:hidden}
    .friendsGroupChallengeNoticeCard:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.58) 44%,transparent 62%);transform:translateX(-88%);animation:studentProfileHeaderShine 4.5s ease-in-out infinite;pointer-events:none}
    .friendsGroupChallengeNoticeCard>*{position:relative;z-index:1}
    .friendsGroupChallengeNoticeHero{border-radius:16px;background:linear-gradient(135deg,#10203d,#8a1952 58%,#ff7a35);color:#fff;padding:12px 13px;box-shadow:0 12px 26px rgba(138,25,82,.22)}
    .friendsGroupChallengeNoticeHeader{font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.04em;color:#ffd166}
    .friendsGroupChallengeNoticeTitle{font-size:21px;font-weight:950;line-height:1.12;margin-top:4px}
    .friendsGroupChallengeNoticeBody{margin-top:11px;border:1px solid #ffd0e5;border-radius:15px;background:rgba(255,255,255,.88);padding:12px;font-size:14px;font-weight:850;line-height:1.42;color:#473447;white-space:pre-line}
    .studentDiamondAdjustmentNoticeReason{margin-top:8px;color:#8a1952;font-weight:950}
    .friendsGroupChallengeNoticeDelta{display:inline-flex;align-items:center;gap:4px;margin-top:10px;border:1px solid #ffd166;border-radius:999px;background:#fffdf2;color:#8a1952;padding:6px 10px;font-size:12px;font-weight:950}
    .friendsGroupChallengeNoticeActions{display:grid;gap:7px;margin-top:13px}
    .friendsGroupChallengeNoticeGotIt{min-height:48px;border:0;border-radius:999px;background:linear-gradient(135deg,#16b5aa,#ef2d8f,#ff7a35);color:#fff;font-size:17px;font-weight:950;box-shadow:0 12px 24px rgba(20,184,166,.18);cursor:pointer}
    .friendsGroupChallengeNoticeGotIt:disabled{opacity:.72;cursor:wait}
    .friendsGroupChallengeNoticeGotIt.loading{background-size:220% 100%;animation:studentProfileHeaderShine 1.25s ease-in-out infinite}
    .friendsGroupChallengeNoticeError{font-size:11px;font-weight:900;color:#9d1457;text-align:center;min-height:14px}
    #hwPlannerBtn,#feeFriendsGroupAdminBtn{position:relative}
    .classHubLaunchUnreadDot{display:none;position:absolute;top:-4px;right:-4px;min-width:10px;height:10px;border-radius:999px;background:#ef4444;border:2px solid #fff;box-shadow:0 0 0 3px rgba(239,68,68,.16),0 4px 10px rgba(239,68,68,.34);z-index:3}
    .classHubLaunchUnreadDot[data-unread-count]:not([data-unread-count="0"]){min-width:18px;height:18px;padding:0 4px;color:#fff;font-size:10px;font-weight:950;line-height:18px;text-align:center;top:-8px;right:-8px}
    .classHubLaunchUnreadDot.show{display:block}
    .studentProfileSectionEmpty{border:1px dashed #ffc4df;border-radius:14px;background:#fff7fb;color:#8a1952;padding:18px;text-align:center;font-size:14px;font-weight:900;line-height:1.45}
    .studentProfileNoHomeworkCard{border:1.5px solid #ffd166;background:radial-gradient(circle at 14% 18%,rgba(255,209,102,.25) 0 22px,transparent 23px),radial-gradient(circle at 88% 16%,rgba(255,123,187,.22) 0 25px,transparent 26px),linear-gradient(135deg,#fff 0%,#fff7fb 48%,#fff8d8 100%);box-shadow:0 16px 34px rgba(157,20,87,.14),0 0 0 3px rgba(255,209,102,.12);text-align:center}
    .studentProfileNoHomeworkMessage{position:relative;border:1px dashed rgba(255,196,223,.95);border-radius:16px;background:rgba(255,255,255,.76);color:#8a1952;padding:22px 16px;font-size:18px;font-weight:950;line-height:1.35;text-shadow:0 0 14px rgba(255,144,203,.24);overflow:hidden}
    .studentProfileNoHomeworkMessage:before{content:"";position:absolute;inset:0;background:linear-gradient(112deg,transparent 0%,rgba(255,255,255,.62) 46%,transparent 62%);transform:translateX(-90%);animation:studentProfileHeaderShine 4.4s ease-in-out infinite;pointer-events:none}
    .studentProfileCardList{display:grid;gap:10px}
    .studentProfileReportItem{border:1px solid #ffc4df;border-radius:14px;background:#fff;padding:10px;box-shadow:0 8px 18px rgba(255,115,181,.08);overflow:hidden}
    .studentProfileReportItem summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;cursor:pointer}
    .studentProfileReportItem summary::-webkit-details-marker{display:none}
    .studentProfileReportSummaryText{min-width:0;display:grid;gap:2px}
    .studentProfileReportSummaryTitle{font-size:15px;font-weight:900;color:#10203d;line-height:1.18;overflow-wrap:anywhere}
    .studentProfileReportSummaryMeta{font-size:10px;font-weight:900;color:#9d1457;white-space:normal;line-height:1.25}
    .studentProfileReportOpenPill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#10203d;color:#fff;padding:7px 10px;font-size:11px;font-weight:950;white-space:nowrap}
    .studentProfileReportOpenPill:before{content:"Open"}
    .studentProfileReportItem[open] .studentProfileReportOpenPill:before{content:"Close"}
    .studentProfileReportBody{display:grid;gap:10px;margin-top:10px;min-width:0}
    .studentProfileReportTop{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;align-items:start;min-width:0}
    .studentProfileReportThumbBtn{border:0;background:transparent;padding:0;text-align:left;width:112px}
    .studentProfileReportThumb{width:112px;height:158px;border:1px solid #d8e2ef;border-radius:10px;background:#f8fbff;object-fit:cover;display:block}
    .studentProfileReportTitle{font-size:15px;font-weight:900;color:#10203d;line-height:1.2}
    .studentProfileReportMeta{font-size:11px;font-weight:900;color:#6b5870;margin-top:4px;line-height:1.35}
    .studentProfileDownloadBtn,.studentProfileSheetBtn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:11px;background:#10203d;color:#fff;padding:9px 10px;font-size:12px;font-weight:900;text-decoration:none;margin-top:8px;max-width:100%;text-align:center}
    .studentProfileSheetBtn{background:#0f766e}
    .studentProfileTop3{display:grid;gap:6px;margin-top:10px}
    .studentProfileTop3Row{display:grid;grid-template-columns:34px 42px minmax(0,1fr) auto;gap:7px;align-items:center;border:1px solid #ffd0e5;border-radius:12px;background:#fff7fb;padding:7px;font-size:12px;font-weight:900;color:#10203d;min-width:0}
    .studentProfileTop3Rank{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#fff7db;border:1px solid #ffd166;color:#8a1952;font-size:15px}
    .studentProfileTop3SheetThumb{width:40px;height:48px;border:1px solid #ffd0e5;border-radius:8px;background:#fff;object-fit:cover;display:block}
    .studentProfileTop3Name{min-width:0;font-size:12px;font-weight:950;color:#10203d;line-height:1.15;overflow:hidden;text-overflow:ellipsis}
    .studentProfileTop3NameText{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .studentProfileTop3Score{display:grid;gap:5px;justify-items:end;min-width:72px;font-size:11px;color:#10203d;white-space:nowrap}
    .studentProfileTop3Hint{border:1px solid #ffd0e5;border-radius:10px;background:#fff7fb;color:#8a1952;padding:7px 9px;font-size:11px;font-weight:900;line-height:1.3}
    .studentProfileTop3SheetBtn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:999px;background:#10203d;color:#fff!important;text-decoration:none;padding:6px 8px;font-size:10px;font-weight:950;white-space:nowrap}
    .studentProfileSheetModal{width:min(900px,96vw);max-height:94vh}
    .studentProfileCheckedSheetWrap{position:relative;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:12px;overflow:hidden}
    .studentProfileCheckedSheetWrap img{display:block;max-width:100%;max-height:76vh;object-fit:contain;background:#fff}
    .studentProfileCheckedStamp{position:absolute;right:10px;bottom:10px;width:38px;height:38px;border-radius:999px;background:rgba(255,255,255,.92);border:2px solid #16a34a;color:#16a34a;display:inline-flex;align-items:center;justify-content:center;font-size:24px;font-weight:950;box-shadow:0 8px 18px rgba(22,163,74,.22);transform:rotate(-8deg)}
    .studentProfileNameLine{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .studentProfileIdentityText{font-size:18px;font-weight:900;color:#10203d;line-height:1.15}
    .studentProfileScorePill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#fff4d6;border:1px solid #ffd166;color:#8a1952;padding:5px 9px;font-size:12px;font-weight:900;white-space:nowrap}
    .studentProfileMetaLine{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:3px}
    .studentProfileMetaLine.compact{margin-top:5px}
    .studentProfileMetaChip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#fff7fb;border:1px solid #ffd0e5;color:#6b5870;padding:4px 8px;font-size:11px;font-weight:900;line-height:1.25}
    .studentProfileMetaChip.review{background:#fffaf0;border-color:#f1ddaa;color:#8a4b00}
    .studentProfileSlotList{display:block;margin-top:4px;font-size:11px;font-weight:900;color:#6b5870;line-height:1.35}
    .feeCyclePaymentBreakdown div{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0}
    .feeCyclePaymentBreakdown span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.78}
    .feeCyclePaymentBreakdown b{flex:0 0 auto;font-weight:950}
    .feeCyclePaymentBreakdown .strong{border-top:1px solid rgba(17,97,60,.16);padding-top:2px;opacity:1}
    .feeCycleCashfreeTxn{display:flex;align-items:center;justify-content:center;gap:2px;max-width:100%;min-width:0;white-space:nowrap;overflow:hidden}
    .cashfreeTxnLabel{flex:0 0 auto}
    .cashfreeTxnValue{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:ltr}
    .guardianFeeBox{display:grid;gap:10px;border-top:1px solid #f1dedb;padding-top:12px;margin-top:2px}
    .guardianFeeBox.guardianFeeDirectCard{border-top:0;border:1px solid rgba(255,196,223,.86);background:linear-gradient(135deg,#fff 0%,#fff8fb 46%,#f4fbff 100%);border-radius:20px;padding:14px;margin:0 0 12px;box-shadow:0 14px 30px rgba(157,20,87,.09),0 0 0 2px rgba(255,255,255,.76) inset}
    .guardianFeeHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .guardianFeeHeader>div{min-width:0}
    .guardianFeeHeaderActions{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:8px}
    .guardianFeeTitle{font-size:19px;font-weight:950;color:#10203d;line-height:1.14}
    .guardianFeeMeta{font-size:12px;font-weight:850;color:#64748b;line-height:1.35}
    .guardianFeePolicyNote{max-width:310px;margin-top:4px;color:#6b5870;font-size:10.7px;font-weight:750;line-height:1.3;letter-spacing:0;opacity:.86}
    .guardianFeeTitle,.guardianFeeMeta,.guardianFeePolicyNote{overflow-wrap:anywhere}
    .guardianFeeToggle{border:1px solid #e7d5d2;border-radius:12px;background:#fff;color:#7b0909;padding:12px;font-size:14px;font-weight:900;box-shadow:none}
    .guardianFeePanel{display:none;gap:10px}
    .guardianFeePanel.show{display:grid}
    .guardianFeeGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .guardianFeeField{display:grid;gap:5px}
    .guardianFeeLabel{font-size:12px;font-weight:950;color:#6b5870;line-height:1.2}
    .guardianFeeGrid input{width:100%;box-sizing:border-box;padding:12px;border:1.5px solid #dbeafe;border-radius:12px;background:#fff;color:#10203d;font-size:14px;font-weight:900}
    .guardianFeeTypeField{margin-top:2px}
.guardianFeeRejoinBox{display:grid;gap:10px;margin-top:2px}
.guardianFeeRejoinHeading{font-size:22px;line-height:1.12;font-weight:950;color:#10203d;margin:0}
.guardianFeeRejoinSlotList{display:grid;grid-template-columns:1fr;gap:8px}
.guardianFeeRejoinSlot{display:grid;grid-template-columns:auto 1fr;gap:6px 8px;align-items:center;border:1px solid #dbeafe;background:#fff;border-radius:14px;padding:8px 10px;color:#0f172a;font-weight:850}
.guardianFeeRejoinSlot input{width:15px;height:15px;accent-color:#8a1952}
.guardianFeeRejoinSlotText,.guardianFeeRejoinSlot span{font-size:12.5px;line-height:1.25;font-weight:850}
.guardianFeeRejoinSlot small{display:none}
.guardianFeeRejoinSlotText{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.guardianFeeRejoinPreviousBadge{display:inline-flex;flex:0 0 auto;border:1px solid #99f6e4;border-radius:999px;background:#ecfdf5;color:#0f766e;padding:3px 7px;font-size:10px;line-height:1;font-style:normal;font-weight:950}
.guardianFeeSummaryTitle{margin:0 0 8px;color:#10203d;font-size:13px;line-height:1.2;font-weight:950;text-transform:uppercase;letter-spacing:.04em}
    .guardianFeeRejoinSlot.disabled{opacity:.55;background:#f8fafc}
    .guardianFeeTypeSelect{width:100%;box-sizing:border-box;padding:12px 13px;border:1.5px solid #dbeafe;border-radius:14px;background:#fff;color:#10203d;font-size:14px;font-weight:900;outline:none;box-shadow:0 7px 16px rgba(16,32,61,.04)}
    .guardianFeeTypeSelect:focus{border-color:#9d1457;box-shadow:0 0 0 3px rgba(157,20,87,.1)}
    .guardianFeeGrid.profileLocked{display:none}
    .guardianFeeCheckBtn,.guardianFeePayBtn{border:none;border-radius:12px;padding:12px;font-size:15px;font-weight:900}
    .guardianFeeCheckBtn{background:#10203d;color:#fff;box-shadow:0 10px 20px rgba(16,32,61,.14)}
    .guardianFeeRefreshIcon{width:19px;height:19px;display:block;fill:none;stroke:#8a1952;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}
    .guardianFeeRefreshIconBtn.refreshing .guardianFeeRefreshIcon{animation:guardianFeeRefreshSpin .75s linear infinite}
    .guardianFeeActions{display:grid;gap:8px}
    .guardianFeePayBtn{background:linear-gradient(180deg,#c40000 0%,#970000 100%);color:#fff;box-shadow:0 12px 22px rgba(149,0,0,.18),0 1px 0 rgba(255,255,255,.18) inset}
    .guardianFeePayBtn.locked,.guardianFeePayBtn:disabled.locked{background:linear-gradient(180deg,#d9dee8 0%,#aab3c2 100%);color:#f8fafc;box-shadow:none;cursor:not-allowed;opacity:1}
    .guardianFeeDiscountWrap{display:grid;justify-items:start;gap:8px;margin-top:0;width:100%;min-width:0}
    .guardianFeeDiscountGift{display:inline-grid;justify-items:center;gap:2px;border:0;background:transparent;padding:0 4px 2px;min-width:66px;touch-action:manipulation}
    .guardianFeeDiscountGiftFrame{display:grid;place-items:center;width:58px;height:52px;border-radius:18px;background:radial-gradient(circle at 50% 20%,rgba(255,255,255,.98) 0%,rgba(255,247,237,.92) 50%,rgba(255,228,230,.72) 100%);box-shadow:0 10px 22px rgba(219,39,119,.15),0 0 0 1px rgba(255,255,255,.75) inset;animation:guardianDiscountGiftFloat 2.8s ease-in-out infinite}
    .guardianFeeDiscountGiftImg{display:block;width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 10px 15px rgba(16,32,61,.16))}
    .guardianFeeDiscountLabel{position:relative;display:inline-block;font-size:10px;font-weight:950;line-height:1.1;color:#8a1952}
    .studentFeeRulesBookWrap{display:grid;justify-items:center;gap:2px;width:auto;min-width:42px}
    .studentFeeRulesBookBtn{display:inline-grid;justify-items:center;gap:0;border:0;background:transparent;padding:0;min-width:42px;touch-action:manipulation}
    .studentFeeRulesBookFrame{display:grid;place-items:center;width:40px;height:36px;border-radius:14px;background:radial-gradient(circle at 50% 18%,rgba(255,255,255,.98) 0%,rgba(255,247,237,.94) 52%,rgba(255,232,224,.78) 100%);box-shadow:0 8px 16px rgba(88,28,25,.14),0 0 0 1px rgba(255,255,255,.78) inset}
    .studentFeeRulesBookImg{display:block;width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(16,32,61,.15))}
    .studentFeeRulesBookLabel{position:relative;display:inline-block;font-size:8.5px;font-weight:950;line-height:1;color:#7f1d1d;white-space:nowrap}
    .studentFeeRulesInfo{display:none;width:100%;box-sizing:border-box;min-width:0;color:#4b5563;font-size:11px;font-weight:850;line-height:1.35;overflow-wrap:anywhere}
    .studentFeeRulesInfo.show{position:fixed;inset:0;z-index:10090;display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}
    .studentFeeRulesBackdrop{position:absolute;inset:0;background:rgba(16,32,61,.48);backdrop-filter:blur(4px)}
    .studentFeeRulesPanel{position:relative;z-index:1;width:min(520px,100%);max-height:min(90vh,780px);overflow:auto;box-sizing:border-box;min-width:0;border:1px solid rgba(127,29,29,.24);background:linear-gradient(135deg,#fffaf3 0%,#fff 48%,#fff4f8 100%);border-radius:22px;padding:9px;box-shadow:0 26px 60px rgba(16,32,61,.25),0 0 0 1px rgba(255,255,255,.78) inset;-webkit-overflow-scrolling:touch}
    .studentFeeRulesCloseBtn{position:absolute;right:10px;top:10px;z-index:2;display:grid;place-items:center;width:31px;height:31px;border:1px solid rgba(127,29,29,.18);border-radius:999px;background:rgba(255,255,255,.94);color:#7f1d1d;font-size:14px;font-weight:950;line-height:1;box-shadow:0 8px 18px rgba(127,29,29,.12);touch-action:manipulation}
    .studentFeeRulesHero{display:flex;align-items:center;gap:8px;border:1px solid rgba(127,29,29,.22);border-radius:16px;padding:8px 40px 8px 8px;background:linear-gradient(135deg,#fffdf4 0%,#fff7fb 100%);box-shadow:0 8px 20px rgba(127,29,29,.08),0 0 0 1px rgba(255,255,255,.72) inset}
    .studentFeeRulesHeroIcon{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:radial-gradient(circle at 50% 18%,#fff 0%,#fff7ed 52%,#fee2e2 100%);box-shadow:0 8px 16px rgba(127,29,29,.13),0 0 0 1px rgba(255,255,255,.85) inset;overflow:hidden}
    .studentFeeRulesHeroIcon img{display:block;width:44px;height:44px;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(16,32,61,.14))}
    .studentFeeRulesHeroText{display:grid;gap:3px;min-width:0}
    .studentFeeRulesHeroText strong{font-size:16px;line-height:1.05;color:#10203d;font-weight:950}
    .studentFeeRulesHeroText span{font-size:10.2px;color:#6b4b12;font-weight:850;line-height:1.22}
    .studentFeeRulesList{display:grid;gap:7px;margin-top:8px}
    .studentFeeRulesSection{border:1px solid rgba(244,114,182,.24);border-radius:15px;padding:8px 10px;background:rgba(255,255,255,.94);box-shadow:0 9px 18px rgba(16,32,61,.06),0 1px 0 rgba(255,255,255,.88) inset}
    .studentFeeRulesSectionTitle{margin-bottom:4px;font-size:12.8px;line-height:1.12;color:#10203d;font-weight:950}
    .studentFeeRulesSection p{margin:4px 0 0;color:#5b6475;font-size:10.8px;font-weight:850;line-height:1.3}
    .studentFeeRulesSection p:first-of-type{margin-top:0}
    .guardianFeeDiscountInfo{display:none;width:100%;box-sizing:border-box;min-width:0;color:#4b5563;font-size:11px;font-weight:850;line-height:1.35;overflow-wrap:anywhere}
    .guardianFeeDiscountInfo.show{position:fixed;inset:0;z-index:2600;display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}
    .guardianFeeDiscountBackdrop{position:absolute;inset:0;background:rgba(16,32,61,.42);backdrop-filter:blur(3px)}
    .guardianFeeDiscountLine{display:none}
    .guardianFeeDiscountRewardPanel{position:relative;z-index:1;width:min(468px,100%);max-height:min(90vh,760px);overflow:auto;box-sizing:border-box;min-width:0;border:1px solid rgba(245,158,11,.36);background:linear-gradient(135deg,#fffaf0 0%,#fff 48%,#fff4f9 100%);border-radius:20px;padding:10px;box-shadow:0 24px 50px rgba(16,32,61,.24),0 0 0 1px rgba(255,255,255,.78) inset;-webkit-overflow-scrolling:touch}
    .guardianFeeDiscountCloseBtn{position:absolute;right:9px;top:9px;z-index:1;display:grid;place-items:center;width:31px;height:31px;border:1px solid rgba(157,20,87,.18);border-radius:999px;background:rgba(255,255,255,.94);color:#9d1457;font-size:14px;font-weight:950;line-height:1;box-shadow:0 8px 18px rgba(157,20,87,.12);touch-action:manipulation}
    .guardianFeeDiscountRewardHero{display:flex;align-items:center;gap:10px;border:1px solid rgba(245,158,11,.36);border-radius:16px;padding:9px 42px 9px 9px;background:linear-gradient(135deg,#fffdf4 0%,#fff7fb 100%);box-shadow:0 8px 20px rgba(245,158,11,.09),0 0 0 1px rgba(255,255,255,.72) inset}
    .guardianFeeDiscountRewardHeroIcon{flex:0 0 auto;display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:radial-gradient(circle at 50% 20%,#fff 0%,#fff7ed 52%,#ffe4e6 100%);box-shadow:0 8px 16px rgba(219,39,119,.14),0 0 0 1px rgba(255,255,255,.85) inset;overflow:hidden}
    .guardianFeeDiscountRewardHeroIcon img{display:block;width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(16,32,61,.14))}
    .guardianFeeDiscountRewardHeroText{display:grid;gap:2px;min-width:0}
    .guardianFeeDiscountRewardHeroText strong{font-size:17px;line-height:1.1;color:#10203d;font-weight:950;white-space:nowrap}
    .guardianFeeDiscountRewardHeroText span{font-size:12px;color:#6b7280;font-weight:850;overflow-wrap:anywhere;white-space:nowrap}
    .guardianFeeDiscountRewardList{display:grid;gap:7px;margin-top:8px}
    .guardianFeeDiscountRewardRow{display:flex;align-items:center;gap:10px;min-width:0;width:100%;border:1px solid rgba(244,114,182,.28);border-radius:16px;padding:9px 12px 9px 10px;background:rgba(255,255,255,.94);box-shadow:0 9px 18px rgba(16,32,61,.07),0 1px 0 rgba(255,255,255,.88) inset;text-align:left;font:inherit;cursor:pointer;touch-action:manipulation}
    .guardianFeeDiscountRewardRow:after{content:"";flex:0 0 auto;width:8px;height:8px;margin-left:auto;border-top:2px solid rgba(138,25,82,.54);border-right:2px solid rgba(138,25,82,.54);transform:rotate(45deg)}
    .guardianFeeDiscountRewardRow:active{transform:scale(.992);box-shadow:0 5px 14px rgba(16,32,61,.08),0 1px 0 rgba(255,255,255,.88) inset}
    .guardianFeeDiscountRewardRow.featured{border-color:rgba(245,158,11,.48);background:linear-gradient(135deg,#fffdf1 0%,#fff 100%);box-shadow:0 10px 22px rgba(245,158,11,.1),0 0 0 1px rgba(255,255,255,.76) inset}
    .guardianFeeDiscountRewardRow.soft{border-style:dashed;background:linear-gradient(135deg,#fbfdff 0%,#fff7fb 100%)}
    .guardianFeeDiscountRewardIcon{flex:0 0 auto;display:grid;place-items:center;width:42px;height:42px;border-radius:16px;background:linear-gradient(135deg,#fff7ed 0%,#ffe4e6 100%);color:#8a1952;font-size:13px;font-weight:950;box-shadow:0 0 0 1px rgba(255,255,255,.84) inset;text-align:center;line-height:1.05}
    .guardianFeeDiscountRewardRow.featured .guardianFeeDiscountRewardIcon{background:linear-gradient(135deg,#fff7ed 0%,#ffe4e6 100%);color:#8a1952}
    .guardianFeeDiscountRewardText{display:grid;gap:3px;min-width:0}
    .guardianFeeDiscountRewardText strong{font-size:14px;line-height:1.12;color:#10203d;font-weight:950;white-space:nowrap}
    .guardianFeeDiscountRewardText span{font-size:12px;color:#64748b;font-weight:850;overflow-wrap:anywhere;line-height:1.14}
    .guardianFeeDiscountRewardText span+span{margin-top:0}
    .guardianFeeDiscountPlanAmount{color:#8a1952;font-weight:950}
    .guardianFeeDiscountNote{display:grid;gap:4px;margin-top:8px;border:1px dashed rgba(157,20,87,.22);border-radius:15px;padding:9px 10px;background:rgba(255,255,255,.74)}
    .guardianFeeDiscountNote strong{font-size:13px;color:#10203d;font-weight:950}
    .guardianFeeDiscountNote span{font-size:11.5px;color:#64748b;font-weight:850;line-height:1.26}
    .guardianFeeSurpriseDiscount{display:grid;grid-template-columns:1fr;gap:5px;align-items:start;margin-top:8px;border:1px solid rgba(245,158,11,.34);border-radius:15px;padding:9px 10px;background:linear-gradient(135deg,#fffaf0 0%,#fff7fb 100%);box-shadow:0 8px 16px rgba(245,158,11,.08),0 1px 0 rgba(255,255,255,.86) inset}
    .guardianFeeSurpriseDiscount strong{font-size:12.5px;color:#10203d;font-weight:950;line-height:1.15;white-space:nowrap}
    .guardianFeeSurpriseDiscount span{font-size:11.3px;color:#64748b;font-weight:850;line-height:1.24}
    @keyframes guardianDiscountGiftFloat{0%,100%{transform:translateY(0) scale(1);box-shadow:0 10px 22px rgba(219,39,119,.15),0 0 0 1px rgba(255,255,255,.75) inset}50%{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 28px rgba(245,158,11,.2),0 0 0 1px rgba(255,255,255,.85) inset}}
    @keyframes guardianDiscountShine{0%{background-position:0% 50%}100%{background-position:220% 50%}}
    @keyframes guardianFeeRefreshSpin{to{transform:rotate(360deg)}}
    .guardianFeeDirectPage .guardianFeeToggle{display:none}
    .guardianFeeDirectPage .guardianFeePanel{display:grid}
    .guardianFeeDirectPage .homeworkKittyHero{align-items:flex-start}
    .guardianFeeDirectPage .homeworkKittyHero>div{min-width:0}
    .guardianFeeDirectPage .homeworkPublicTitle{white-space:normal;line-height:1.08}
    .guardianFeeDirectPage .homeworkPublicMeta{overflow-wrap:anywhere}
    .guardianFeeSummary{display:none;border:1px solid #bbf7d0;background:linear-gradient(135deg,#ecfdf5 0%,#f7fffb 58%,#f0fff8 100%);color:#075f55;border-radius:16px;padding:12px;font-size:12px;font-weight:900;line-height:1.35;box-shadow:0 10px 22px rgba(6,95,70,.06),0 0 0 1px rgba(255,255,255,.76) inset}
    .guardianFeeSummary.show{display:block}
    .guardianFeeSummaryPending{border-color:#e8d9ad;background:linear-gradient(135deg,#fffdf7 0%,#ffffff 100%);color:#6b5870;box-shadow:0 8px 18px rgba(16,32,61,.04),0 0 0 1px rgba(255,255,255,.76) inset}
    .guardianFeePendingTitle{font-size:13px;font-weight:950;color:#10203d;margin-bottom:3px}
    .guardianFeePendingText{font-size:12px;font-weight:850;color:#6b5870;line-height:1.35}
    .guardianFeeAmount{font-size:25px;font-weight:950;color:#064e3b;line-height:1.05;margin-bottom:9px;letter-spacing:0}
    .guardianFeeDiscountApplied{margin:-2px 0 7px;display:inline-flex;width:max-content;max-width:100%;align-items:center;border-radius:999px;background:#dcfce7;color:#047857;padding:5px 9px;font-size:11px;font-weight:950;line-height:1.15}
    .guardianFeeDiscountApplied.muted{background:#eef2f7;color:#64748b}
    .guardianFeeSummaryLine{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 0;border-top:1px solid rgba(6,78,59,.08)}
    .guardianFeeSummaryLine:first-of-type{border-top:0}
    .guardianFeeSummaryLine strong{font-size:11px;color:#0f766e}
    .guardianFeeSummaryLine span{text-align:right;color:#075f55}
    .guardianFeeSummaryLine.strong strong,.guardianFeeSummaryLine.strong span{color:#064e3b;font-weight:950}
    .guardianFeeSummaryLine.muted span,.guardianFeeSummaryLine.muted strong{color:#64748b}
    .guardianFeeStatus{min-height:18px;font-size:12px;font-weight:900;color:#64748b;line-height:1.35}
    .guardianFeeStatus.ok{color:#047857}
    .guardianFeeStatus.pending{color:#93650b}
    .guardianFeeStatus.err{color:#b42318}
    .admissionPublicPage{min-height:100vh;padding:8px 12px 36px;display:grid;place-items:start center;background:#f7eedc;color:#202124}
    .admissionPublicBody:before{display:none!important}
    .admissionPublicPage:before,.admissionPublicPage:after{display:none!important}
    .admissionPublicCard{width:min(640px,100%);display:grid;gap:12px}
    .admissionHeaderImage{width:100%;aspect-ratio:1650/579;object-fit:cover;border-radius:8px 8px 0 0;display:block;background:#ddd}
    .admissionFormIntro,.admissionFormCard,.admissionPaymentPanel,.admissionCongrats{background:#fff;border:1px solid #dadce0;border-radius:8px}
    .admissionFormIntro{border-top:10px solid #e5a924;padding:24px 23px 18px;display:grid;gap:12px}
    .admissionTitleRow{display:flex;align-items:center;gap:10px}
    .admissionTitleLogo{width:38px;height:38px;border-radius:10px;object-fit:cover;box-shadow:0 1px 3px rgba(32,33,36,.16)}
    .admissionTitle{font-size:30px;font-weight:400;line-height:1.2;color:#202124;letter-spacing:0}
    .admissionMeta{font-size:14px;font-weight:400;color:#202124;line-height:1.45}
    .admissionAccountLine{border-top:1px solid #dadce0;margin:4px -23px 0;padding:12px 23px 0;color:#5f6368;font-size:13px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
    .admissionRequiredNote{font-size:13px;color:#d93025}
    .admissionStep{display:none;gap:12px}
    .admissionPublicPage[data-admission-step="payment"] .admissionStepPayment,.admissionPublicPage[data-admission-step="form"] .admissionStepForm,.admissionPublicPage[data-admission-step="confirmation"] .admissionStepConfirmation{display:grid}
    .admissionPublicPage[data-admission-step="payment"] .admissionFormIntro{display:none}
    .admissionPublicPage[data-admission-step="confirmation"] .admissionFormIntro{display:none}
    .admissionPublicPage[data-admission-step="confirmation"]{padding-top:18px;background:linear-gradient(180deg,#eef6ff 0%,#fff9fd 48%,#fff7ef 100%)}
    .admissionPublicPage[data-admission-step="confirmation"] .admissionHeaderImage{display:none}
    .admissionPublicPage[data-admission-step="confirmation"] .admissionPublicCard{gap:0}
    .admissionFormCard{padding:24px 23px;display:grid;gap:18px}
    .admissionQuestion{display:grid;gap:12px}
    .admissionQuestionTitle{font-size:16px;font-weight:400;line-height:1.45;color:#202124;text-transform:uppercase}
    .admissionQuestionTitle.noCaps{text-transform:none}
    .admissionQuestionHelp{display:block;margin-top:-4px;font-size:12px;font-weight:500;line-height:1.45;color:#6b7280;text-transform:none}
    .admissionRequired{color:#d93025}
    .admissionInput,.admissionSelect{width:min(100%,320px);border:0;border-bottom:1px solid #dadce0;border-radius:0;padding:8px 0 7px;font-size:14px;color:#202124;background:#fff;outline:none}
    .admissionSelect{border:1px solid #dadce0;border-radius:4px;padding:10px 9px;width:100%;max-width:100%;appearance:auto}
    .admissionPhoneRow{position:relative;display:block;width:min(100%,356px)}
    .admissionPhoneWidget{position:relative;display:grid;gap:4px;width:100%;max-width:356px}
    .admissionPhoneControl{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;min-height:38px;border:1.5px solid #dadce0;border-radius:4px;background:#fff;color:#202124;box-shadow:0 1px 1px rgba(60,64,67,.04);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}
    .admissionPhoneControl:focus-within,.admissionPhoneWidget.active .admissionPhoneControl,.admissionPhoneWidget.open .admissionPhoneControl{border-color:#4f63f4;box-shadow:0 0 0 1px rgba(79,99,244,.24)}
    .admissionPhoneControl.invalid{border-color:#ff4d43;box-shadow:0 0 0 1px rgba(255,77,67,.22)}
    .admissionPhoneCountryBtn{height:100%;min-height:38px;display:flex;align-items:center;gap:6px;border:0;background:#fff;color:#202124;padding:0 9px;cursor:pointer;font-size:13px;line-height:1;outline:none}
    .admissionPhoneCountryBtn:hover{background:#f8fafc}
    .admissionPhoneFlag{width:18px;display:inline-flex;align-items:center;justify-content:center;line-height:1}
    .admissionPhoneFlagImg{width:16px;height:12px;display:block;object-fit:cover;border-radius:1px;box-shadow:0 0 0 1px rgba(15,23,42,.12)}
    .admissionPhoneChevron{font-size:11px;color:#5f6368;line-height:1;margin-top:1px}
    .admissionPhoneCode{height:100%;min-height:38px;display:flex;align-items:center;border-left:1px solid #dadce0;padding:0 8px;color:#5f6368;font-size:12px;white-space:nowrap;background:#fff}
    .admissionPhoneNumberInput{width:100%;min-width:0;border:0;background:#fff;color:#202124;font-size:13px;line-height:1.35;padding:9px 10px;outline:none;box-sizing:border-box}
    .admissionPhoneNumberInput::placeholder{color:#9aa0a6}
    .admissionCountryCustomInput{display:none!important}
    .admissionPhoneDropdown{position:absolute;z-index:100000;top:calc(100% + 4px);left:0;width:min(100%,356px);max-height:274px;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid #e5e7eb;border-radius:3px;background:#fff;box-shadow:0 12px 26px rgba(15,23,42,.12);overflow:hidden}
    .admissionPhoneDropdown[hidden]{display:none}
    .admissionPhoneSearchRow{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;padding:9px 11px;border-bottom:1px solid #edf0f2;color:#6b7280;background:#fff;font-size:13px}
    .admissionPhoneSearchRow input{width:100%;border:0;outline:none;background:#fff;color:#202124;font-size:13px;padding:2px 0;min-width:0}
    .admissionPhoneSearchRow input::placeholder{color:#9aa0a6}
    .admissionPhoneCountryList{display:grid;overflow:auto;max-height:226px;background:#fff}
    .admissionPhoneCountryOption{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:9px;width:100%;border:0;border-bottom:1px solid #f1f3f4;background:#fff;color:#202124;text-align:left;padding:9px 11px;font-size:12px;line-height:1.25;cursor:pointer}
    .admissionPhoneCountryOption:hover,.admissionPhoneCountryOption.active{background:#f8fbff}
    .admissionPhoneCountryFlag{width:18px;display:inline-flex;align-items:center;justify-content:center;line-height:1;text-align:center}
    .admissionPhoneCountryName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .admissionPhoneCountryName small{color:#5f6368;font-size:11px}
    .admissionPhoneCountryEmpty{padding:12px;color:#6b7280;font-size:12px}
    .admissionPhoneError{margin-top:-8px;color:#ff3b30;font-size:9px;font-weight:800;line-height:1.25;letter-spacing:.02em;text-transform:uppercase}
    .admissionWhatsappVerifiedTick{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:999px;background:#16a34a;color:#fff;font-size:11px;font-weight:900;line-height:1;vertical-align:2px}
    .admissionWhatsappVerifiedTick[hidden]{display:none}
    .admissionWhatsappVerifyBox{display:grid;gap:7px;margin-top:8px;padding:7px 0 0;color:#202124;width:min(100%,520px)}
    .admissionWhatsappVerifyBox[hidden]{display:none}
    .admissionWhatsappOtpRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;width:100%}
    .admissionWhatsappCodeInput{width:100%;min-height:32px;text-align:left;letter-spacing:3px;font-size:13px;font-weight:700;padding:5px 0 6px;border:0;border-bottom:1px solid #dadce0;border-radius:0;box-shadow:none}
    .admissionWhatsappCodeInput:focus{border-bottom-color:#c47e00;box-shadow:0 1px 0 #c47e00}
    .admissionTinyBtn{flex:0 0 auto;border:1px solid #d6a341;border-radius:999px;background:#fff;color:#8a5a00;font-size:10.5px;font-weight:800;line-height:1;padding:6px 9px;box-shadow:none}
    .admissionWhatsappVerifyStatus{font-size:11px;font-weight:700;line-height:1.25;color:#5f6368}
    .admissionWhatsappVerifyStatus.ok{color:#15803d}
    .admissionWhatsappVerifyStatus.err{color:#b42318}
    .admissionWhatsappVerifyStatus.pending{color:#a16207}
    @media(max-width:420px){.admissionPhoneRow,.admissionPhoneWidget,.admissionPhoneDropdown{width:100%;max-width:100%}.admissionPhoneCountryOption{font-size:13px}}
    .admissionTextarea{width:100%;min-height:48px;resize:vertical;border:0;border-bottom:1px solid #dadce0;border-radius:0;padding:8px 0 7px;font-family:inherit;font-size:14px;font-weight:400;line-height:1.45;letter-spacing:0;color:#202124;background:#fff;outline:none}
    .admissionFieldError{display:none;color:#b42318;font-size:12px;font-weight:600;line-height:1.35;margin-top:-6px}
    .admissionFieldError.show{display:block}
    .admissionInput.invalid,.admissionTextarea.invalid{border-bottom-color:#b42318;box-shadow:0 1px 0 #b42318}
    .admissionInput:focus,.admissionTextarea:focus{border-bottom-color:#c47e00;box-shadow:0 1px 0 #c47e00}
    .admissionPickerBtn{width:100%;border:1px solid #dadce0;border-radius:4px;background:#fff;color:#202124;text-align:left;padding:11px 42px 11px 10px;font-size:14px;line-height:1.35;position:relative;cursor:pointer}
    .admissionPickerBtn:after{content:"";position:absolute;right:14px;top:50%;width:9px;height:9px;border-right:2px solid #5f6368;border-bottom:2px solid #5f6368;transform:translateY(-70%) rotate(45deg)}
    .admissionPickerBtn:disabled{color:#9aa0a6;background:#fafafa;cursor:not-allowed}
    .admissionSlotPicker{position:fixed;inset:0;z-index:99999;display:grid;place-items:end center;background:rgba(32,33,36,.42);padding:12px}
    .admissionSlotPicker[hidden]{display:none}
    .admissionSlotPickerPanel{width:min(520px,100%);max-height:min(76vh,720px);display:grid;grid-template-rows:auto minmax(0,1fr);background:#fff;border-radius:14px;box-shadow:0 22px 70px rgba(0,0,0,.26);overflow:hidden}
    .admissionSlotPickerHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e5e7eb}
    .admissionSlotPickerHead strong{font-size:18px;font-weight:500;color:#202124}
    .admissionSlotPickerHead button{border:0;background:#bf7200;color:#fff;border-radius:4px;padding:8px 14px;font-size:14px;font-weight:600}
    .admissionSlotPickerHint{padding:10px 16px;border-bottom:1px solid #eceff1;color:#5f6368;font-size:13px;line-height:1.45;background:#fffaf0}
    .admissionSlotPickerList{overflow:auto;display:grid}
    .admissionSlotLevelTitle{position:sticky;top:0;z-index:1;background:#fff7fb;color:#9d174d;border-bottom:1px solid #f9cfe0;padding:9px 16px 7px;font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
    .admissionSlotChoice{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:14px;border:0;border-bottom:1px solid #eceff1;background:#fff;color:#202124;text-align:left;padding:13px 16px;font-size:18px;line-height:1.3;cursor:pointer}
    .admissionSlotChoice i{width:22px;height:22px;border-radius:999px;border:2px solid #8a8f98;flex:0 0 auto}
    .admissionSlotChoice.active i{border-color:#bf7200;box-shadow:inset 0 0 0 5px #fff;background:#bf7200}
    .admissionSlotPickerEmpty{padding:18px 16px;color:#5f6368;font-size:14px}
    .admissionChoiceList{display:grid;gap:14px}
    .admissionChoice{display:flex;align-items:center;gap:12px;font-size:14px;color:#202124;line-height:1.35}
    .admissionChoice input{width:20px;height:20px;margin:0;accent-color:#c47e00}
    .admissionPolicyLite{font-size:13px;line-height:1.45;color:#5f6368;border-left:3px solid #e5a924;padding-left:10px}
    .admissionRulesOpenBtn{width:max-content;max-width:100%;border:1px solid #d39b24;border-radius:999px;background:#fffaf0;color:#8a5a00;padding:9px 14px;font-size:14px;font-weight:700;line-height:1.2;cursor:pointer}
    .admissionRulesAccept{align-items:flex-start}
    .admissionRulesModal{position:fixed;inset:0;z-index:100001;display:grid;place-items:end center;background:rgba(32,33,36,.44);padding:12px;box-sizing:border-box}
    .admissionRulesModal[hidden]{display:none}
    .admissionRulesSheet{width:min(560px,100%);max-height:min(86vh,760px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;background:#fff;border:1px solid #ead9b0;border-radius:18px;box-shadow:0 24px 80px rgba(32,33,36,.28);overflow:hidden;color:#202124;box-sizing:border-box}
    .admissionRulesHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 8px;border-bottom:1px solid #f0e3ca}
    .admissionRulesKicker{font-size:11px;font-weight:800;color:#8a5a00;text-transform:uppercase;letter-spacing:.04em}
    .admissionRulesHead h2{margin:2px 0 0;font-size:22px;font-weight:800;line-height:1.12;color:#202124}
    .admissionRulesCloseBtn{width:36px;height:36px;flex:0 0 36px;border:1px solid #ead9b0;border-radius:999px;background:#fffaf0;color:#8a5a00;font-size:23px;font-weight:800;line-height:1;cursor:pointer}
    .admissionRulesGrid{overflow:auto;display:grid;gap:7px;padding:2px 11px 4px}
    .admissionRulesInfoCard{display:grid;grid-template-columns:21px minmax(0,1fr);column-gap:5px;row-gap:3px;border:1px solid #f0e3ca;border-radius:12px;background:#fffdf8;padding:7px 8px;box-sizing:border-box}
    .admissionRulesBadge{grid-row:1;width:20px;height:20px;display:inline-grid;place-items:center;border-radius:999px;background:#bf7200;color:#fff;font-size:10px;font-weight:900}
    .admissionRulesInfoCard strong{grid-column:2;font-size:13.1px;font-weight:800;line-height:1.14;color:#202124}
    .admissionRulesInfoCard p{grid-column:1 / -1;margin:0;font-size:10.2px;font-weight:500;line-height:1.24;color:#5f6368}
    .admissionRulesSubhead{margin-top:3px!important;color:#202124!important;font-weight:700!important}
    .admissionRulesNote{color:#3f4652!important;font-weight:600!important}
    .admissionRulesTip{grid-column:1 / -1;margin:3px 0!important;border:1px solid #ead9b0;border-left:3px solid #bf7200;border-radius:9px;background:#fff8e8;padding:5px 7px;color:#3f4652!important;font-size:10.2px!important;font-weight:550!important;line-height:1.25!important}
    .admissionRulesList{grid-column:1 / -1;margin:0;padding:0;list-style:none;display:grid;gap:2px}
    .admissionRulesList li{position:relative;margin:0;padding-left:8px;font-size:10.2px;font-weight:500;line-height:1.24;color:#5f6368}
    .admissionRulesList li:before{content:"";position:absolute;left:0;top:.56em;width:3px;height:3px;border-radius:999px;background:#bf7200;opacity:.72}
    .admissionRulesDoneBtn{margin:0 16px 16px;border:0;border-radius:999px;background:#bf7200;color:#fff;padding:12px 16px;font-size:15px;font-weight:800;cursor:pointer}
    .admissionActions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:8px}
    .admissionPrimaryBtn,.admissionSecondaryBtn{border:0;border-radius:4px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer}
    .admissionPrimaryBtn{background:#bf7200;color:#fff}
    .admissionSecondaryBtn{background:transparent;color:#bf7200}
    .admissionPrimaryBtn:disabled,.admissionSecondaryBtn:disabled{opacity:.65;cursor:not-allowed}
    .admissionPaymentPanel{padding:20px 23px;display:grid;gap:14px}
    .admissionPaymentSection{display:grid;gap:10px}
    .admissionTuitionSection{padding-top:2px}
    .admissionPaymentTitle{font-size:22px;font-weight:400;color:#202124;line-height:1.25}
    .admissionPaymentMeta{font-size:13px;line-height:1.45;color:#5f6368}
    .admissionPlanList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .admissionStepPayment .admissionPlanList{grid-template-columns:1fr;margin-bottom:12px}
    .admissionPaymentActionsRow{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:10px;align-items:center}
    .admissionPaymentActionsRow .admissionPrimaryBtn,.admissionPaymentActionsRow .admissionSecondaryBtn{width:100%;min-height:46px;margin:0;text-align:center}
    .admissionPlanBtn{display:grid;gap:5px;text-align:left;border:1px solid #dadce0;border-radius:8px;background:#fff;color:#202124;padding:12px;cursor:pointer}
    .admissionPlanBtn strong{font-size:13px;font-weight:600}
    .admissionPlanBtn span{font-size:20px;font-weight:700;color:#202124}
    .admissionPlanBtn small{font-size:12px;font-weight:400;color:#5f6368}
    .admissionPlanBtn.active{border-color:#bf7200;box-shadow:0 0 0 1px #bf7200 inset;background:#fffaf0}
    .admissionAmount{font-size:28px;font-weight:700;color:#202124;margin-bottom:6px}
    .admissionPolicyNote{font-size:12px;line-height:1.45;color:#5f6368;background:#fafafa;border:1px solid #ececec;border-radius:6px;padding:9px 10px}
    .admissionStatus{min-height:18px;font-size:13px;font-weight:500;color:#5f6368;line-height:1.35}
    .admissionStatus.pending{color:#93650b}
    .admissionStatus.err{color:#b42318}
    .admissionStatus.ok{color:#047857}
    .admissionProcessingLocked .admissionStepPayment{pointer-events:none}
    .admissionProcessingOverlay{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:20px;background:rgba(32,33,36,.52);backdrop-filter:blur(2px);touch-action:none}
    .admissionProcessingOverlay[hidden]{display:none}
    .admissionProcessingBox{width:min(360px,100%);display:grid;justify-items:center;gap:12px;text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px 20px;box-shadow:0 24px 70px rgba(15,23,42,.28);color:#10203d}
    .admissionProcessingSpinner{width:42px;height:42px;border-radius:999px;border:4px solid #f3ead7;border-top-color:#bf7200;animation:admissionProcessingSpin .8s linear infinite}
    .admissionProcessingBox strong{font-size:20px;line-height:1.2;font-weight:800}
    .admissionProcessingBox span{font-size:14px;line-height:1.45;font-weight:600;color:#5f6368}
    @keyframes admissionProcessingSpin{to{transform:rotate(360deg)}}
    .admissionCongrats{display:grid;gap:24px;border:1px solid #e4eaf4;border-radius:8px;background:linear-gradient(180deg,#fff 0%,#fcfdff 100%);padding:30px 28px 24px;box-shadow:0 24px 70px rgba(15,23,42,.13);color:#10203d}
    .admissionCongratsHead{display:grid;justify-items:center;gap:10px;text-align:center}
    .admissionCongratsMark{width:48px;height:48px;display:grid;place-items:center;border-radius:18px;background:#fff7ed;color:#f97316;box-shadow:0 16px 34px rgba(249,115,22,.18)}
    .admissionCongratsMark svg{width:28px;height:28px}
    .admissionCongratsTitle{font-size:34px;font-weight:900;color:#147447;line-height:1.08;letter-spacing:0}
    .admissionCongratsSub{max-width:620px;font-size:16px;font-weight:650;color:#48566a;line-height:1.45;margin-top:0}
    .admissionCongratsSub strong{font-weight:900;color:#10203d}
    .admissionConfirmFeatureCard{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr;gap:22px;align-items:center;border:1px solid #d8e1f2;border-radius:8px;background:linear-gradient(135deg,#fff 0%,#f9fbff 100%);padding:28px;box-shadow:0 16px 38px rgba(51,65,85,.09)}
    .admissionConfirmFeatureCard:before{content:'';position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#4f46e5,#14b8a6,#f97316);opacity:.85}
    .admissionConfirmFeatureCard h3{margin:0;font-size:28px;font-weight:900;line-height:1.12;color:#10203d;letter-spacing:0}
    .admissionConfirmFeatureCard p{margin:7px 0 0;font-size:18px;font-weight:750;line-height:1.25;color:#4338ca}
    .admissionConfirmFeatureCard span{font-size:15px;font-weight:500;line-height:1.48;color:#475569}
    .admissionConfirmFeatureCard span strong{font-weight:900;color:#10203d}
    .admissionConfirmFeatureMain{display:grid;grid-template-columns:82px minmax(0,1fr);gap:22px;align-items:center}
    .admissionConfirmBigIcon{width:82px;height:82px;border-radius:8px;display:grid;place-items:center;background:#fff;box-shadow:0 14px 30px rgba(15,23,42,.1)}
    .admissionConfirmBigIcon svg{width:38px;height:38px}
    .admissionConfirmMediaIcon{width:48px;height:48px;display:block;object-fit:contain}
    .admissionConfirmBigIcon.profile{background:#ecfdf5}
    .admissionConfirmBigIcon.profile .admissionConfirmMediaIcon{width:58px;height:58px;border-radius:8px}
    .admissionConfirmBigIcon.class{background:#fff7ed;color:#f97316}
    .admissionConfirmActionRow{grid-column:1 / -1;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
    .admissionConfirmActionBtn{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:8px;padding:12px 22px;font-size:15px;font-weight:850;line-height:1.15;text-decoration:none;cursor:pointer}
    .admissionConfirmActionBtn span{font-size:inherit;font-weight:inherit;line-height:inherit;color:inherit}
    .admissionConfirmActionBtn.ghost{border:1.5px solid #4f46e5;background:#fff;color:#4338ca}
    .admissionConfirmActionBtn.fill{border:1.5px solid transparent;background:linear-gradient(135deg,#6d5dfc,#4338ca);color:#fff;box-shadow:0 14px 28px rgba(67,56,202,.2)}
    .admissionProfileSection{border-color:#bfe8cf;background:linear-gradient(135deg,#fff 0%,#f8fffb 100%)}
    .admissionProfileSection p,.admissionConfirmActionBtn.profile{color:#0f8a4b}
    .admissionConfirmActionBtn.ghost.profile{border-color:#22a05e;background:#fff;color:#0f8a4b}
    .admissionConfirmActionBtn.fill.profile{background:linear-gradient(135deg,#22a05e,#07824a);color:#fff;box-shadow:0 14px 28px rgba(15,138,75,.2)}
    .admissionGooglePlayBtn{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border-radius:8px;padding:8px 18px;background:#050505;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 28px rgba(15,23,42,.18)}
    .admissionGooglePlayBtn span{display:grid;gap:0;color:#fff!important;line-height:1}
    .admissionGooglePlayBtn small{font-size:10px;font-weight:700;letter-spacing:.04em;color:#fff!important}
    .admissionGooglePlayBtn strong{font-size:21px;font-weight:850;letter-spacing:0;color:#fff!important;line-height:1.08}
    .admissionGooglePlayIcon{width:32px;height:34px;flex:0 0 auto;display:block}
    .admissionAppAvailabilityNote{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #bfe8cf;border-radius:8px;background:#f2fff8;padding:10px 12px}
    .admissionAppAvailabilityNote span{font-size:12.5px!important;font-weight:650!important;line-height:1.42!important;color:#23543c!important}
    .admissionAppAvailabilityNote button{min-height:34px;border:1px solid #9adfba;border-radius:8px;background:#fff;color:#087344;font-size:12px;font-weight:850;padding:7px 10px;white-space:nowrap}
    .admissionClassSection{border-color:#fed7aa;background:linear-gradient(135deg,#fff 0%,#fffaf5 100%)}
    .admissionClassSection p{color:#f97316}
    .admissionConfirmTileGrid{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
    .admissionConfirmInfoTile{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center;border:1px solid #f3dfcf;border-radius:8px;background:rgba(255,255,255,.82);padding:12px}
    .admissionConfirmInfoTile>span{width:52px;height:52px;display:grid;place-items:center;border-radius:8px;background:#fff7ed;color:#f97316}
    .admissionConfirmInfoTile em{display:block;font-style:normal;font-size:12px;font-weight:650;line-height:1.25;color:#64748b}
    .admissionConfirmInfoTile strong{display:block;margin-top:3px;font-size:15px;font-weight:850;line-height:1.25;color:#10203d;overflow-wrap:anywhere}
    .admissionConfirmInfoTile small{display:block;margin-top:2px;font-size:12px;font-weight:650;line-height:1.2;color:#64748b}
    .admissionConfirmSection{display:grid;gap:7px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:11px 12px}
    .admissionConfirmSectionHead{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
    .admissionConfirmSection h3,.admissionConfirmSectionHead h3{margin:0;font-size:16px;font-weight:800;color:#10203d;line-height:1.18}
    .admissionConfirmSectionHead em{font-style:normal;font-size:11px;font-weight:900;color:#b42318;line-height:1.2}
    .admissionConfirmSectionHead .admissionCopyBtn{margin-left:auto}
    .admissionConfirmGrid{display:grid;gap:4px}
    .admissionConfirmGrid.compact{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .admissionConfirmGrid.compact .admissionConfirmRow{grid-template-columns:minmax(0,1fr) auto}
    .admissionConfirmGrid.compact .admissionConfirmRow strong{white-space:nowrap}
    .admissionConfirmGrid.compact .admissionConfirmRow span{text-align:right}
    .admissionConfirmGrid .admissionConfirmRow{display:grid;grid-template-columns:minmax(0,140px) minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #edf2f7;border-radius:8px;background:#fff;padding:9px 10px}
    .admissionConfirmGrid .admissionConfirmRow:last-child{border-bottom:1px solid #edf2f7}
    .admissionConfirmGrid strong{font-size:12px;color:#64748b}
    .admissionConfirmGrid span{font-size:14px;font-weight:800;color:#10203d;line-height:1.25;overflow-wrap:anywhere}
    .admissionTeamsLinkText{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .admissionCopyBtn{border:1px solid #c9d5e6;border-radius:999px;background:#f8fbff;color:#10203d;padding:6px 9px;font-size:11px;font-weight:800;white-space:nowrap}
    .admissionConfirmLinks{display:grid;grid-template-columns:1fr;gap:16px;align-items:center}
    .admissionConfirmLinks .studentProfileSheetBtn{min-height:58px;border-radius:8px;font-size:16px;font-weight:900;gap:10px}
    .admissionConfirmOpenProfile{grid-column:1 / -1;background:linear-gradient(135deg,#10203d,#153b75);color:#fff;box-shadow:0 16px 30px rgba(16,32,61,.2)}
    .admissionConfirmLinks .studentProfileSheetBtn.secondary{display:none!important}
    .studentProfileSheetBtn.secondary{background:#fff;color:#0f766e;border:1px solid #99f6e4}
    .admissionConfirmTaskList{display:grid;gap:9px;border:1px solid #dbe7ff;border-radius:8px;background:linear-gradient(135deg,#f8fbff 0%,#fff7fb 100%);padding:12px;box-shadow:0 14px 32px rgba(16,32,61,.08)}
    .admissionConfirmTaskList p{position:relative;margin:0;min-height:38px;padding:10px 10px 10px 16px;border:1px solid #e5edf8;border-radius:8px;background:rgba(255,255,255,.9);font-size:13.5px;font-weight:650;line-height:1.42;color:#334155;box-shadow:0 8px 20px rgba(15,23,42,.04)}
    .admissionConfirmTaskList p:before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:4px;border-radius:0 999px 999px 0;background:linear-gradient(180deg,#4f46e5,#14b8a6)}
    .admissionConfirmTaskList strong{font-weight:900;color:#10203d}
    .admissionConfirmSafeNote{display:flex;align-items:center;justify-content:center;gap:7px;color:#667085;font-size:14px;font-weight:750}
    .admissionConfirmSafeNote svg{width:16px;height:16px}
    @media(max-width:640px){.admissionPublicPage{padding:6px 10px 22px}.admissionFormIntro{padding:20px 18px 16px}.admissionAccountLine{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}.admissionTitle{font-size:27px}.admissionFormCard,.admissionPaymentPanel{padding:20px 18px}.admissionRulesModal{padding:8px}.admissionRulesSheet{width:100%;max-height:88dvh;border-radius:16px}.admissionRulesHead{padding:13px 14px 7px}.admissionRulesHead h2{font-size:20px}.admissionRulesGrid{padding:2px 9px 4px}.admissionRulesInfoCard{grid-template-columns:20px minmax(0,1fr);column-gap:5px;padding:7px 8px}.admissionRulesInfoCard strong{font-size:12.9px}.admissionRulesInfoCard p,.admissionRulesList li{font-size:10px}.admissionRulesTip{font-size:10px!important}.admissionRulesDoneBtn{margin:0 14px 14px}.admissionPlanList{grid-template-columns:1fr}.admissionInput{width:100%}.admissionPaymentActionsRow{grid-template-columns:1fr 1fr}.admissionCongrats{padding:18px 14px;gap:18px}.admissionCongratsMark{width:42px;height:42px;border-radius:8px}.admissionCongratsTitle{font-size:28px}.admissionCongratsSub{font-size:14px}.admissionConfirmFeatureCard{grid-template-columns:1fr;gap:18px;padding:18px 14px}.admissionConfirmFeatureCard h3{font-size:23px}.admissionConfirmFeatureCard p{font-size:15px}.admissionConfirmFeatureCard span{font-size:13px}.admissionConfirmFeatureMain{grid-template-columns:60px minmax(0,1fr);gap:14px}.admissionConfirmBigIcon{width:60px;height:60px}.admissionConfirmBigIcon.profile .admissionConfirmMediaIcon{width:44px;height:44px}.admissionConfirmMediaIcon{width:40px;height:40px}.admissionConfirmActionRow{gap:10px}.admissionConfirmActionBtn{flex:1 1 100%;min-height:48px;padding:10px 12px;font-size:13px}.admissionConfirmGrid.compact,.admissionConfirmTileGrid,.admissionConfirmLinks{grid-template-columns:1fr}.admissionConfirmGrid .admissionConfirmRow{grid-template-columns:minmax(0,96px) minmax(0,1fr);gap:6px;padding:8px}.admissionConfirmGrid strong{font-size:11px}.admissionConfirmGrid span{font-size:13px}.admissionConfirmInfoTile{grid-template-columns:42px minmax(0,1fr);padding:10px}.admissionConfirmInfoTile>span{width:42px;height:42px}.admissionConfirmInfoTile strong{font-size:14px}.admissionConfirmTaskList{padding:13px 14px}.admissionConfirmTaskList p{font-size:12.5px}.admissionConfirmLinks .studentProfileSheetBtn{min-height:50px;font-size:14px}.admissionConfirmOpenProfile{grid-column:auto}.admissionConfirmSafeNote{font-size:12px}}
    @media(max-width:640px){.admissionGooglePlayBtn{width:100%;min-height:50px}.admissionGooglePlayBtn strong{font-size:19px}.admissionGooglePlayIcon{width:30px;height:32px}}
    @media(max-width:640px){.admissionAppAvailabilityNote{grid-template-columns:1fr}.admissionAppAvailabilityNote button{width:100%}}
    .guardianFeeStatePill{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:5px 10px;border-radius:999px;background:#eef2ff;color:#334155;font-size:12px;font-weight:950;box-shadow:0 1px 0 rgba(255,255,255,.8) inset}
    .guardianFeeStatePill.received{background:#dcfce7;color:#047857}
    .guardianFeeStatePill.pending{background:#fff7d6;color:#93650b}
    .guardianFeeStatePill.notReceived{background:#fee2e2;color:#b42318}
    .guardianFeeDisabledNotice{border:1px solid #fde68a;background:#fff8df;color:#7c4a03;border-radius:14px;padding:13px 14px;font-size:13px;font-weight:900;line-height:1.45}
    .guardianFeeDisabledNotice strong{display:block;color:#10203d;font-size:16px;margin-bottom:5px}
    .studentProfilePublicAvatar,.friendsGroupAvatarImg{width:34px;height:34px;border-radius:999px;border:1px solid #ffd0e5;background:#fff;object-fit:cover;display:block;flex:0 0 auto;box-shadow:0 6px 12px rgba(16,32,61,.08)}
    .homeworkQuestRankIdentity,.homeworkQuestActivityIdentity{display:flex;align-items:center;gap:6px;min-width:0}
    .homeworkQuestRankIdentity>div,.homeworkQuestActivityText{min-width:0}
    .homeworkQuestActivityItem{display:grid;grid-template-columns:24px minmax(0,1fr);gap:6px;align-items:center}
    .homeworkQuestRank .studentProfilePublicAvatar,.homeworkQuestRank .friendsGroupAvatar,.homeworkQuestActivity .studentProfilePublicAvatar,.homeworkQuestActivity .friendsGroupAvatar{width:24px;height:24px;font-size:10px;box-shadow:0 4px 8px rgba(16,32,61,.07)}
    .homeworkQuestActivityText{min-width:0}
    .friendsGroupOverlay{position:fixed;inset:0;z-index:9999;background:radial-gradient(circle at 18% 8%,rgba(255,209,102,.24),transparent 24%),radial-gradient(circle at 88% 18%,rgba(32,199,181,.16),transparent 22%),linear-gradient(180deg,#fff5fb 0%,#fff 42%,#f2fbff 100%);display:none;color:#10203d}
    .friendsGroupOverlay.show{display:flex;flex-direction:column}
    .friendsGroupOverlay.classHubMount{position:relative;inset:auto;display:none;flex-direction:column;height:100%;min-height:0;background:radial-gradient(circle at 18% 8%,rgba(255,209,102,.22),transparent 24%),radial-gradient(circle at 88% 18%,rgba(32,199,181,.14),transparent 22%),linear-gradient(180deg,#fff5fb 0%,#fff 42%,#f2fbff 100%);border-radius:0;overflow:hidden}
    .friendsGroupOverlay.classHubMount.show{display:flex}
    .friendsGroupOverlay.classHubMount .friendsGroupClose{display:none}
    .friendsGroupOverlay.classHubMount .friendsGroupHeader{grid-template-columns:auto 36px minmax(0,1fr);padding:8px 10px 7px;gap:8px;min-height:54px}
    html.protivaIosNativeShell .friendsGroupOverlay.classHubMount .friendsGroupHeader{padding-top:calc(8px + var(--protiva-safe-top))}
    .friendsGroupOverlay.classHubMount .friendsGroupCanvas{flex:1;min-height:0}
    .friendsGroupOverlay.classHubMount .friendsGroupFeed{padding:0 14px 14px}
    .friendsGroupOverlay.classHubMount .friendsGroupFooter{position:relative;left:auto;right:auto;bottom:auto;z-index:2;margin:0 14px 14px;flex:0 0 auto}
    .classHubDiamondBtn{position:relative;border:1.5px solid #f2cf6b;border-radius:16px;background:linear-gradient(180deg,#fffdf2 0%,#fff6c8 100%);color:#8a1952;min-height:38px;padding:7px 6px;font-size:17px;font-weight:950;cursor:pointer;touch-action:manipulation;box-shadow:0 10px 20px rgba(218,165,32,.14)}
    .classHubDiamondBtn .diamondGlowIcon{font-size:20px}
    .classHubDiamondPanel{position:fixed;inset:0;z-index:10008;display:grid;align-items:end;color:#10203d}
    .classHubDiamondScrim{position:absolute;inset:0;border:0;background:rgba(16,32,61,.34);backdrop-filter:blur(2px);cursor:pointer}
    .classHubDiamondSheet{position:relative;z-index:1;display:grid;gap:10px;width:100%;max-height:min(86dvh,720px);overflow-y:auto;border-radius:22px 22px 0 0;border:1.5px solid #ffc4df;background:linear-gradient(180deg,#fff 0%,#fff8dc 100%);padding:16px 14px 18px;box-shadow:0 -18px 42px rgba(16,32,61,.18)}
    .classHubDiamondSheetHead{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .classHubDiamondSheetTitle{font-size:20px;font-weight:950;line-height:1.1;color:#10203d}
    .classHubDiamondSheetSub{font-size:12px;font-weight:850;color:#8a1952;margin-top:2px}
    .classHubDiamondClose{border:1.5px solid #ffc4df;border-radius:999px;background:#fff;color:#9d1457;width:38px;height:38px;font-size:18px;font-weight:950;cursor:pointer}
    .classHubDiamondSearchLabel{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:950;text-transform:uppercase;color:#6d5a6d}
    .classHubDiamondSearchLabel span{color:#b91c1c}
    .classHubDiamondSearch,.classHubDiamondReason{width:100%;border:1.5px solid #ffc4df;border-radius:16px;background:#fff;color:#10203d;padding:11px 13px;font-size:15px;font-weight:900;outline:none;box-shadow:0 8px 18px rgba(157,20,87,.06)}
    .classHubDiamondReason{resize:vertical;min-height:72px;line-height:1.35}
    .classHubDiamondSearch:focus,.classHubDiamondReason:focus{border-color:#c2185b;box-shadow:0 0 0 3px rgba(194,24,91,.12)}
    .classHubDiamondResults{display:grid;gap:7px;max-height:190px;overflow-y:auto;overscroll-behavior:contain}
    .classHubDiamondResult,.classHubDiamondSelectedCard{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1.5px solid #ffd0e5;border-radius:16px;background:#fff;color:#10203d;padding:10px 12px;text-align:left}
    .classHubDiamondResult{cursor:pointer}
    .classHubDiamondResult.selected{border-color:#f2cf6b;background:#fff9df;box-shadow:0 8px 18px rgba(218,165,32,.14)}
    .classHubDiamondResult strong,.classHubDiamondSelectedCard strong{display:block;font-size:15px;font-weight:950;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .classHubDiamondResult em,.classHubDiamondSelectedCard span{display:block;margin-top:3px;font-size:11px;font-style:normal;font-weight:850;color:#7b6172}
    .classHubDiamondBalance{display:grid;justify-items:end;gap:2px;white-space:nowrap}
    .classHubDiamondBalance small{font-size:9px;font-weight:950;text-transform:uppercase;color:#8a1952}
    .classHubDiamondBalance strong{display:inline-flex;align-items:center;gap:3px;border:1px solid #f2cf6b;border-radius:999px;background:#fff9df;color:#8a1952;padding:5px 8px;font-size:15px;font-weight:950}
    .classHubDiamondBalance strong.unknown{color:#7b6172}
    .classHubDiamondModeRow{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .classHubDiamondMode{border:1.5px solid #ffc4df;border-radius:16px;background:#fff;color:#10203d;min-height:48px;font-size:15px;font-weight:950;cursor:pointer}
    .classHubDiamondMode.active{background:#119584;border-color:#119584;color:#fff;box-shadow:0 10px 20px rgba(17,149,132,.18)}
    .classHubDiamondMode.penalty.active{background:#991b1b;border-color:#991b1b}
    .classHubDiamondAmountRow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
    .classHubDiamondAmount{border:1.5px solid #f2cf6b;border-radius:14px;background:#fffdf2;color:#8a1952;min-height:42px;font-size:15px;font-weight:950;cursor:pointer}
    .classHubDiamondAmount.active{background:#10203d;border-color:#10203d;color:#fff}
    .classHubDiamondStatus,.classHubDiamondHint{border:1px solid #ffd0e5;border-radius:14px;background:#fff7fb;color:#8a1952;padding:9px 10px;font-size:12px;font-weight:900;line-height:1.25}
    .classHubDiamondSubmit{border:0;border-radius:18px;background:#119584;color:#fff;min-height:50px;font-size:17px;font-weight:950;cursor:pointer;box-shadow:0 12px 22px rgba(17,149,132,.20)}
    .classHubDiamondSubmit:disabled{opacity:.62;cursor:wait}
    .classHubOverlay.immersive .classHubChatWrap{max-width:none;margin:0;padding:0;height:100%}
    .classHubChatWrap{display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;max-width:860px;margin:0 auto;padding-bottom:0;height:100%;min-height:0;overflow:hidden}
    .classHubChatWrap.threadOpen{max-width:none;padding-bottom:0;grid-template-rows:minmax(0,1fr);overflow:hidden}
    .classHubChatSearchCard{border:none;border-radius:0;background:linear-gradient(180deg,#8a1952,#5e123d);padding:7px 8px;box-shadow:0 8px 18px rgba(16,32,61,.14)}
    html.protivaIosNativeShell .classHubChatSearchCard{padding-top:calc(7px + var(--protiva-safe-top))}
    .classHubChatThreadCard{border:1px solid #ffd0e5;border-radius:16px;background:#fff;padding:12px;box-shadow:0 10px 22px rgba(255,115,181,.08)}
    .classHubChatThreadCard.inbox{min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:0 8px 8px;border:none;border-radius:0;background:#fff;box-shadow:none}
    .classHubChatSearchRow{display:grid;grid-template-columns:38px auto minmax(96px,1fr) 38px 38px 38px;gap:6px;align-items:center}
    .classHubChatStudentCount{white-space:nowrap;color:#fff;font-size:12px;font-weight:950}
    .classHubChatSearchInput{width:100%;min-height:36px;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(255,255,255,.96);color:#10203d;padding:8px 10px;font-size:12px;font-weight:900;box-sizing:border-box}
    .classHubChatSearchRow .classHubChatBackBtn,.classHubChatBulkBtn,.classHubChatRefreshBtn,.classHubChatArchiveBtn{width:38px;min-width:38px;height:38px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:rgba(255,255,255,.95);color:#8a1952;padding:0;font-size:18px;font-weight:950;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 7px 14px rgba(16,32,61,.12)}
    .classHubChatSearchRow .classHubChatIcon{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
    .classHubChatSearchRow .classHubChatArchiveIcon{width:21px;height:21px}
    .classHubChatRefreshBtn.refreshing .classHubChatRefreshIcon{animation:classHubRefreshSpin .75s linear infinite}
    .classHubChatArchiveBtn.active,.classHubChatBulkBtn.active{background:#fff7fb;box-shadow:0 0 0 3px rgba(255,208,229,.32),0 7px 14px rgba(16,32,61,.12)}
    @keyframes classHubRefreshSpin{to{transform:rotate(360deg)}}
    .classHubBulkMessageOverlay{position:fixed;inset:0;z-index:10070;background:rgba(16,32,61,.38);display:flex;align-items:flex-end;justify-content:center;touch-action:none}
    .classHubBulkMessageSheet{width:100%;max-width:520px;max-height:88vh;background:#fff;border-radius:22px 22px 0 0;padding:12px;display:grid;gap:10px;box-shadow:0 -18px 44px rgba(16,32,61,.24);position:relative}
    .classHubBulkMessageHead{display:grid;grid-template-columns:40px minmax(0,1fr);gap:9px;align-items:center;color:#10203d}
    .classHubBulkMessageHead button{width:40px;height:40px;border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#8a1952;font-size:20px;font-weight:950}
    .classHubBulkMessageHead b{display:block;font-size:18px;font-weight:950}
    .classHubBulkMessageHead span{display:block;font-size:12px;font-weight:900;color:#8a1952}
    .classHubBulkMessageSearchInput,.classHubBulkMessageComposer{width:100%;border:1.5px solid #ffd0e5;border-radius:16px;background:#fff;color:#10203d;padding:10px 12px;font-size:14px;font-weight:900}
    .classHubBulkMessageStudentList{display:grid;gap:6px;overflow:auto;max-height:38vh;-webkit-overflow-scrolling:touch}
    .classHubBulkMessageStudent{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-items:center;border:1px solid #ffe1ee;border-radius:14px;background:#fff7fb;padding:9px;font-size:13px;font-weight:950;color:#10203d}
    .classHubBulkMessageStudent span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .classHubBulkMessageComposer{min-height:88px;resize:none}
    .classHubBulkMessageSendBtn{min-height:44px;border:none;border-radius:999px;background:linear-gradient(180deg,#20c7b5,#0f766e);color:#fff;font-size:15px;font-weight:950;box-shadow:0 8px 0 #075e54}
    .classHubBulkMessageStatus{min-height:18px;font-size:12px;font-weight:950;color:#8a1952}
    .classHubBulkMessageTouchBlocker{position:absolute;inset:0;z-index:2;background:rgba(255,255,255,.02);display:flex;align-items:center;justify-content:center;color:#10203d;font-size:13px;font-weight:950;pointer-events:auto}
    .classHubChatArchivePanel{display:grid;gap:8px;padding:8px 2px 12px}
    .classHubChatArchiveHead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 6px;color:#10203d;font-size:13px;font-weight:950}
    .classHubChatArchiveBack{border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#9d1457;width:34px;height:34px;font-size:18px;font-weight:950}
    .classHubChatList{display:grid;gap:0}
    .classHubChatRow{border:none;border-bottom:1px solid #eef2f5;border-radius:0;background:#fff;padding:8px 4px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:8px;align-items:center;cursor:pointer;box-shadow:none;content-visibility:auto;contain-intrinsic-size:58px}
    .classHubChatRow.newArrival{animation:classHubChatRowFade .34s ease-out both}
    @keyframes classHubChatRowFade{0%{opacity:.2;transform:translateY(5px)}100%{opacity:1;transform:translateY(0)}}
    .classHubChatRow.unread{background:linear-gradient(90deg,#ecfff6,#fff);border-bottom-color:#baf2d1}
    .classHubChatRow.active{background:#f4fff9;border-bottom-color:#25d366;box-shadow:inset 3px 0 0 #25d366}
    .classHubChatRow.pinned{background:linear-gradient(90deg,#fff8dd,#fff);border-bottom-color:#ffd166;box-shadow:inset 3px 0 0 #ffd166}
    .classHubChatAvatar{width:40px;height:40px;border-radius:999px;border:1px solid #ffd0e5;background:#fff;object-fit:cover;display:block}
    .classHubChatAvatarFallback{width:40px;height:40px;border-radius:999px;background:#10203d;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:17px;font-weight:950}
    .classHubChatMain{min-width:0;display:grid;gap:2px}
    .classHubChatNameLine{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}
    .classHubChatName{font-size:14px;font-weight:950;color:#10203d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .classHubChatId{font-size:11px;font-weight:950;color:#8a1952;white-space:nowrap}
    .classHubChatPreview{font-size:11px;font-weight:900;color:#6b5870;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .classHubChatMeta{display:grid;justify-items:end;gap:6px}
    .classHubChatTime{font-size:10px;font-weight:900;color:#8a1952;white-space:nowrap}
    .classHubChatUnread{min-width:20px;height:20px;border-radius:999px;background:#25d366;color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;font-size:10px;font-weight:950}
    .classHubChatPinBtn{width:24px;height:24px;border:1px solid #ffd0e5;border-radius:999px;background:#fff;color:#9d1457;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:950;line-height:1;touch-action:manipulation}
    .classHubChatPinBtn.active{background:#fff8dd;border-color:#ffd166;color:#8a1952}
    .classHubChatPinBtn:active{transform:scale(.94)}
    .classHubChatThreadCard.fullscreen{height:100%;min-height:0;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:0;padding:0;border:none;border-radius:0;background:transparent;box-shadow:none;position:relative}
    .classHubChatThreadHead{display:grid;grid-template-columns:auto 34px minmax(0,1fr) auto;gap:7px;align-items:center;margin-bottom:10px;padding:8px 10px;border-bottom:1px solid #ffd0e5;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);position:sticky;top:0;z-index:8}
    html.protivaIosNativeShell .classHubChatThreadHead{padding-top:calc(8px + var(--protiva-safe-top))}
    .classHubChatThreadCard.fullscreen .classHubChatThreadHead{margin-bottom:0}
    .classHubChatThreadHead .classHubChatAvatar,.classHubChatThreadHead .classHubChatAvatarFallback{width:34px;height:34px}
    .classHubChatBackBtn{width:34px;height:34px;border:1.5px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#9d1457;font-size:19px;font-weight:950;cursor:pointer;display:grid;place-items:center}
    .classHubChatThreadTitle{font-size:15px;font-weight:950;color:#10203d;line-height:1.08;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .classHubChatThreadSub{font-size:10px;font-weight:900;color:#8a1952;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .classHubChatThreadAction{width:34px;height:34px;border:1.5px solid #ffd0e5;border-radius:999px;background:#fff;color:#9d1457;font-size:16px;font-weight:950;display:grid;place-items:center}
    .classHubChatMessages{position:relative;border:none;border-radius:14px;background:linear-gradient(180deg,#f3fff8,#fff7fb);padding:8px;display:grid;gap:6px;align-content:start;grid-auto-rows:max-content;min-height:0;max-height:none;overflow:auto;-webkit-overflow-scrolling:touch}
    .classHubChatThreadCard.fullscreen .classHubChatMessages{min-height:0;max-height:none}
    .classHubChatThreadCard.fullscreen .classHubChatMessages{border-radius:0}
    .classHubChatComposer{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:5px;align-items:end;margin-top:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:rgba(255,251,253,.96);border-top:1px solid #ffd0e5}
    .classHubChatComposer.teacherGroup{grid-template-columns:minmax(0,1fr) auto}
    .classHubChatComposer .friendsGroupStatus{grid-column:1/-1;margin:0}
    .classHubChatInput{width:100%;min-height:38px;max-height:72px;border:1.5px solid #ffd0e5;border-radius:14px;background:#fff;color:#10203d;padding:9px 11px;font-size:13px;font-weight:900;line-height:1.28;resize:none;box-sizing:border-box}
    .classHubChatPresetBtn{width:34px;height:34px;border:1.5px solid #ffd0e5;border-radius:999px;background:linear-gradient(180deg,#fff,#fff7fb);color:#9d1457;font-size:16px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 5px 10px rgba(16,32,61,.05);padding:0}
    .classHubChatPresetBtn:active{transform:scale(.96)}
    .classHubChatPresetSheet{position:absolute;left:10px;right:10px;bottom:calc(56px + env(safe-area-inset-bottom));z-index:9;border:1.5px solid #ffd0e5;border-radius:18px;background:rgba(255,255,255,.98);box-shadow:0 18px 38px rgba(16,32,61,.16);padding:9px;opacity:0;pointer-events:none;transform:translateY(10px) scale(.98);transition:opacity .16s ease,transform .16s ease;max-height:min(340px,48vh);display:grid;gap:8px}
    .classHubChatPresetSheet.show{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}
    .classHubChatPresetHead{display:flex;align-items:center;justify-content:space-between;gap:8px}
    .classHubChatPresetTitle{font-size:12px;font-weight:950;color:#10203d}
    .classHubChatPresetClose{width:28px;height:28px;border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#9d1457;font-size:14px;font-weight:950}
    .classHubChatPresetList{display:grid;gap:6px;overflow:auto;-webkit-overflow-scrolling:touch;padding:1px;max-height:230px}
    .classHubChatPresetItem{border:1px solid rgba(255,208,229,.9);border-radius:12px;background:#fff;color:#10203d;text-align:left;padding:8px;display:grid;gap:3px}
    .classHubChatPresetCode{font-size:11px;font-weight:950;color:#9d1457}
    .classHubChatPresetText{font-size:11px;font-weight:850;color:#58627a;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
    .classHubChatPresetActions{display:flex;gap:6px;align-items:center}
    .classHubChatPresetSmallBtn{border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#9d1457;padding:6px 9px;font-size:11px;font-weight:950}
    .classHubChatSendBtn{min-width:44px;height:44px;border:none;border-radius:999px;background:linear-gradient(180deg,#22cfc0,#0f8a7d);color:#fff;padding:7px 9px;font-size:12px;font-weight:950;cursor:pointer;box-shadow:0 8px 14px rgba(15,138,125,.16)}
    .classHubChatSendBtn:disabled{opacity:.42;cursor:default}
    .classHubChatLoadMoreWrap{display:flex;justify-content:center}
    .classHubChatLoadMoreBtn{border:1px solid #ffd0e5;border-radius:999px;background:#fff;color:#8a1952;padding:8px 14px;font-size:12px;font-weight:950;cursor:pointer}
    .classHubChatLoadMoreBtn:disabled{opacity:.64;cursor:wait}
    #homeworkPlannerModal.classHubEmbedded{display:block!important;position:relative!important;inset:auto!important;background:transparent!important;padding:0!important;overflow:visible!important;z-index:auto!important;height:100%}
    #homeworkPlannerModal.classHubEmbedded .sheet{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;height:auto!important;min-height:100%!important;padding:0!important;overflow:visible!important;background:transparent!important;border-radius:0!important}
    #homeworkPlannerModal.classHubEmbedded .homeworkSheet{max-width:none;margin:0;border:none;border-radius:0;background:transparent;box-shadow:none;padding:0}
    #homeworkPlannerModal.classHubEmbedded #closeHomeworkPlannerTopBtn,
    #homeworkPlannerModal.classHubEmbedded #closeHomeworkPlannerModal{display:none!important}
    .friendsGroupIdTiny{font-size:10px;font-weight:900;color:#8a1952}
    .friendsGroupModerationRow{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
    .friendsGroupModerationBtn{border:1px solid #ffd0e5;border-radius:999px;background:#fff;color:#8a1952;padding:4px 8px;font-size:10px;font-weight:950}
    .friendsGroupModerationBtn.danger{background:#fff1f2;border-color:#fecaca;color:#b91c1c}
    .friendsGroupMetaActions{display:flex;align-items:flex-start;gap:6px;flex:0 0 auto}
    .friendsGroupMetaActions .friendsGroupTime{text-align:right}
    .friendsGroupModerationMenuWrap{position:relative;display:flex;align-items:flex-start;justify-content:flex-end;flex:0 0 auto}
    .friendsGroupModerationToggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:999px;background:transparent;color:#9d1457;font-size:18px;font-weight:950;line-height:1}
    .friendsGroupModerationMenu{position:absolute;top:28px;right:0;display:grid;gap:6px;min-width:118px;padding:8px;border:1px solid #ffd0e5;border-radius:14px;background:#fff;box-shadow:0 14px 28px rgba(16,32,61,.16);z-index:2}
    .friendsGroupModerationMenuBtn{border:1px solid #ffd0e5;border-radius:10px;background:#fff;color:#8a1952;padding:8px 10px;font-size:11px;font-weight:950;text-align:left}
    .friendsGroupModerationMenuBtn.danger{background:#fff1f2;border-color:#fecaca;color:#b91c1c}
    .friendsGroupHeader{position:relative;top:auto;z-index:30;flex:0 0 auto;display:grid;grid-template-columns:36px minmax(0,1fr) 30px;gap:7px;align-items:center;min-height:52px;padding:calc(2px + var(--protiva-safe-top)) calc(9px + env(safe-area-inset-right)) 6px calc(9px + env(safe-area-inset-left));border-bottom:1.5px solid #ffd166;background:linear-gradient(135deg,rgba(255,255,255,.98) 0%,rgba(255,247,219,.96) 45%,rgba(255,235,247,.98) 100%);box-shadow:0 8px 20px rgba(255,115,181,.13),0 0 0 1px rgba(255,255,255,.7) inset;overflow:visible;isolation:isolate}
    .friendsGroupHeader:before{content:"";position:absolute;inset:0;background:linear-gradient(112deg,transparent 0%,transparent 38%,rgba(255,255,255,.68) 48%,transparent 60%,transparent 100%);transform:translateX(-105%);animation:friendsGroupGameGlow 5.4s ease-in-out infinite;pointer-events:none}
    .friendsGroupHeader:after{content:"";position:absolute;left:8px;right:8px;bottom:2px;height:3px;border-radius:999px;background:radial-gradient(circle,#ffd166 0 2px,transparent 3px) 0 0/22px 3px repeat-x;opacity:.62;animation:friendsGroupCasinoBlink 2.4s ease-in-out infinite;pointer-events:none}
    .friendsGroupHeader>*{position:relative;z-index:1}
    .friendsGroupHeadMain{min-width:0;display:grid;gap:2px}
    .friendsGroupTitleRow{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;flex-wrap:nowrap;overflow:visible}
    .friendsGroupHeaderActions{display:flex;align-items:center;gap:4px;flex:0 0 auto}
    .friendsGroupHeaderIconBtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:29px;height:29px;border:1.5px solid #ffd0e5;border-radius:11px;background:linear-gradient(135deg,#fff,#fff8dd);color:#9d1457;font-size:14px;font-weight:950;line-height:1;box-shadow:0 7px 14px rgba(255,115,181,.10)}
    .friendsGroupHeaderIconBtn svg{width:16px;height:16px;display:block;stroke:currentColor}
    .friendsGroupHeaderIconBtn.approval{color:#07854f;border-color:#a7f3d0;background:linear-gradient(135deg,#ecfff6,#fff);box-shadow:0 8px 16px rgba(34,197,94,.12)}
    .friendsGroupHeaderIconBtn.active{background:linear-gradient(135deg,#10203d,#8a1952);border-color:#ffd166;color:#fff;box-shadow:0 10px 20px rgba(16,32,61,.18),0 0 0 3px rgba(255,209,102,.18)}
    .friendsGroupMysteryWheelDock{position:absolute;right:48px;top:64px;z-index:44;display:flex;align-items:center;justify-content:flex-end;pointer-events:none}
    .friendsGroupWheelInlineSlot{position:sticky;top:0;z-index:45;display:flex;justify-content:flex-end;align-items:center;min-height:62px;margin:-2px 0 2px;padding:0 4px 4px;pointer-events:none}
    .friendsGroupWheelInlineSlot .friendsGroupMysteryWheelBtn{width:56px;height:56px}
    .friendsGroupWheelInlineSlot .friendsGroupWheelTomorrow{margin-top:8px}
    .friendsGroupGameDock{position:absolute;right:12px;top:68px;z-index:44;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:6px;padding:0;background:transparent;border:0;max-width:calc(100% - 24px);pointer-events:none}
    .friendsGroupGameDock:empty{display:none}
    .friendsGroupOverlay.classHubMount .friendsGroupGameDock{top:60px;right:10px}
    .friendsGroupGameDock .friendsGroupWheelInlineSlot{position:relative;top:auto;z-index:1;min-height:0;margin:0;padding:0;flex:0 0 auto}
    .friendsGroupMysteryWheelBtn{pointer-events:auto;width:58px;height:58px;border-radius:999px;border:2px solid #ffd166;background:conic-gradient(from 0deg,#ff4d88 0 16%,#fff2b8 16% 28%,#ff6b6b 28% 44%,#fff 44% 52%,#db2777 52% 68%,#ffe082 68% 82%,#b91c5c 82% 100%);color:#fff;font-size:9px;font-weight:950;line-height:1.05;text-align:center;text-shadow:0 1px 3px rgba(80,0,40,.55);box-shadow:0 8px 20px rgba(219,39,119,.24),0 0 0 4px rgba(255,209,102,.20),0 0 18px rgba(255,77,136,.28) inset;display:flex;align-items:center;justify-content:center;padding:6px;transform:translateZ(0);animation:friendsGroupWheelGlow 1.8s ease-in-out infinite}
    .friendsGroupMysteryWheelBtn:disabled{opacity:.72;filter:saturate(.85);animation:none}
    .friendsGroupMysteryWheelBtn.locked{background:linear-gradient(135deg,#10203d,#8a1952);border-color:#ffd166;animation:none}
    .friendsGroupMysteryWheelBtn:before{content:"";position:absolute;inset:7px;border-radius:999px;border:1px dashed rgba(255,255,255,.78)}
    .friendsGroupMysteryWheelBtn:after{content:"";position:absolute;top:-7px;left:50%;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:12px solid #10203d;transform:translateX(-50%);filter:drop-shadow(0 2px 2px rgba(16,32,61,.20))}
    .friendsGroupMysteryWheelBtn span{position:relative;z-index:1;max-width:42px}
    .friendsGroupWheelInlineSlot .friendsGroupLimitCountdown{top:-13px;max-width:104px}
    .friendsGroupWheelLock{display:block;font-size:13px;line-height:1;margin-bottom:1px}
    .friendsGroupWheelTomorrow{pointer-events:auto;border:1px solid #ffd0e5;border-radius:999px;background:rgba(255,255,255,.94);color:#9d1457;font-size:9px;font-weight:950;padding:5px 8px;box-shadow:0 8px 16px rgba(255,115,181,.12);white-space:nowrap}
    .friendsGroupMysteryWheelOverlay{position:absolute;inset:0;z-index:90;background:rgba(16,32,61,.18);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:14px;animation:friendsGroupWheelFade .24s ease both}
    .friendsGroupMysteryWheelCard{width:min(336px,92vw);border:1.5px solid #ffd166;border-radius:22px;background:linear-gradient(180deg,#fff 0%,#fff9e7 54%,#ffe7f2 100%);box-shadow:0 24px 60px rgba(16,32,61,.22),0 0 0 5px rgba(255,255,255,.62) inset;padding:14px 14px 15px;text-align:center;position:relative;overflow:hidden}
    .friendsGroupMysteryWheelCard:before{content:"";position:absolute;inset:-35%;background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.72),transparent 26%),radial-gradient(circle at 20% 80%,rgba(255,209,102,.20),transparent 28%),radial-gradient(circle at 88% 76%,rgba(255,77,136,.16),transparent 30%);opacity:.68;pointer-events:none}
    .friendsGroupWheelPointerSlot{position:relative;z-index:3;height:28px;margin:0 auto -2px;display:flex;align-items:flex-start;justify-content:center}
    .friendsGroupWheelPointer{position:relative;width:0;height:0;border-left:13px solid transparent;border-right:13px solid transparent;border-top:22px solid #10203d;transform:translateZ(0);z-index:3;filter:drop-shadow(0 2px 2px rgba(16,32,61,.20));will-change:transform}
    .friendsGroupWheelPointer.tick{animation:friendsGroupWheelPointerTick .12s ease-out both}
    .friendsGroupWheelCenterSpinner{position:relative;z-index:2;width:224px;height:224px;margin:0 auto 10px;border-radius:999px;border:8px solid #ffd166;background:conic-gradient(from 0deg,#ff4d88 0 12.5%,#fff2b8 12.5% 25%,#f43f5e 25% 37.5%,#fff 37.5% 50%,#db2777 50% 62.5%,#ffe082 62.5% 75%,#b91c5c 75% 87.5%,#ffc2d8 87.5% 100%);box-shadow:0 14px 30px rgba(219,39,119,.22),0 0 0 8px rgba(255,255,255,.5) inset,0 0 24px rgba(255,209,102,.50);display:flex;align-items:center;justify-content:center;color:#10203d;font-size:13px;font-weight:950;text-shadow:0 1px 0 rgba(255,255,255,.7);transform:rotate(var(--wheel-rotation,0deg)) translateZ(0);transition:transform var(--wheel-duration,15000ms) cubic-bezier(.08,.72,.05,1);will-change:transform;backface-visibility:hidden}
    .friendsGroupWheelCenterSpinner.spinning{transition-duration:var(--wheel-duration,15000ms)}
    .friendsGroupWheelHub{width:82px;height:82px;border-radius:999px;background:linear-gradient(135deg,#fff,#fff2b8,#ff8ab5);border:3px solid #fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(16,32,61,.18),0 0 20px rgba(255,209,102,.45);padding:10px;line-height:1.1}
    .friendsGroupWheelMarquee{position:relative;z-index:3;display:inline-flex;align-items:center;justify-content:center;gap:5px;margin:2px auto 3px;border:1.5px solid #ffd166;border-radius:999px;background:linear-gradient(180deg,#10203d,#7a1048);color:#fff4c7;font-size:12px;font-weight:950;letter-spacing:0;padding:7px 14px;box-shadow:0 10px 22px rgba(16,32,61,.18),0 0 18px rgba(255,209,102,.25) inset;text-transform:uppercase}
    .friendsGroupWheelMarquee:before,.friendsGroupWheelMarquee:after{content:"";width:6px;height:6px;border-radius:999px;background:#ffe082;box-shadow:0 0 10px #ffd166;animation:friendsGroupWheelBulbBlink .72s ease-in-out infinite}
    .friendsGroupWheelBulbs{position:absolute;inset:7px;border-radius:22px;pointer-events:none;z-index:1;background:radial-gradient(circle at 9% 10%,#fff6c8 0 4px,transparent 5px),radial-gradient(circle at 24% 5%,#ff85b4 0 4px,transparent 5px),radial-gradient(circle at 48% 4%,#fff6c8 0 4px,transparent 5px),radial-gradient(circle at 74% 5%,#ff85b4 0 4px,transparent 5px),radial-gradient(circle at 91% 10%,#fff6c8 0 4px,transparent 5px),radial-gradient(circle at 96% 42%,#ff85b4 0 4px,transparent 5px),radial-gradient(circle at 90% 86%,#fff6c8 0 4px,transparent 5px),radial-gradient(circle at 50% 96%,#ff85b4 0 4px,transparent 5px),radial-gradient(circle at 10% 86%,#fff6c8 0 4px,transparent 5px),radial-gradient(circle at 4% 42%,#ff85b4 0 4px,transparent 5px);animation:friendsGroupWheelBulbBlink .54s steps(2,end) infinite,friendsGroupWheelLightSweep 1.6s linear infinite;box-shadow:0 0 24px rgba(255,209,102,.28) inset}
    .friendsGroupWheelSegmentLabels{position:absolute;inset:0;border-radius:999px;pointer-events:none}
    .friendsGroupWheelSegmentLabels span{position:absolute;left:50%;top:50%;width:68px;margin-left:-34px;margin-top:-19px;text-align:center;color:#7a0f3e;font-size:8px;font-weight:950;text-shadow:0 1px 0 rgba(255,255,255,.82),0 2px 4px rgba(16,32,61,.16);line-height:1.05}
    .friendsGroupWheelSegmentLabels span b{display:block;font-size:15px;line-height:1}
    .friendsGroupWheelSegmentLabels span strong{display:block;font-size:7px;font-weight:950;line-height:1.05;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:normal}
    .friendsGroupWheelSegmentLabels span small{display:block;font-size:6px;font-weight:950;letter-spacing:0;color:#4c1230;line-height:1;margin-top:2px}
    .friendsGroupWheelSegmentLabels span:nth-child(1){transform:rotate(22deg) translateY(-87px) rotate(-22deg)}
    .friendsGroupWheelSegmentLabels span:nth-child(2){transform:rotate(67deg) translateY(-87px) rotate(-67deg)}
    .friendsGroupWheelSegmentLabels span:nth-child(3){transform:rotate(112deg) translateY(-87px) rotate(-112deg)}
    .friendsGroupWheelSegmentLabels span:nth-child(4){transform:rotate(157deg) translateY(-87px) rotate(-157deg)}
    .friendsGroupWheelSegmentLabels span:nth-child(5){transform:rotate(202deg) translateY(-87px) rotate(-202deg)}
    .friendsGroupWheelSegmentLabels span:nth-child(6){transform:rotate(247deg) translateY(-87px) rotate(-247deg)}
    .friendsGroupWheelSegmentLabels span:nth-child(7){transform:rotate(292deg) translateY(-87px) rotate(-292deg)}
    .friendsGroupWheelSegmentLabels span:nth-child(8){transform:rotate(337deg) translateY(-87px) rotate(-337deg)}
    .friendsGroupWheelCelebration{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
    .friendsGroupWheelConfetti i,.friendsGroupWheelDiamondBlast i{position:absolute;left:50%;top:50%;display:block}
    .friendsGroupWheelConfetti i{width:7px;height:12px;border-radius:3px;background:#ffd166;animation:friendsGroupWheelConfettiPop 1.15s ease-out both}
    .friendsGroupWheelConfetti i:nth-child(2n){background:#ff4d88}.friendsGroupWheelConfetti i:nth-child(3n){background:#38d9c7}.friendsGroupWheelConfetti i:nth-child(4n){background:#7dd3fc}
    .friendsGroupWheelDiamondBlast i{font-style:normal;font-size:18px;font-weight:950;color:#30c8ff;text-shadow:0 0 10px rgba(86,211,255,.9),0 0 18px rgba(255,209,102,.8);animation:friendsGroupWheelDiamondBlast 1.25s ease-out both}
    .friendsGroupWheelScoreFlight{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:visible}
    .friendsGroupWheelScoreFlight i{position:absolute;left:50%;top:50%;display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;border-radius:999px;padding:0 6px;font-style:normal;font-size:12px;font-weight:950;line-height:1;box-shadow:0 8px 16px rgba(16,32,61,.16);opacity:0}
    .friendsGroupWheelScoreFlight.win i{background:linear-gradient(135deg,#ecfbff,#fff8c7,#ffe7f3);border:1px solid #ffd166;color:#087ea4;text-shadow:0 0 8px rgba(86,211,255,.74);animation:friendsGroupWheelScoreFlyWin 1.55s cubic-bezier(.18,.86,.22,1) both}
    .friendsGroupWheelScoreFlight.lose i{background:linear-gradient(135deg,#fff1f2,#fff,#ffdbe8);border:1px solid #fecdd3;color:#b91c1c;text-shadow:0 1px 0 rgba(255,255,255,.7);animation:friendsGroupWheelScoreFlyLose 1.25s cubic-bezier(.35,.05,.7,.25) both}
    .friendsGroupWheelResultCard{position:relative;z-index:2;margin-top:6px;border:1.5px solid #ffd166;border-radius:16px;background:rgba(255,255,255,.92);box-shadow:0 12px 24px rgba(255,115,181,.14),0 0 0 3px rgba(255,209,102,.12);padding:11px 9px}
    .friendsGroupWheelResultCard.pending{background:rgba(255,255,255,.72)}
    .friendsGroupWheelResult{color:#8a1952;font-size:16px;font-weight:950;line-height:1.25;min-height:28px;display:flex;align-items:center;justify-content:center}
    .friendsGroupWheelSub{position:relative;z-index:2;color:#7d526b;font-size:11px;font-weight:850;line-height:1.25;margin-top:5px}
    .friendsGroupWheelClose{position:relative;z-index:2;margin-top:12px;border:1px solid #ffd166;border-radius:999px;background:linear-gradient(135deg,#10203d,#8a1952 64%,#db2777);color:#fff4c7;font-size:13px;font-weight:950;padding:9px 22px;box-shadow:0 10px 20px rgba(138,25,82,.20),0 0 0 3px rgba(255,209,102,.18)}
    .friendsGroupActivityLine.mysteryWheel{border-color:#ffd166;background:linear-gradient(90deg,#fff2b8,#fff,#ffe4f0);color:#9d1457;box-shadow:0 0 0 3px rgba(255,209,102,.16),0 8px 18px rgba(219,39,119,.10)}
    @keyframes friendsGroupWheelGlow{0%,100%{transform:scale(1);filter:saturate(1)}50%{transform:scale(1.045);filter:saturate(1.15)}}
    @keyframes friendsGroupWheelFade{from{opacity:0}to{opacity:1}}
    @keyframes friendsGroupWheelPointerTick{0%{transform:translateY(0) scale(1)}45%{transform:translateY(5px) scale(1.08)}100%{transform:translateY(0) scale(1)}}
    @keyframes friendsGroupWheelBulbBlink{0%,100%{filter:brightness(1);opacity:.82}50%{filter:brightness(1.5);opacity:1}}
    @keyframes friendsGroupWheelLightSweep{0%{box-shadow:0 0 18px rgba(255,209,102,.18) inset,0 0 0 rgba(255,255,255,0)}50%{box-shadow:0 0 34px rgba(255,209,102,.45) inset,0 0 22px rgba(255,77,136,.18)}100%{box-shadow:0 0 18px rgba(255,209,102,.18) inset,0 0 0 rgba(255,255,255,0)}}
    @keyframes friendsGroupWheelConfettiPop{0%{opacity:0;transform:translate(-50%,-50%) rotate(0deg) scale(.2)}14%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(1)}}
    @keyframes friendsGroupWheelDiamondBlast{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}18%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1.35)}}
    @keyframes friendsGroupWheelScoreFlyWin{0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}15%{opacity:1;transform:translate(calc(-50% + var(--sx)),calc(-50% + var(--sy))) scale(1.1)}100%{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(.72)}}
    @keyframes friendsGroupWheelScoreFlyLose{0%{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(.72)}18%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(.2)}}
    @media (prefers-reduced-motion:reduce){.friendsGroupWheelCenterSpinner.spinning{transition-duration:1200ms!important}.friendsGroupWheelBulbs,.friendsGroupWheelPointer.tick{animation:none!important}.friendsGroupMysteryWheelBtn{animation:none}}
    .friendsGroupDownloadSheetBackdrop{position:fixed;inset:0;z-index:10030;background:rgba(16,32,61,.26);display:flex;align-items:flex-end;justify-content:center;padding:14px;box-sizing:border-box}
    .friendsGroupDownloadSheet{width:min(460px,100%);border:1px solid #ffd0e5;border-radius:20px;background:#fff;box-shadow:0 22px 50px rgba(16,32,61,.22);padding:16px;display:grid;gap:12px}
    .friendsGroupDownloadTitle{font-size:18px;font-weight:950;color:#10203d;line-height:1.15}
    .friendsGroupDownloadMeta{font-size:12px;font-weight:900;color:#8a1952;line-height:1.35}
    .friendsGroupDownloadGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
    .friendsGroupDownloadField{display:grid;gap:6px;font-size:11px;font-weight:950;color:#6b5870;text-transform:uppercase}
    .friendsGroupDownloadField input{width:100%;min-height:42px;border:1.5px solid #ffd0e5;border-radius:14px;background:#fff;color:#10203d;padding:8px 10px;font-size:14px;font-weight:900;box-sizing:border-box}
    .friendsGroupDownloadActions{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
    .friendsGroupHeaderBadge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:999px;background:#10203d;color:#fff;font-size:10px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 6px 12px rgba(16,32,61,.18)}
    .friendsGroupLogo{position:relative;z-index:1;width:36px;height:36px;border:1px solid #ffd0e5;border-radius:11px;background:#fff;object-fit:contain;padding:4px;box-shadow:0 7px 14px rgba(255,115,181,.13),0 0 0 2px rgba(255,209,102,.12)}
    .friendsGroupTitle{font-size:15px;font-weight:950;color:#10203d;line-height:1.1;min-width:0;flex:1 1 auto;text-shadow:0 0 14px rgba(255,209,102,.28);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupSub{font-size:10px;font-weight:900;color:#8a1952;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupClose{width:30px;height:30px;border:1.5px solid #ffc4df;border-radius:999px;background:#fff;color:#9d1457;font-size:15px;font-weight:950;line-height:1}
    .friendsGroupBackBtn{width:34px;height:34px;border:1.5px solid #ffc4df;border-radius:999px;background:#fff7fb;color:#9d1457;font-size:21px;font-weight:950;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 16px rgba(255,115,181,.10)}
    .friendsGroupHeader.classHubAdminHeader .friendsGroupLogo{width:36px;height:36px;border-radius:999px;padding:0;object-fit:cover}
    .friendsGroupClassHubHeaderActions{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:6px}
    .friendsGroupClassHubHeaderActions .friendsGroupChallengeHeaderBtn{min-width:104px;min-height:34px}
    .friendsGroupClassHubHeaderActions .friendsGroupChallengeHeaderBtn .count{top:-4px;right:-4px}
    .friendsGroupClassHubHeaderActions .friendsGroupHeaderActions{gap:6px}
    .friendsGroupClassHubHeaderActions .friendsGroupJackpotHeaderBtn{width:34px;min-width:34px;height:34px;min-height:34px;padding:0}
    .friendsGroupLimitWrap{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
    .friendsGroupLimitCountdown{position:absolute;left:50%;top:-15px;transform:translateX(-50%);z-index:4;display:inline-flex;align-items:center;gap:3px;max-width:112px;padding:2px 6px;border:1px solid #ffd166;border-radius:999px;background:linear-gradient(135deg,#10203d,#8a1952);color:#fff;font-size:8px;font-weight:950;line-height:1;white-space:nowrap;box-shadow:0 6px 13px rgba(16,32,61,.18);pointer-events:none}
    .friendsGroupLimitCountdown .lock{font-size:9px;line-height:1}
    .friendsGroupTitleRow>.friendsGroupLimitWrap .friendsGroupLimitCountdown{top:auto;bottom:-14px;max-width:98px;padding:1px 5px;font-size:7.5px}
    .friendsGroupSheetCard>.friendsGroupLimitWrap{width:100%;display:flex}
    .friendsGroupLimitWrap .friendsGroupChallengeRulesStart{width:100%}
    .friendsGroupNotificationHeaderBtn{width:29px;height:29px;min-width:29px;border-radius:999px;border:1px solid #ffc4df;background:linear-gradient(135deg,#eef7ff,#fff,#ffe8f5);color:#10203d;font-size:14px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 7px 14px rgba(255,115,181,.10),0 0 0 2px rgba(255,255,255,.58) inset;position:relative;cursor:pointer}
    .friendsGroupNotificationHeaderBtn:after{content:"";position:absolute;right:4px;top:4px;width:6px;height:6px;border-radius:999px;background:#ff4f9b;border:1px solid #fff;box-shadow:0 0 8px rgba(255,79,155,.50)}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupHeader{grid-template-columns:34px minmax(0,1fr) 29px;gap:6px;min-height:46px;padding:var(--protiva-safe-top) calc(8px + env(safe-area-inset-right)) 4px calc(8px + env(safe-area-inset-left));align-items:center}
    html.protivaIosNativeShell .friendsGroupOverlay:not(.classHubMount) .friendsGroupHeader{padding-top:calc(8px + var(--protiva-safe-top))}
    html.protivaIosNativeShell .friendsGroupOverlay:not(.classHubMount) .friendsGroupGameDock{top:calc(68px + var(--protiva-safe-top))}
    html.protivaIosNativeShell .friendsGroupOverlay:not(.classHubMount) .friendsGroupMysteryWheelDock{top:calc(64px + var(--protiva-safe-top))}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupLogo{width:34px;height:34px;border-radius:10px;padding:3px}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupHeadMain{gap:1px}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupTitle{font-size:14px;line-height:1.05}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupSub{font-size:10px;margin-top:0;line-height:1.05}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupClose{width:29px;height:29px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;align-self:center}
    .friendsGroupCanvas{position:relative;z-index:1;flex:1 1 auto;overflow:auto;padding:10px 12px 92px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
    .nativeFriendsGroupFeedActive .friendsGroupCanvas > *{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
    .nativeFriendsGroupShellActive .friendsGroupHeader,
    .nativeFriendsGroupShellActive .friendsGroupPendingRocket,
    .nativeFriendsGroupShellActive .friendsGroupGameDock,
    .nativeFriendsGroupShellActive .friendsGroupMysteryWheelDock,
    .nativeFriendsGroupShellActive #friendsGroupTopNoticeArea,
    .nativeFriendsGroupNativeTopActive .friendsGroupPendingRocket,
    .nativeFriendsGroupNativeTopActive .friendsGroupGameDock,
    .nativeFriendsGroupNativeTopActive .friendsGroupMysteryWheelDock,
    .nativeFriendsGroupNativeTopActive #friendsGroupTopNoticeArea,
    .nativeFriendsGroupShellActive .friendsGroupCanvas,
    .nativeFriendsGroupShellActive .compactChatScrollBtn,
    .nativeFriendsGroupShellActive .friendsGroupFooter{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
    .friendsGroupStatus{margin:0 0 10px;padding:10px 12px;border:1px solid #ffd0e5;border-radius:14px;background:#fff7fb;color:#8a1952;font-size:12px;font-weight:900;line-height:1.35}
    .privateTeacherChatBlockedNotice{grid-column:1/-1;margin:0 2px 4px;color:#9f1239;font-size:11px;font-weight:800;line-height:1.25}
    .friendsGroupFeed{display:grid;gap:9px}
    .friendsGroupEmpty{padding:24px 14px;border:1px dashed #ffc4df;border-radius:16px;background:#fff;color:#8a1952;text-align:center;font-size:13px;font-weight:900;line-height:1.45}
    .compactLoadCard{border:1px solid #ffd0e5;border-radius:14px;background:rgba(255,255,255,.94);padding:12px;box-shadow:0 8px 18px rgba(255,115,181,.08);display:grid;gap:9px}
    .compactLoadTop{display:flex;align-items:center;gap:9px;min-width:0}
    .compactLoadSpinner{width:26px;height:26px;border-radius:999px;border:3px solid #ffe1ef;border-top-color:#10203d;animation:compactLoadSpin .82s linear infinite;flex:0 0 auto}
    .compactLoadText{min-width:0;display:grid;gap:1px}
    .compactLoadTitle{font-size:13px;font-weight:950;color:#10203d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .compactLoadSub{font-size:10px;font-weight:900;color:#8a1952;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .compactLoadTrack{height:7px;border-radius:999px;background:#ffe3f1;overflow:hidden}
    .compactLoadFill{height:100%;border-radius:999px;background:linear-gradient(90deg,#20c7b5,#f02d8f);transition:width .28s ease}
    .friendsGroupOpenRefresh{border:1px solid #ffd0e5;border-radius:14px;background:rgba(255,255,255,.94);padding:12px;box-shadow:0 8px 18px rgba(255,115,181,.08);display:flex;align-items:center;gap:10px;color:#10203d}
    .friendsGroupOpenRefresh b{display:block;font-size:13px;font-weight:950;line-height:1.1}
    .friendsGroupOpenRefresh small{display:block;margin-top:2px;color:#8a1952;font-size:10px;font-weight:900;line-height:1.2}
    .friendsGroupOpenRefreshStack{display:grid;gap:10px;min-height:260px}
    .friendsGroupFeedSkeleton{display:grid;gap:9px}
    .friendsGroupSkeletonPost{position:relative;min-height:136px;border:1px solid rgba(255,208,229,.95);border-radius:16px;background:linear-gradient(135deg,#fff 0%,#fff9fd 58%,#fff8dd 100%);box-shadow:0 9px 20px rgba(255,115,181,.09),0 0 0 1px rgba(255,255,255,.66) inset;overflow:hidden}
    .friendsGroupSkeletonPost:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.8) 45%,transparent 72%);transform:translateX(-100%);animation:friendsGroupSkeletonSweep 1.35s ease-in-out infinite}
    .friendsGroupSkeletonPost span{position:absolute;left:12px;top:12px;width:36px;height:36px;border-radius:999px;background:#ffe6f2}
    .friendsGroupSkeletonPost i{position:absolute;left:58px;right:72px;top:17px;height:14px;border-radius:999px;background:#ffe6f2}
    .friendsGroupSkeletonPost b{position:absolute;left:58px;right:34px;top:50px;height:72px;border-radius:14px;background:linear-gradient(135deg,#fff1f8,#fff8dc)}
    .friendsGroupSkeletonPost.wide b{right:18px}
    .friendsGroupSkeletonPost.short{min-height:92px}
    .friendsGroupSkeletonPost.short b{height:30px}
    @keyframes friendsGroupSkeletonSweep{to{transform:translateX(100%)}}
    @keyframes compactLoadSpin{to{transform:rotate(360deg)}}
    .friendsGroupPost{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:start;border:1px solid rgba(255,208,229,.95);border-radius:16px;background:linear-gradient(135deg,#fff 0%,#fff9fd 58%,#fff8dd 100%);padding:9px;box-shadow:0 9px 20px rgba(255,115,181,.09),0 0 0 1px rgba(255,255,255,.66) inset;contain:layout paint}
    .friendsGroupOverlay.heavyFeed .friendsGroupPost,.friendsGroupOverlay.heavyFeed .friendsGroupActivityCard,.friendsGroupOverlay.heavyFeed .friendsGroupActivityLine{content-visibility:auto;contain-intrinsic-size:auto 260px}
    .friendsGroupOverlay.heavyFeed .friendsGroupPost.friendsGroupPostArtwork{content-visibility:visible;contain-intrinsic-size:auto 210px}
    .friendsGroupOverlay.heavyFeed .friendsGroupActivityLine{contain-intrinsic-size:auto 32px}
    .friendsGroupOverlay.simplePreload .friendsGroupPost,.friendsGroupOverlay.simplePreload .friendsGroupActivityCard,.friendsGroupOverlay.simplePreload .friendsGroupActivityLine{content-visibility:visible;contain-intrinsic-size:auto}
    .friendsGroupOverlay.simplePreload .friendsGroupPost.newArrival{animation:none!important;box-shadow:0 9px 20px rgba(255,115,181,.09),0 0 0 1px rgba(255,255,255,.66) inset!important;will-change:auto}
    .friendsGroupOverlay.simplePreload .friendsGroupActivityLine.newArrival{animation:none!important;box-shadow:0 5px 12px rgba(255,115,181,.07),0 0 0 2px rgba(255,255,255,.55) inset!important;will-change:auto}
    .friendsGroupOverlay.simplePreload .friendsGroupActivityCard.newArrival{animation:none!important;box-shadow:0 0 0 3px rgba(255,209,102,.16),0 10px 22px rgba(240,45,143,.12)!important;will-change:auto}
    .friendsGroupPost.newArrival,.friendsGroupActivityLine.newArrival,.friendsGroupActivityCard.newArrival{animation:friendsGroupNewArrival .52s cubic-bezier(.2,.8,.2,1) both}
    .friendsGroupPost.friendsGroupPostPending{opacity:.82;border-style:dashed;background:linear-gradient(135deg,#fff,#fffaf0,#fff2fa)}
    .friendsGroupPost.friendsGroupPostPending .friendsGroupTime{color:#0f8a7d}
    .friendsGroupPost.achievementFriendPost{grid-template-columns:72px minmax(0,1fr);gap:10px;padding:11px 10px}
    .friendsGroupPost.achievementFriendRowShine{position:relative;overflow:hidden;border-color:#f3c652;box-shadow:0 8px 18px rgba(255,115,181,.08),0 0 0 2px rgba(255,218,104,.18)}
    .friendsGroupPost.achievementFriendRowShine:before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 0%,transparent 34%,rgba(255,229,134,.08) 42%,rgba(255,208,77,.34) 50%,rgba(255,255,255,.18) 58%,transparent 66%,transparent 100%);transform:translateX(-76%) rotate(0deg);animation:achievementFrameThinkingShine 3.8s ease-in-out infinite;pointer-events:none;z-index:0}
    .friendsGroupPost.achievementFriendRowShine:after{content:"";position:absolute;inset:3px;border-radius:13px;background:radial-gradient(circle at 18% 20%,rgba(255,235,156,.78) 0 1px,transparent 2px),radial-gradient(circle at 82% 28%,rgba(255,255,255,.86) 0 1px,transparent 2px),radial-gradient(circle at 74% 78%,rgba(255,215,112,.72) 0 1px,transparent 2px);opacity:.46;animation:achievementRowGlints 3.8s ease-in-out infinite;pointer-events:none;z-index:0}
    .friendsGroupOverlay.scrollBusy .friendsGroupPost.newArrival,.friendsGroupOverlay.scrollBusy .friendsGroupActivityLine.newArrival,.friendsGroupOverlay.scrollBusy .friendsGroupActivityCard.newArrival,.friendsGroupOverlay.scrollBusy .friendsGroupActivityLine.challengeHot,.friendsGroupOverlay.scrollBusy .friendsGroupActivityCard.challengeWin,.friendsGroupOverlay.scrollBusy .friendsGroupPost.achievementFriendRowShine:before,.friendsGroupOverlay.scrollBusy .friendsGroupPost.achievementFriendRowShine:after{animation:none!important;will-change:auto}
    .protivaAdaptivePerf .friendsGroupPost.newArrival,.protivaAdaptivePerf .friendsGroupActivityLine.newArrival,.protivaAdaptivePerf .friendsGroupActivityCard.newArrival,.protivaAdaptivePerf .friendsGroupChallengeCard.voting,.protivaAdaptivePerf .friendsGroupChallengeCrown,.protivaAdaptivePerf .friendsGroupChallengeCrown:after{animation:none!important;will-change:auto}
    .friendsGroupPost.achievementFriendRowShine>*{position:relative;z-index:1}
    .friendsGroupAvatar{width:34px;height:34px;border-radius:999px;background:#10203d;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:950;text-transform:uppercase}
    .friendsGroupBubble{min-width:0}
    .friendsGroupNameLine{display:flex;align-items:center;justify-content:space-between;gap:8px}
    .friendsGroupName{min-width:0;font-size:13px;font-weight:950;color:#10203d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupPost.achievementFriendPost .friendsGroupName{display:flex;align-items:center;gap:5px;flex-wrap:wrap;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.18}
    .friendsGroupDiamondChip{display:inline-flex;align-items:center;gap:2px;margin-left:4px;color:#8a1952;font-size:12px;font-weight:950;vertical-align:middle;border:1px solid rgba(255,209,102,.65);border-radius:999px;background:linear-gradient(135deg,#fff,#fff8d8);padding:1px 6px;box-shadow:0 5px 12px rgba(255,209,102,.16)}
    .friendsGroupStudentMetaChips{display:inline-flex;align-items:center;gap:3px;flex-wrap:wrap;min-width:0}
    .friendsGroupStudentMetaChip{display:inline-flex;align-items:center;min-height:16px;max-width:80px;padding:1px 5px;border-radius:999px;border:1px solid rgba(255,208,229,.92);background:rgba(255,255,255,.78);color:#8a1952;font-size:9px;font-weight:950;line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupPost.achievementFriendPost .friendsGroupNameText{min-width:0;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupOverlay.sessionView .friendsGroupNameLine{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px}
    .friendsGroupOverlay.sessionView .friendsGroupName{display:flex;align-items:center;gap:4px;flex-wrap:wrap;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.08}
    .friendsGroupOverlay.sessionView .friendsGroupNameText{min-width:0;max-width:100%;overflow-wrap:anywhere}
    .friendsGroupOverlay.sessionView .friendsGroupPost.achievementFriendPost .friendsGroupName{gap:4px;line-height:1.1}
    .friendsGroupOverlay.sessionView .friendsGroupPost.achievementFriendPost .friendsGroupNameText{overflow:visible;text-overflow:clip}
    .friendsGroupOverlay.sessionView .friendsGroupDiamondChip{margin-left:0;flex:0 0 auto;font-size:11px;padding:1px 5px}
    .friendsGroupTime{font-size:10px;font-weight:900;color:#9b7b8e;white-space:nowrap}
    .friendsGroupText{margin-top:3px;font-size:13px;font-weight:900;color:#4d4151;line-height:1.35;word-break:break-word}
    .friendsGroupActivityLine{border:1px solid #ffd0e5;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.95),rgba(255,248,216,.72),rgba(255,255,255,.95));color:#8a1952;padding:5px 9px;font-size:10px;font-weight:950;line-height:1;text-align:center;box-shadow:0 5px 12px rgba(255,115,181,.07),0 0 0 2px rgba(255,255,255,.55) inset;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupActivityLine.challengeHot{border-color:#ffd166;background:linear-gradient(90deg,#fff8d7,#fff,#fff0f7);color:#7a1048;box-shadow:0 0 0 3px rgba(255,209,102,.18),0 8px 18px rgba(240,45,143,.12);animation:friendsChallengeGlow 1.6s ease-in-out infinite}
    .friendsGroupActivityLine.challengeResultLine{white-space:nowrap;text-overflow:ellipsis;border-radius:999px;line-height:1;padding:5px 9px}
    .friendsGroupActivityLine.challengeHot.newArrival{animation:friendsChallengeGlow 1.6s ease-in-out infinite,friendsGroupNewArrival .52s cubic-bezier(.2,.8,.2,1) both}
    .friendsGroupActivityLine.dense{font-size:9px;padding-top:4px;padding-bottom:4px}
    .friendsGroupActivityCard{border:1px solid #ffd166;border-radius:16px;background:linear-gradient(100deg,#fff8d7 0%,#fff 44%,#fff0f7 100%);color:#7a1048;padding:9px 10px;box-shadow:0 0 0 3px rgba(255,209,102,.16),0 10px 22px rgba(240,45,143,.12);display:flex;align-items:center;gap:10px;min-width:0}
    .friendsGroupActivityCard.challengeWin{animation:friendsChallengeGlow 1.8s ease-in-out infinite}
    .friendsGroupActivityCard.challengeWin.newArrival{animation:friendsChallengeGlow 1.8s ease-in-out infinite,friendsGroupNewArrival .52s cubic-bezier(.2,.8,.2,1) both}
    .friendsGroupChampionPins{display:flex;gap:7px;margin:6px 0 8px;padding:2px 2px 6px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
    .friendsGroupChampionPins::-webkit-scrollbar{display:none}
    .friendsGroupChampionPin{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) 42px;flex:0 0 min(76vw,282px);gap:7px;align-items:center;border:1.5px solid #ffd166;border-radius:14px;background:radial-gradient(circle at 12% 16%,rgba(255,209,102,.30) 0 18px,transparent 19px),linear-gradient(135deg,#fff8d7 0%,#fff 45%,#fff0f8 100%);padding:7px;box-shadow:0 0 0 2px rgba(255,209,102,.13),0 10px 20px rgba(157,20,87,.11);overflow:hidden;isolation:isolate;scroll-snap-align:start}
    .friendsGroupChampionPin:before{content:"";position:absolute;inset:0;background:linear-gradient(112deg,transparent 0%,rgba(255,255,255,.72) 46%,transparent 62%);transform:translateX(-92%);animation:studentProfileHeaderShine 4s ease-in-out infinite;pointer-events:none}
    .friendsGroupChampionPin>*{position:relative;z-index:1}
    .friendsGroupChampionPinIcon{width:36px;height:36px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#10203d,#8a1952,#ff8a2a);color:#fff;font-size:20px;box-shadow:0 0 0 2px rgba(255,209,102,.22),0 0 16px rgba(255,123,187,.22)}
    .friendsGroupChampionPinBody{min-width:0;display:grid;gap:1px}
    .friendsGroupChampionPinTitle{display:block;font-size:12px;font-weight:950;color:#10203d;line-height:1.16;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupChampionPinSub{display:block;font-size:10px;font-weight:900;color:#8a1952;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupChampionPinThumb{width:42px;height:42px;border:1px solid #ffd166;border-radius:12px;background:#fff;padding:0;overflow:hidden;box-shadow:0 7px 15px rgba(255,115,181,.13)}
    .friendsGroupChampionPinThumb .friendsGroupProtectedImageWrap,.friendsGroupChampionPinThumb img:not(.friendsGroupWatermark){width:100%;height:100%;display:block}
    .friendsGroupChampionPinThumb img:not(.friendsGroupWatermark){object-fit:cover}
    .friendsGroupActivityIcon{width:34px;height:34px;border-radius:999px;background:#10203d;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-weight:950;box-shadow:0 8px 18px rgba(16,32,61,.16);flex:0 0 auto}
    .friendsGroupActivityBody{display:grid;gap:2px;min-width:0;flex:1}
    .friendsGroupActivityTitle{font-size:12px;font-weight:950;color:#10203d;line-height:1.18;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupActivitySub{font-size:10px;font-weight:950;color:#9d1457;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupActivityThumbBtn{border:0;background:transparent;padding:0;flex:0 0 auto;line-height:0}
    .friendsGroupActivityThumb{width:58px;height:58px;border-radius:14px;border:1px solid #ffd0e5;background:#fff;object-fit:cover;box-shadow:0 8px 18px rgba(16,32,61,.10)}
    .friendsGroupPendingRocket{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 12px 0;padding:9px 11px;border:1px solid #ffd166;border-radius:16px;background:linear-gradient(90deg,#fff8d7,#fff7fb);color:#7a1048;box-shadow:0 8px 20px rgba(240,45,143,.10);font-size:12px;font-weight:950}
    .friendsGroupPendingRocketMain{display:flex;align-items:center;gap:8px;min-width:0}
    .friendsGroupPendingRocketIcon{width:30px;height:30px;border-radius:999px;background:#10203d;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:16px;box-shadow:0 8px 16px rgba(16,32,61,.16)}
    .friendsGroupPendingRocketText{min-width:0;display:grid;gap:1px;text-align:left}
    .friendsGroupPendingRocketTitle{font-size:12px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupPendingRocketSub{font-size:10px;font-weight:900;color:#8a1952;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupPendingRocketCount{min-width:26px;height:26px;border-radius:999px;background:#fff;color:#10203d;border:1px solid #ffd166;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:950}
    .friendsGroupPendingList{display:grid;gap:10px;margin-top:10px}
    .friendsGroupPendingItem{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #ffd0e5;border-radius:14px;background:#fff7fb;padding:8px}
    .friendsGroupPendingItem img{width:74px;height:74px;border-radius:12px;border:1px solid #ffd0e5;background:#fff;object-fit:cover}
    .friendsGroupPendingKind{font-size:12px;font-weight:950;color:#10203d}
    .friendsGroupPendingStatus{font-size:11px;font-weight:900;color:#8a1952;margin-top:2px}
    .friendsGroupApprovalToast{position:fixed;left:50%;top:calc(14px + env(safe-area-inset-top));transform:translateX(-50%);z-index:10080;width:min(92vw,420px);border:1px solid #ffd166;border-radius:18px;background:linear-gradient(90deg,#fff8d7,#fff7fb);color:#7a1048;padding:14px 16px;box-shadow:0 18px 42px rgba(16,32,61,.20);font-size:18px;font-weight:950;text-align:center;line-height:1.25}
    .friendsGroupInlineMention{display:inline-flex;align-items:center;margin-right:5px;color:#9d1457;font-weight:950}
    .friendsGroupThumbBtn{display:inline-block;margin-top:7px;max-width:68%;padding:0;border:none;background:transparent;text-align:left;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
    .friendsGroupPost .friendsGroupThumbBtn .friendsGroupProtectedImageWrap{display:inline-flex;align-items:center;justify-content:center;width:min(200px,65vw);max-width:100%;aspect-ratio:7/5;max-height:142px;border:1px solid #ffd0e5;border-radius:14px;background:#fff7fb;box-shadow:0 8px 18px rgba(16,32,61,.08);overflow:hidden}
    .friendsGroupPost .friendsGroupThumbBtn .friendsGroupProtectedImageWrap img:not(.friendsGroupWatermark){display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;border:0!important;border-radius:13px!important;background:transparent!important;box-shadow:none!important}
    .friendsGroupThumb{display:block;max-width:min(100%,200px);max-height:142px;width:auto;height:auto;object-fit:contain;border:1px solid #ffd0e5;border-radius:14px;background:#fff7fb;box-shadow:0 8px 18px rgba(16,32,61,.08)}
    .friendsGroupImageActionRow{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
    .friendsGroupImageDownloadBtn{border:1px solid #ffd0e5;border-radius:999px;background:#fff;color:#8a1952;padding:5px 9px;font-size:10px;font-weight:950}
    .friendsGroupProtectedImageWrap{position:relative;display:inline-block;max-width:100%;line-height:0;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
    .friendsGroupProtectedImageWrap img{pointer-events:none;-webkit-user-drag:none;user-select:none}
    .friendsGroupWatermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(48%,128px);max-height:58px;object-fit:contain;opacity:.055;filter:drop-shadow(0 1px 2px rgba(255,255,255,.72));border:0!important;background:transparent!important;border-radius:0!important;pointer-events:none}
    .homeworkImageModalCard.friendsGroupImageView{background:#fff;padding:10px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
    .homeworkImageModalCard.friendsGroupImageView .friendsGroupProtectedImageWrap{display:block;width:100%;text-align:center}
    .homeworkImageModalCard.friendsGroupImageView .friendsGroupWatermark{left:50%;top:50%;right:auto;bottom:auto;width:min(42%,210px);max-height:86px;opacity:.07}
    .friendsGroupModalDownloadIcon{width:42px;height:42px;border:none;border-radius:999px;background:#10203d;color:#fff;font-size:18px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 22px rgba(16,32,61,.22)}
    .friendsGroupModalDownloadIcon svg{width:20px;height:20px;stroke:currentColor}
    .friendsGroupModalDownloadIcon[aria-disabled="true"]{opacity:.55;pointer-events:auto;cursor:wait}
    .friendsGroupModalDownloadIcon.preparing{animation:friendsGroupOlderDot 1s ease-in-out infinite}
    .friendsGroupLoadOlderBtn{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 auto 10px;padding:8px 14px;border:1px solid #f4bfd8;border-radius:999px;background:#fff;color:#9b155d;font-weight:900;font-size:13px}
    .friendsGroupLoadOlderBtn.loading,.friendsGroupLoadOlderNote.loading{background:linear-gradient(135deg,#fff7fb,#fff,#fff7d8);border-color:#ffd166;color:#8a1952;box-shadow:0 8px 18px rgba(255,115,181,.10),0 0 0 2px rgba(255,209,102,.14)}
    .friendsGroupLoadOlderBtn:disabled{cursor:wait;opacity:1}
    .friendsGroupLoadOlderNote{margin:0 0 10px;text-align:center;color:#9b5f80;font-weight:800;font-size:12px}
    .friendsGroupLoadingDots{display:inline-flex;align-items:center;gap:3px;vertical-align:middle}
    .friendsGroupLoadingDots i{width:5px;height:5px;border-radius:999px;background:currentColor;opacity:.35;animation:friendsGroupOlderDot 1s ease-in-out infinite}
    .friendsGroupLoadingDots i:nth-child(2){animation-delay:.16s}
    .friendsGroupLoadingDots i:nth-child(3){animation-delay:.32s}
    .friendsGroupReactions{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
    .friendsGroupReactionChip{display:inline-flex;align-items:center;gap:2px;color:#8a1952;padding:0;font-size:11px;font-weight:950;background:transparent;border:none}
    .friendsGroupReactionChipEmoji{font-size:12px;line-height:1}
    .friendsGroupReactionActions{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
    .friendsGroupReactionBtn,.friendsGroupMentionBtn{display:inline-flex;align-items:center;justify-content:center;gap:2px;border:none;border-radius:0;background:transparent;color:#9d1457;min-width:0;height:auto;padding:0 2px;font-size:13px;font-weight:950;box-shadow:none}
    .friendsGroupReactionBtn:disabled{opacity:.58}
    .friendsGroupReactionEmoji{font-size:15px;line-height:1}
    .friendsGroupReactionCount{font-size:10px;line-height:1;color:#8a1952;min-width:6px;text-align:left}
    .friendsGroupChallengeHeaderBtn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:4px;flex:0 0 auto;border:1.5px solid #ffd166;border-radius:999px;background:linear-gradient(135deg,#fffdf0,#fff,#ffe6f3);color:#8a1952;min-height:30px;min-width:90px;padding:0 10px 0 9px;font-size:10px;font-weight:950;line-height:1;box-shadow:0 7px 14px rgba(255,115,181,.12),0 0 0 2px rgba(255,209,102,.12);overflow:visible;cursor:pointer;touch-action:manipulation}
    .friendsGroupChallengeHeaderBtn.active{border-color:#ffd166;background:linear-gradient(135deg,#fff9c9 0%,#fff 38%,#ffe0f0 100%);color:#8a1952;box-shadow:0 0 0 4px rgba(255,209,102,.26),0 12px 24px rgba(240,45,143,.18);animation:friendsChallengeGlow 1.25s ease-in-out infinite}
    .friendsGroupChallengeHeaderBtn:active{transform:scale(.97)}
    .friendsGroupJackpotHeaderBtn{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border:1.5px solid #ffd166;border-radius:999px;background:linear-gradient(135deg,#fff7d6 0%,#fff 38%,#ffe0f0 100%);color:#8a1952;width:30px;min-width:30px;height:30px;min-height:30px;padding:0;font-size:14px;font-weight:950;line-height:1;box-shadow:0 7px 14px rgba(255,115,181,.12),0 0 0 2px rgba(255,209,102,.12);cursor:pointer;touch-action:manipulation}
    .friendsGroupJackpotHeaderBtn:active{transform:scale(.97);box-shadow:0 4px 9px rgba(16,32,61,.14),0 0 0 2px rgba(255,209,102,.18)}
    #friendsGroupJackpotComposerSheet .friendsGroupSheetCard{position:relative;overflow:hidden;border-color:#ffd166;background:linear-gradient(180deg,rgba(7,20,38,.54),rgba(138,25,82,.16) 42%,rgba(255,255,255,.94) 62%),url('/assets/jackpot-crystal-mine.png') center top/cover no-repeat,#fff}
    #friendsGroupJackpotComposerSheet .friendsGroupSheetCard:before{content:"";position:absolute;inset:0 0 auto 0;height:170px;background:radial-gradient(circle at 18% 28%,rgba(255,255,255,.58) 0 2px,transparent 3px),radial-gradient(circle at 70% 22%,rgba(103,232,249,.62) 0 2px,transparent 3px),radial-gradient(circle at 86% 38%,rgba(255,209,102,.58) 0 2px,transparent 3px);opacity:.82;animation:friendsGroupJackpotTwinkle 2.4s ease-in-out infinite;pointer-events:none}
    #friendsGroupJackpotComposerSheet .friendsGroupSheetHead{position:relative;z-index:1;border:1px solid rgba(255,224,130,.34);border-radius:16px;background:rgba(7,20,38,.64);padding:9px 10px;backdrop-filter:blur(4px)}
    #friendsGroupJackpotComposerSheet .friendsGroupSheetTitle,#friendsGroupJackpotComposerSheet .friendsGroupSub{color:#fff}
    #friendsGroupJackpotComposerSheet .friendsGroupJackpotComposerBox{position:relative;z-index:1;border:1px solid rgba(255,208,229,.72);border-radius:16px;background:rgba(255,255,255,.92);padding:9px;box-shadow:0 12px 24px rgba(7,20,38,.14)}
    .friendsGroupJackpotComposerBox{display:grid;gap:10px}
    .friendsGroupJackpotGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .friendsGroupJackpotField{display:grid;gap:5px}
    .friendsGroupJackpotField.full{grid-column:1/-1}
    .friendsGroupJackpotField label{font-size:10px;font-weight:950;color:#8a1952;text-transform:uppercase;letter-spacing:0}
    .friendsGroupJackpotField input{width:100%;box-sizing:border-box;min-height:42px;border:1.5px solid #ffc4df;border-radius:14px;background:#fff;color:#10203d;padding:0 11px;font-size:14px;font-weight:900;outline:none}
    .friendsGroupJackpotField input:focus{border-color:#ffd166;box-shadow:0 0 0 3px rgba(255,209,102,.20)}
    .friendsGroupJackpotReferenceRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
    .friendsGroupJackpotChooseReferenceBtn,.friendsGroupJackpotPublishBtn{border:none;border-radius:14px;min-height:42px;padding:0 12px;font-size:12px;font-weight:950;touch-action:manipulation}
    .friendsGroupJackpotChooseReferenceBtn{background:linear-gradient(135deg,#fff8d7,#fff0f7);color:#8a1952;border:1.5px solid #ffd166}
    .friendsGroupJackpotChooseReferenceBtn:active,.friendsGroupJackpotPublishBtn:active{transform:translateY(1px) scale(.98)}
    .friendsGroupJackpotPublishBtn{width:100%;background:linear-gradient(135deg,#10203d 0%,#8a1952 58%,#f02d8f 100%);color:#fff;box-shadow:0 10px 20px rgba(138,25,82,.18)}
    .friendsGroupJackpotPublishBtn:disabled,.friendsGroupJackpotChooseReferenceBtn:disabled{opacity:.62;transform:none}
    .friendsGroupJackpotReferencePreview{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #ffd0e5;border-radius:14px;background:#fff7fb;padding:7px}
    .friendsGroupJackpotReferencePreview img{width:58px;height:58px;object-fit:cover;border-radius:11px;background:#fff;border:1px solid #ffe1ef}
    .friendsGroupJackpotReferenceName{min-width:0;font-size:12px;font-weight:950;color:#10203d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupJackpotReferenceMeta{font-size:10px;font-weight:900;color:#8a1952;margin-top:2px}
    .friendsGroupJackpotRemoveReference{width:34px;height:34px;border:1.5px solid #fecaca;border-radius:999px;background:#fff1f2;color:#b91c1c;font-size:18px;font-weight:950;line-height:1}
    .friendsGroupJackpotStatus{font-size:11px;font-weight:900;color:#8a1952;line-height:1.3;min-height:15px}
    .friendsGroupJackpotStudentCard{position:relative;z-index:2;margin:0 0 0 auto;max-width:min(360px,100%);border:1.5px solid #ffe082;border-radius:999px;background:linear-gradient(135deg,rgba(7,20,38,.86) 0%,rgba(16,32,61,.82) 44%,rgba(74,22,63,.82) 78%,rgba(138,25,82,.82) 100%),url('/assets/jackpot-crystal-mine.png') center/cover no-repeat;box-shadow:0 10px 22px rgba(7,20,38,.20),0 0 0 3px rgba(255,209,102,.16);padding:7px 8px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;color:#fff;overflow:hidden;animation:friendsGroupJackpotMineGlow 2.8s ease-in-out infinite}
    .friendsGroupJackpotTeacherPanel{position:relative;z-index:2;margin:0 0 0 auto;width:min(360px,100%);border:1.5px solid #ffe082;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,248,216,.92),rgba(255,240,247,.95));box-shadow:0 10px 22px rgba(7,20,38,.14),0 0 0 3px rgba(255,209,102,.14);padding:7px;display:grid;gap:6px;color:#10203d;overflow:hidden}
    .friendsGroupJackpotTeacherTop{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:7px;align-items:center}
    .friendsGroupJackpotTeacherGif{width:42px;height:42px;object-fit:contain;display:block;filter:drop-shadow(0 0 8px rgba(103,232,249,.38));animation:friendsGroupJackpotSparkle 1.8s ease-in-out infinite}
    .friendsGroupJackpotTeacherTitle{font-size:12px;font-weight:950;color:#10203d;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupJackpotTeacherMeta{font-size:10px;font-weight:900;color:#8a1952;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupJackpotParticipants{display:grid;gap:4px}
    .friendsGroupJackpotParticipantRow{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:6px;align-items:center;border:1px solid rgba(255,208,229,.82);border-radius:999px;background:rgba(255,255,255,.82);padding:3px 6px}
    .friendsGroupJackpotParticipantRow img{width:24px;height:24px;border-radius:50%;object-fit:cover;background:#fff;border:1px solid #ffd0e5}
    .friendsGroupJackpotParticipantName{min-width:0;font-size:10px;font-weight:950;color:#10203d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupJackpotParticipantStatus{font-size:9px;font-weight:950;color:#8a1952;white-space:nowrap;text-transform:capitalize}
    .friendsGroupJackpotParticipantsEmpty{font-size:10px;font-weight:900;color:#8a1952;border:1px dashed #ffd0e5;border-radius:999px;background:rgba(255,255,255,.72);padding:5px 8px;text-align:center}
    .friendsGroupJackpotStudentCard.compact{width:46px;height:46px;max-width:46px;display:block;padding:0;border:0;background:transparent;box-shadow:none;animation:none;overflow:visible;pointer-events:auto}
    .friendsGroupJackpotStudentCard.compact:before{display:none}
    .friendsGroupJackpotStudentCard:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 16% 24%,rgba(255,255,255,.92) 0 2px,transparent 3px),radial-gradient(circle at 74% 26%,rgba(103,232,249,.82) 0 2px,transparent 3px),radial-gradient(circle at 88% 62%,rgba(255,209,102,.74) 0 2px,transparent 3px),radial-gradient(circle at 46% 78%,rgba(249,168,212,.72) 0 2px,transparent 3px);opacity:.76;animation:friendsGroupJackpotTwinkle 2.15s ease-in-out infinite;pointer-events:none}
    .friendsGroupJackpotGem{position:relative;width:48px;height:48px;border:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 20%,#e0f7ff 0 13%,#67e8f9 14% 34%,#0ea5e9 35% 65%,#075985 66% 100%);box-shadow:0 0 18px rgba(103,232,249,.44),inset 0 2px 0 rgba(255,255,255,.58);font-size:25px;animation:friendsGroupJackpotSparkle 1.8s ease-in-out infinite;cursor:pointer;touch-action:manipulation}
    .friendsGroupJackpotStudentCard.teacher .friendsGroupJackpotGem{width:34px;height:34px;font-size:18px;animation:friendsGroupJackpotSparkle 1.8s ease-in-out infinite}
    .friendsGroupJackpotGem:after{content:"";position:absolute;right:-4px;top:3px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 0 11px #fff}
    .friendsGroupJackpotGifBtn{width:46px;height:46px;border:0;border-radius:0;background:transparent;box-shadow:none;padding:0;display:grid;place-items:center;cursor:pointer;touch-action:manipulation;animation:friendsGroupJackpotSparkle 1.8s ease-in-out infinite;pointer-events:auto}
    .friendsGroupJackpotGifBtn:active{transform:scale(.95)}
    .friendsGroupJackpotGifBtn img{width:46px;height:46px;object-fit:contain;display:block;border-radius:0;filter:drop-shadow(0 0 8px rgba(103,232,249,.42))}
    .friendsGroupJackpotStudentMain{min-width:0;display:grid;gap:4px}
    .friendsGroupJackpotStudentTitle{font-size:13px;font-weight:950;color:#fff;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupJackpotStudentMeta{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:9px;font-weight:950;color:#fff7d6}
    .friendsGroupJackpotStudentMeta span{border:1px solid rgba(255,224,130,.55);border-radius:999px;background:rgba(255,255,255,.12);padding:4px 7px;line-height:1}
    .friendsGroupJackpotEntryStatus{font-size:10px;font-weight:900;color:#fce7f3;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupJackpotStudentActions{display:grid;gap:6px;align-items:center;justify-items:end}
    .friendsGroupJackpotStudentBtn{border:none;border-radius:999px;background:linear-gradient(135deg,#0f9b8e,#0b756c);color:#fff;font-size:11px;font-weight:950;min-height:34px;padding:0 12px;box-shadow:0 7px 12px rgba(15,155,142,.18);white-space:nowrap;touch-action:manipulation}
    .friendsGroupJackpotStudentBtn.secondary{background:#fff7d6;color:#8a1952;border:1.5px solid #ffe082;box-shadow:0 6px 12px rgba(255,209,102,.16)}
    .friendsGroupJackpotStudentBtn.danger{background:#fff1f2;color:#b91c1c;border:1.5px solid #fecaca;box-shadow:0 6px 12px rgba(185,28,28,.10)}
    .friendsGroupJackpotStudentBtn:disabled{opacity:.58;box-shadow:none}
    .friendsGroupJackpotStudentBtn:active{transform:scale(.97)}
    #friendsGroupJackpotDetailsSheet .friendsGroupSheetCard{border-color:#ffd166;background:linear-gradient(180deg,#fff 0%,#fff8fd 52%,#fff9df 100%)}
    .friendsGroupJackpotTeacherDetailBody{display:grid;gap:10px}
    .friendsGroupJackpotTeacherDetailHero{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:9px;align-items:center;border:1.5px solid #ffe082;border-radius:16px;background:linear-gradient(135deg,#10203d 0%,#8a1952 58%,#f02d8f 100%);color:#fff;padding:9px;box-shadow:0 10px 22px rgba(16,32,61,.14)}
    .friendsGroupJackpotTeacherDetailHero img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(103,232,249,.42))}
    .friendsGroupJackpotTeacherDetailTitle{min-width:0;font-size:15px;font-weight:950;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupJackpotTeacherDetailMeta{font-size:11px;font-weight:900;color:#fff7d6;margin-top:3px}
    .friendsGroupJackpotSummaryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
    .friendsGroupJackpotSummaryPill{border:1px solid #ffd0e5;border-radius:14px;background:#fff;padding:7px 8px;text-align:center;box-shadow:0 6px 12px rgba(16,32,61,.05)}
    .friendsGroupJackpotSummaryPill b{display:block;font-size:15px;font-weight:950;color:#10203d;line-height:1}
    .friendsGroupJackpotSummaryPill span{display:block;margin-top:3px;font-size:9px;font-weight:950;color:#8a1952;text-transform:uppercase;letter-spacing:0}
    .friendsGroupJackpotDateGroup{display:grid;gap:6px}
    .friendsGroupJackpotDateLabel{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #ffe082;border-radius:999px;background:linear-gradient(135deg,#fff8d7,#fff0f7);color:#10203d;font-size:11px;font-weight:950;padding:6px 9px}
    .friendsGroupJackpotDateLabel span{color:#8a1952;font-size:10px}
    .friendsGroupJackpotParticipantRow.detail{grid-template-columns:30px minmax(0,1fr) auto;padding:5px 7px;border-radius:14px}
    .friendsGroupJackpotParticipantRow.detail img{width:30px;height:30px;border-radius:10px}
    .friendsGroupJackpotParticipantTime{display:block;margin-top:2px;font-size:9px;font-weight:850;color:#8a1952;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupJackpotDetailStatus{font-size:10px;font-weight:950;color:#8a1952;text-transform:capitalize;white-space:nowrap}
    .friendsGroupJackpotRefThumb{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1.5px solid #ffd166;background:#fff}
    .friendsGroupJackpotRulesBody{display:grid;gap:10px}
    .friendsGroupJackpotRulesHero{position:relative;overflow:hidden;border:1.5px solid #ffd166;border-radius:18px;background:linear-gradient(180deg,rgba(7,20,38,.36),rgba(7,20,38,.82)),url('/assets/jackpot-crystal-mine.png') center 42%/cover no-repeat,#10203d;padding:13px;display:grid;gap:7px;color:#fff;box-shadow:inset 0 -16px 40px rgba(0,0,0,.28),0 0 0 3px rgba(255,209,102,.12)}
    .friendsGroupJackpotRulesHero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.86) 0 2px,transparent 3px),radial-gradient(circle at 66% 28%,rgba(103,232,249,.78) 0 2px,transparent 3px),radial-gradient(circle at 88% 72%,rgba(255,209,102,.72) 0 2px,transparent 3px),radial-gradient(circle at 38% 84%,rgba(249,168,212,.66) 0 2px,transparent 3px);opacity:.85;animation:friendsGroupJackpotTwinkle 2.05s ease-in-out infinite;pointer-events:none}
    .friendsGroupJackpotRulesHero:after{content:"";position:absolute;left:-6%;right:-6%;bottom:-12px;height:40px;background:repeating-linear-gradient(90deg,rgba(255,224,130,.18) 0 18px,transparent 18px 36px);transform:rotate(-2deg);pointer-events:none}
    .friendsGroupJackpotRulesTitle{font-size:20px;font-weight:950;color:#fff;line-height:1.15}
    .friendsGroupJackpotRulesMeta{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;font-weight:950;color:#8a1952}
    .friendsGroupJackpotRulesMeta span{background:#fff;border:1px solid #ffd166;border-radius:999px;padding:5px 9px}
    .friendsGroupJackpotRuleList{margin:0;padding-left:18px;color:#5d5268;font-size:13px;font-weight:850;line-height:1.45}
    .friendsGroupJackpotReferenceLarge{width:100%;max-height:240px;object-fit:contain;border-radius:14px;background:#fff;border:1px solid #ffd0e5}
    .friendsGroupJackpotWinners{display:grid;gap:7px}
    .friendsGroupJackpotWinnerRow{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid rgba(255,209,102,.55);border-radius:999px;background:linear-gradient(135deg,rgba(7,20,38,.78),rgba(138,25,82,.42)),url('/assets/jackpot-crystal-mine.png') center/cover no-repeat;color:#fff;padding:5px 8px;box-shadow:0 8px 16px rgba(7,20,38,.16)}
    .friendsGroupJackpotWinnerRow img{width:42px;height:42px;object-fit:cover;border-radius:50%;border:1.5px solid #ffd166;background:#fff}
    .friendsGroupJackpotWinnerName{min-width:0;font-size:12px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupJackpotWinnerPrize{font-size:11px;font-weight:950;color:#fff7d6;white-space:nowrap}
    @keyframes friendsGroupJackpotSparkle{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.05);filter:brightness(1.12)}}
    @keyframes friendsGroupJackpotTwinkle{0%,100%{opacity:.46;filter:brightness(1)}45%{opacity:1;filter:brightness(1.35)}70%{opacity:.68;filter:brightness(1.08)}}
    @keyframes friendsGroupJackpotMineGlow{0%,100%{box-shadow:0 14px 28px rgba(7,20,38,.24),0 0 0 4px rgba(255,209,102,.18)}50%{box-shadow:0 14px 28px rgba(7,20,38,.24),0 0 0 4px rgba(103,232,249,.18),0 0 22px rgba(255,209,102,.22)}}
    .friendsGroupPerformanceCalm .friendsGroupHeader:before,.friendsGroupPerformanceCalm .friendsGroupHeader:after,.friendsGroupPerformanceCalm .friendsGroupPost.newArrival,.friendsGroupPerformanceCalm .friendsGroupActivityLine.newArrival,.friendsGroupPerformanceCalm .friendsGroupActivityCard.newArrival,.friendsGroupPerformanceCalm .friendsGroupActivityLine.challengeHot,.friendsGroupPerformanceCalm .friendsGroupActivityCard.challengeWin,.friendsGroupPerformanceCalm .friendsGroupPost.achievementFriendRowShine:before,.friendsGroupPerformanceCalm .friendsGroupPost.achievementFriendRowShine:after{animation:none!important;will-change:auto}
    .friendsGroupPerformanceCalm .friendsGroupPost.newArrival,.friendsGroupPerformanceCalm .friendsGroupActivityLine.challengeHot,.friendsGroupPerformanceCalm .friendsGroupActivityCard.challengeWin{box-shadow:0 0 0 2px rgba(255,209,102,.18),0 8px 18px rgba(240,45,143,.10)}
    .friendsGroupOverlay .diamondGlowIcon,.friendsGroupOverlay .studentAchievementBadgeFriends,.friendsGroupOverlay .studentAchievementBadgeFriends:before,.friendsGroupOverlay .studentAchievementBadgeFriends:after,.friendsGroupOverlay .studentAchievementBadgeFriends .achievementBadgeIconImg,.friendsGroupOverlay .achievementAvatarWrap:before,.friendsGroupOverlay .achievementAvatarWrap:after,.friendsGroupOverlay .friendsGroupPost.achievementFriendRowShine:before,.friendsGroupOverlay .friendsGroupPost.achievementFriendRowShine:after{animation:none!important;will-change:auto}
    .friendsGroupOverlay .diamondGlowIcon{transform:none}
    .friendsGroupChallengeHeaderBtn .icon{font-size:14px;line-height:1}
    .friendsGroupChallengeHeaderBtn .count{position:absolute;top:-11px;right:-8px;min-width:19px;height:19px;border-radius:999px;background:#10203d;color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;font-size:10px;font-weight:950;border:1px solid rgba(255,255,255,.9);box-shadow:0 6px 12px rgba(16,32,61,.18)}
    .friendsGroupChallengePostBtn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #ffd166;border-radius:999px;background:linear-gradient(135deg,#fff9d8,#fff0f8);color:#8a1952;padding:5px 13px;font-size:12px;font-weight:950;line-height:1.2;box-shadow:0 6px 12px rgba(255,209,102,.14)}
    .friendsGroupChallengePostBtn:disabled{opacity:.6}
    .friendsGroupChallengePostBtn.upload{min-width:80px;min-height:34px;font-size:13px;border-width:1.5px;background:linear-gradient(135deg,#fff8db,#fff,#ffe6f3);box-shadow:0 8px 16px rgba(255,209,102,.16),0 0 0 2px rgba(255,209,102,.12)}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupFeed{gap:7px}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupPost{padding:7px 8px;gap:7px;overflow:visible}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupNameLine{gap:5px;align-items:flex-start}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupThumbBtn{margin-top:4px}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupReactionActions{align-items:center;gap:4px;margin-top:4px;padding-right:34px;min-height:24px}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupReactionBtn,.friendsGroupOverlay:not(.classHubMount) .friendsGroupMentionBtn{min-height:22px}
    .friendsGroupOverlay:not(.classHubMount) .friendsGroupChallengePostBtn{min-height:28px;padding:3px 11px;font-size:11px}
    .friendsGroupChallengeToast{position:fixed;left:50%;top:76px;transform:translateX(-50%);z-index:10006;width:min(430px,calc(100% - 28px));border:1.5px solid #ffd166;border-radius:18px;background:linear-gradient(135deg,#10203d 0%,#8a1952 58%,#f02d8f 100%);color:#fff;padding:10px 12px;box-shadow:0 16px 34px rgba(16,32,61,.30),0 0 0 5px rgba(255,209,102,.24);animation:friendsChallengeToastPop 6.5s ease forwards}
    .friendsGroupChallengeToastInner{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px}
    .friendsGroupChallengeToastIcon{width:34px;height:34px;border-radius:999px;background:#fff;color:#9d1457;display:grid;place-items:center;font-size:18px;font-weight:950;box-shadow:0 0 0 4px rgba(255,255,255,.18)}
    .friendsGroupChallengeToastTitle{font-size:13px;font-weight:950;line-height:1.1}
    .friendsGroupChallengeToastText{font-size:10px;font-weight:900;opacity:.92;margin-top:2px;line-height:1.25}
    .friendsGroupChallengeToastCta{border:1px solid rgba(255,255,255,.55);border-radius:999px;padding:5px 8px;font-size:10px;font-weight:950;white-space:nowrap;background:rgba(255,255,255,.14)}
    .friendsGroupVoteRewardOverlay{position:fixed;inset:0;z-index:12020;background:rgba(16,32,61,.50);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:18px}
    .friendsGroupVoteRewardCard{width:min(390px,100%);border:1.5px solid #ffd166;border-radius:20px;background:linear-gradient(150deg,#fff 0%,#fff7fb 58%,#fff4ce 100%);box-shadow:0 24px 58px rgba(16,32,61,.30),0 0 0 5px rgba(255,209,102,.18);padding:18px;color:#10203d;text-align:center}
    .friendsGroupVoteRewardIcon{width:52px;height:52px;margin:0 auto 9px;border-radius:999px;background:linear-gradient(135deg,#10203d,#8a1952 58%,#f02d8f);display:grid;place-items:center;color:#fff;font-size:25px;box-shadow:0 12px 26px rgba(138,25,82,.22)}
    .friendsGroupVoteRewardTitle{font-size:24px;font-weight:950;line-height:1.1;color:#10203d}
    .friendsGroupVoteRewardBody{margin:10px auto 15px;max-width:310px;font-size:14px;font-weight:850;line-height:1.35;color:#58445b}
    .friendsGroupVoteRewardBtn{width:100%;min-height:48px;border:0;border-radius:999px;background:linear-gradient(135deg,#10203d,#8a1952 58%,#f02d8f);color:#fff;font-size:16px;font-weight:950;box-shadow:0 12px 26px rgba(138,25,82,.22);cursor:pointer}
    #friendsGroupChallengeVoteRewardProgress{position:sticky;top:0;z-index:6;width:100%;max-width:calc(100vw - 20px);align-self:start;background:linear-gradient(180deg,rgba(255,243,250,.98) 0%,rgba(255,243,250,.96) 72%,rgba(255,243,250,0) 100%);padding:0 0 4px}
    #friendsGroupChallengeVoteRewardProgress:empty{display:none}
    .friendsGroupChallengeVoteRewardProgress{position:relative;top:auto;z-index:1;width:100%;border:1px solid #ffd166;border-radius:14px;background:linear-gradient(135deg,#fffdf3,#fff,#fff0f8);padding:8px 9px;box-shadow:0 8px 16px rgba(255,209,102,.12)}
    .friendsGroupChallengeVoteRewardText{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:950;color:#7a1048;flex-wrap:wrap}
    .friendsGroupChallengeVoteRewardText span{text-transform:uppercase;letter-spacing:.04em;color:#10203d}
    .friendsGroupChallengeVoteRewardTrack{height:7px;margin-top:7px;border-radius:999px;background:#f3e8ff;overflow:hidden}
    .friendsGroupChallengeVoteRewardTrack span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#16b5aa,#ffd166,#f02d8f);transition:width .28s ease}
    .friendsGroupChallengeVoteFloatingBurst{position:fixed;z-index:13000;min-width:86px;border:1.5px solid #ffd166;border-radius:999px;background:#fffdf2;color:#8a1952;padding:8px 12px;font-size:22px;font-weight:950;line-height:1;text-align:center;box-shadow:0 18px 34px rgba(138,25,82,.22),0 0 0 5px rgba(255,209,102,.20);pointer-events:none;transform:translate(-50%,0) scale(.84);animation:friendsGroupChallengeVoteFloatAway 1.45s ease-out forwards}
    @keyframes friendsGroupChallengeVoteFloatAway{0%{opacity:0;transform:translate(-50%,8px) scale(.84)}16%{opacity:1;transform:translate(-50%,-8px) scale(1.14)}68%{opacity:1;transform:translate(-50%,-48px) scale(1)}100%{opacity:0;transform:translate(-50%,-84px) scale(.94)}}
    .friendsGroupChallengeModal{position:fixed;inset:0;z-index:10005;display:none;background:radial-gradient(circle at 15% 9%,rgba(255,209,102,.27),transparent 24%),radial-gradient(circle at 90% 14%,rgba(240,45,143,.17),transparent 24%),linear-gradient(180deg,#fff3fa 0%,#fff 42%,#f4fbff 100%);color:#10203d}
    .friendsGroupChallengeModal.show{display:flex;flex-direction:column}
    .friendsGroupChallengeHead{position:relative;z-index:3;flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;min-height:66px;padding:10px 12px;border-bottom:1.5px solid #ffd166;background:linear-gradient(135deg,#10203d 0%,#8a1952 62%,#ff8a2a 100%);color:#fff;box-shadow:0 10px 24px rgba(16,32,61,.20);overflow:visible;isolation:isolate}
    html.protivaIosNativeShell .friendsGroupChallengeHead{padding-top:calc(10px + var(--protiva-safe-top))}
    .friendsGroupChallengeHead:before{content:"";position:absolute;inset:0;background:linear-gradient(112deg,transparent 0%,transparent 38%,rgba(255,255,255,.40) 48%,transparent 60%,transparent 100%);transform:translateX(-105%);animation:friendsGroupChallengeArenaSweep 4.2s ease-in-out infinite;pointer-events:none}
    .friendsGroupChallengeHead:after{content:"";position:absolute;left:10px;right:10px;bottom:3px;height:4px;border-radius:999px;background:radial-gradient(circle,#ffd166 0 2px,transparent 3px) 0 0/20px 4px repeat-x;animation:friendsGroupLightChain 1.9s ease-in-out infinite;pointer-events:none}
    .friendsGroupChallengeHead>*{position:relative;z-index:1}
    .friendsGroupChallengeHeadMain{min-width:0}
    .friendsGroupChallengeTitle{font-size:18px;font-weight:950;line-height:1.1}
    .friendsGroupChallengeMeta{font-size:11px;font-weight:900;color:rgba(255,255,255,.86);margin-top:2px}
    .friendsGroupChallengeViewToggle{position:relative;z-index:1;max-width:156px;min-height:36px;border:2px solid #ffd166;border-radius:999px;background:linear-gradient(135deg,#fffdf1 0%,#ffe082 42%,#fff1f7 100%);color:#7a1048;padding:0 12px;font-size:10px;font-weight:950;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 10px 22px rgba(16,32,61,.22),0 0 0 4px rgba(255,209,102,.24),0 0 18px rgba(255,209,102,.34) inset;touch-action:manipulation;text-shadow:0 1px 0 rgba(255,255,255,.72)}
    .friendsGroupChallengeViewToggle .count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:#10203d;color:#fff;font-size:10px;font-weight:950;box-shadow:0 0 0 2px rgba(255,255,255,.48)}
    .friendsGroupChallengeViewToggle.pressed{background:linear-gradient(135deg,#10203d,#8a1952 58%,#f02d8f);color:#fff7d8;border-color:#ffd166;box-shadow:0 0 0 4px rgba(255,209,102,.24),0 12px 24px rgba(16,32,61,.24)}
    .friendsGroupChallengeViewToggle:active{transform:scale(.97)}
    .friendsGroupChallengeClose{position:relative;z-index:1;width:34px;height:34px;border:1.5px solid rgba(255,255,255,.58);border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font-size:18px;font-weight:950;line-height:1}
    .friendsGroupChallengeBackBtn{position:relative;z-index:1;width:34px;height:34px;border:1.5px solid rgba(255,255,255,.58);border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font-size:19px;font-weight:950;line-height:1;display:inline-flex;align-items:center;justify-content:center}
    .friendsGroupChallengeModal.classHubChallengeMount .friendsGroupChallengeHead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;justify-content:normal}
    .friendsGroupChallengeModal.classHubChallengeMount .friendsGroupChallengeClose{display:none}
    .friendsGroupChallengeBody{position:relative;z-index:1;flex:1;min-height:0;overflow:auto;padding:12px 10px 18px;display:grid;gap:12px;align-content:start;justify-items:center;grid-auto-rows:max-content}
    .friendsGroupChallengeCard{position:relative;overflow:visible;width:100%;max-width:calc(100vw - 24px);margin:0 auto;border:1px solid #ffd0e5;border-radius:16px;background:linear-gradient(135deg,#fff 0%,#fff9fd 56%,#fff8dd 100%);padding:10px;box-shadow:0 10px 22px rgba(255,115,181,.10),0 0 0 1px rgba(255,255,255,.7) inset;content-visibility:auto;contain-intrinsic-size:560px}
    .friendsGroupChallengeCard.challengeReorderMove{transition:transform .34s cubic-bezier(.2,.78,.25,1)}
    .friendsGroupChallengeCard.voting{border-color:#ffd166;background:linear-gradient(135deg,#fffdf3 0%,#fff 38%,#fff0f7 100%);box-shadow:0 0 0 4px rgba(255,209,102,.15),0 14px 28px rgba(240,45,143,.14)}
    .friendsGroupChallengeCardTop{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
    .friendsGroupChallengeTopMain{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
    .friendsGroupChallengeNames{font-size:13px;font-weight:950;color:#10203d;line-height:1.25}
    .friendsGroupChallengeVotedBadge{display:inline-flex;align-items:center;gap:4px;border:1px solid #86efac;border-radius:999px;background:#ecfdf5;color:#047857;padding:4px 7px;font-size:10px;font-weight:950;white-space:nowrap;box-shadow:0 0 0 3px rgba(34,197,94,.10)}
    .friendsGroupChallengeVotedBadge span{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:999px;background:#16a34a;color:#fff;font-size:11px;line-height:1}
    .friendsGroupChallengeStatus{font-size:10px;font-weight:950;color:#8a1952;border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;padding:4px 8px;white-space:nowrap}
    .friendsGroupChallengeCard.voting .friendsGroupChallengeStatus{border-color:#ffd166;background:#fff8d7;color:#7a1048;box-shadow:0 0 0 3px rgba(255,209,102,.18)}
    .friendsGroupChallengeStopBtn{width:30px;height:30px;border:1.5px solid #fecaca;border-radius:999px;background:#fff1f2;color:#b91c1c;font-size:16px;font-weight:950;line-height:1;flex:0 0 auto}
    .friendsGroupChallengeStopBtn svg{width:15px;height:15px;display:block;margin:auto;stroke:currentColor}
    .friendsGroupChallengeCardTop,.friendsGroupChallengeArtGrid,.friendsGroupChallengeVoteRow,.friendsGroupChallengeResult,.friendsGroupChallengeFoot{position:relative;z-index:1}
    .friendsGroupChallengeArtGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px;align-items:stretch}
    .friendsGroupChallengeArtGrid:after{content:"VS";position:absolute;left:calc(50% - 16px);top:50%;transform:translate(-50%,-50%);z-index:2;width:36px;height:36px;border-radius:999px;background:linear-gradient(135deg,#10203d,#8a1952);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:950;box-shadow:0 0 0 4px rgba(255,209,102,.42),0 10px 22px rgba(16,32,61,.24),0 0 20px rgba(255,209,102,.36);letter-spacing:0;animation:friendsChallengeGlow 1.8s ease-in-out infinite}
    .friendsGroupChallengeArt{position:relative;min-width:0;border:1px solid #ffd0e5;border-radius:14px;background:#fff7fb;padding:8px;display:grid;grid-template-rows:auto 1fr;gap:6px}
    .friendsGroupChallengeArt.winner{border-color:#ffd166;background:linear-gradient(180deg,#fff8d7,#fff);overflow:visible;isolation:isolate;box-shadow:0 0 0 4px rgba(255,209,102,.30),0 0 28px rgba(255,209,102,.38),0 14px 26px rgba(240,45,143,.16)}
    .friendsGroupChallengeArt.winner:before{content:"";position:absolute;inset:-5px;border-radius:17px;background:radial-gradient(circle at 50% 18%,rgba(255,255,255,.78),transparent 25%),radial-gradient(circle at 20% 75%,rgba(255,209,102,.24),transparent 26%),radial-gradient(circle at 88% 68%,rgba(240,45,143,.13),transparent 28%);opacity:.78;z-index:-1}
    .friendsGroupChallengeArt.winner .friendsGroupProtectedImageWrap{box-shadow:0 0 0 4px rgba(255,209,102,.38),0 0 26px rgba(255,209,102,.46),0 0 34px rgba(240,45,143,.18)}
    .friendsGroupChallengeArt.tie{border-color:#b7efe8;background:linear-gradient(180deg,#eafffb,#fff)}
    .friendsGroupChallengeArt.pendingApproval{border-color:#ffd166;background:linear-gradient(180deg,#fff8d7,#fff7fb)}
    .friendsGroupChallengeArt.pendingApproval .friendsGroupChallengeArtImageBtn{cursor:default}
    .friendsGroupChallengeArt.pendingApproval .friendsGroupProtectedImageWrap{filter:blur(10px);transform:scale(1.015);opacity:.72}
    .friendsGroupChallengePendingBadge{position:absolute;left:50%;top:50%;z-index:4;transform:translate(-50%,-50%);border:1px solid #ffd166;border-radius:999px;background:rgba(255,255,255,.92);color:#8a1952;padding:6px 9px;font-size:10px;font-weight:950;line-height:1;text-align:center;box-shadow:0 8px 18px rgba(16,32,61,.14),0 0 0 3px rgba(255,209,102,.18);white-space:nowrap;pointer-events:none}
    .friendsGroupChallengeArt img:not(.friendsGroupWatermark):not(.friendsGroupChallengeCrownImg){width:100%;height:132px;object-fit:contain;border-radius:10px;background:#fff}
    .friendsGroupChallengeArtImageBtn{position:relative;display:block;width:100%;max-width:100%;margin-top:0}
    .friendsGroupChallengeArtImageBtn .friendsGroupProtectedImageWrap{display:block;width:100%;aspect-ratio:3/4;border-radius:12px;background:#fff;overflow:hidden;border:1px solid #ffe1ef}
    .friendsGroupChallengeArtImageBtn .friendsGroupProtectedImageWrap img:not(.friendsGroupWatermark):not(.friendsGroupChallengeCrownImg){width:100%;height:100%;object-fit:contain;border:0;border-radius:12px}
    .friendsGroupChallengeCrown{display:block;position:absolute;left:50%;top:-12px;transform:translateX(-50%);z-index:4;width:54px;height:36px;margin:0;pointer-events:none;filter:drop-shadow(0 6px 9px rgba(102,62,0,.34)) drop-shadow(0 0 13px rgba(255,209,102,.58));will-change:auto}
    .friendsGroupChallengeCrown:after{content:"";position:absolute;inset:-8px;border-radius:999px;background:radial-gradient(circle,rgba(255,255,255,.78) 0 8%,rgba(255,209,102,.32) 18%,transparent 48%);opacity:.62;z-index:-1}
    .friendsGroupChallengeCrownImg{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;border:0!important;border-radius:0!important;background:transparent!important}
    .friendsGroupChallengeModal.victoryBoardMode .friendsGroupChallengeCrown{animation:none!important;transition:none!important;will-change:auto;transform:translateX(-50%)!important;filter:drop-shadow(0 4px 7px rgba(102,62,0,.24))}
    .friendsGroupChallengeModal.victoryBoardMode .friendsGroupChallengeCrown:after{display:none!important;animation:none!important;opacity:0;transform:none}
    .friendsGroupChallengeModal.victoryBoardMode .friendsGroupChallengeArt.winner,.friendsGroupChallengeModal.victoryBoardMode .friendsGroupChallengeArt.winner .friendsGroupProtectedImageWrap{animation:none!important;will-change:auto;box-shadow:0 0 0 2px rgba(255,209,102,.32),0 8px 16px rgba(16,32,61,.12)}
    .friendsGroupChallengeModal.victoryBoardMode .friendsGroupChallengeArtGrid:after{animation:none!important;will-change:auto;box-shadow:0 0 0 4px rgba(255,209,102,.28),0 8px 16px rgba(16,32,61,.18)}
    .friendsGroupChallengeModal.victoryBoardMode .friendsGroupChallengeHead:before,.friendsGroupChallengeModal.victoryBoardMode .friendsGroupChallengeHead:after{animation:none!important}
    .friendsGroupChallengeArtName{font-size:11px;font-weight:950;color:#10203d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupChallengeEmptyArt{height:132px;border:1px dashed #ffc4df;border-radius:10px;background:#fff;color:#8a1952;display:grid;place-items:center;text-align:center;font-size:11px;font-weight:950;padding:10px}
    .friendsGroupChallengeResult{border:1px solid #ffd166;border-radius:12px;background:linear-gradient(100deg,#fff8d7 0%,#fff 46%,#fff0f7 100%);color:#7a1048;padding:8px 9px;font-size:11px;font-weight:950;line-height:1.36;margin-top:8px;box-shadow:0 0 0 3px rgba(255,209,102,.14),0 8px 18px rgba(240,45,143,.10)}
    .friendsGroupChallengeFoot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;color:#6b5870;font-size:11px;font-weight:900}
    .friendsGroupChallengeVoteRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
    .friendsGroupChallengeVoteBtn{position:relative;overflow:hidden;min-height:40px;border:1.5px solid #ffd166;border-radius:12px;background:linear-gradient(135deg,#fffdf5 0%,#fff7df 46%,#fff1fa 100%);color:#8a1952;padding:6px 8px;font-size:11px;font-weight:950;text-align:center;line-height:1.12;cursor:pointer;touch-action:manipulation;box-shadow:0 8px 14px rgba(138,25,82,.10),0 0 0 2px rgba(255,209,102,.12),inset 0 -2px 0 rgba(255,209,102,.22);transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease,color .14s ease}
    .friendsGroupChallengeVoteBtn:before{content:"";position:absolute;left:4px;right:4px;top:3px;height:36%;border-radius:9px;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,.12));pointer-events:none}
    .friendsGroupChallengeVoteBtn:after{content:none}
    .friendsGroupChallengeVoteBtn span,.friendsGroupChallengeVoteBtn b{position:relative;z-index:1}
    .friendsGroupChallengeVoteBtn b{display:block;font-size:14px;color:#10203d;line-height:1.05;margin-top:1px}
    .friendsGroupChallengeVoteBtn:active{transform:translateY(1px);background:linear-gradient(135deg,#10203d 0%,#8a1952 62%,#ff8a2a 100%);border-color:#ffd166;color:#fff;box-shadow:0 5px 10px rgba(16,32,61,.16),0 0 0 2px rgba(255,209,102,.16),inset 0 2px 7px rgba(16,32,61,.24)}
    .friendsGroupChallengeVoteBtn.active{background:linear-gradient(135deg,#10203d 0%,#8a1952 62%,#ff8a2a 100%);border-color:#ffd166;color:#fff;box-shadow:0 0 0 3px rgba(255,209,102,.24),0 9px 16px rgba(16,32,61,.20),inset 0 2px 7px rgba(16,32,61,.22)}
    .friendsGroupChallengeVoteBtn.active b{color:#fff}
    .friendsGroupChallengeVoteBtn.loading{background:linear-gradient(135deg,#10203d 0%,#8a1952 58%,#ff8a2a 100%);border-color:#ffd166;color:#fff;box-shadow:0 0 0 3px rgba(255,209,102,.24),0 10px 18px rgba(16,32,61,.22),inset 0 2px 7px rgba(16,32,61,.22)}
    .friendsGroupChallengeVoteBtn.loading:after{content:"";position:absolute;top:-35%;bottom:-35%;width:38%;left:-45%;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);transform:rotate(16deg);animation:friendsGroupChallengeVoteShine 1.05s ease-in-out infinite;pointer-events:none}
    .friendsGroupChallengeVoteBtn.loading b{color:#fff}
    .friendsGroupChallengeVoteBtn.locked{opacity:.58;cursor:default}
    .friendsGroupChallengeVoteLock{margin-top:7px;border:1px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#8a1952;padding:5px 8px;font-size:10px;font-weight:950;text-align:center}
    .friendsGroupChallengeRulesList{display:grid;gap:7px;margin:8px 0 10px;padding:0;list-style:none;color:#4d4151;font-size:12px;font-weight:900;line-height:1.35}
    #friendsGroupChallengeRulesSheet .friendsGroupSheetCard{position:relative;overflow:hidden;border-color:#ffd166;background:radial-gradient(circle at 18% 0%,rgba(255,209,102,.34),transparent 24%),radial-gradient(circle at 88% 8%,rgba(240,45,143,.20),transparent 26%),linear-gradient(180deg,#fffdf4 0%,#fff 46%,#fff2fa 100%);box-shadow:0 -20px 42px rgba(16,32,61,.20),0 0 0 4px rgba(255,209,102,.20) inset}
    #friendsGroupChallengeRulesSheet .friendsGroupSheetCard:before{content:"";position:absolute;inset:0 0 auto 0;height:80px;background:linear-gradient(112deg,transparent 0%,transparent 38%,rgba(255,255,255,.58) 48%,transparent 62%,transparent 100%);transform:translateX(-105%);animation:friendsGroupChallengeArenaSweep 4.2s ease-in-out infinite;pointer-events:none}
    #friendsGroupChallengeRulesSheet .friendsGroupSheetHead{position:relative;z-index:1;border:1px solid rgba(255,209,102,.48);border-radius:17px;background:linear-gradient(135deg,#10203d 0%,#8a1952 58%,#ff8a2a 100%);padding:9px 10px;color:#fff;box-shadow:0 10px 22px rgba(16,32,61,.18),0 0 0 3px rgba(255,209,102,.16)}
    #friendsGroupChallengeRulesSheet .friendsGroupSheetTitle,#friendsGroupChallengeRulesSheet .friendsGroupSub{color:#fff;text-shadow:none}
    #friendsGroupChallengeRulesSheet .friendsGroupSheetClose{border-color:rgba(255,255,255,.62);background:rgba(255,255,255,.16);color:#fff}
    .friendsGroupChallengeRulesHero{position:relative;z-index:1;display:grid;grid-template-columns:44px minmax(0,1fr);gap:9px;align-items:center;border:1px solid #ffd166;border-radius:16px;background:linear-gradient(135deg,#fff9d7,#fff,#fff0f8);padding:9px 10px;margin:9px 0;box-shadow:0 8px 18px rgba(240,45,143,.10),0 0 0 3px rgba(255,209,102,.12)}
    .friendsGroupChallengeRulesHeroIcon{width:44px;height:44px;border-radius:999px;background:linear-gradient(135deg,#10203d,#8a1952);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:950;box-shadow:0 0 0 4px rgba(255,209,102,.28),0 10px 18px rgba(16,32,61,.20)}
    .friendsGroupChallengeRulesHeroTitle{font-size:14px;font-weight:950;color:#10203d;line-height:1.15}
    .friendsGroupChallengeRulesHeroMeta{margin-top:3px;font-size:10px;font-weight:900;color:#8a1952;line-height:1.25}
    #friendsGroupChallengeRulesSheet .friendsGroupSheetCard{display:flex;flex-direction:column;max-height:min(82vh,720px);overflow:hidden}
    .friendsGroupChallengeRulesBody{position:relative;z-index:1;overflow:auto;padding:0 1px 10px;-webkit-overflow-scrolling:touch}
    .friendsGroupChallengeRulesPlain{border:1px solid #ffd0e5;border-radius:16px;background:rgba(255,255,255,.9);padding:10px 12px;box-shadow:0 8px 16px rgba(255,115,181,.08)}
    .friendsGroupChallengeRulesPlain p{margin:0 0 9px;color:#4d4151;font-size:13px;font-weight:900;line-height:1.36}
    .friendsGroupChallengeRulesPlain p:last-child{margin-bottom:0}
    .friendsGroupChallengeRulesPlain b{color:#10203d;font-weight:950}
    .friendsGroupChallengeRulesPlain .danger{color:#9d1457}
    .friendsGroupChallengeRulesPlain .reward{color:#0f8a7d}
    .friendsGroupChallengeRulesPlain .tie{color:#6b5870}
    #friendsGroupChallengeRulesSheet .friendsGroupLimitWrap{position:relative;z-index:2;margin-top:8px;padding-top:8px;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,248,253,.96) 34%,rgba(255,248,253,1));flex:0 0 auto}
    .friendsGroupChallengeRulesStart{width:100%;border:none;border-radius:14px;background:linear-gradient(135deg,#20c7b5,#f02d8f,#ff8a2a);color:#fff;min-height:42px;font-size:14px;font-weight:950;box-shadow:0 12px 24px rgba(240,45,143,.18),0 0 0 3px rgba(255,209,102,.16)}
    .friendsGroupChallengeEmpty{padding:24px 14px;border:1px dashed #ffc4df;border-radius:16px;background:#fff;color:#8a1952;text-align:center;font-size:13px;font-weight:900;line-height:1.45}
    .friendsGroupPost{position:relative;touch-action:pan-y;transition:transform .16s ease}
    .friendsGroupPost.swipingMention{transition:none;will-change:transform}
    .friendsGroupReactionBurstLayer{position:absolute;right:10px;bottom:42px;pointer-events:none;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:140px}
    .friendsGroupReactionBurst{font-size:24px;line-height:1;filter:drop-shadow(0 6px 10px rgba(16,32,61,.18));animation:friendsGroupBurstPop 1.15s ease forwards}
    .friendsGroupMentionNotice{margin:8px 12px 0;align-self:center;max-width:min(420px,calc(100% - 24px));border:1.5px solid #ffc4df;border-radius:999px;background:#10203d;color:#fff;padding:8px 13px;font-size:12px;font-weight:950;box-shadow:0 14px 26px rgba(16,32,61,.20),0 0 0 5px rgba(255,196,223,.28);animation:friendsMentionNotice 6s ease forwards;z-index:3}
    .friendsGroupMentionLine{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:7px 0 0;padding:7px 9px;border:1px solid #ffd0e5;border-radius:12px;background:#fff7fb;color:#8a1952;font-size:11px;font-weight:950}
    .friendsGroupMentionPill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:#fff;color:#9d1457;border:1px solid #ffc4df}
    .friendsGroupMentionClear{border:none;background:transparent;color:#9d1457;font-size:16px;font-weight:950;line-height:1}
    .friendsGroupMentionHint{font-size:10px;color:#9b7b8e}
    .friendsGroupFooter{position:fixed;left:0;right:0;bottom:0;z-index:3;display:grid;grid-template-columns:40px minmax(0,1fr) 72px;gap:7px;padding:7px 12px calc(8px + env(safe-area-inset-bottom));border-top:1.5px solid #ffd166;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,247,219,.96),rgba(255,235,247,.98));box-shadow:0 -8px 20px rgba(255,115,181,.13)}
    .friendsGroupFooter.readOnly{grid-template-columns:1fr}
    .friendsGroupReadOnlyNotice{padding:10px 12px;border:1.5px solid #ffc4df;border-radius:14px;background:#fff7fb;color:#7c2d12;font-size:12px;font-weight:950;line-height:1.35;text-align:center}
    .friendsGroupReadOnlyNotice.sheet{margin:10px 0 0}
    .friendsGroupFooter .friendsGroupMentionLine{grid-column:1/-1;margin-top:0;padding:6px 9px}
    .friendsGroupFooter .friendsGroupMentionHint{display:none}
    .friendsGroupIconBtn,.friendsGroupUploadBtn{border:1.5px solid #ffc4df;border-radius:13px;background:#fff;color:#9d1457;font-size:15px;font-weight:950;min-height:38px;box-shadow:0 7px 14px rgba(255,115,181,.10)}
    .friendsGroupIconBtn{animation:friendsGroupStickerBounce 3.8s ease-in-out infinite}
    .friendsGroupTextBtn{min-height:38px;border:1.5px solid #ffc4df;border-radius:13px;background:linear-gradient(135deg,#fff,#fff8dd);color:#6b5870;text-align:left;padding:0 10px;font-size:12.5px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 7px 14px rgba(255,115,181,.08)}
    .friendsGroupUploadBtn{background:linear-gradient(135deg,#20c7b5,#0f8a7d);border-color:#0f8a7d;color:#fff;font-size:12px;box-shadow:0 10px 18px rgba(15,138,125,.18),0 0 0 3px rgba(32,199,181,.12)}
    .friendsGroupUploadBtn.limitOver,.friendsGroupChallengePostBtn.limitOver,.friendsGroupChallengeRulesStart.limitOver{background:#e5e7eb!important;border-color:#cbd5e1!important;color:#64748b!important;box-shadow:none!important}
    .friendsGroupChallengePostBtn.loading,.friendsGroupChallengeRulesStart.loading{position:relative;overflow:hidden;background:linear-gradient(135deg,#10203d,#f02d8f,#ff8a2a)!important;border-color:#ffd166!important;color:#fff!important;box-shadow:0 10px 22px rgba(240,45,143,.18),0 0 0 3px rgba(255,209,102,.16)!important;opacity:1!important}
    .friendsGroupChallengePostBtn.loading:before,.friendsGroupChallengeRulesStart.loading:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.42) 45%,transparent 68%);transform:translateX(-120%);animation:friendsGroupUploadShine 1.05s ease-in-out infinite}
    .friendsGroupChallengePostBtn.loading span,.friendsGroupChallengeRulesStart.loading span{position:relative;z-index:1}
    .friendsGroupUploadWrap{position:relative;display:grid;min-width:0}
    .friendsGroupUploadWrap .friendsGroupUploadBtn{width:100%;height:100%}
    .friendsGroupUploadWrap .friendsGroupLimitCountdown{top:-16px}
    .friendsGroupWheelClose.uploading{position:relative;overflow:hidden;background:linear-gradient(135deg,#10203d,#f02d8f);color:#fff;border-color:#ffd166;box-shadow:0 10px 22px rgba(240,45,143,.18)}
    .friendsGroupWheelClose.uploading:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.42) 45%,transparent 68%);transform:translateX(-120%);animation:friendsGroupUploadShine 1.1s ease-in-out infinite}
    .friendsGroupWheelClose.uploading span{position:relative;z-index:1}
    @keyframes friendsGroupUploadShine{to{transform:translateX(120%)}}
    .friendsGroupLimitLine{position:absolute;left:58px;right:66px;bottom:calc(2px + env(safe-area-inset-bottom));font-size:9px;font-weight:900;color:#8a1952;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .friendsGroupProgress{position:absolute;left:12px;right:12px;bottom:calc(52px + env(safe-area-inset-bottom));border:1px solid #ffc4df;background:#fff;border-radius:12px;padding:7px;box-shadow:0 -6px 16px rgba(255,115,181,.12)}
    .friendsGroupProgressTrack{height:7px;border-radius:999px;background:#ffe3f1;overflow:hidden}
    .friendsGroupProgressFill{height:100%;border-radius:999px;background:linear-gradient(90deg,#20c7b5,#f02d8f);transition:width .25s ease}
    .friendsGroupProgressText{display:flex;justify-content:space-between;gap:8px;margin-top:4px;font-size:10px;font-weight:950;color:#8a1952}
    .friendsGroupSheet{position:fixed;inset:0;z-index:10000;display:none;align-items:flex-end;background:rgba(16,32,61,.28)}
    .friendsGroupSheet.show{display:flex}
    .friendsGroupSheetCard{box-sizing:border-box;width:100%;max-width:100vw;max-height:72vh;overflow:auto;border-radius:24px 24px 0 0;background:linear-gradient(180deg,#fff 0%,#fff8fd 54%,#fff9df 100%);padding:14px calc(14px + env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));border:1px solid #ffc4df;box-shadow:0 -18px 36px rgba(16,32,61,.16),0 0 0 4px rgba(255,209,102,.12) inset}
    .friendsGroupSheet.composerFocus .friendsGroupSheetCard{max-height:42vh;padding-top:9px}
    .friendsGroupSheet.composerFocus .friendsGroupSheetHead{margin-bottom:6px}
    .friendsGroupSheet.composerFocus .friendsGroupSheetTitle{font-size:14px}
    .friendsGroupSheet.composerFocus .friendsGroupSub{font-size:9px}
    .friendsGroupSheet.composerFocus .friendsGroupComposerGuide,.friendsGroupSheet.composerFocus .friendsGroupQuickTitle,.friendsGroupSheet.composerFocus .friendsGroupPresetGrid,.friendsGroupSheet.composerFocus .friendsGroupPresetSections{display:none}
    .friendsGroupSheet.composerFocus .friendsGroupChatInput{min-height:74px;max-height:96px}
    .friendsGroupSheetHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
    .friendsGroupSheetHead>div{min-width:0}
    .friendsGroupSheetTitle{font-size:16px;font-weight:950;color:#10203d;text-shadow:0 1px 0 rgba(255,255,255,.8)}
    .friendsGroupSheetClose{border:1px solid #ffc4df;border-radius:999px;background:#fff7fb;color:#9d1457;width:34px;height:34px;font-size:18px;font-weight:950;flex:0 0 auto}
    .friendsGroupComposerBox{display:grid;gap:8px;margin-bottom:10px}
    .friendsGroupComposerGuide{font-size:11px;font-weight:900;color:#8a1952;line-height:1.4}
    .friendsGroupComposerGuide strong{color:#9d1457}
    .friendsGroupChatInput{width:100%;min-height:88px;max-height:140px;border:1.5px solid #ffc4df;border-radius:16px;background:#fff7fb;color:#10203d;padding:12px;font-size:14px;font-weight:900;line-height:1.35;resize:none;outline:none}
    .friendsGroupChatInput::placeholder{color:#9b7b8e}
    .friendsGroupComposerRow{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
    .friendsGroupComposerCount{font-size:11px;font-weight:900;color:#8a1952}
    .friendsGroupSendBtn{border:none;border-radius:12px;background:linear-gradient(180deg,#f23f96,#c21f71);color:#fff;padding:10px 14px;font-size:13px;font-weight:950;min-width:120px}
    .friendsGroupSendBtn:disabled{opacity:.58}
    .friendsGroupSmartSearchBox{display:grid;gap:7px;margin-bottom:10px}
    .friendsGroupSmartSearchBox.hidden{display:none}
    .friendsGroupSmartSearchInput{width:100%;min-height:43px;border:1.5px solid #ffc4df;border-radius:15px;background:#fff;color:#10203d;padding:10px 12px;font-size:14px;font-weight:950;line-height:1.25;outline:none;box-shadow:0 8px 16px rgba(255,115,181,.08)}
    .friendsGroupSmartSearchInput::placeholder{color:#9b7b8e}
    .friendsGroupSmartHint{font-size:10px;font-weight:900;color:#8a1952;line-height:1.25}
    .friendsGroupSmartResults{display:grid;gap:7px}
    .friendsGroupSmartEmpty{border:1px dashed #ffc4df;border-radius:13px;background:#fff7fb;color:#8a1952;padding:8px 10px;font-size:11px;font-weight:900;line-height:1.3}
    .friendsGroupQuickTitle{font-size:12px;font-weight:950;color:#10203d;margin:4px 0 0}
    .friendsGroupPresetGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .friendsGroupPresetBtn{border:1.5px solid #ffc4df;border-radius:14px;background:#fff7fb;color:#10203d;padding:11px 9px;font-size:12px;font-weight:950;text-align:left;line-height:1.25}
    .friendsGroupPresetBtn.smart{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 10px;background:linear-gradient(135deg,#fff 0%,#fff7fb 58%,#fff8d8 100%);box-shadow:0 7px 14px rgba(255,115,181,.07)}
    .friendsGroupPresetArrow{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#10203d;color:#fff;font-size:13px;font-weight:950;line-height:1;box-shadow:0 5px 10px rgba(16,32,61,.14)}
    .friendsGroupPresetSections{display:grid;gap:10px;margin-top:12px}
    .friendsGroupPresetSection{display:grid;gap:7px;border-top:1px solid #ffe1ef;padding-top:10px}
    .friendsGroupPresetSectionTitle{display:flex;align-items:center;gap:6px;color:#8a1952;font-size:12px;font-weight:950;line-height:1.2}
    .friendsGroupPresetSectionTitle .icon{font-size:15px;line-height:1}
    .friendsGroupEmojiGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
    .friendsGroupEmojiBtn{border:1.5px solid #ffc4df;border-radius:16px;background:#fff7fb;color:#10203d;padding:10px 6px;display:grid;justify-items:center;gap:4px;font-size:12px;font-weight:950;line-height:1.1;text-align:center}
    .friendsGroupEmojiBtn span{font-size:22px;line-height:1}
    .friendsGroupHiddenFile{display:none}
    .friendsGroupUploadNoteModal{position:fixed;inset:0;z-index:10005;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(16,32,61,.32);backdrop-filter:blur(7px)}
    .friendsGroupUploadNoteModal.show{display:flex}
    .friendsGroupUploadNoteCard{position:relative;width:min(340px,calc(100vw - 32px));max-height:min(86vh,620px);overflow:auto;border:1.5px solid #ffd0e5;border-radius:22px;background:linear-gradient(180deg,#fff 0%,#fff8fd 58%,#fff9df 100%);padding:18px 16px 16px;text-align:center;box-shadow:0 18px 46px rgba(16,32,61,.20),0 0 0 4px rgba(255,209,102,.12) inset;color:#10203d}
    .friendsGroupUploadNoteClose{position:absolute;top:9px;right:9px;width:30px;height:30px;border:1px solid #ffd0e5;border-radius:999px;background:#fff;color:#9d1457;font-size:17px;font-weight:950;line-height:1}
    .friendsGroupUploadNoteArt{display:block;width:96px;max-width:38%;height:auto;margin:0 auto 7px;border-radius:16px;object-fit:cover;box-shadow:0 8px 16px rgba(255,115,181,.09)}
    .friendsGroupUploadNoteCard h3{margin:0 0 8px;color:#10203d;font-size:16px;font-weight:950;line-height:1.12;text-align:center}
    .friendsGroupUploadNoteBody{max-width:292px;margin:0 auto 8px;text-align:left}
    .friendsGroupUploadNoteCard p{margin:0 0 7px;color:#5f5264;font-size:10.5px;font-weight:850;line-height:1.34}
    .friendsGroupUploadNotePick{width:100%;min-height:42px;margin-top:4px;border:none;border-radius:15px;background:linear-gradient(135deg,#20c7b5,#0f8a7d);color:#fff;font-size:14px;font-weight:950;box-shadow:0 10px 18px rgba(15,138,125,.18),0 0 0 3px rgba(32,199,181,.12)}
    .friendsGroupAdminModal{position:fixed;inset:0;z-index:10004;display:none;background:rgba(16,32,61,.32);padding:12px;overflow:auto}
    html.protivaIosNativeShell .friendsGroupAdminModal{padding-top:calc(12px + var(--protiva-safe-top))}
    .friendsGroupAdminModal.show{display:block}
    .friendsGroupAdminCard{max-width:860px;margin:0 auto;background:#fff;border:1px solid #ffc4df;border-radius:18px;padding:13px;box-shadow:0 18px 38px rgba(16,32,61,.18)}
    .friendsGroupAdminHead{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;z-index:1;padding-bottom:10px}
    .friendsGroupAdminTitle{font-size:18px;font-weight:950;color:#10203d}
    .friendsGroupAdminClose{border:1.5px solid #ffc4df;border-radius:999px;background:#fff7fb;color:#9d1457;width:34px;height:34px;font-size:18px;font-weight:950}
    .friendsGroupAdminTabs{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 10px}
    .friendsGroupAdminTab{position:relative;border:1.5px solid #ffd0e5;border-radius:999px;background:#fff7fb;color:#8a1952;padding:8px 12px;font-size:12px;font-weight:950}
    .friendsGroupAdminTab.active{background:#10203d;border-color:#10203d;color:#fff}
    .friendsGroupAdminTabBadge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:6px;border-radius:999px;background:#10203d;color:#fff;padding:0 5px;font-size:10px;font-weight:950}
    .friendsGroupAdminTab.active .friendsGroupAdminTabBadge{background:#fff;color:#10203d}
    .friendsGroupAdminList{display:grid;gap:9px;margin-top:8px}
    .friendsGroupAdminPost{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;border:1px solid #ffd0e5;border-radius:14px;background:#fff7fb;padding:9px}
    .friendsGroupAdminPost.artwork{border-color:#ffd0e5;background:linear-gradient(135deg,#fff7fb 0%,#fff 58%,#eefcff 100%);box-shadow:0 0 0 3px rgba(255,208,229,.12)}
    .friendsGroupAdminPost.challenge{border-color:#ffd166;background:linear-gradient(180deg,#fff8d7,#fff7fb);box-shadow:0 0 0 3px rgba(255,209,102,.16)}
    .friendsGroupAdminPost.jackpot{position:relative;overflow:hidden;border-color:#67e8f9;background:linear-gradient(135deg,#ecfeff 0%,#fff8d7 50%,#f0f9ff 100%);box-shadow:0 12px 24px rgba(14,165,233,.12),0 0 0 3px rgba(103,232,249,.18)}
    .friendsGroupAdminPost.jackpot:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 18%,rgba(103,232,249,.35),transparent 24%),radial-gradient(circle at 88% 74%,rgba(255,209,102,.32),transparent 26%);opacity:.8;pointer-events:none}
    .friendsGroupAdminPost.mystery{position:relative;overflow:hidden;border-color:#c084fc;background:linear-gradient(135deg,#faf5ff 0%,#fff1f7 52%,#f5f3ff 100%);box-shadow:0 12px 24px rgba(168,85,247,.12),0 0 0 3px rgba(192,132,252,.16)}
    .friendsGroupAdminPost.mystery:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 16% 20%,rgba(192,132,252,.32),transparent 26%),radial-gradient(circle at 84% 72%,rgba(244,114,182,.24),transparent 24%);opacity:.82;pointer-events:none}
    .friendsGroupAdminPost.jackpot>*,.friendsGroupAdminPost.mystery>*{position:relative;z-index:1}
    .friendsGroupAdminPost.jackpot .friendsGroupName,.friendsGroupAdminPost.mystery .friendsGroupName{color:#10203d}
    .friendsGroupAdminPost.jackpot .friendsGroupAdminMeta{color:#155e75}
    .friendsGroupAdminPost.mystery .friendsGroupAdminMeta{color:#6d2878}
    .friendsGroupAdminPost.jackpot .friendsGroupAdminChallengeTag,.friendsGroupAdminPost.mystery .friendsGroupAdminChallengeTag{display:inline-flex;align-items:center;gap:5px;border-radius:999px}
    .friendsGroupAdminPost.jackpot .friendsGroupAdminChallengeTag{border-color:rgba(14,165,233,.38);background:rgba(236,254,255,.86);color:#155e75}
    .friendsGroupAdminPost.mystery .friendsGroupAdminChallengeTag{border-color:rgba(192,132,252,.42);background:rgba(250,245,255,.88);color:#6d2878}
    .friendsGroupAdminPost.jackpot .homeworkRejectSelect{background:rgba(255,255,255,.94)}
    .friendsGroupAdminPost.jackpot .friendsGroupAdminBtn.ok{background:linear-gradient(135deg,#67e8f9,#0f9b8e 52%,#10203d);color:#fff;border-color:#67e8f9;box-shadow:0 8px 15px rgba(15,155,142,.18)}
    .friendsGroupAdminPost.jackpot .friendsGroupAdminBtn.danger{background:rgba(255,255,255,.94);color:#8a1952;border-color:#ffd0e5}
    .friendsGroupAdminPost.mystery .homeworkRejectSelect{background:rgba(255,255,255,.94)}
    .friendsGroupAdminPost.mystery .friendsGroupAdminBtn.ok{background:linear-gradient(135deg,#8b5cf6,#c026d3);color:#fff;border-color:#c084fc;box-shadow:0 8px 15px rgba(168,85,247,.16)}
    .friendsGroupAdminPost.mystery .friendsGroupAdminBtn.danger{background:rgba(255,255,255,.94);color:#8a1952;border-color:#ffd0e5}
    .friendsGroupAdminThumb{width:72px;height:72px;border:1px solid #ffd0e5;border-radius:12px;background:#fff;object-fit:cover}
    .friendsGroupAdminMeta{font-size:12px;font-weight:900;color:#6b5870;line-height:1.35}
    .friendsGroupAdminChallengeTag{display:inline-flex;align-items:center;border:1px solid #ffd166;border-radius:999px;background:#fff9d6;color:#7a1048;padding:3px 7px;margin-bottom:5px;font-size:10px;font-weight:950}
    .friendsGroupAdminActions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
    .friendsGroupAdminBtn{border:1px solid #ffc4df;border-radius:999px;background:#fff;color:#10203d;padding:9px 13px;font-size:12px;font-weight:950;transition:transform .12s ease,box-shadow .12s ease,opacity .12s ease}
    .friendsGroupAdminBtn:active{transform:scale(.96);box-shadow:0 4px 10px rgba(16,32,61,.12)}
    .friendsGroupAdminBtn[disabled]{opacity:.7;pointer-events:none}
    .friendsGroupAdminBtn.ok{background:#0f766e;border-color:#0f766e;color:#fff}
    .friendsGroupAdminBtn.danger{background:#fff1f2;border-color:#fecaca;color:#b91c1c}
    .friendsGroupAdminBtn.bulk{background:#fff8db;border-color:#ffd166;color:#7a1048}
    .friendsGroupAdminBanRow{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
    .friendsGroupAdminBanField{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;border:1px solid #ffd0e5;border-radius:12px;background:#fff;padding:7px}
    .friendsGroupAdminBanInput{width:76px;border:1.5px solid #ffd0e5;border-radius:10px;background:#fff;color:#10203d;padding:7px 8px;font-size:12px;font-weight:900}
    .friendsGroupAdminEmpty{border:1px dashed #ffc4df;border-radius:14px;background:#fff7fb;color:#8a1952;padding:16px;text-align:center;font-size:13px;font-weight:900}
    .studentProfileLoginField{display:grid;gap:5px;min-width:0}
    .studentProfileLoginLabel{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:950;color:#8a1952;line-height:1.2}
    .studentProfileLoginLabel span{font-size:11px;color:#6b5870}
    .studentProfileDatePickerShell{position:relative;overflow:hidden;width:100%;max-width:100%;min-width:0;border-radius:14px}
    .studentProfileDatePickerDisplay{width:100%;min-height:50px;box-sizing:border-box;padding:13px;border:2px solid #ffadd4;border-radius:14px;background:#fff;color:#10203d;box-shadow:0 8px 20px rgba(255,141,198,.14);font-size:16px;font-weight:900;display:flex;align-items:center;justify-content:space-between;gap:10px;line-height:1.2;pointer-events:auto;cursor:pointer}
    .studentProfileDatePickerDisplay.placeholder{color:#94a3b8}
    .studentProfileDatePickerDisplay:after{content:"";display:block;width:20px;height:20px;flex:0 0 20px;background-repeat:no-repeat;background-size:20px 20px;background-position:center;opacity:.72;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%238a1952' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect x='3' y='4' width='18' height='18' rx='3'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E")}
    .homeworkQuestMacDobPicker{position:fixed;z-index:10020;border:1px solid #ffc4df;border-radius:14px;background:#fff;box-shadow:0 16px 34px rgba(16,32,61,.18);padding:10px;box-sizing:border-box}
    .homeworkQuestMacDobGrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
    .homeworkQuestMacDobPicker select{width:100%;min-width:0;border:1px solid #ffd0e5;border-radius:11px;background:#fff;color:#10203d;padding:10px 8px;font-size:14px;font-weight:900;outline:none}
    .homeworkQuestMacDobPicker select:focus{border-color:#9d1457;box-shadow:0 0 0 3px rgba(157,20,87,.12)}
    .homeworkQuestMacDobPicker button{width:100%;margin-top:8px;border:0;border-radius:12px;background:#10203d;color:#fff;padding:10px;font-size:14px;font-weight:950}
    .studentProfileLoginHelp{font-size:11px;font-weight:900;color:#6b5870;line-height:1.35;text-align:center;margin-top:2px}
    .studentProgressAlert{border:1.5px solid #ffd166;border-radius:14px;background:#fff9e8;color:#8a4b00;padding:11px;font-size:13px;font-weight:900;line-height:1.4;margin-top:10px}
    .studentProgressAccordion{border:1px solid #ffc4df;border-radius:14px;background:#fff;overflow:hidden}
    .studentProgressAccordion summary{list-style:none;padding:12px 13px;font-size:15px;font-weight:900;color:#10203d;cursor:pointer}
    .studentProgressHiddenSummary{display:none}
    .studentProgressAccordion summary::-webkit-details-marker{display:none}
    .studentProgressBody{padding:0 13px 13px;display:grid;gap:10px}
    .studentProgressTileGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
    .studentProgressTile{border:1px solid #ffc4df;border-radius:12px;background:#fff7fb;padding:6px;min-width:0;text-align:center}
    .studentProgressTile.empty{border-style:dashed;background:#fff}
    .studentProgressTileThumb{width:100%;aspect-ratio:1/1;border:0;border-radius:10px;background:#fff;padding:0;overflow:hidden;display:block;box-shadow:0 6px 14px rgba(16,32,61,.08);cursor:pointer}
    .studentProgressTileThumb img{width:100%;height:100%;object-fit:cover;display:block}
    .studentProgressTileDate{font-size:9px;font-weight:900;color:#6b5870;line-height:1.25;margin-top:5px;word-break:break-word}
    .studentProgressTileNext{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1/1;border-radius:10px;background:#fff0f8;color:#9d1457;font-size:10px;font-weight:900;line-height:1.25;padding:6px}
    .studentProgressUploadBtn{border:none;border-radius:13px;background:#0f766e;color:#fff;padding:12px 10px;font-size:14px;font-weight:900;box-shadow:0 10px 20px rgba(15,118,110,.15);touch-action:manipulation}
    .studentProgressUploadBtn[disabled]{opacity:.68}
    .studentProgressFile{display:none}
    .homeworkProfileModules{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
    .homeworkProfileModule{border:1px solid #ffc4df;border-radius:999px;background:#fff;color:#9d1457;padding:7px 10px;font-size:12px;font-weight:900;white-space:nowrap}
    .homeworkProfileModule.active{background:#10203d;border-color:#10203d;color:#fff;box-shadow:0 8px 18px rgba(16,32,61,.16)}
    .homeworkProfileModule.future{background:#fff7fb;color:#8a6b7d}
    .homeworkProfileSectionTitle{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 0 8px;font-size:18px;font-weight:900;color:#10203d}
    .homeworkProfileSectionTitle span{font-size:12px;color:#9d1457;background:#fff0f8;border:1px solid #ffc4df;border-radius:999px;padding:5px 8px}
    .homeworkSlotSelect{width:100%;padding:13px;border:2px solid #ffadd4;border-radius:14px;font-size:16px;font-weight:900;background:#fff;color:#10203d;margin-top:10px;box-shadow:0 8px 20px rgba(255,141,198,.14)}
    .homeworkSlotPickerList{display:grid;gap:9px;margin-top:10px}
    .homeworkSlotPickRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
    .homeworkSlotPickRow .homeworkSlotSelect{margin-top:0}
    .homeworkSlotRemoveBtn{width:42px;height:42px;border:1px solid #ffd0e5;border-radius:12px;background:#fff5fa;color:#b91c5c;font-size:18px;font-weight:900}
    html.classRecordingSafePlayerPage,html.classRecordingSafePlayerPage body{margin:0;width:100%;min-height:100%;background:#071121;overflow:hidden;overscroll-behavior:none}
    html.classRecordingSafeInlineLocked,html.classRecordingSafeInlineLocked body{overflow:hidden;overscroll-behavior:none}
    .classRecordingSafeInlineOverlay{position:fixed;inset:0;z-index:2147482500;background:#071121;color:#fff}
    .classRecordingSafePlayerBody #app{min-height:100dvh;background:#071121;color:#fff}
    .classRecordingSafeShell{position:relative;box-sizing:border-box;width:100vw;height:100dvh;display:grid;grid-template-rows:minmax(0,1fr);gap:0;padding:0;background:#000;color:#fff;overflow:hidden}
    .classRecordingSafeShell.inline{height:100dvh}
    .classRecordingSafeCloseMini{position:absolute;top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));z-index:4;width:34px;height:34px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:rgba(7,17,33,.72);color:#fff;text-decoration:none;font-size:16px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(0,0,0,.28)}
    .classRecordingSafeTop{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;min-width:0}
    .classRecordingSafeBack,.classRecordingSafeBtn{min-height:40px;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(255,255,255,.08);color:#fff;text-decoration:none;font-size:13px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;box-sizing:border-box;white-space:nowrap}
    .classRecordingSafeBack{width:70px}
    .classRecordingSafeBrand{font-size:11px;font-weight:950;color:#8bd3ff;letter-spacing:0;text-transform:uppercase}
    .classRecordingSafeTop h1{margin:2px 0 0;font-size:18px;line-height:1.1;font-weight:950;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .classRecordingSafeTop p{margin:3px 0 0;font-size:12px;font-weight:850;color:#c7d2fe;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .classRecordingSafeStage{position:relative;min-height:0;background:#000;overflow:hidden}
    .classRecordingSafeVideo{display:block;width:100%;height:100%;background:#000;object-fit:contain}
    .classRecordingSafeOverlay{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:9px;text-align:center;padding:18px;background:linear-gradient(135deg,rgba(7,17,33,.92),rgba(16,32,61,.78));color:#fff;font-size:13px;font-weight:900;line-height:1.35}
    .classRecordingSafeOverlay.hide{display:none}
    .classRecordingSafeOverlay strong{font-size:17px;font-weight:950}
    .classRecordingSafeOverlay span{max-width:360px;color:#dbeafe}
    .classRecordingSafeOverlay.failed{background:linear-gradient(135deg,#2b1020,#071121)}
    .classRecordingSafeOverlay.failed .classRecordingSafeSpinner{display:none}
    .classRecordingSafeSpinner{width:34px;height:34px;border-radius:999px;border:4px solid rgba(255,255,255,.22);border-top-color:#8bd3ff;animation:classRecordingSafeSpin .82s linear infinite}
    .classRecordingSafeActions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
    .classRecordingSafeActions.compact{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px;width:100%;justify-self:center}
    .classRecordingSafeBtn.primary{border-color:#20c7b5;background:linear-gradient(135deg,#20c7b5,#0f766e);box-shadow:0 12px 24px rgba(15,118,110,.20)}
    .classRecordingSafeBtn.ghost{border-color:rgba(255,255,255,.14);color:#cbd5e1}
    .classRecordingSafeStatus{min-height:18px;color:#c7d2fe;font-size:12px;font-weight:900;text-align:center;line-height:1.25}
    .classRecordingSafeStatus.error{color:#fecaca}
    .classRecordingSafeCard{align-self:center;justify-self:center;width:min(420px,calc(100vw - 24px));border:1px solid rgba(139,211,255,.28);border-radius:18px;background:rgba(255,255,255,.08);padding:18px;box-shadow:0 18px 42px rgba(0,0,0,.32);text-align:center}
    .classRecordingSafeCard h1{font-size:22px;margin:6px 0;color:#fff}
    .classRecordingSafeCard p{font-size:13px;font-weight:850;color:#dbeafe;line-height:1.4}
    @keyframes classRecordingSafeSpin{to{transform:rotate(360deg)}}
    @media(max-width:760px){.classRecordingSafeTop h1{font-size:16px}.classRecordingSafeActions{grid-template-columns:repeat(2,minmax(0,1fr))}.classRecordingSafeBtn{font-size:12px;min-height:38px}}
    @media(orientation:landscape) and (max-height:540px){.classRecordingSafeShell{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.classRecordingSafeStatus{display:none}.classRecordingSafeCloseMini{width:30px;height:30px;font-size:14px}.classRecordingSafeTop h1{font-size:15px}}
    .homeworkFindBtn,.homeworkDoneBtn{width:100%;border:none;border-radius:12px;background:linear-gradient(180deg,#ff4f9b,#d82173);color:#fff;padding:13px 14px;font-size:16px;font-weight:900;box-shadow:0 10px 24px rgba(216,33,115,.24)}
    .homeworkUndoBtn{width:100%;border:none;border-radius:12px;background:linear-gradient(180deg,#20c7b5,#0f8a7d);color:#fff;padding:12px 14px;font-size:15px;font-weight:900;margin-top:12px;box-shadow:0 10px 22px rgba(15,138,125,.24)}
    .homeworkFindBtn{margin-top:10px}
    .homeworkProgressShell{margin-top:12px}
    .homeworkProgressText,.homeworkCountdownCommon{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:900;color:#8a1952;margin-bottom:7px}
    .homeworkCountdownCommon{justify-content:flex-start;margin:0 0 10px;font-size:14px}
    .homeworkProgressMascot{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:13px;font-weight:900;color:#8a1952}
    .homeworkProgressMascot img{width:42px;height:42px;border-radius:12px;object-fit:cover;border:1px solid #ffc4df;background:#fff}
    .homeworkKittyInstructions{font-size:14px;font-weight:900;color:#6b5870;line-height:1.45;margin-top:10px}
    .homeworkKittyInstructions strong{display:block;color:#8a1952;margin-bottom:4px}
    .homeworkClockIcon{width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#fff0f8;border:1px solid #ffc4df;box-shadow:0 0 14px rgba(255,123,187,.18)}
    .homeworkProgressTrack{height:12px;border-radius:999px;background:#ffe0ef;border:1px solid #ffc4df;overflow:hidden}
    .homeworkProgressFill{height:100%;border-radius:999px;background:linear-gradient(90deg,#ff6daf,#ffd166);box-shadow:0 0 16px rgba(255,109,175,.5);transition:width .22s ease}
    .diamondGlowIcon{display:inline-flex;align-items:center;justify-content:center;line-height:1;filter:drop-shadow(0 0 7px rgba(86,211,255,.95)) drop-shadow(0 0 13px rgba(255,209,102,.62));animation:diamondGlowPulse 1.55s ease-in-out infinite;vertical-align:-1px}
    .friendsGroupDiamondChip .diamondGlowIcon,.friendsGroupActivityLine .diamondGlowIcon,.friendsGroupActivityCard .diamondGlowIcon,.friendsGroupChallengeCard .diamondGlowIcon,.studentProfileHeaderPoints .diamondGlowIcon,.homeworkQuestStat .diamondGlowIcon,.homeworkQuestRewardLine .diamondGlowIcon{filter:drop-shadow(0 0 8px rgba(86,211,255,1)) drop-shadow(0 0 16px rgba(255,209,102,.78));transform-origin:center}
    .homeworkMissionCard{position:relative;overflow:hidden;border:1.5px solid rgba(255,209,102,.88);background:radial-gradient(circle at 14% 12%,rgba(255,209,102,.18) 0 18px,transparent 19px),radial-gradient(circle at 90% 16%,rgba(37,211,102,.12) 0 22px,transparent 23px),linear-gradient(135deg,#fff 0%,#fff7fb 48%,#fff8d8 100%);box-shadow:0 12px 26px rgba(157,20,87,.10),0 0 0 2px rgba(255,255,255,.58) inset}
    .homeworkMissionCard:before{content:none}
    .homeworkMissionCard:after{content:"";position:absolute;left:12px;right:12px;top:8px;height:5px;border-radius:999px;background:repeating-linear-gradient(90deg,rgba(255,209,102,.92) 0 9px,transparent 9px 32px);opacity:.62;box-shadow:0 0 14px rgba(255,209,102,.20);pointer-events:none}
    .homeworkMissionCard>*{position:relative;z-index:1}
    .homeworkMissionCard.active{border-color:#ffd166;box-shadow:0 14px 30px rgba(255,115,181,.14),0 0 0 3px rgba(255,209,102,.18),0 0 28px rgba(86,211,255,.14)}
    .homeworkMissionCard.active:before{content:none;animation:none}
    .homeworkMissionCard.done{background:radial-gradient(circle at 86% 20%,rgba(255,209,102,.22) 0 26px,transparent 27px),linear-gradient(135deg,#f0fff7 0%,#fff 48%,#fff8d8 100%);border-color:#73d397;box-shadow:0 12px 26px rgba(20,184,166,.12),0 0 0 2px rgba(115,211,151,.14)}
    .homeworkMissionCard.locked{padding:12px;background:linear-gradient(135deg,#fff 0%,#f8fafc 54%,#fff7fb 100%);border-style:dashed;box-shadow:0 8px 18px rgba(16,32,61,.05),0 0 0 2px rgba(255,209,102,.08) inset;opacity:.92}
    .homeworkMissionCard.locked .homeworkMissionHead{margin-bottom:6px;align-items:center}
    .homeworkMissionCard.locked .homeworkQuestMissionMeta{display:none}
    .homeworkMissionHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
    .homeworkMissionTitleWrap{display:grid;gap:4px;min-width:0}
    .homeworkMissionState{display:inline-flex;align-items:center;width:max-content;max-width:100%;border:1px solid #ffd166;border-radius:999px;background:linear-gradient(135deg,#fff9d8,#fff,#ffe8f5);color:#8a1952;padding:4px 8px;font-size:10px;font-weight:950;line-height:1;box-shadow:0 6px 12px rgba(255,209,102,.14)}
    .homeworkMissionStateLock{width:28px;height:28px;justify-content:center;padding:0;font-size:14px;background:linear-gradient(135deg,#fffaf0,#ffd166,#fff0f8);box-shadow:0 8px 15px rgba(157,20,87,.12),0 0 0 3px rgba(255,209,102,.14);animation:homeworkLockWiggle 1.8s ease-in-out infinite}
    .homeworkMissionTitle{font-size:22px;font-weight:950;color:#10203d;line-height:1.04;text-shadow:0 0 14px rgba(255,144,203,.24)}
    .homeworkMissionSubtitle{font-size:11px;font-weight:900;color:#6b5870;line-height:1.28}
    .homeworkMissionBadge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#10203d,#8a1952,#ff8a2a);color:#fff;border:1px solid #ffd166;font-size:15px;font-weight:950;box-shadow:0 10px 18px rgba(157,20,87,.18),0 0 0 3px rgba(255,209,102,.18)}
    .homeworkMissionCard.active .homeworkMissionBadge{animation:homeworkMissionBadgePulse 1.8s ease-in-out infinite}
    .homeworkMissionCard.done .homeworkMissionBadge{background:linear-gradient(135deg,#22c55e,#14b8a6)}
    .homeworkMissionCard.locked .homeworkMissionBadge{background:linear-gradient(135deg,#cbd5e1,#94a3b8);border-color:#e2e8f0;box-shadow:none}
    .homeworkLockedText{font-size:13px;font-weight:950;color:#8a6b7d;border:1px dashed #ffc4df;border-radius:13px;background:rgba(255,255,255,.78);padding:9px 10px;line-height:1.28}
    .homeworkWinBox{padding:12px;border-radius:15px;background:linear-gradient(135deg,#ecfff7,#fff,#fff8d8);border:1.5px solid #9ee6c4;font-weight:950;color:#0f766e;text-align:center;line-height:1.32;box-shadow:0 8px 18px rgba(20,184,166,.10),0 0 0 3px rgba(255,209,102,.12)}
    .homeworkWinGif{display:block;width:min(240px,88%);max-height:170px;object-fit:contain;margin:10px auto 0;border-radius:14px;border:1px solid #ffc4df;background:#fff}
    .studentHomeworkAllCompleteCard{border-color:#9ee6c4;background:linear-gradient(135deg,#f0fff7,#fff,#fff7df);position:relative;overflow:hidden}
    .studentHomeworkAllCompleteCard.celebrating{animation:studentHomeworkCompleteBlast .72s cubic-bezier(.2,1.25,.32,1) both}
    .studentHomeworkAllCompleteCard.celebrating:before,.studentHomeworkAllCompleteCard.celebrating:after{content:"";position:absolute;inset:-20px;pointer-events:none;background:radial-gradient(circle at 15% 18%,#ff4f9b 0 4px,transparent 5px),radial-gradient(circle at 78% 18%,#ffd166 0 5px,transparent 6px),radial-gradient(circle at 28% 78%,#20c7b5 0 4px,transparent 5px),radial-gradient(circle at 88% 72%,#8bd3ff 0 4px,transparent 5px);opacity:0;animation:studentHomeworkCompleteSpark 1.15s ease-out .08s both}
    .studentHomeworkAllCompleteCard.celebrating:after{transform:rotate(18deg) scale(.86);animation-delay:.2s}
    .studentHomeworkAllCompleteBox strong{display:block;font-size:16px;color:#0f766e}
    .studentHomeworkAllCompleteText{display:block;margin-top:4px;font-size:12px;color:#39716a}
    .studentHomeworkAllCompleteGif{width:min(320px,94%);max-height:230px;pointer-events:none}
    .studentHomeworkAllCompleteBadge{display:inline-flex;align-items:center;justify-content:center;margin-top:9px;padding:7px 13px;border-radius:999px;background:#ecfff7;border:1px solid #9ee6c4;color:#0f766e;font-size:12px;font-weight:950}
    @keyframes studentHomeworkCompleteBlast{0%{transform:scale(.96);box-shadow:0 0 0 rgba(255,79,155,0)}58%{transform:scale(1.018);box-shadow:0 18px 34px rgba(255,79,155,.16),0 0 0 8px rgba(255,209,102,.18)}100%{transform:scale(1);box-shadow:0 10px 24px rgba(16,32,61,.08)}}
    @keyframes studentHomeworkCompleteSpark{0%{opacity:0;transform:scale(.72) rotate(0deg)}25%{opacity:1}100%{opacity:0;transform:scale(1.14) rotate(10deg)}}
    .homeworkWinKitty{width:44px;height:38px;object-fit:contain;vertical-align:middle;margin-right:8px;animation:homeworkCelebrate .8s ease-in-out infinite}
    .homeworkDoneBurst{position:fixed;left:0;top:0;width:1px;height:1px;z-index:10000;pointer-events:none}
    .homeworkDoneBurst span{position:absolute;left:0;top:0;width:8px;height:14px;border-radius:3px;background:#ff4f9b;transform:translate(-50%,-50%);animation:homeworkConfettiPop .82s ease-out forwards}
    .homeworkDoneBurst span:nth-child(2n){background:#ffd166}
    .homeworkDoneBurst span:nth-child(3n){background:#8bd3ff}
    .homeworkDoneBurst span:nth-child(4n){background:#7dd3a8}
    .homeworkFireworkLayer{position:fixed;inset:0;z-index:10001;pointer-events:none;overflow:hidden}
    .homeworkFirework{position:absolute;left:50%;top:50%;width:1px;height:1px}
    .homeworkFirework i{position:absolute;left:0;top:0;width:7px;height:7px;border-radius:999px;background:#ff4f9b;color:#ff4f9b;box-shadow:0 0 14px currentColor;animation:homeworkFireSpark .95s ease-out forwards}
    .homeworkFirework i:nth-child(2n){background:#ffd166;color:#ffd166}
    .homeworkFirework i:nth-child(3n){background:#20c7b5;color:#20c7b5}
    .homeworkFirework i:nth-child(4n){background:#8bd3ff;color:#8bd3ff}
    .homeworkCardTitle{font-size:18px;font-weight:900;color:#10203d;margin-bottom:6px}
    .homeworkCountdown{display:inline-flex;padding:6px 9px;border-radius:999px;background:#fff0f8;color:#a60f58;font-size:12px;font-weight:900;margin-bottom:8px;border:1px solid #ffc4df;box-shadow:0 0 14px rgba(255,123,187,.18)}
    .homeworkImageOpenBtn{width:100%;border:0;background:transparent;padding:0;margin-top:10px;text-align:left}
    .homeworkMissionCard .homeworkImagePreview{width:100%;max-height:360px;border-radius:14px;object-fit:contain;background:#fff;box-shadow:0 10px 24px rgba(16,32,61,.08)}
    .homeworkTapCaption{display:block;margin-top:6px;font-size:12px;font-weight:900;color:#8a1952;text-align:center}
    .homeworkVideoTile{display:flex;align-items:center;justify-content:center;width:100%;min-height:210px;margin-top:10px;border-radius:16px;background:linear-gradient(135deg,#fff1f7,#e9f7ff);border:1px solid #ffc4df;text-decoration:none;box-shadow:0 10px 24px rgba(255,87,152,.15);position:relative;overflow:hidden}
    .homeworkVideoTile:before{content:"";position:absolute;inset:-30%;background:conic-gradient(from 180deg,transparent,#fff,transparent);opacity:.52;animation:homeworkShine 3.4s ease-in-out infinite}
    .homeworkPlayBubble{width:86px;height:86px;border-radius:999px;background:#ff2d82;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:38px;font-weight:900;box-shadow:0 0 0 10px rgba(255,45,130,.12),0 16px 28px rgba(255,45,130,.24);position:relative;z-index:1;animation:homeworkVideoPulse 1.25s ease-in-out infinite}
    .homeworkVideoBtn{display:flex;align-items:center;justify-content:center;margin-top:10px;padding:11px 12px;border-radius:12px;background:#10203d;color:#fff;text-decoration:none;font-size:14px;font-weight:900}
    .homeworkImageModal{position:fixed;inset:0;background:rgba(16,32,61,.72);z-index:10090;display:flex;align-items:center;justify-content:center;padding:16px}
    .homeworkImageModalCard{width:min(760px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:16px;padding:12px;border:1px solid #ffc4df}
    .homeworkImageModalCard img:not(.friendsGroupWatermark){display:block;max-width:100%;max-height:72vh;object-fit:contain;margin:0 auto;border-radius:12px;background:#fff}
    .homeworkCompareGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .homeworkComparePanel{min-width:0;border:1px solid #ffd0e5;border-radius:14px;background:#fff7fb;padding:8px}
    .homeworkCompareLabel{font-size:12px;font-weight:950;color:#8a1952;margin-bottom:6px;text-align:center}
    .homeworkComparePanel img{width:100%;max-height:68vh;object-fit:contain;border-radius:10px;background:#fff}
    .homeworkStudentThumbBtn{margin-top:8px;border:1px solid #bbf7d0;border-radius:12px;background:#fff;padding:6px;display:inline-flex;align-items:center;gap:8px;color:#0f766e;font-size:12px;font-weight:950}
    .homeworkStudentThumbBtn img{width:42px;height:42px;object-fit:cover;border-radius:9px;background:#fff}
    .homeworkDeleteBtn{border:1px solid #fecdd3;border-radius:10px;background:#fff1f2;color:#be123c;padding:8px 10px;font-size:12px;font-weight:950}
    @media(max-width:620px){.homeworkCompareGrid{grid-template-columns:1fr}.homeworkComparePanel img{max-height:42vh}}
    .homeworkImageModalActions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:10px}
    .homeworkImageModalActions a,.homeworkImageModalActions button{border:none;border-radius:10px;padding:10px 13px;font-size:13px;font-weight:900;text-decoration:none}
    .homeworkImageModalActions a,.homeworkImageModalActions .download{background:#10203d;color:#fff}
    .homeworkImageModalActions button{background:#fff0f7;color:#9f1239;border:1px solid #ffc4df}
    .homeworkImageModal.correctionEditor{padding:0;align-items:stretch;justify-content:stretch;background:rgba(16,32,61,.86)}
    .homeworkCorrectionFullCard{width:100vw;height:100dvh;max-height:none;overflow:hidden;background:#111827;border:0;border-radius:0;padding:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto}
    .homeworkCorrectionBox{display:grid;gap:8px;margin-top:10px;border:1px solid #ffd0e5;border-radius:16px;background:linear-gradient(135deg,#fff 0%,#fff7fb 58%,#fff8d8 100%);padding:9px;box-shadow:0 9px 18px rgba(157,20,87,.08)}
    .homeworkCorrectionFullCard .homeworkCorrectionBox{margin:0;border-radius:16px 16px 0 0;border-left:0;border-right:0;border-bottom:0;box-shadow:0 -10px 26px rgba(0,0,0,.16);padding:8px 8px 3px}
    .homeworkCorrectionFullCard .homeworkImageModalActions{margin:0;background:#fff7fb;padding:6px 8px}
    .homeworkCorrectionComposer{display:grid;grid-template-columns:1fr;gap:7px;align-items:stretch}
    .homeworkCorrectionComposerTools{display:flex;gap:7px;align-items:center}
    .homeworkCorrectionIconBtn,.homeworkCorrectionSendBtn{border:1.5px solid #ffc4df;border-radius:12px;background:#fff;color:#9d1457;min-height:38px;font-size:18px;font-weight:950;box-shadow:0 6px 12px rgba(255,115,181,.08)}
    .homeworkAiCorrectionBtn{position:relative;overflow:hidden;font-size:11px;letter-spacing:0}
    .homeworkImageModalActions .homeworkAiCorrectionBtn{width:36px;min-width:36px}
    .homeworkAiCorrectionBtn.loading{background:#fff8db;color:#8a1952}
    .homeworkAiCorrectionBtn.loading::after{content:"";position:absolute;inset:-35% -70%;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.82) 48%,transparent 64%);animation:homeworkAiCorrectionShine 1.05s linear infinite;pointer-events:none}
    @keyframes homeworkAiCorrectionShine{0%{transform:translateX(-55%)}100%{transform:translateX(55%)}}
    .homeworkCorrectionIconBtn:active,.homeworkCorrectionSendBtn:active{transform:scale(.96)}
    .homeworkCorrectionSendBtn{background:linear-gradient(180deg,#20c7b5,#0f766e);border-color:#0f766e;color:#fff;padding:0 13px;font-size:13px;white-space:nowrap}
    .homeworkCorrectionSendBtn[disabled],.homeworkCorrectionIconBtn[disabled]{opacity:.58;transform:none}
    .homeworkCorrectionSendBtn.sending{background:linear-gradient(90deg,#0f766e,#20c7b5,#0f766e);background-size:220% 100%;animation:homeworkCorrectionSending 1s linear infinite}
    .homeworkCorrectionSendBtn.sent,.homeworkCorrectionSendBtn.sent[disabled]{background:linear-gradient(180deg,#16a34a,#15803d);border-color:#15803d;color:#fff;opacity:1}
    @keyframes homeworkCorrectionSending{0%{background-position:0 0}100%{background-position:220% 0}}
    .homeworkCorrectionInput{width:100%;min-width:0;min-height:138px;max-height:32vh;border:1.5px solid #ffc4df;border-radius:14px;background:#fff;color:#10203d;padding:10px 11px;font-family:"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:15px;font-weight:500;line-height:1.42;letter-spacing:0;resize:vertical;outline:none;box-sizing:border-box;white-space:pre-wrap;overflow-wrap:anywhere}
    .homeworkCorrectionInput::placeholder{color:#9b7b8e;font-weight:500}
    .homeworkCorrectionPresetPanel{display:grid;gap:7px;border:1px dashed #ffc4df;border-radius:14px;background:rgba(255,255,255,.72);padding:8px}
    .homeworkCorrectionPresetGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .homeworkCorrectionPresetBtn{border:1px solid #ffd0e5;border-radius:12px;background:#fff;color:#10203d;padding:8px 9px;font-size:11px;font-weight:900;line-height:1.25;text-align:left}
    .homeworkCorrectionAddPreset{border:1px solid #ffd166;border-radius:12px;background:#fff8db;color:#8a1952;padding:8px 9px;font-size:11px;font-weight:950;text-align:center}
    .homeworkCorrectionAttachment{display:none;align-items:center;justify-content:space-between;gap:8px;border:1px solid #bbf7d0;border-radius:12px;background:#f0fdf4;color:#0f766e;padding:7px 9px;font-size:11px;font-weight:950}
    .homeworkCorrectionAttachment.show{display:flex}
    .homeworkCorrectionAttachment button{border:1px solid #fecdd3;border-radius:999px;background:#fff1f2;color:#be123c;font-size:11px;font-weight:950;padding:5px 8px}
    .homeworkCorrectionStatus{min-height:0;color:#8a1952;font-size:11px;font-weight:900;line-height:1.25}
    .homeworkCorrectionMarkStage{position:relative;overflow:hidden;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;touch-action:none;user-select:none;-webkit-user-select:none}
    .homeworkTeacherThumbImageWrap.homeworkCorrectionMarkStage{height:auto;min-height:260px}
    .homeworkCorrectionFullEditor .homeworkCorrectionMarkStage{height:100%;min-height:0;border-radius:0;background:#111827}
    .homeworkCorrectionMarkStage.crop{height:min(64vh,620px);min-height:320px}
    .homeworkCorrectionMarkStage img[data-homework-correction-base]{position:relative;z-index:1;width:100%;height:auto;max-height:68vh;object-fit:contain;transform-origin:center center;will-change:transform;transition:transform .12s ease}
    .homeworkCorrectionFullEditor .homeworkCorrectionMarkStage img[data-homework-correction-base]{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:0;background:#111827;display:block}
    .homeworkBlankSheetNotice{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:7;max-width:min(86vw,420px);border:1px solid #fed7aa;border-radius:16px;background:rgba(255,247,237,.96);box-shadow:0 12px 32px rgba(15,23,42,.18);color:#9a3412;font-weight:900;line-height:1.35;text-align:center;padding:14px 16px;pointer-events:none}
    .homeworkCorrectionMarkStage.crop img{max-height:none}
    .homeworkCorrectionReferenceThumb{position:absolute;left:8px;top:8px;z-index:4;width:88px;height:88px;border:2px solid rgba(255,255,255,.82);border-radius:15px;background:rgba(255,255,255,.92);padding:2px;box-shadow:0 10px 24px rgba(0,0,0,.24);overflow:hidden}
    .homeworkCorrectionReferenceThumb img{display:block;width:100%;height:100%;object-fit:cover;border-radius:10px}
    .homeworkCorrectionReferencePreview{position:absolute;inset:0;z-index:8;background:rgba(16,32,61,.86);display:flex;align-items:center;justify-content:center;padding:6px}
    .homeworkCorrectionReferencePreview img{display:block;max-width:min(100%,1180px);max-height:100%;object-fit:contain;border-radius:14px;background:#fff;box-shadow:0 18px 42px rgba(0,0,0,.28);transform:scale(1.08)}
    .homeworkCorrectionReferenceClose{position:absolute;right:12px;top:12px;z-index:1;width:44px;height:44px;border:1px solid #ffc4df;border-radius:999px;background:#fff;color:#9d1457;font-size:22px;font-weight:950;box-shadow:0 10px 24px rgba(0,0,0,.22)}
    .homeworkCorrectionStageActions{position:absolute;right:10px;bottom:10px;z-index:5;display:flex;align-items:center;gap:8px}
    .homeworkCorrectionStageBtn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;min-width:42px;border:1.5px solid #ffc4df;border-radius:999px;background:rgba(255,255,255,.96);color:#9d1457;padding:0;box-shadow:0 10px 24px rgba(0,0,0,.20);backdrop-filter:blur(8px)}
    .homeworkCorrectionStageBtn.download{background:#10203d;color:#fff;border-color:#10203d}
    .homeworkCorrectionCanvas{position:absolute;inset:0;z-index:2;width:100%;height:100%;touch-action:none;pointer-events:none}
    .homeworkCorrectionMarkStage.marking .homeworkCorrectionCanvas{pointer-events:auto;cursor:crosshair}
    .homeworkCorrectionMarkerTools{display:none;position:absolute;right:8px;top:8px;z-index:4;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap;max-width:min(96%,360px);border:1px solid rgba(255,255,255,.74);border-radius:16px;background:rgba(16,32,61,.70);backdrop-filter:blur(10px);padding:7px;box-shadow:0 12px 28px rgba(16,32,61,.22)}
    .homeworkCorrectionMarkerTools.show{display:flex}
    .homeworkCorrectionFullEditor .homeworkCorrectionMarkerTools{max-width:calc(100% - 16px);border-radius:999px;padding:6px;background:rgba(16,32,61,.58)}
    .homeworkCorrectionMarkerTools [data-homework-correction-active-tool]{display:none}
    .homeworkCorrectionMarkStage.marking .homeworkCorrectionMarkerTools [data-homework-correction-active-tool]{display:inline-flex}
    .homeworkCorrectionMarkStage.marking .homeworkCorrectionMarkerTools input[data-homework-correction-active-tool]{display:block}
    .homeworkCorrectionMarkerSwatch{width:26px;height:26px;border:2px solid #fff;border-radius:999px;box-shadow:0 0 0 1px rgba(16,32,61,.18);padding:0;flex:0 0 auto}
    .homeworkCorrectionMarkerSwatch.active{box-shadow:0 0 0 3px rgba(255,209,102,.72),0 0 0 1px rgba(16,32,61,.18)}
    .homeworkCorrectionMarkerBtn{border:1px solid #ffd0e5;border-radius:999px;background:#fff;color:#8a1952;padding:7px 10px;font-size:11px;font-weight:950;flex:0 0 auto}
    .homeworkCorrectionMarkerBtn.active{background:#10203d;border-color:#10203d;color:#fff}
    .homeworkCorrectionMarkerBtn.crop{border-color:#bbf7d0;color:#0f766e}
    .homeworkCorrectionMarkerSize{width:82px;accent-color:#9d1457;flex:0 0 82px}
    .homeworkCorrectionMarkerZoom{width:92px;accent-color:#0f766e;flex:0 0 92px}
    .privateTeacherChatImageMarkerModal{z-index:2147482600;overscroll-behavior:none;-webkit-user-select:none;user-select:none}
    .privateTeacherChatImageMarkerCard{grid-template-rows:minmax(0,1fr) auto}
    .privateTeacherChatImageMarkerEditor{height:100%;min-height:0;display:grid;align-items:center;justify-items:center;background:radial-gradient(circle at center,rgba(255,255,255,.04),transparent 62%)}
    .privateTeacherChatImageMarkerStage{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center;background:#0f172a}
    .privateTeacherChatImageMarkerStage img[data-homework-correction-base]{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#111827}
    .privateTeacherChatImageMarkerTools{left:8px;right:auto;top:8px;max-width:calc(100% - 16px);border-color:rgba(255,255,255,.46);background:rgba(15,23,42,.72);box-shadow:0 16px 34px rgba(0,0,0,.24)}
    .privateTeacherChatImageMarkerTools.collapsed .privateTeacherChatImageMarkerTool{display:none}
    .privateTeacherChatImageMarkerTools.expanded .privateTeacherChatImageMarkerTool{display:inline-flex}
    .privateTeacherChatImageMarkerTools .homeworkCorrectionMarkerBtn{width:36px;height:34px;min-width:36px;min-height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-color:rgba(255,208,229,.82);background:rgba(255,255,255,.96);box-shadow:0 10px 18px rgba(0,0,0,.16);touch-action:manipulation}
    .privateTeacherChatImageMarkerTools .homeworkCorrectionMarkerBtn.active{background:rgba(255,255,255,.98);border-color:#38bdf8;color:#10203d;box-shadow:0 0 0 3px rgba(56,189,248,.72),0 10px 18px rgba(0,0,0,.16)}
    .privateTeacherChatImageMarkerTools .homeworkCorrectionMarkerBtn.crop.active{color:#0f766e}
    .privateTeacherChatImageMarkerTools .homeworkCorrectionMarkerBtn.active .privateTeacherChatMarkerIcon{opacity:1}
    .privateTeacherChatImageMarkerTools .privateTeacherChatImageMarkerMenu{width:54px;min-width:54px;padding:0 10px;color:#10203d;font-size:12px;font-weight:950;letter-spacing:0}
    .privateTeacherChatImageMarkerToggle{display:inline-flex;align-items:center;justify-content:center}
    .privateTeacherChatCropOverlay{position:absolute;z-index:3;border:2px solid #ffffff;border-radius:10px;box-shadow:0 0 0 9999px rgba(15,23,42,.42),0 0 0 1px rgba(15,23,42,.32) inset;touch-action:none;overscroll-behavior:none;box-sizing:border-box;-webkit-user-select:none;user-select:none}
    .privateTeacherChatCropOverlay[hidden]{display:none}
    .privateTeacherChatCropOverlay button{position:absolute;inset:0;border:0;background:transparent;padding:0;cursor:move;touch-action:none}
    .privateTeacherChatCropOverlay i,.privateTeacherChatCropOverlay b{position:absolute;z-index:2;display:block;background:#fff;border:2px solid #0f766e;box-shadow:0 5px 14px rgba(15,23,42,.28);box-sizing:border-box;touch-action:none}
    .privateTeacherChatCropOverlay i{border-radius:999px}
    .privateTeacherChatCropOverlay i[data-private-chat-crop-handle="n"],.privateTeacherChatCropOverlay i[data-private-chat-crop-handle="s"]{left:50%;width:46px;height:12px;margin-left:-23px}
    .privateTeacherChatCropOverlay i[data-private-chat-crop-handle="n"]{top:4px;cursor:ns-resize}
    .privateTeacherChatCropOverlay i[data-private-chat-crop-handle="s"]{bottom:4px;cursor:ns-resize}
    .privateTeacherChatCropOverlay i[data-private-chat-crop-handle="w"],.privateTeacherChatCropOverlay i[data-private-chat-crop-handle="e"]{top:50%;width:12px;height:54px;margin-top:-27px}
    .privateTeacherChatCropOverlay i[data-private-chat-crop-handle="w"]{left:6px;cursor:ew-resize}
    .privateTeacherChatCropOverlay i[data-private-chat-crop-handle="e"]{right:6px;cursor:ew-resize}
    .privateTeacherChatCropOverlay b{width:18px;height:18px;border-radius:6px}
    .privateTeacherChatCropOverlay b[data-private-chat-crop-handle="nw"]{left:6px;top:6px;cursor:nwse-resize}
    .privateTeacherChatCropOverlay b[data-private-chat-crop-handle="ne"]{right:6px;top:6px;cursor:nesw-resize}
    .privateTeacherChatCropOverlay b[data-private-chat-crop-handle="sw"]{left:6px;bottom:6px;cursor:nesw-resize}
    .privateTeacherChatCropOverlay b[data-private-chat-crop-handle="se"]{right:6px;bottom:6px;cursor:nwse-resize}
    .privateTeacherChatMarkerIcon{width:17px;height:17px;display:block}
    .privateTeacherChatImageMarkerActions{align-items:center;background:#fff7fb;border-top:1px solid rgba(255,196,223,.74)}
    .privateTeacherChatImageMarkerActions .download{min-width:96px;background:linear-gradient(180deg,#20c7b5,#0f766e);border:1px solid #0f766e}
    .privateTeacherChatImageMarkerStatus{flex:1 1 100%;min-height:14px;text-align:center;color:#0f766e;font-size:11px;font-weight:900}
    .privateTeacherChatImageMarkerStatus.error{color:#be123c}
    .homeworkTeacherCheckedText.correction{color:#0f766e;background:#ecfdf5;border:1px solid #bbf7d0;border-radius:999px;padding:3px 7px;width:max-content}
    .homeworkCorrectionFooterActions{align-items:center;justify-content:flex-start;gap:8px;flex-wrap:nowrap;border-top:1px solid rgba(255,196,223,.72);overflow-x:auto;scrollbar-width:none}
    .homeworkCorrectionFooterActions::-webkit-scrollbar{display:none}
    .homeworkImageModalActions .homeworkCorrectionFooterBtn,.homeworkImageModalActions .homeworkCorrectionFooterSend{display:inline-flex;align-items:center;justify-content:center;width:40px;height:38px;min-width:40px;min-height:38px;padding:0;border-radius:13px}
    .homeworkImageModalActions .homeworkCorrectionFooterSend{width:72px;min-width:72px;background:linear-gradient(180deg,#19b98f,#0f8d75);border-color:#0f8d75;color:#fff}
    .homeworkCorrectionFooterSpacer{flex:1 1 auto;min-width:6px}
    .homeworkCorrectionFooterIcon{width:17px;height:17px;display:block}
    .homeworkCorrectionFooterTextBtn{font-size:14px;font-weight:950}
    @media(max-width:620px){.homeworkCorrectionComposer{gap:6px}.homeworkCorrectionPresetGrid{grid-template-columns:1fr}.homeworkCorrectionMarkStage.crop{height:58vh;min-height:300px}.homeworkCorrectionMarkerTools{right:6px;top:6px;gap:5px;padding:6px}.privateTeacherChatImageMarkerTools{left:6px;right:auto}.homeworkCorrectionMarkerBtn{padding:6px 8px}.homeworkCorrectionMarkerSize{width:70px;flex-basis:70px}.homeworkCorrectionMarkerZoom{width:92px;flex-basis:92px}.homeworkCorrectionInput{min-height:132px;max-height:30vh;font-size:15px}.homeworkCorrectionReferenceThumb{width:78px;height:78px;left:6px;top:6px}.homeworkCorrectionStageActions{right:9px;bottom:9px;gap:7px}.homeworkCorrectionStageBtn{width:40px;height:40px;min-width:40px}.homeworkCorrectionReferencePreview{padding:4px}.homeworkCorrectionReferencePreview img{max-width:100%;max-height:100%;transform:none}.homeworkCorrectionFullCard .homeworkImageModalActions{padding:6px 9px;gap:6px}.homeworkImageModalActions .homeworkCorrectionFooterBtn{width:38px;height:36px;min-width:38px;min-height:36px}.homeworkImageModalActions .homeworkAiCorrectionBtn{width:34px;min-width:34px;font-size:10px}.homeworkImageModalActions .homeworkCorrectionFooterSend{width:74px;min-width:74px}.homeworkCorrectionFooterIcon{width:17px;height:17px}}
    .privateTeacherChatImageMarkerModal.privateCropGestureLock,.privateTeacherChatImageMarkerStage.privateCropActive{touch-action:none;overscroll-behavior:none}
    .privateTeacherChatImageMarkerStage.privateCropActive{height:100%;min-height:0}
    .homeworkInstruction{white-space:pre-wrap;font-size:15px;font-weight:800;color:#4d4151;line-height:1.45;margin-top:8px}
    .homeworkLinkBtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
    .homeworkLinkBtns a{display:inline-flex;align-items:center;justify-content:center;padding:8px 10px;border-radius:10px;background:#10203d;color:#fff;text-decoration:none;font-size:12px;font-weight:900}
    .homeworkQuestRewardLine{display:inline-flex;align-items:center;gap:4px;max-width:100%;border-radius:999px;background:linear-gradient(135deg,#fffaf0,#fff,#ffe9f5);border:1px solid #ffd166;color:#9d1457;padding:6px 9px;font-size:11px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 7px 14px rgba(255,209,102,.13)}
    .homeworkQuestHero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
    .homeworkQuestPill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#fff0f8;border:1px solid #ffc4df;color:#9d1457;padding:6px 9px;font-size:12px;font-weight:900;white-space:nowrap}
    .homeworkQuestProfile{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:12px;border:1px solid #ffc4df;background:#fff7fb;border-radius:14px;padding:10px}
    .homeworkQuestProfileName{font-size:18px;font-weight:900;color:#10203d;line-height:1.15}
    .homeworkQuestProfileMeta{font-size:12px;font-weight:900;color:#6d5b70;margin-top:3px;line-height:1.35}
    .homeworkQuestActions{display:flex;gap:7px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
    .studentProfileTestActions{justify-content:flex-start;margin-top:9px}
    .homeworkQuestSmallBtn{border:1px solid #ffc4df;border-radius:999px;background:#fff;color:#9d1457;padding:8px 10px;font-size:12px;font-weight:900;white-space:nowrap}
    .homeworkQuestSmallBtn.danger{border-color:#fecaca;background:#fff1f2;color:#b91c1c}
    .homeworkQuestStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
    .homeworkQuestScoreboard{gap:6px;margin-top:9px;border:1.5px solid #ffd166;border-radius:16px;background:linear-gradient(135deg,#fffdf4,#fff,#fff2fa);padding:6px;box-shadow:0 10px 20px rgba(157,20,87,.10),0 0 0 2px rgba(255,255,255,.62) inset}
    .homeworkQuestStat{border:1px solid #ffc4df;background:#fff7fb;border-radius:14px;padding:10px;text-align:center;color:#8a1952;font-weight:900;position:relative;overflow:hidden}
    .homeworkQuestScoreboard .homeworkQuestStat{border:1px solid rgba(255,196,223,.76);border-radius:12px;padding:6px 5px;min-height:42px;background:linear-gradient(180deg,#fff,#fff7fb);display:flex;align-items:center;justify-content:center;gap:5px;box-shadow:0 5px 12px rgba(255,115,181,.07)}
    .homeworkQuestStat.pop{animation:homeworkPointPop .45s ease}
    .homeworkQuestStat b{display:block;font-size:20px;color:#10203d}
    .homeworkQuestScoreboard .homeworkQuestStat b{display:inline-flex;align-items:center;justify-content:center;gap:3px;font-size:16px;line-height:1;white-space:nowrap}
    .homeworkQuestStatLabel{display:block;margin-top:2px;font-size:12px;color:#8a1952}
    .homeworkQuestScoreboard .homeworkQuestStatLabel{margin-top:0;font-size:10px;line-height:1;color:#8a1952;white-space:nowrap}
    .studentHomeworkMissionCountdown{position:relative;overflow:hidden;border:1.5px solid #ffd166;border-radius:16px;background:linear-gradient(135deg,#fffaf0 0%,#fff 45%,#ffe8f5 100%);padding:10px;margin:0 0 10px;color:#10203d;box-shadow:0 12px 24px rgba(157,20,87,.10),0 0 0 2px rgba(255,255,255,.68) inset}
    .studentHomeworkMissionCountdown:before{content:"";position:absolute;left:12px;right:12px;top:8px;height:5px;border-radius:999px;background:repeating-linear-gradient(90deg,rgba(255,209,102,.72) 0 10px,transparent 10px 26px);opacity:.9;pointer-events:none}
    .studentHomeworkMissionTop{display:grid;grid-template-columns:42px minmax(0,1fr);gap:9px;align-items:center;margin-top:6px}
    .studentHomeworkMissionIcon{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#10203d,#8a1952,#ff8a1d);color:#fff;font-size:22px;box-shadow:0 8px 18px rgba(138,25,82,.20),0 0 0 3px rgba(255,209,102,.20);animation:homeworkMissionBadgePulse 1.8s ease-in-out infinite}
    .studentHomeworkMissionTitle{font-size:14px;font-weight:950;color:#8a1952;line-height:1.15}
    .studentHomeworkMissionSub{font-size:10px;font-weight:900;color:#5d4b5f;line-height:1.3;margin-top:2px}
    .studentHomeworkCountdownGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:9px}
    .studentHomeworkCountdownUnit{border:1px solid rgba(255,196,223,.82);border-radius:13px;background:linear-gradient(180deg,#fff,#fff7fb);padding:6px 4px;text-align:center;box-shadow:0 6px 13px rgba(255,115,181,.08)}
    .studentHomeworkCountdownValue{display:block;font-size:18px;font-weight:950;color:#10203d;line-height:1}
    .studentHomeworkCountdownLabel{display:block;margin-top:3px;font-size:8px;font-weight:950;color:#9d1457;text-transform:uppercase}
    .homeworkPointBubble{position:absolute;right:12px;top:9px;border:1px solid #ffd166;border-radius:999px;background:#fff7db;color:#9d1457;padding:2px 7px;font-size:11px;font-weight:900;box-shadow:0 8px 14px rgba(255,209,102,.24);animation:homeworkPointBubble .92s ease-out forwards;pointer-events:none}
    .homeworkQuestLoginGrid{display:grid;gap:10px;margin-top:12px}
    .homeworkQuestInput{width:100%;box-sizing:border-box;max-width:100%;min-width:0;padding:13px;border:2px solid #ffadd4;border-radius:14px;font-size:16px;font-weight:900;background:#fff;color:#10203d;box-shadow:0 8px 20px rgba(255,141,198,.14)}
    .homeworkQuestInput[type="date"]{appearance:auto;-webkit-appearance:auto;min-height:50px;max-width:100%;color-scheme:light}
    .homeworkQuestInput[type="date"]::-webkit-calendar-picker-indicator{opacity:1;cursor:pointer;width:22px;height:22px}
    .homeworkQuestNativeDateInput{position:absolute;inset:0;z-index:2;width:100%;height:100%;max-width:100%;min-width:0;padding:0;border:0;border-radius:14px;opacity:.01;background:transparent;color:transparent;box-shadow:none;-webkit-appearance:none;appearance:none;cursor:pointer}
    .homeworkQuestNativeDateInput::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
    .homeworkQuestBoard{display:grid;gap:6px;margin-top:8px;max-height:300px;overflow:auto;padding-right:2px}
    .homeworkQuestRank{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:6px;align-items:center;border:1px solid #ffd0e5;background:#fff;border-radius:10px;padding:5px 7px}
    .homeworkQuestRank.you{background:#fff7db;border-color:#ffd166;box-shadow:0 8px 18px rgba(255,209,102,.22)}
    .homeworkQuestRank.top{background:linear-gradient(180deg,#fff7db,#fff);border-color:#ffd166}
    .homeworkQuestRankNo{width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#10203d;color:#fff;font-size:10px;font-weight:900}
    .homeworkQuestRankName{min-width:0;font-size:12px;font-weight:900;color:#10203d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .homeworkQuestRankMedal{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:4px;border-radius:999px;background:#fff7db;border:1px solid #ffd166;font-size:10px;vertical-align:middle}
    .homeworkQuestRankMeta{font-size:9px;font-weight:900;color:#8a6b7d;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .homeworkQuestPoints{font-size:11px;font-weight:900;color:#a60f58;text-align:right;white-space:nowrap}
    .homeworkQuestActivity{display:grid;gap:5px;margin-top:8px;max-height:160px;overflow:hidden;padding-right:2px;scrollbar-width:none;pointer-events:none}
    .homeworkQuestActivityTrack{display:grid;gap:5px}
    .homeworkQuestActivityTrack.auto{animation:homeworkActivityScroll 28s linear infinite}
    .homeworkQuestActivityItem{border:1px solid #ffd0e5;background:#fff;border-radius:10px;padding:5px 7px;font-size:11px;font-weight:900;color:#4d4151}
    @keyframes homeworkActivityScroll{0%{transform:translateY(0)}100%{transform:translateY(-50%)}}
    .homeworkQuestActivityTime{display:block;font-size:10px;color:#9b7b8e;margin-top:2px}
    .homeworkQuestMissionMeta{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
    .homeworkQuestChip{display:inline-flex;align-items:center;border-radius:999px;background:#fff0f8;border:1px solid #ffc4df;color:#9d1457;padding:5px 8px;font-size:11px;font-weight:900}
    .homeworkQuestUpload{width:100%;border:none;border-radius:14px;background:linear-gradient(135deg,#10203d,#0f8a7d,#20c7b5);color:#fff;padding:13px 14px;font-size:15px;font-weight:950;box-shadow:0 12px 24px rgba(15,138,125,.24),0 0 0 3px rgba(32,199,181,.12);margin-top:10px;position:relative;overflow:hidden}
    .homeworkQuestUpload:before{content:none}
    .homeworkQuestUpload[disabled]{opacity:.62;box-shadow:none}
    .homeworkQuestCameraHidden{display:none!important}
    .homeworkQuestProgress{margin-top:8px;border:1px solid #ffc4df;background:#fff7fb;border-radius:12px;padding:8px}
    .homeworkQuestProgressTrack{height:8px;border-radius:999px;background:#ffe3f1;overflow:hidden}
    .homeworkQuestProgressFill{height:100%;border-radius:999px;background:linear-gradient(90deg,#20c7b5,#f02d8f);transition:width .25s ease}
    .homeworkQuestProgressText{display:flex;justify-content:space-between;gap:8px;margin-top:5px;font-size:11px;font-weight:900;color:#8a1952}
    .homeworkQuestProgress.retry .homeworkQuestProgressText{align-items:center;margin-top:0}
    .homeworkQuestFile{display:none}
    .homeworkQuestMsg{font-size:13px;font-weight:900;color:#8a1952;margin-top:8px;min-height:18px}
    .homeworkTeacherPanel{border:1px solid #dbe5f1;background:#f8fafc;border-radius:14px;padding:10px;margin:10px 0}
    .homeworkTeacherPanel:empty{display:none}
    .homeworkTeacherPanelHead{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
    .homeworkTeacherPanelHead.compact{justify-content:flex-end;margin-bottom:8px}
    .homeworkTeacherPanelTitle{font-size:14px;font-weight:900;color:#10203d}
    .homeworkTeacherPanelMeta{font-size:11px;font-weight:900;color:#64748b;margin-top:2px}
    .homeworkTeacherPanelActions{display:flex;gap:8px;flex-wrap:wrap}
    .homeworkTeacherToolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}
    .homeworkTeacherSearchBtn{width:36px;height:36px;border:1px solid #ffd0e5;border-radius:999px;background:#fff;color:#9d1457;font-size:16px;font-weight:950}
    .homeworkTeacherSearchInput{flex:1 1 190px;min-width:0;border:1.5px solid #d8e2ef;border-radius:12px;background:#fff;color:#10203d;padding:9px 11px;font-size:13px;font-weight:900}
    .homeworkTeacherSuggestionRow{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
    .homeworkTeacherSuggestion{border:1px solid #ffd0e5;border-radius:999px;background:#fff;color:#8a1952;padding:5px 8px;font-size:11px;font-weight:900}
    .homeworkTeacherGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:10px}
    .homeworkTeacherStudentCard{background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);border:1px solid #dbe5f1;border-radius:16px;padding:11px;box-shadow:0 12px 26px rgba(16,32,61,.07)}
    .homeworkTeacherStudentTop{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid #edf3f9}
    .homeworkTeacherStudentName{font-size:15px;font-weight:950;color:#10203d;line-height:1.12;letter-spacing:0}
    .homeworkTeacherStudentMeta{font-size:11px;font-weight:900;color:#64748b;margin-top:2px}
    .homeworkTeacherPointChip{display:none}
    .homeworkTeacherThumbGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px}
    .homeworkTeacherThumb{border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;min-height:82px;overflow:hidden;display:flex;flex-direction:column}
    .homeworkTeacherThumb.checked{border-color:#16a34a;background:#f0fdf4}
    .homeworkTeacherThumb.removed{border-color:#fecdd3;background:#fff1f2}
    .homeworkTeacherThumbImageWrap{position:relative;display:block;width:100%;height:62px;background:#fff}
    .homeworkTeacherThumbImageWrap.privateTeacherChatImageMarkerStage{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;background:#0f172a}
    .homeworkTeacherThumb img{width:100%;height:62px;object-fit:cover;background:#fff}
    .homeworkTeacherCheckBadge{position:absolute;right:5px;top:5px;width:22px;height:22px;border-radius:999px;background:#16a34a;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:900;box-shadow:0 4px 10px rgba(22,163,74,.28);z-index:2}
    .homeworkTeacherCheckedText{color:#16a34a!important}
    .homeworkTeacherThumbEmpty{height:62px;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:18px;font-weight:900}
    .homeworkTeacherThumbMeta{font-size:10px;font-weight:950;color:#475569;padding:6px 7px;line-height:1.18;overflow-wrap:anywhere}
    .homeworkTeacherThumbMeta span{display:block;color:#0f766e;margin-top:3px}
    .homeworkTeacherThumbMeta .removed{color:#be123c}
    .homeworkRejectSelect{width:100%;border:1px solid #ffd0e5;border-radius:10px;background:#fff;padding:9px;font-size:12px;font-weight:900;color:#10203d}
    .friendsGroupAdminRejectOverlay{position:fixed;inset:0;z-index:10007;background:rgba(16,32,61,.36);display:grid;place-items:center;padding:14px;backdrop-filter:blur(2px)}
    .friendsGroupAdminRejectCard{width:min(430px,94vw);max-height:min(74vh,620px);overflow:auto;border:1.5px solid #ffd0e5;border-radius:18px;background:linear-gradient(135deg,#fff 0%,#fff7fb 58%,#fffdf0 100%);padding:12px;box-shadow:0 24px 58px rgba(16,32,61,.24);display:grid;gap:9px}
    .friendsGroupAdminRejectHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .friendsGroupAdminRejectTitle{font-size:14px;font-weight:950;color:#10203d;line-height:1.2}
    .friendsGroupAdminRejectClose{flex:0 0 auto;width:32px;height:32px;border:1.5px solid #ffd0e5;border-radius:999px;background:#fff;color:#9d1457;font-size:15px;font-weight:950;box-shadow:0 6px 14px rgba(16,32,61,.08)}
    .friendsGroupAdminRejectGrid{display:grid;gap:6px}
    .friendsGroupAdminRejectReasonBtn{width:100%;border:1px solid #ffd0e5;border-radius:12px;background:linear-gradient(135deg,#fff,#fff7fb);color:#10203d;padding:9px 10px;font-size:12px;font-weight:900;line-height:1.25;text-align:left;box-shadow:0 5px 12px rgba(16,32,61,.05)}
    .friendsGroupAdminRejectReasonBtn:active{transform:scale(.99)}
    .friendsGroupAdminRejectCancel{justify-self:start;border:1px solid #e5e7eb;border-radius:999px;background:#fff;color:#6b5870;padding:7px 11px;font-size:11px;font-weight:950}
    @keyframes homeworkGlow{from{filter:saturate(1)}to{filter:saturate(1.22) brightness(1.03)}}
    @keyframes homeworkFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
    @keyframes homeworkSparkle{0%,100%{opacity:.45;transform:scale(.82) rotate(0deg)}50%{opacity:1;transform:scale(1.18) rotate(14deg)}}
    @keyframes homeworkShine{0%,64%{left:-80%}82%,100%{left:125%}}
    @keyframes homeworkCelebrate{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-4px) rotate(5deg)}}
    @keyframes homeworkVideoPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
    @keyframes homeworkConfettiPop{0%{opacity:1;transform:translate(-50%,-50%) scale(.8) rotate(0deg)}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1.1) rotate(var(--r))}}
    @keyframes homeworkFireSpark{0%{opacity:1;transform:translate(-50%,-50%) scale(.7)}75%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(.25)}}
    @keyframes homeworkPointPop{0%{transform:scale(.96)}50%{transform:scale(1.04)}100%{transform:scale(1)}}
    @keyframes homeworkPointBubble{0%{opacity:0;transform:translateY(8px) scale(.82)}18%{opacity:1}100%{opacity:0;transform:translateY(-28px) scale(1.08)}}
    @keyframes homeworkQuestCardSweep{0%,58%{opacity:0;transform:translateX(-90%)}72%{opacity:.82}100%{opacity:0;transform:translateX(90%)}}
    @keyframes homeworkLockWiggle{0%,78%,100%{transform:rotate(0deg) scale(1)}84%{transform:rotate(-7deg) scale(1.06)}90%{transform:rotate(7deg) scale(1.06)}}
    @keyframes homeworkMissionBadgePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
    @keyframes diamondGlowPulse{0%,100%{transform:translateY(0) scale(1);filter:drop-shadow(0 0 5px rgba(86,211,255,.72)) drop-shadow(0 0 10px rgba(255,209,102,.38))}50%{transform:translateY(-1px) scale(1.08);filter:drop-shadow(0 0 8px rgba(86,211,255,.95)) drop-shadow(0 0 15px rgba(255,209,102,.62))}}
    @keyframes friendsGroupBurstPop{0%{opacity:0;transform:translateY(8px) scale(.6)}15%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-34px) scale(1.14)}}
    @keyframes friendsMentionNotice{0%{opacity:0;transform:translateY(-6px) scale(.96)}10%,78%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-8px) scale(.98)}}
    @keyframes friendsChallengeGlow{0%,100%{box-shadow:0 0 0 4px rgba(255,209,102,.20),0 12px 24px rgba(240,45,143,.16);transform:translateY(0) scale(1)}50%{box-shadow:0 0 0 8px rgba(255,209,102,.30),0 16px 30px rgba(240,45,143,.24);transform:translateY(-1px) scale(1.04)}}
    @keyframes friendsGroupChallengeVoteShine{0%,54%{left:-45%;opacity:.2}78%{left:110%;opacity:.95}100%{left:110%;opacity:.2}}
    @keyframes friendsChallengeToastPop{0%{opacity:0;transform:translate(-50%,-8px) scale(.94)}10%,82%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-8px) scale(.98)}}
    @keyframes friendsGroupGameGlow{0%,55%{opacity:0;transform:translateX(-105%)}72%{opacity:.86}100%{opacity:0;transform:translateX(105%)}}
    @keyframes friendsGroupCasinoBlink{0%,100%{opacity:.34;filter:saturate(1)}38%{opacity:.72;filter:saturate(1.35)}64%{opacity:.48;filter:saturate(1.15)}}
    @keyframes friendsGroupStickerBounce{0%,100%{transform:translateY(0) rotate(0deg)}8%{transform:translateY(-1px) rotate(-4deg)}16%{transform:translateY(0) rotate(4deg)}24%{transform:translateY(-1px) rotate(0deg)}}
    @keyframes friendsGroupChallengeArenaSweep{0%,48%{opacity:0;transform:translateX(-105%)}66%{opacity:.72}100%{opacity:0;transform:translateX(105%)}}
    @keyframes friendsGroupLightChain{0%,100%{opacity:.40;filter:saturate(1)}50%{opacity:.88;filter:saturate(1.45) brightness(1.08)}}
    @keyframes friendsGroupNewArrival{0%{opacity:0;transform:translateY(10px);filter:saturate(.9)}100%{opacity:1;transform:translateY(0);filter:saturate(1)}}
    @keyframes friendsMagicPulse{0%,100%{transform:translateY(0) scale(1);filter:saturate(1)}50%{transform:translateY(-1px) scale(1.018);filter:saturate(1.24)}}
    @keyframes friendsGroupOlderDot{0%,100%{opacity:.3;transform:translateY(0) scale(.88)}50%{opacity:1;transform:translateY(-2px) scale(1.08)}}
    @keyframes studentProfileTapGlow{0%{filter:saturate(1);box-shadow:0 0 0 rgba(255,209,102,0)}55%{filter:saturate(1.2);box-shadow:0 0 0 4px rgba(255,209,102,.24),0 0 18px rgba(255,115,181,.28)}100%{filter:saturate(1);box-shadow:inherit}}
    @keyframes studentProfileHeaderShine{0%,58%{opacity:0;transform:translateX(-86%)}70%{opacity:.78}100%{opacity:0;transform:translateX(86%)}}
    @keyframes studentClassClockPulse{0%,100%{transform:scale(1);filter:saturate(1)}50%{transform:scale(1.06);filter:saturate(1.22)}}
    @keyframes studentClassClockVibrate{0%,100%{transform:translateX(0) rotate(0deg) scale(1);filter:saturate(1)}12%{transform:translateX(-2px) rotate(-8deg) scale(1.03)}24%{transform:translateX(2px) rotate(8deg) scale(1.05);filter:saturate(1.35)}36%{transform:translateX(-2px) rotate(-7deg) scale(1.04)}48%{transform:translateX(2px) rotate(7deg) scale(1.05)}60%{transform:translateX(-1px) rotate(-4deg) scale(1.02)}72%{transform:translateX(1px) rotate(4deg) scale(1.02)}}
    @keyframes friendsMagicSpin{to{transform:rotate(360deg)}}
    @keyframes friendsMagicShine{0%,55%{transform:translateX(-115%);opacity:.2}76%{transform:translateX(115%);opacity:.9}100%{transform:translateX(115%);opacity:.2}}
    @keyframes achievementBadgeGlow{0%,100%{filter:saturate(1);transform:translateY(0)}50%{filter:saturate(1.35);transform:translateY(-1px)}}
    @keyframes achievementFramePulse{0%,100%{filter:saturate(1);transform:scale(1)}50%{filter:saturate(1.22);transform:scale(1.025)}}
    @keyframes achievementFrameThinkingShine{0%,18%{opacity:0;transform:translateX(-76%) rotate(8deg)}42%{opacity:.76}72%{opacity:.48;transform:translateX(76%) rotate(8deg)}100%{opacity:0;transform:translateX(76%) rotate(8deg)}}
    @keyframes achievementRowGlints{0%,100%{opacity:.18;filter:blur(.2px)}42%{opacity:.62;filter:blur(0)}72%{opacity:.36;filter:blur(.2px)}}
    @keyframes achievementGiftNudge{0%,100%{transform:translateY(0) rotate(0deg);filter:saturate(1)}10%{transform:translateY(-1px) rotate(-5deg)}20%{transform:translateY(0) rotate(5deg)}30%{transform:translateY(-1px) rotate(0deg);filter:saturate(1.2)}}
    @keyframes studentBookPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.16)}}
    @keyframes studentBellVibrate{0%,72%,100%{transform:rotate(0deg)}76%{transform:rotate(-9deg)}80%{transform:rotate(9deg)}84%{transform:rotate(-7deg)}88%{transform:rotate(7deg)}}
    @keyframes achievementHeaderBadgeShine{0%,56%{opacity:0;transform:translateX(-70%)}72%{opacity:.82}100%{opacity:0;transform:translateX(70%)}}
    @keyframes achievementGiftRowSweep{0%,62%{opacity:0;transform:translateX(-80%)}76%{opacity:.62}100%{opacity:0;transform:translateX(80%)}}
    @keyframes achievementHeaderChipShine{0%,52%{opacity:0;transform:translateX(-48px) rotate(18deg)}66%{opacity:.82}100%{opacity:0;transform:translateX(150px) rotate(18deg)}}
    @keyframes achievementHeaderBadgePop{0%,100%{filter:saturate(1);transform:translateY(0)}50%{filter:saturate(1.28) brightness(1.04);transform:translateY(-1px)}}
    @media(max-width:720px){
      .homeworkTop{grid-template-columns:1fr}
      .homeworkCellGrid{grid-template-columns:1fr}
      .homeworkPublicPage{padding:calc(6px + var(--protiva-safe-top)) calc(4px + env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) calc(4px + env(safe-area-inset-left))}
      .homeworkPublicCard{padding:12px;border-radius:14px;margin-bottom:10px}
      .homeworkPublicCard.studentAchievementProfileCard{padding-top:12px}
      .homeworkKittyHero{gap:8px;margin-bottom:0}
      .homeworkBrandLogo{width:48px;height:48px;border-radius:13px;padding:4px}
      .studentProfileAvatarFrame{width:62px;height:62px;border-radius:999px}
      .studentProfileAvatarBtn.achievementProfileAvatarBtn{width:clamp(112px,32vw,156px);min-width:clamp(112px,32vw,156px);padding-top:6px;gap:2px}
      .studentProfileAvatarPlaceholder{font-size:11px;padding:8px}
      .studentProfileAvatarOverlay{left:5px;right:5px;bottom:5px;font-size:9px;padding:3px 6px}
      .studentProfileAvatarHint{font-size:9px}
      .homeworkPublicTitle{font-size:22px;line-height:1;white-space:nowrap;margin-bottom:0}
      .studentProfileHeroDashboard{grid-template-columns:clamp(116px,32vw,150px) minmax(0,1fr);gap:6px;min-height:160px;padding:7px 40px 7px 8px;border-radius:16px}
      .studentProfileHeroDashboard.noAchievementHero{min-height:148px}
      .studentProfileHeroAvatarStage{min-height:80px}
      .studentProfileHeroDashboard.noAchievementHero .studentProfileHeroAvatarStage{min-height:124px}
      .studentProfileHeroDashboard.noAchievementHero .studentProfileAvatarFrame{width:78px;height:78px;border-radius:999px}
      .studentProfileHeroDashboard .homeworkKittyHero{gap:7px}
      .studentProfileHeroDashboard .homeworkPublicTitle{font-size:17px;white-space:normal;color:#10203d}
      .studentProfileHeroDashboard .studentProfileNameWithStatus{gap:5px}
      .studentProfileHeroDashboard .studentProfileStatusDot{width:9px;height:9px}
      .studentProfileHeroDashboard.studentAchievementHero .homeworkKittyHero{gap:6px}
      .studentProfileHeroDashboard.studentAchievementHero .studentProfileHeroText{padding-top:0}
      .studentProfileHeaderMeta{font-size:9px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
      .studentProfileHeaderPoints{font-size:10px;padding:4px 7px;margin-top:4px}
      .studentProfileHeroDashboard .studentProfileHeaderPoints{min-height:40px;padding:5px 9px;font-size:15px}
      .studentProfileQuestBoard{gap:7px;margin-top:8px}
      .studentProfileQuestStats{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px}
      .studentProfileBadgeSpotlight{min-height:42px;margin-top:-10px;padding-top:0}
      .studentProfileBadgeBig{width:54px;height:48px}
      .studentProfileBadgeSpotlightImg{max-width:70px;max-height:62px}
      .studentProfileRewardStack{gap:7px;margin-top:7px}
      .studentAchievementBadgeProfile{min-height:40px;padding:5px 9px;font-size:12px}
      .studentAchievementBadgeProfile .achievementBadgeIconImg{width:26px;height:26px}
      .studentProfileRewardActions{width:100%;justify-content:space-between;gap:2px;padding:3px}
      .studentProfileRewardActions .studentPointsRulesBtn{flex:0 0 34px;width:34px;min-height:34px;min-width:34px;padding:0;font-size:0}
      .studentProfileActionIcon{font-size:18px}
      .studentAchievementGiftBtn,.studentToastHistoryBtn,.studentProfileSwitchBtn,.studentProfileWebBtn,.studentProfileTestPaymentResetBtn{width:34px;height:34px;flex:0 0 34px;font-size:18px}
      .studentProfileDatePill{margin-top:4px;padding:3px 7px;font-size:10px}
      .studentProfileLogoutIcon{width:30px;height:30px}
      .studentProfileHeroDashboard .studentProfileLogoutIcon{top:7px;right:7px}
      .studentProfileHeroDashboard .studentProfileStartingTutorialBtn{top:41px;right:7px;font-size:17px}
      .studentProfileLogoutIcon svg{width:15px;height:15px}
      .homeworkQuestProfile{grid-template-columns:1fr;gap:7px;margin-top:10px;padding:9px;border-radius:12px}
      .homeworkQuestActions{justify-content:flex-start}
      .studentProfileIdentityText{font-size:15px;line-height:1.18}
      .studentProfileScorePill{font-size:10px;padding:4px 7px}
      .studentProfileMetaLine{gap:4px;margin-top:5px}
      .studentProfileMetaChip{font-size:10px;padding:3px 6px}
      .studentProfileSlotList{font-size:10px;margin-top:5px}
      .homeworkQuestSmallBtn{padding:7px 9px;font-size:11px}
      .studentProfileMenu{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}
      .studentProfileMenuBtn{padding:8px 5px;font-size:12px;border-radius:12px;min-height:40px}
      .studentProfileMenuBtn.chatTeacherWhatsAppBtn{gap:0}
      .homeworkQuestScoreboard{gap:5px;padding:5px;border-radius:14px}
      .homeworkQuestScoreboard .homeworkQuestStat{min-height:38px;padding:5px 3px;gap:3px}
      .homeworkQuestScoreboard .homeworkQuestStat b{font-size:15px}
      .homeworkQuestScoreboard .homeworkQuestStatLabel{font-size:9px}
      .studentHomeworkMissionCountdown{border-radius:14px;padding:8px;margin-bottom:9px}
      .studentHomeworkMissionTop{grid-template-columns:36px minmax(0,1fr);gap:7px;margin-top:5px}
      .studentHomeworkMissionIcon{width:36px;height:36px;border-radius:12px;font-size:19px}
      .studentHomeworkMissionTitle{font-size:12px}
      .studentHomeworkMissionSub{font-size:9px}
      .studentHomeworkCountdownGrid{gap:5px;margin-top:7px}
      .studentHomeworkCountdownUnit{padding:5px 3px;border-radius:11px}
      .studentHomeworkCountdownValue{font-size:15px}
      .studentHomeworkCountdownLabel{font-size:7px}
      .studentClassTeacherTop{display:grid;gap:4px}
      .studentClassTeacherName{font-size:14px}
      .studentClassChipGrid{gap:6px}
      .studentClassChip{min-height:31px;font-size:10px;padding:6px 7px}
      .studentClassHeroCard{padding:9px;border-radius:16px;gap:8px}
      .studentClassHeroTop{grid-template-columns:64px minmax(0,1fr);gap:9px}
      .studentClassTeacherAvatar{width:64px;height:64px;border-radius:17px}
      .studentClassTeacherKicker{font-size:11px}
      .studentClassTeacherTitle{font-size:20px}
      .studentClassReviewBadge{font-size:13px;padding:6px 9px}
      .studentClassHeroActions,.studentClassResourceGrid{gap:6px}
      .studentClassHeroBtn{min-height:35px;font-size:12px;padding:6px 9px;border-radius:12px}
      .studentClassExciteBanner{grid-template-columns:34px minmax(0,1fr);gap:8px;padding:7px 8px;border-radius:15px}
      .studentClassExciteClock{width:35px;height:35px;font-size:18px}
      .studentClassExciteTitle{font-size:13px}
      .studentClassExciteInlineCountdown{font-size:9px;padding:3px 6px;max-width:42%}
      .studentClassExciteSub{font-size:10px}
      .studentClassResourceGroup{padding:7px;border-radius:14px;gap:6px}
      .studentClassResourceGroupTitle{font-size:12px}
      .studentClassResourceRow{min-height:46px;padding:7px}
      .studentClassResourceLabel{font-size:12px}
      .studentClassMiniBtn{min-height:28px;min-width:68px;font-size:10px;padding:5px 10px;border-radius:10px}
      .studentClassResourceValue{max-width:90px;font-size:10px}
      .studentClassDateLine{font-size:14px}
      .studentProfileFullscreenPanel{padding:calc(10px + env(safe-area-inset-top)) calc(10px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(10px + env(safe-area-inset-left))}
      .studentProfileFullscreenPanelClass{padding-left:calc(5px + env(safe-area-inset-left));padding-right:calc(5px + env(safe-area-inset-right))}
      .studentClassPublicCard{padding:7px;border-radius:16px}
      .studentProfileFullscreenTop{border-radius:15px;padding:8px 9px}
      html.protivaIosNativeShell .studentProfileFullscreenTop{padding-top:calc(8px + var(--protiva-safe-top))}
      .studentProfileFullscreenTitle{font-size:17px}
      .studentProfileFullscreenClose{width:38px;height:38px;font-size:20px}
      .studentProfileReportItem{padding:8px;border-radius:12px}
      .studentProfileReportSummaryTitle{font-size:13px}
      .studentProfileReportSummaryMeta{font-size:9px}
      .studentProfileReportOpenPill{padding:6px 8px;font-size:10px}
      .studentProfileReportTop{grid-template-columns:82px minmax(0,1fr);gap:8px}
      .studentProfileReportThumbBtn{width:82px}
      .studentProfileReportThumb{width:82px;height:116px}
      .studentProfileReportTitle{font-size:13px}
      .studentProfileReportMeta{font-size:10px}
      .studentProfileDownloadBtn,.studentProfileSheetBtn{padding:8px 9px;font-size:10px;border-radius:9px}
      .studentProfileTop3Row{grid-template-columns:28px 34px minmax(0,1fr) 64px;font-size:10px;gap:5px;padding:6px}
      .studentProfileTop3Rank{width:24px;height:24px;font-size:13px}
      .studentProfileTop3SheetThumb{width:32px;height:40px}
      .studentProfileTop3Name{font-size:10px}
      .studentProfileTop3Score{min-width:0;font-size:10px}
      .studentProfileTop3SheetBtn{font-size:9px;padding:5px 6px}
      .studentProfileTop3Hint{font-size:9px;padding:6px 7px}
      .studentProfileCheckedStamp{width:32px;height:32px;font-size:20px;right:8px;bottom:8px}
      .guardianFeeGrid{grid-template-columns:1fr}
      .classHubDiamondBtn{min-height:34px;padding:6px 4px;font-size:15px;border-radius:14px}
      .classHubDiamondSheet{padding:14px 12px 16px;border-radius:20px 20px 0 0}
      .classHubDiamondSheetTitle{font-size:18px}
      .classHubDiamondResult,.classHubDiamondSelectedCard{padding:9px 10px}
      .classHubDiamondAmountRow{gap:5px}
      .studentClassworkCard{border-radius:14px;padding:9px}
      .studentClassworkHero img{max-height:210px}
      .studentClassworkLinkBtn{font-size:11px;padding:7px 10px}
      .friendsGroupOverlay.classHubMount{margin:0;height:100%;border-radius:0}
      .friendsGroupOverlay.classHubMount .friendsGroupHeader{grid-template-columns:auto 34px minmax(0,1fr);padding:7px 8px 6px;gap:7px}
      .friendsGroupOverlay.classHubMount .friendsGroupLogo{width:34px;height:34px;border-radius:10px;padding:0;object-fit:cover}
      .friendsGroupOverlay.classHubMount .friendsGroupBackBtn{width:32px;height:32px;font-size:19px}
      .friendsGroupOverlay.classHubMount .friendsGroupTitle{font-size:14px}
      .friendsGroupOverlay.classHubMount .friendsGroupSub{font-size:11px;margin-top:0}
      .friendsGroupOverlay.classHubMount .friendsGroupHeaderActions{gap:5px}
      .friendsGroupOverlay.classHubMount .friendsGroupHeaderIconBtn{width:30px;height:30px;font-size:15px;border-radius:10px}
      .friendsGroupOverlay.classHubMount .friendsGroupClassHubHeaderActions{gap:5px}
      .friendsGroupOverlay.classHubMount .friendsGroupClassHubHeaderActions .friendsGroupChallengeHeaderBtn{min-width:86px;min-height:32px;padding:0 8px}
      .friendsGroupOverlay.classHubMount .friendsGroupClassHubHeaderActions .friendsGroupJackpotHeaderBtn{width:30px;min-width:30px;height:30px;min-height:30px;padding:0;font-size:14px}
      .friendsGroupOverlay.classHubMount .friendsGroupHeaderBadge{top:-5px;right:-5px;min-width:17px;height:17px;font-size:9px}
      .friendsGroupOverlay.classHubMount .friendsGroupCanvas{padding:12px 12px 104px}
      .friendsGroupOverlay.classHubMount .friendsGroupFeed{padding:0 0 14px}
      .friendsGroupOverlay.classHubMount .friendsGroupFooter{margin:0 12px 12px}
      .friendsGroupOverlay.classHubMount .friendsGroupPost{padding:11px;gap:10px}
      .friendsGroupOverlay.classHubMount .friendsGroupThumbBtn{max-width:78%}
      .friendsGroupOverlay.classHubMount .friendsGroupThumb{max-width:min(100%,209px);max-height:147px}
      .studentProgressTileGrid{gap:5px}
      .studentProgressTile{border-radius:10px;padding:4px}
      .studentProgressTileDate{font-size:8px}
    }
    @media(max-width:360px){
      .studentClassResourceGrid{grid-template-columns:1fr}
      .studentClassTeacherTitle{font-size:20px}
      .studentClassDateLine{font-size:13px}
    }
    h1{margin:0;font-size:32px;font-weight:900}
    .subhead{margin-top:4px;font-size:13px;font-weight:800;color:var(--muted);line-height:1.35}
    .miniBtn{background:#10203d;color:#fff;padding:10px 14px;font-size:13px}
    .logoutBtn,.installBtn,.navIconBtn{background:#fff;color:#10203d;border:1px solid var(--line);border-radius:999px;padding:9px 12px;font-size:12px;font-weight:900}
    .installBtn{display:none}
    .navIconBtn{position:relative;padding:10px 12px;font-size:18px;line-height:1}
    .navIconBtn.on{background:#10203d;color:#fff;border-color:#10203d}
    #refreshStudentBtn,#logoutBtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;padding:0;font-size:0;line-height:1;border-radius:999px}
    #birthdayBtn,#feeBirthdayBtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;padding:0;font-size:18px;line-height:1;border-radius:999px;position:relative}
    #feeAlertManagerBtn,#feeTeacherManagerBtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;padding:0;font-size:18px;line-height:1;border-radius:999px;position:relative;white-space:nowrap;flex:0 0 auto}
    #refreshStudentBtn::before,#logoutBtn::before{content:'';display:block;width:18px;height:18px;background-repeat:no-repeat;background-position:center;background-size:18px 18px}
    #refreshStudentBtn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310203d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-2.64-6.36'/%3E%3Cpath d='M21 3v6h-6'/%3E%3C/svg%3E")}
    #refreshStudentBtn.refreshing::before,#refreshFeeBtn.refreshing::before{animation:studentSpin .85s linear infinite;transform-origin:50% 50%}
    #logoutBtn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310203d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v8'/%3E%3Cpath d='M7.05 5.05a9 9 0 1 0 9.9 0'/%3E%3C/svg%3E")}
    .feedbackBtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:74px;height:40px;padding:0 12px;border:1px solid #ead6a4;border-radius:999px;background:linear-gradient(180deg,#fffdf2 0%,#fff6d8 100%);color:#8a4b00;font-size:13px;font-weight:900;box-shadow:0 6px 16px rgba(126,92,20,.08)}
    .feedbackBtn.loading{color:#8b95a7;background:#fff;border-color:#d9e3f1}
    .navBadge{position:absolute;top:-6px;right:-4px;min-width:18px;height:18px;border-radius:999px;background:#950000;color:#fff;font-size:10px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.dropPanel{position:absolute;top:calc(100% + 8px);right:0;width:min(360px,calc(100vw - 20px));max-height:72vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 40px rgba(16,32,61,.18);padding:12px;z-index:80;display:none}
.importantLinksPanelList{display:grid;gap:8px}
.importantLinkRow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border:1px solid #e1e9f3;border-radius:12px;background:#fff}
.importantLinkLabel{min-width:0;flex:1 1 auto;font-size:14px;font-weight:900;color:#10203d;line-height:1.25}
.importantLinkActions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex:0 0 auto;flex-wrap:nowrap}
.importantLinkBtn{border:none;border-radius:10px;padding:8px 12px;background:#10203d;color:#fff;font-size:12px;font-weight:900;line-height:1}
.importantLinkBtn.alt{background:#eef4fb;color:#10203d}
.importantLinkBtn.danger{background:#fff0f0;color:#9f1d1d;border:1px solid #f1cccc}
.importantLinkIconBtn{width:28px;height:28px;padding:0;border:1px solid #dbe4f2;border-radius:8px;background:#eef4fb;color:#10203d;font-size:14px;font-weight:900;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.importantLinkIconBtn.primary{background:#10203d;border-color:#10203d;color:#fff}
.importantLinkIconBtn.danger{background:#fff0f0;border-color:#f1cccc;color:#9f1d1d;font-size:18px}
    .importantLinkTopActions{display:flex;justify-content:flex-end;margin-bottom:8px}
    .importantLinkAddToggle{height:32px;padding:0 10px;border-radius:8px;font-size:12px}
    .importantLinkForm{display:grid;gap:8px;margin-bottom:10px;padding:10px;border:1px solid #e1e9f3;border-radius:12px;background:#f8fbff}
.importantLinkForm textarea{width:100%;min-height:38px;max-height:150px;border:1px solid #cbd8e8;border-radius:8px;padding:8px 10px;font-size:13px;font-weight:800;line-height:1.35;color:#10203d;background:#fff;resize:none;overflow:hidden;font-family:inherit;white-space:pre-wrap;overflow-wrap:anywhere}
    .importantLinkFormActions{display:flex;gap:8px;align-items:center;justify-content:flex-end}
    .responsibilityModalCard{background:#fff;border-radius:18px;margin:18px auto;padding:14px;width:min(760px,calc(100% - 24px));max-height:calc(100vh - 36px);overflow:auto;box-shadow:0 18px 50px rgba(15,23,42,.22)}
    .responsibilityHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
    .responsibilityTitle{font-size:24px;font-weight:1000;color:#10203d;line-height:1.1}
    .responsibilityMeta{font-size:12px;font-weight:900;color:#64748b;margin-top:3px}
    .responsibilityClose{width:38px;height:38px;border:none;border-radius:10px;background:#eef2f7;color:#10203d;font-size:20px;font-weight:1000}
    .responsibilityTopbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}
    .responsibilityTopbar select,.responsibilityTopbar input{height:38px;border:1px solid #cbd8e8;border-radius:8px;padding:0 10px;font-size:13px;font-weight:900;color:#10203d;background:#fff}
    .responsibilityBtn{border:none;border-radius:8px;padding:9px 11px;background:#10203d;color:#fff;font-size:12px;font-weight:1000;line-height:1}
    .responsibilityBtn.alt{background:#eef4fb;color:#10203d}
    .responsibilityBtn.danger{background:#fff0f0;color:#9f1d1d;border:1px solid #f1cccc}
    .responsibilityList{display:grid;gap:8px;margin-top:10px}
    .responsibilityRow{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:start;border:1px solid #e1e9f3;border-radius:12px;background:#fff;padding:10px}
    .responsibilityIndex{width:24px;height:24px;border-radius:8px;background:#eef4fb;color:#10203d;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:1000}
    .responsibilityText{font-size:13px;font-weight:900;color:#10203d;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere}
    .responsibilityActions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
    .responsibilityMark{min-width:24px;height:24px;border-radius:999px;border:none;background:#e11d48;color:#fff;font-size:12px;font-weight:1000;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(225,29,72,.22)}
    .responsibilityMark.old{min-width:16px;width:16px;height:16px;font-size:0;padding:0}
    .responsibilityIconBtn{width:30px;height:30px;border:1px solid #dbe4f2;border-radius:8px;background:#eef4fb;color:#10203d;font-size:14px;font-weight:1000;display:inline-flex;align-items:center;justify-content:center}
    .responsibilityIconBtn.danger{background:#fff0f0;border-color:#f1cccc;color:#9f1d1d;font-size:18px}
    .responsibilityForm{display:grid;gap:8px;margin:10px 0;padding:10px;border:1px solid #e1e9f3;border-radius:12px;background:#f8fbff}
    .responsibilityForm textarea{width:100%;min-height:40px;max-height:190px;border:1px solid #cbd8e8;border-radius:8px;padding:9px 10px;font-size:13px;font-weight:850;line-height:1.35;color:#10203d;background:#fff;resize:none;overflow:hidden;font-family:inherit;white-space:pre-wrap;overflow-wrap:anywhere}
    .responsibilityFormActions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
    .growthGuidelineBtn{background:#fff1f2!important;color:#b91c1c!important;border-color:#fecdd3!important;border-radius:999px!important;font-weight:1000!important;width:40px!important;height:40px!important;min-width:40px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
    .responsibilityTeacherButtons{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
    .responsibilityTeacherBtn{min-height:34px;border:1px solid #dbe4f2;border-radius:8px;background:#eef4fb;color:#10203d;padding:0 11px;font-size:12px;font-weight:1000}
    .responsibilityTeacherBtn.on{background:#10203d;border-color:#10203d;color:#fff}
    .responsibilityIndexWrap{display:grid;gap:5px;justify-items:center}
    .responsibilityDragHandle{width:24px;height:22px;border:1px solid #dbe4f2;border-radius:8px;background:#fff7f8;color:#b91c1c;font-size:12px;font-weight:1000;line-height:1;touch-action:none;cursor:grab}
    .responsibilityRow.responsibilityDragging{outline:2px solid #fecdd3;background:#fff8fa}
    .responsibilityHistory{margin-top:8px;border-radius:10px;background:#f8fafc;border:1px dashed #dbe4f2;padding:8px;display:grid;gap:6px}
    .responsibilityHistoryItem{font-size:12px;font-weight:850;color:#475569;line-height:1.35}
    .responsibilityHistoryItem strong{color:#9f1239}
    .responsibilityUndoBtn{margin-top:5px;border:1px solid #fecdd3;border-radius:8px;background:#fff1f2;color:#9f1239;padding:5px 8px;font-size:11px;font-weight:1000}
    .responsibilityEmpty{border:1px dashed #dbe4f2;border-radius:12px;padding:16px;text-align:center;color:#64748b;font-weight:900}
    .studentManualSheet{max-width:860px}
    .studentManualIntro{padding:10px 12px;border:1px solid #dbe5f1;border-radius:14px;background:linear-gradient(180deg,#f8fbff,#fff);font-size:13px;font-weight:850;color:#53647a;line-height:1.45;margin-bottom:10px}
    .studentManualSearchWrap{position:relative;margin-bottom:10px}
    .studentManualSearchIcon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:999px;background:#eef4fb;color:#10203d;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;pointer-events:none}
    .studentManualSearchWrap input{width:100%;padding:14px 14px 14px 50px;border:2px solid #cbd8e8;border-radius:14px;background:#fff;font-size:16px;font-weight:850;color:#10203d}
    .studentManualSearchWrap input:focus{outline:none;border-color:#10203d;box-shadow:0 0 0 4px rgba(16,32,61,.08)}
    .studentManualChips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
    .studentManualChip{border:1px solid #dbe5f1;border-radius:999px;background:#fff;color:#10203d;padding:8px 10px;font-size:12px;font-weight:900}
    .studentManualChip.on{background:#10203d;border-color:#10203d;color:#fff}
    .studentManualMeta{font-size:12px;font-weight:900;color:#64748b;margin-bottom:8px}
    .studentManualList{display:grid;gap:10px;padding-bottom:8px}
    .studentManualCard{border:1px solid #dbe5f1;border-radius:16px;background:#fff;padding:12px;box-shadow:0 8px 18px rgba(16,32,61,.05)}
    .studentManualCardHead{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
    .studentManualTitleWrap{display:flex;gap:10px;min-width:0;align-items:flex-start}
    .studentManualIcon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;min-width:38px;border-radius:12px;background:#10203d;color:#fff;font-size:16px;font-weight:900;line-height:1}
    .studentManualCard h3{margin:0;font-size:17px;font-weight:900;color:#10203d;line-height:1.2}
    .studentManualCat{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 8px;background:#eef4fb;color:#526070;font-size:10px;font-weight:900;white-space:nowrap}
    .studentManualSummary{margin:7px 0 0;font-size:13px;font-weight:850;color:#53647a;line-height:1.45}
    .studentManualSteps{display:grid;gap:6px;margin-top:10px}
    .studentManualStep{display:grid;grid-template-columns:22px minmax(0,1fr);gap:7px;align-items:start;font-size:12px;font-weight:850;color:#334155;line-height:1.42}
    .studentManualStep b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#edf5ff;color:#10203d;font-size:11px;font-weight:900}
    .studentManualTips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
    .studentManualTip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#fff7e7;border:1px solid #f0d6a2;color:#895100;padding:5px 8px;font-size:11px;font-weight:900}
    .studentManualEmpty{padding:18px;border:1px dashed #dbe5f1;border-radius:14px;background:#fbfdff;color:#64748b;text-align:center;font-size:13px;font-weight:900}
    .dropTitle{font-size:16px;font-weight:900;margin-bottom:8px}
    .dropSection{padding-top:10px;margin-top:10px;border-top:1px solid #e8edf5}
    .dropItem{padding:10px 11px;border:1px solid #e7edf6;border-radius:12px;background:#fff;margin-bottom:8px}
    .dropItem.read{background:#f3f4f6;color:#7b8798}
    .dropItem strong{display:block;font-size:13px}
    .dropMeta{font-size:11px;color:var(--muted);font-weight:800;margin-top:4px}
    .occasionMonth{padding:8px 10px;border:1px solid #e7edf6;border-radius:12px;background:#fff;margin-bottom:8px}
    .occasionMonthTitle{font-size:13px;font-weight:900}
    .occasionLine{font-size:11px;font-weight:800;color:var(--muted);line-height:1.4;margin-top:4px}
    .occasionLine.today{color:#0f7a43}
    .occasionDate{color:#10203d}
    .birthdayMonth{padding:8px 10px;border:1px solid #e7edf6;border-radius:12px;background:#fff;margin-bottom:8px}
    .birthdayMonthTitle{font-size:13px;font-weight:900;margin-bottom:4px}
    .birthdayLine{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:7px 0;border-top:1px solid #eff3f8;font-size:12px;font-weight:800;color:#475569}
    .birthdayLine:first-of-type{border-top:none}
    .birthdayId{color:#10203d;font-weight:900}
    .birthdayName{min-width:0;word-break:break-word;color:#10203d}
    .birthdayDate{white-space:nowrap}
    .birthdayShareBtn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;min-width:26px;padding:0;border:1px solid #d8e3f2;border-radius:999px;background:#f8fbff;color:#10203d;font-size:13px;font-weight:900;box-shadow:0 3px 8px rgba(16,32,61,.06)}
    .birthdayShareBtn:hover:not(:disabled){background:#eef5ff;border-color:#bfd3ef}
    .birthdayShareBtn:disabled{opacity:.55}
    .taskForm{display:grid;gap:8px}
    .taskRow{display:grid;grid-template-columns:1fr 120px;gap:8px}
    .taskInput,.taskSelect,.taskDate{width:100%;padding:11px;border:1px solid var(--line);border-radius:12px;font-size:14px;font-weight:800}
    .taskItem{display:flex;align-items:flex-start;gap:10px}
    .taskBody{min-width:0;flex:1}
    .taskTitle{font-size:14px;font-weight:900;line-height:1.4;word-break:break-word}
    .taskFlag{display:inline-block;border-radius:999px;padding:4px 9px;font-size:10px;font-weight:900;margin-top:6px}
    .taskFlag.high{background:#fdecec;color:#8b1c1c}
    .taskFlag.normal{background:#edf2f8;color:#334155}
    .tinyBtn{border:none;background:#10203d;color:#fff;border-radius:10px;padding:10px 12px;font-size:12px;font-weight:900}
    .panelRow{display:flex;align-items:center;justify-content:space-between;gap:8px}
    .toastWrap{position:fixed;right:10px;bottom:10px;display:grid;gap:8px;z-index:120}
    body.studentProfileRouteBoot .toastWrap{left:max(10px,env(safe-area-inset-left));right:auto}
    body.studentProfileRouteBoot .toast{max-width:min(340px,calc(100vw - 120px - env(safe-area-inset-right)))}
    .toast{position:relative;overflow:hidden;background:linear-gradient(135deg,#fffaf0 0%,#fff 48%,#fff1d2 100%);border:1.5px solid #f4cb42;border-radius:18px;padding:13px 15px 13px 18px;box-shadow:0 16px 34px rgba(16,32,61,.16),0 0 0 3px rgba(255,209,102,.12);max-width:min(340px,calc(100vw - 20px));animation:toastPop .26s ease-out}
    .toast:before{content:"";position:absolute;top:0;bottom:0;left:-48%;width:44%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.78),transparent);animation:toastShine 2.7s ease-in-out infinite;pointer-events:none}
    .toast:after{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:999px;background:linear-gradient(180deg,#ffd166,#ff8bc8)}
    .toast strong{position:relative;display:block;font-size:14px;line-height:1.2;color:#10203d}
    .toast span{position:relative;display:block;font-size:12px;margin-top:5px;color:#5c4b16;font-weight:800;line-height:1.35}
    .toast.success{background:linear-gradient(135deg,#eafff5 0%,#fff 48%,#d7fff7 100%);border-color:#29b97f;box-shadow:0 16px 34px rgba(20,184,166,.2),0 0 0 3px rgba(34,197,94,.14)}
    .toast.success:after{background:linear-gradient(180deg,#22c55e,#14b8a6)}
    .toast.success strong{color:#064e3b}
    .toast.success strong:before{content:"\2713";display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;margin-right:7px;border-radius:999px;background:linear-gradient(135deg,#22c55e,#14b8a6);color:#fff;font-size:12px;font-weight:950;box-shadow:0 5px 12px rgba(20,184,166,.24);vertical-align:-2px}
    .toast.success span{color:#166534}
    .toastActions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
    .toastActionBtn{border:1px solid #d7e2ef;border-radius:10px;background:#fff;color:#10203d;padding:8px 12px;font-size:12px;font-weight:900}
    .toast.success .toastActionBtn{border-color:#b9dfc7;background:#fff;color:#166534}
    .nativeNotificationGate{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;padding:18px;background:rgba(16,32,61,.62);backdrop-filter:blur(6px)}
    .nativeNotificationGateCard{width:min(430px,100%);border:1px solid #ffd0e5;border-radius:22px;background:#fff;color:#10203d;padding:18px;box-shadow:0 26px 70px rgba(16,32,61,.28);display:grid;gap:11px;text-align:center}
    .nativeNotificationGateIcon{width:54px;height:54px;border-radius:18px;margin:0 auto;background:#fff8df;border:1px solid #f3d26b;display:grid;place-items:center;font-size:28px}
    .nativeNotificationGateTitle{font-size:22px;font-weight:950;line-height:1.1}
    .nativeNotificationGateText{font-size:14px;font-weight:850;color:#5f6d82;line-height:1.35}
    .nativeNotificationGatePrimary,.nativeNotificationGateSecondary,.nativeNotificationGateCheck{min-height:48px;border:none;border-radius:14px;font-size:15px;font-weight:950;padding:12px 14px}
    .nativeNotificationGatePrimary{background:linear-gradient(180deg,#10203d,#07152c);color:#fff}
    .nativeNotificationGateSecondary{background:#fff7fb;color:#9d1457;border:1px solid #ffd0e5}
    .nativeNotificationGateCheck{background:#eef2f8;color:#10203d;border:1px solid #d9e4f1}
    @keyframes toastPop{0%{opacity:0;transform:translateY(10px) scale(.96)}100%{opacity:1;transform:translateY(0) scale(1)}}
    @keyframes toastShine{0%,55%{transform:translateX(0)}100%{transform:translateX(340%)}}
    .saveState{position:fixed;top:12px;left:50%;transform:translateX(-50%) translateY(-8px);background:rgba(255,255,255,.98);border:1px solid #d8e3f0;border-radius:999px;padding:9px 14px;box-shadow:0 10px 28px rgba(16,32,61,.12);font-size:12px;font-weight:900;color:#10203d;z-index:125;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}
    .saveState.show{opacity:1;transform:translateX(-50%) translateY(0)}
    .saveState.done{background:#eef8f1;border-color:#b9dfc7;color:#0f5c34}
    .highlightMark{font-size:18px;line-height:1}
    .suggestWrap{position:relative}
    .searchSortBar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
    .searchSortBar .suggestWrap{min-width:0}
    .suggestWrap input,.feeSearchRow input,.feedbackSearchWrap input,.feeMonthSearchWrap input,.pnlSearchWrap input{padding-right:54px}
    .sortToggleBtn{min-height:48px;padding:0 12px;border:1px solid #d7e2ef;border-radius:14px;background:#f8fbff;color:#10203d;font-size:12px;font-weight:900;white-space:nowrap;box-shadow:0 4px 12px rgba(16,32,61,.04)}
    .sortToggleBtn.oldest{background:#10203d;border-color:#10203d;color:#fff;box-shadow:0 8px 18px rgba(16,32,61,.16)}
    .studentUtilityStrip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
    .studentSortInlineBtn{min-height:40px;padding:0 14px;border-radius:999px}
    .searchClearBtn,.feedbackSearchClear{position:absolute;top:50%;right:8px;transform:translateY(-50%);display:none;width:36px;height:36px;border:none;border-radius:999px;background:#eef2f8;color:#475569;touch-action:manipulation;z-index:120}
    .searchClearBtn.show,.feedbackSearchClear.show{display:inline-flex;align-items:center;justify-content:center}
    .searchClearBtn::before,.feedbackSearchClear::before{content:'';display:block;width:18px;height:18px;background-repeat:no-repeat;background-position:center;background-size:18px 18px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E")}
    .suggestList{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 28px rgba(16,32,61,.12);overflow:hidden;z-index:90;display:none}
    .suggestItem{width:100%;text-align:left;padding:11px 13px;border:none;border-bottom:1px solid #eef2f7;background:#fff}
    .suggestItem:last-child{border-bottom:none}
    .suggestItem strong{display:block;font-size:14px}
    .suggestItem span{display:block;font-size:12px;color:var(--muted);margin-top:2px}
    .summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
    .sum{padding:12px;text-align:center}
    .sum .n{font-size:30px;font-weight:900}
    .sum .t,.meta,.teacher,.s .t{color:var(--muted);font-weight:800}
    .controls{display:grid;gap:10px;margin-top:12px}
    .row2,.row3,.row5,.stats,.slots,.cycleGrid,.feeActionGrid{display:grid;gap:8px}
    .row2{grid-template-columns:repeat(2,1fr)}
    .row3{grid-template-columns:repeat(3,1fr)}
    .row4{grid-template-columns:repeat(4,minmax(0,1fr))}
    #studentTopTabs{grid-template-columns:repeat(3,minmax(0,1fr)) 42px}
    #studentTopTabs{grid-template-columns:1fr 1fr 1.22fr}
    #studentTopTabs .ttCompactBtn{width:100%;min-height:58px;font-size:15px}
    #studentTopTabs .ttCompactWideLabel{font-size:13px;white-space:nowrap;line-height:1.05}
    .studentTimetableShortcutSection{display:grid;gap:8px;padding:12px 13px;border:1px solid #dbe5f2;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#edf4ff 100%);box-shadow:0 10px 24px rgba(16,32,61,.06)}
    .studentTimetableShortcutLabel{font-size:11px;font-weight:900;color:#475569;letter-spacing:.12em;text-transform:uppercase}
    .studentFocusBoard{display:grid;gap:12px;padding:16px 16px 14px;border:1px solid #dbe5f2;border-radius:22px;background:linear-gradient(145deg,#ffffff 0%,#eef4ff 52%,#f8fbff 100%);box-shadow:0 16px 34px rgba(16,32,61,.08)}
    .studentFocusHead{display:grid;gap:6px}
    .studentFocusEyebrow{font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#64748b}
    .studentFocusTitle{font-size:22px;font-weight:900;line-height:1.05;color:#10203d}
    .studentFocusHint{font-size:13px;font-weight:800;color:#5b6b82;line-height:1.5}
    .studentFocusGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
    .studentFocusCard{display:grid;gap:6px;padding:14px 12px;border:none;border-radius:18px;background:linear-gradient(180deg,#10203d 0%,#1b3355 100%);color:#fff;text-align:left;box-shadow:0 14px 24px rgba(16,32,61,.14)}
    .studentFocusCard.light{background:linear-gradient(180deg,#fff8eb 0%,#fff1d7 100%);color:#8a4b00}
    .studentFocusCard strong{font-size:28px;font-weight:900;line-height:1}
    .studentFocusCardLabel{font-size:13px;font-weight:900;letter-spacing:.01em}
    .studentFocusCardMeta{font-size:11px;font-weight:800;opacity:.9;line-height:1.4}
    .studentFocusFooter{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
    .studentFocusMetaPill{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;background:#fff;border:1px solid #d7e2ef;color:#24324d;font-size:11px;font-weight:900;box-shadow:0 4px 12px rgba(16,32,61,.04)}
    .studentChecklistCard{display:grid;gap:10px;padding:14px 15px;border:1px solid #dbe5f2;border-radius:20px;background:linear-gradient(180deg,#fffef9 0%,#fff7ea 100%);box-shadow:0 14px 30px rgba(16,32,61,.06)}
    .studentChecklistHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .studentChecklistTitleWrap{display:grid;gap:4px}
    .studentChecklistEyebrow{font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#8a4b00}
    .studentChecklistTitle{font-size:20px;font-weight:900;line-height:1.08;color:#8a3f00}
    .studentChecklistHint{font-size:12px;font-weight:800;color:#8a5b00;line-height:1.45}
    .studentChecklistToggle{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 11px;border:none;border-radius:999px;background:#10203d;color:#fff;font-size:11px;font-weight:900;box-shadow:0 8px 18px rgba(16,32,61,.12)}
    .studentChecklistBody{display:grid;gap:10px}
    .studentChecklistCard.collapsed .studentChecklistBody{display:none}
    .studentChecklistList{display:grid;gap:9px}
    .studentChecklistItem{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid #f1ddaa;border-radius:16px;background:#fff;box-shadow:0 6px 16px rgba(16,32,61,.04)}
    .studentChecklistItem input{margin-top:2px}
    .studentChecklistInfo{display:grid;gap:6px}
.studentChecklistTask{font-size:14px;font-weight:900;line-height:1.4;color:#10203d;word-break:break-word}
    .studentHighReminderStrip,.feeHighReminderStrip{display:none;margin:10px 0 12px;padding:12px 14px;border-radius:18px;border:1px solid #f5d2d2;background:linear-gradient(180deg,#fff7f7 0%,#fff1f1 100%);box-shadow:0 10px 24px rgba(180,35,24,.08)}
    .studentHighReminderStrip.show,.feeHighReminderStrip.show{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .studentClassUpdatesPanel{display:none;margin:6px 0 8px;border:1px solid #dbe5f2;border-radius:14px;background:#fff;box-shadow:0 8px 18px rgba(16,32,61,.06);overflow:hidden}
    .studentClassUpdatesPanel.show{display:block}
    .studentClassUpdatesHead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid #eef2f7;color:#10203d;font-size:12px;font-weight:950}
    .studentClassUpdatesHead span{font-size:9.5px;font-weight:900;color:#64748b;white-space:nowrap}
    .studentClassUpdatesList{display:grid;gap:0;max-height:min(330px,38vh);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
    .studentClassUpdateRow{display:grid;gap:2px;padding:7px 10px;border-bottom:1px solid #f1f5f9}
    .studentClassUpdateRow:last-child{border-bottom:none}
    .studentClassUpdateMsg{font-size:11px;font-weight:900;color:#10203d;line-height:1.25}
    .studentClassUpdateMeta{font-size:9.5px;font-weight:850;color:#64748b;line-height:1.2}
    .studentTeacherUnreadChatBanner{display:none;width:100%;margin:6px 0 10px;padding:7px 9px;min-height:38px;border:1px solid rgba(255,209,102,.72);border-radius:14px;background:linear-gradient(135deg,#10203d 0%,#0f766e 58%,#8a1952 100%);color:#fff;box-shadow:0 12px 26px rgba(16,32,61,.22),0 0 0 3px rgba(255,209,102,.16),inset 0 1px 0 rgba(255,255,255,.18);text-align:left;align-items:center;justify-content:space-between;gap:8px;flex-wrap:nowrap}
    .studentTeacherUnreadChatBanner.show{display:flex}
    .studentTeacherUnreadChatBannerText{min-width:0;font-size:12px;font-weight:950;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .studentTeacherUnreadChatBannerAction{white-space:nowrap;min-width:44px;text-align:center;border-radius:999px;background:#fff;color:#10203d;padding:6px 9px;font-size:11px;font-weight:950;line-height:1;box-shadow:0 5px 12px rgba(16,32,61,.18)}
.studentHighReminderCopy{min-width:0}
.studentHighReminderEyebrow{font-size:11px;font-weight:900;color:#b42318;letter-spacing:.08em;text-transform:uppercase}
.studentHighReminderTitle{font-size:15px;font-weight:900;color:#7a120d;line-height:1.35;word-break:break-word}
.studentHighReminderMeta{font-size:12px;font-weight:800;color:#8a4b46;margin-top:4px}
.studentHighReminderBtn{flex:0 0 auto;border:none;border-radius:12px;padding:11px 13px;background:#10203d;color:#fff;font-size:12px;font-weight:900;box-shadow:0 8px 18px rgba(16,32,61,.14)}
.homeworkCorrectionInline{padding:8px 10px;gap:8px}
.homeworkCorrectionInline .studentHighReminderEyebrow{font-size:10px}
.homeworkCorrectionInline .studentHighReminderTitle{font-size:13px;line-height:1.25}
.homeworkCorrectionInline .studentHighReminderMeta{font-size:11px;margin-top:2px}
.homeworkCorrectionInline .studentHighReminderBtn{padding:8px 9px;font-size:11px}
.studentHighReminderStrip.homeworkCorrectionInline.show,.feeHighReminderStrip.homeworkCorrectionInline.show{flex-direction:column;align-items:stretch;gap:8px}
.studentHighReminderInlineRow{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}
.studentHighReminderInlineRow+.studentHighReminderInlineRow{border-top:1px solid rgba(180,35,24,.12);padding-top:8px}
.homeworkCorrectionSingleLine{display:flex;align-items:center}
.homeworkCorrectionBlocker{position:fixed;inset:0;z-index:100060;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.48);backdrop-filter:blur(2px)}
.homeworkCorrectionBlockerCard{width:min(380px,92vw);border:1px solid #f5d2d2;border-radius:18px;background:#fff7f7;box-shadow:0 24px 60px rgba(16,32,61,.28);padding:18px;text-align:left}
.homeworkCorrectionBlockerTitle{margin-top:6px;font-size:20px;font-weight:950;line-height:1.25;color:#7a120d}
.homeworkCorrectionBlockerMeta{margin:8px 0 14px;font-size:13px;font-weight:850;line-height:1.35;color:#8a4b46}
.reminderSheet{max-width:560px}
.reminderHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.reminderHead .mhead{margin:0}
.reminderHeadActions{display:flex;align-items:center;gap:8px}
.reminderCountPill{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border-radius:999px;background:#10203d;color:#fff;font-size:13px;font-weight:900}
.reminderModalBody{display:grid;gap:12px}
.reminderPanel{border:1px solid #dfe7f1;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);padding:14px;box-shadow:0 10px 24px rgba(16,32,61,.05)}
.reminderPanelHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.reminderPanelTitle{font-size:17px;font-weight:900;color:#10203d}
.reminderPanelActions{display:flex;align-items:center;gap:8px}
.reminderTinyBtn{border:1px solid #d7e2ef;border-radius:12px;background:#fff;color:#10203d;padding:10px 12px;font-size:12px;font-weight:900}
.reminderTinyBtn.primary{background:#10203d;border-color:#10203d;color:#fff}
.reminderTinyBtn.soft{background:#edf7ff;border-color:#cfe4f6;color:#185b99}
.reminderEmpty{padding:14px;border:1px dashed #d6dfeb;border-radius:14px;background:#fbfdff;color:#64748b;font-size:13px;font-weight:800;text-align:center}
.reminderList{display:grid;gap:10px}
.reminderTaskCard{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:flex-start;padding:12px;border:1px solid #e4ebf3;border-radius:16px;background:#fff;box-shadow:0 8px 18px rgba(16,32,61,.04)}
.reminderCheck{width:22px;height:22px;margin-top:2px}
.reminderTaskBody{min-width:0;display:grid;gap:7px}
.reminderTaskTitle{font-size:15px;font-weight:900;color:#10203d;line-height:1.35;word-break:break-word}
.reminderTaskMeta{display:flex;flex-wrap:wrap;gap:6px}
.reminderChip{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;background:#edf2f8;color:#334155}
.reminderChip.high{background:#fdecec;color:#9a1f1a}
.reminderChip.admin{background:#fff4df;color:#8a4b00}
.reminderChip.self{background:#eef6ff;color:#1d4ed8}
.reminderChip.done{background:#e9f9ef;color:#166534}
.reminderTaskRowBtn{display:block;width:100%;text-align:left;border:none;background:none;padding:0}
.reminderTaskRowBtn:disabled{opacity:1}
.reminderTaskEditNote{font-size:11px;font-weight:800;color:#7b8794}
.reminderForm{display:grid;gap:10px}
.reminderField{display:grid;gap:6px}
.reminderField label{font-size:12px;font-weight:900;color:#334155}
.reminderInput,.reminderSelect{width:100%;padding:12px 13px;border:1px solid #d7e2ef;border-radius:13px;background:#fff;color:#10203d;font-size:14px;font-weight:800}
.reminderRow{display:grid;grid-template-columns:1fr 132px;gap:8px}
.reminderRow.triple{grid-template-columns:1fr 1fr 1fr}
.reminderScheduleList{display:grid;gap:8px}
.reminderScheduleRow{display:grid;grid-template-columns:1fr 132px auto;gap:8px;align-items:center}
.reminderScheduleRow.monthly{grid-template-columns:1fr 132px auto}
.reminderScheduleAdd{border:1px dashed #c9d7e8;border-radius:12px;background:#fbfdff;color:#10203d;padding:10px 12px;font-size:12px;font-weight:900}
.reminderSectionNote{font-size:12px;font-weight:800;color:#64748b}
.reminderTeacherFilterRow{display:flex;flex-wrap:wrap;gap:8px}
.reminderTeacherBtn{border:1px solid #d7e2ef;border-radius:999px;background:#fff;color:#10203d;padding:8px 12px;font-size:12px;font-weight:900}
.reminderTeacherBtn.on{background:#10203d;border-color:#10203d;color:#fff}
.reminderSplitMeta{display:flex;flex-wrap:wrap;gap:6px}
.reminderInlinePnlBtn{border:1px solid #c8dafc;border-radius:12px;background:#f4f8ff;color:#0f3b8c;padding:10px 12px;font-size:12px;font-weight:900}
    .studentChecklistMeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .studentChecklistDate{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#eef4ff;color:#10203d;font-size:10px;font-weight:900}
    .studentChecklistTeacher{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#10203d;color:#fff;font-size:10px;font-weight:900}
    .studentChecklistEmpty{padding:14px 12px;border:1px dashed #edcf97;border-radius:16px;background:rgba(255,255,255,.7);color:#8a5b00;font-size:13px;font-weight:800;line-height:1.5}
    .studentSectionCard{display:grid;gap:10px;padding:13px 14px;border:1px solid #dbe5f2;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 10px 22px rgba(16,32,61,.05)}
    .studentSectionHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .studentSectionHeadCopy{display:grid;gap:4px}
    .studentSectionEyebrow{font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#64748b}
    .studentSectionTitle{font-size:18px;font-weight:900;line-height:1.12;color:#10203d}
    .studentSectionHint{font-size:12px;font-weight:800;color:#64748b;line-height:1.45;text-align:right}
    .studentRejoinQuickRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
    .studentQuickChip{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 10px;border:1px solid #d7e2ef;border-radius:14px;background:#f8fbff;color:#10203d;font-size:12px;font-weight:900;box-shadow:0 4px 12px rgba(16,32,61,.04)}
    .studentQuickChip.on{background:linear-gradient(180deg,#10203d,#1d3557);color:#fff;border-color:#10203d;box-shadow:0 10px 22px rgba(16,32,61,.14)}
    .studentQuickChipCount{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e8efff;color:#10203d;font-size:10px;font-weight:900}
    .studentQuickChip.on .studentQuickChipCount{background:rgba(255,255,255,.18);color:#fff}
    .studentCustomRejoinWrap{display:none}
    .studentCustomRejoinWrap.show{display:grid}
    .studentDashboardSearch{margin-top:2px}
    .feeTaskAssignCard{display:none;gap:10px;padding:14px 14px 13px;border:1px solid #dbe5f2;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 10px 24px rgba(16,32,61,.05);margin-top:12px}
    .feeTaskAssignCard.show{display:grid}
    .feeTaskAssignGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .feeTaskAssignField{display:grid;gap:6px}
    .feeTaskAssignField label{font-size:12px;font-weight:900;color:#334155}
    .feeTaskAssignInput,.feeTaskAssignSelect{width:100%;padding:12px 13px;border:1px solid #d7e2ef;border-radius:13px;background:#fff;color:#10203d;font-size:14px;font-weight:800}
    .feeTaskAssignActionRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
    .feeTaskAssignBtn{min-width:116px;padding:12px 14px;border:none;border-radius:13px;background:#10203d;color:#fff;font-size:13px;font-weight:900;box-shadow:0 8px 18px rgba(16,32,61,.12)}
    .feeTaskAssignNote{font-size:12px;font-weight:800;color:#64748b;line-height:1.5}
    .studentStatusBar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
    .studentStatusBtn,.studentStatusAuxBtn{min-height:56px;padding:11px 12px;border:1px solid #d7e2ef;border-radius:16px;background:#f8fbff;color:#10203d;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;font-weight:900;box-shadow:0 6px 14px rgba(16,32,61,.05)}
    .studentStatusBtn.on{background:linear-gradient(180deg,var(--brand),var(--brand2));color:#fff;border-color:#7d0000;box-shadow:0 8px 18px rgba(149,0,0,.18)}
    .studentStatusLabel{display:block;line-height:1.15;min-width:0;text-align:left}
    .studentStatusCount{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#e8efff;color:#10203d;font-size:11px;font-weight:900;line-height:1}
    .studentStatusBtn.on .studentStatusCount{background:rgba(255,255,255,.18);color:#fff}
    .studentStatusAuxBtn{background:#fff7e8;border-color:#f1ddaa;color:#7a4c00}
    .studentStatusAuxBtn .studentStatusCount{background:#10203d;color:#fff}
    .studentTopFilterControls{gap:10px}
    .studentPrimaryStatusBar{grid-template-columns:repeat(3,minmax(0,1fr))}
    .studentSecondaryStatusBar{grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr)}
    .studentStatusBtn{min-height:76px;padding:16px 14px;font-size:18px;border-radius:20px;box-shadow:0 12px 26px rgba(16,32,61,.1)}
    .studentStatusBtn .studentStatusCount{min-width:34px;height:34px;font-size:14px}
    .studentMiniFilterBtn{min-height:58px;padding:12px 14px;border:1px solid #e2d3a8;border-radius:16px;background:#fff7e8;color:#7a4c00;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;font-weight:900;box-shadow:0 8px 16px rgba(126,92,20,.08)}
    .studentMiniFilterBtn .studentStatusCount{background:#10203d;color:#fff}
    .studentMiniShareBtn{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:0;border:1px solid #d7e2ef;border-radius:16px;background:#ffffff;color:#10203d;font-size:20px;font-weight:900;box-shadow:0 8px 16px rgba(16,32,61,.08)}
    .studentSpecialBtn{background:#f8fbff;border-color:#d7e2ef;color:#10203d}
    .studentSpecialBtn .studentStatusCount{background:#e8efff;color:#10203d}
    .studentStatusAuxBtn.on,.studentSpecialBtn.on,.studentMiniFilterBtn.on{background:linear-gradient(180deg,#10203d,#1d3557);border-color:#10203d;color:#fff;box-shadow:0 10px 22px rgba(16,32,61,.12)}
    .studentStatusAuxBtn.on .studentStatusCount,.studentSpecialBtn.on .studentStatusCount,.studentMiniFilterBtn.on .studentStatusCount{background:rgba(255,255,255,.18);color:#fff}
    .studentStatusIcon{display:inline-flex;align-items:center;justify-content:center;margin-right:6px}
    .studentExpectedRejoinPanel{display:none}
    .studentExpectedRejoinPanel.show{display:grid}
    .studentRangeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .studentRangeField{display:grid;gap:6px}
    .studentRangeLabel{font-size:12px;font-weight:900;color:#64748b}
    .studentRangeActions{display:flex;justify-content:flex-end}
    .studentCompactActionRow{margin-top:0}
    .studentCompactActionRow .feeFilterBtn{min-height:50px;background:#ffffff;border-color:#d7e2ef;color:#10203d;box-shadow:0 6px 14px rgba(16,32,61,.05);font-size:13px}
    .studentCompactActionRow .feeFilterBtn .count{color:inherit;opacity:.82}
#studentPauseDueBtn{background:#ffffff;border-color:#d7e2ef;color:#10203d}
#studentPauseDueBtn.on{background:linear-gradient(180deg,#10203d,#1d3557);border-color:#10203d;color:#fff;box-shadow:0 8px 18px rgba(16,32,61,.16)}
#studentPauseDueBtn.on .count{color:inherit;opacity:.95}
#pauseDueSuggestBox{margin-top:10px;display:grid;gap:8px}
.pauseSuggestToggleBtn{width:100%;border:1px solid #d9e3ef;border-radius:12px;background:#f8fbff;color:#10203d;padding:11px 12px;font-size:13px;font-weight:900;text-align:left}
.pauseSuggestToggleBtn.on{background:#10203d;border-color:#10203d;color:#fff}
.pauseSuggestPanel{display:none;padding:10px 12px;border:1px solid #e2e9f3;border-radius:12px;background:#fbfdff}
.pauseSuggestDayRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:6px 0 8px}
.pauseSuggestDayBtn{border:1px solid #d8e1ed;border-radius:10px;background:#fff;color:#334155;font-size:12px;font-weight:800;padding:9px 6px}
.pauseSuggestDayBtn.on{background:#10203d;border-color:#10203d;color:#fff}
.pauseSuggestMeta{display:grid;gap:6px;margin-top:8px}
.pauseSuggestMetaRow{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;font-weight:900;color:#5a6980}
.pauseSuggestMetaValue{color:#10203d}
    #studentEarningBtn{background:linear-gradient(180deg,#effaf1 0%,#def6e5 100%);border-color:#c5e8d0;color:#0f5c34;box-shadow:0 6px 14px rgba(15,92,52,.08)}
    .studentCompactActionRow .feeFilterBtn.on{background:linear-gradient(180deg,#10203d,#1d3557);border-color:#10203d;color:#fff;box-shadow:0 8px 18px rgba(16,32,61,.16)}
    .studentCompactActionRow .feeFilterBtn.on .count{opacity:.95}
    .quickCounterSheet{height:min(92vh,760px)}
    .quickCounterList{display:grid;gap:10px;margin-top:8px}
    .quickCounterRow{display:grid;gap:8px;padding:12px 13px;border:1px solid #dbe5f2;border-radius:18px;background:#fff;box-shadow:0 8px 18px rgba(16,32,61,.05)}
    .quickCounterRow.done{background:linear-gradient(180deg,#f8fbff 0%,#f3f7fd 100%)}
    .quickCounterRow.muted .quickCounterName,.quickCounterRow.muted .quickCounterBadgeNote{color:#94a3b8}
    .quickCounterTop{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .quickCounterName{font-size:18px;font-weight:900;line-height:1.15;color:#10203d}
    .quickCounterRow.done .quickCounterName{text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:#94a3b8;opacity:.7}
    .quickCounterTime{font-size:15px;font-weight:900;color:#111827;white-space:nowrap}
    .quickCounterHeader{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .quickCounterHeadDate{font-size:12px;font-weight:900;color:#64748b;white-space:nowrap}
    .quickCounterCounterRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .quickCounterCircle,.quickCounterSquare{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 12px;font-size:16px;font-weight:900;line-height:1}
    .quickCounterCircle{border:none;border-radius:999px;color:#fff;box-shadow:0 8px 16px rgba(16,32,61,.10)}
    .quickCounterCircle.missed{background:#8b1c1c}
    .quickCounterCircle.covered{background:#166534}
    .quickCounterCircle.pause{background:#f4c17a;color:#111827}
    .quickCounterSquare{border:1px solid #d7e2ef;border-radius:10px;background:#fff;color:#111827}
    .quickCounterNoteBtn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;min-width:42px;height:42px;padding:0;border:1px solid #d7e2ef;border-radius:10px;background:#10203d;color:#fff;line-height:1;box-shadow:0 6px 12px rgba(16,32,61,.10)}
    .quickCounterNoteBtn .noteActionIcon{font-size:18px;line-height:1}
    .quickCounterNoteBtn .badge{position:absolute;top:-6px;right:-6px;z-index:2}
    .quickCounterCircle:disabled{opacity:.45;box-shadow:none}
    .quickCounterBadgeNote{font-size:11px;font-weight:900;color:#64748b}
    .quickCounterEmpty{padding:18px 12px;border:1px dashed #d7e2ef;border-radius:16px;background:#f8fbff;color:#64748b;font-size:14px;font-weight:800;text-align:center}
    .quickCounterResolveSheet{height:auto;max-height:70vh}
    .quickCounterResolveBody{font-size:15px;font-weight:800;line-height:1.6;color:#10203d;margin-top:4px}
    .quickCounterResolveActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
    .missedFollowupSheet{height:auto;max-height:78vh}
    .missedFollowupBody{display:grid;gap:10px;margin-top:6px;color:#10203d}
    .missedFollowupStudent{font-size:16px;font-weight:950;line-height:1.25}
    .missedFollowupText{border:1px solid #f2d7df;border-radius:16px;background:linear-gradient(135deg,#fff,#fff7fb);padding:12px;font-size:13px;font-weight:850;line-height:1.5;color:#5b4050;white-space:pre-line}
    .missedFollowupActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
    .missedFollowupActions button{min-height:48px;border-radius:999px;font-size:15px;font-weight:950}
    .missedFollowupActions .yes{border:0;background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff;box-shadow:0 10px 22px rgba(20,184,166,.18)}
    .missedFollowupActions .no{border:1.5px solid #f2c6d6;background:#fff;color:#8a1952}
    .studentUtilityStrip.studentSortOnly{margin-top:0}
    .feeTimetableTopBar{display:flex;justify-content:flex-end;margin-bottom:8px}
    .feeTimetableTopClose{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:999px;background:#eef2f7;color:#64748b}
    .feeTimetableTopClose svg{display:block;width:14px;height:14px}
    .teacherEarningTotalCard{padding:18px 16px;border:1px solid #cfe9d8;border-radius:18px;background:linear-gradient(180deg,#f4fff6 0%,#e8faee 100%);box-shadow:0 10px 24px rgba(15,92,52,.08)}
    .teacherEarningTotalValue{font-size:28px;font-weight:900;line-height:1.05;color:#0f5c34}
    .teacherEarningRows{display:grid;gap:10px}
    .teacherEarningRow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:13px 14px;border:1px solid #d8efdf;border-radius:16px;background:linear-gradient(180deg,#fbfffc 0%,#eefbf2 100%);box-shadow:0 8px 18px rgba(15,92,52,.05)}
    .teacherEarningDate{font-size:13px;font-weight:900;color:#47635a;white-space:nowrap}
    .teacherEarningType{font-size:14px;font-weight:900;color:#10203d;min-width:0}
    .teacherEarningAmount{font-size:16px;font-weight:900;color:#0f5c34;white-space:nowrap}
    .row5{grid-template-columns:repeat(5,1fr)}
    .stats{grid-template-columns:repeat(3,1fr);margin-top:10px}
    .slots{grid-template-columns:repeat(4,minmax(0,1fr))}
    .cycleGrid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}
    .cycleItem{position:relative}
    .cycleOldBtn{position:absolute;top:6px;left:6px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid rgba(16,32,61,.12);border-radius:8px;background:rgba(255,255,255,.9);color:#10203d;font-size:14px;font-weight:900;line-height:1;box-shadow:0 3px 8px rgba(16,32,61,.08)}
    .cycleOldBtn.on{background:#10203d;color:#fff;border-color:#10203d}
    .feeActionGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .btn,.today,.shareBtn,.saveBtn,.sendBtn,.close,.notesBtn{padding:14px}
    .btn{background:var(--soft);font-size:14px}
    .today{background:linear-gradient(180deg,var(--teal),var(--teal2));color:#fff;font-size:15px}
    .meta{margin:10px 2px 0;font-size:14px}
    .fieldLabel{font-size:13px;font-weight:900;color:#334155;margin-top:2px}
    .rejoinField{display:grid;gap:6px}
    .rejoinInput{width:100%;padding:13px 14px;border:2px solid #d6e2f0;border-radius:14px;background:#fff;color:#10203d;font-size:15px;font-weight:900;box-shadow:0 6px 14px rgba(16,32,61,.05)}
    .rejoinInput::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.88}
    .rejoinInput.on{border-color:#167d76;box-shadow:0 0 0 2px rgba(22,125,118,.12),0 8px 16px rgba(16,32,61,.06)}
    .list{display:grid;gap:12px;margin-top:12px}
    .listLoadMoreCard{padding:10px;text-align:center}
    .listLoadMoreBtn{width:100%;padding:13px 14px;border:none;border-radius:14px;background:#10203d;color:#fff;font-size:14px;font-weight:900}
    .listLoadMoreMeta{margin-top:6px;font-size:11px;font-weight:800;color:#64748b}
    .card{position:relative;padding:13px;box-shadow:0 10px 28px rgba(16,32,61,.05)}
    .card.activeCard{background:#fff;color:var(--txt)}
    .card.activeCard .teacher,.card.activeCard .s .t{color:var(--muted)}
    .card.activeCard .s{background:#f8fafc;border-color:var(--line)}
    .card.activeCard .id{background:#e8f0ff;color:#10203d}
    .studentStatusPill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:900;line-height:1;background:#e5e7eb;color:#374151}
    .studentStatusPill.pausedue{background:#dcfce7;color:#166534}
    .studentPauseDueCompact{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#f2f6fb;border:1px solid #d6dfeb;color:#526070;font-size:11px;font-weight:900;line-height:1}
    .head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
    .nameRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .name{font-size:22px;font-weight:900;line-height:1.2}
    #studentMainView .card .name{font-size:20px;line-height:1.16}
    .teacher{font-size:13px;margin-top:4px}
    .studentSlotLevelLine{margin-top:3px;font-size:11px;font-weight:900;color:#64748b;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .studentCardLastUpdate{margin-top:2px;font-size:10px;font-weight:900;color:#64748b;line-height:1.2;letter-spacing:.01em}
    .studentCardRequestState{margin-top:2px;font-size:10px;font-weight:900;color:#0f766e;line-height:1.2;letter-spacing:.01em}
    .teacher .agePill{display:inline-flex;align-items:center;margin-left:8px;padding:3px 8px;border-radius:999px;background:#eef4ff;color:#10203d;font-size:11px;font-weight:900;line-height:1}
    .headRight{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
    .id{font-size:13px;font-weight:900;background:#e8f0ff;border-radius:999px;padding:7px 12px;white-space:nowrap}
    .iconBtn,.miniIconBtn{border:none;background:#f3f6fb;border-radius:999px;padding:8px 12px;font-size:14px;font-weight:900;display:inline-flex;align-items:center;gap:6px}
    .miniIconBtn{padding:9px 11px;font-size:18px}
    .studentPinBtn{width:34px;height:34px;padding:0;justify-content:center;font-size:14px;line-height:1;color:#64748b;background:#f6f8fc}
    .studentPinBtn .studentPinGlyph{font-size:14px;line-height:1}
    .studentPinBtn.pinned{background:#fff3cf;color:#8a5b00;box-shadow:inset 0 0 0 1px #edd28a}
    .noteActionIcon{font-size:20px;line-height:1}
    .badge{min-width:20px;height:20px;border-radius:999px;background:#10203d;color:#fff;font-size:11px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
    .dot{width:12px;height:12px;border-radius:50%;display:inline-block}
    .dot.active{background:var(--active)}
    .dot.inactive{background:var(--inactive)}
    .newBadge{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:999px;background:#fff8e7;border:1px solid #edd28a;color:#8a5b00;font-size:10px;font-weight:900;line-height:1;letter-spacing:.04em}
    .suspendBadge{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:999px;background:#fde7e7;border:1px solid #efb4b4;color:#8b1c1c;font-size:11px;font-weight:900;line-height:1}
    .s{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:9px;text-align:center}
    .s .n{font-size:20px;font-weight:900;line-height:1}
    .s .t{font-size:12px;margin-top:3px}
    .pauseBox{margin-top:10px;padding:10px;border:1px solid #f6d7aa;border-radius:12px;background:#fff7ed;font-size:14px;font-weight:700;line-height:1.5;color:#10203d}
    .leftArchiveGrid{display:grid;grid-template-columns:1fr;gap:7px;margin-top:10px}
    .leftArchiveLine{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #e3eaf5;border-radius:8px;background:#f8fbff;font-size:12px;font-weight:800;color:#10203d;line-height:1.35}
    .leftArchiveLine span:first-child{color:#5a6980;white-space:nowrap}
    .leftArchiveLine span:last-child{text-align:right;overflow-wrap:anywhere}
    .leftActionRow{display:grid;grid-template-columns:1fr 108px;gap:8px;margin-top:10px}
    .leftActionRow .notesBtn{margin-top:0}
    .leftExportBtn{border:none;border-radius:8px;background:#eef3ff;color:#10203d;font-size:14px;font-weight:900}
    .cycleWrap{margin-top:10px;padding-top:10px;border-top:1px dashed #d7dfec}
.cycleItem{border-radius:12px;padding:10px 8px;text-align:center;border:1px solid rgba(0,0,0,.04)}
.cycleItem.paid{background:#e7f7ec;color:#0f5c34}
.cycleItem.unpaid{background:#fdecec;color:#8b1c1c}
.cycleItem.muted{background:#e5e7eb;color:#475569}
.cycleItem.upcoming{background:#fdecec;color:#8b1c1c}
    .cycleMonth{font-size:12px;font-weight:900;letter-spacing:.02em}
    .cycleValue{font-size:13px;font-weight:900;line-height:1.35;margin-top:4px}
    .feeCycleMeta{font-size:12px;font-weight:900;line-height:1.35;margin-top:4px;opacity:.92}
    .feeCycleCashfreeMeta{display:grid;gap:1px;font-size:10px;line-height:1.2;max-width:100%;min-width:0;overflow:hidden}
    .feeCycleCashfreeMetaLine{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
    .feeCyclePaymentBreakdown{display:grid;gap:1px;width:100%;margin-top:4px;font-size:9px;font-weight:900;line-height:1.15;opacity:.92}
    .monthIndicators{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:8px}
    .monthDot{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:900}
    .monthDot.missed{background:#c62828;color:#fff}
    .monthDot.covered{background:#f4cb42;color:#111}
    .monthDot.pausecover{background:#d9f0ff;color:#0f3b63}
    .monthDot.remaining{background:#4b5563;color:#fff}
    .cyclePaymentHistoryWrap{padding-top:10px}
    .cyclePaymentHistoryGrid{margin-top:0}
    .cyclePaymentCardSlot{position:relative;min-width:0}
    .cyclePaymentCardSlot .studentProfilePaymentCard{height:100%;box-sizing:border-box}
    .cyclePaymentCardSlot .cycleOldBtn{z-index:2;top:5px;left:5px;width:24px;height:24px;border-radius:999px;font-size:12px}
    .studentCyclePaymentHistoryGrid .studentProfilePaymentAmount{display:none}
    .notesBtn{margin-top:10px;width:100%;background:#10203d;color:#fff;font-size:16px}
    .checker{margin-top:18px;padding:14px;display:grid;gap:10px;box-shadow:0 12px 30px rgba(16,32,61,.06)}
    .checkerTitle{font-size:18px;font-weight:900}
    .checker label{font-size:14px;font-weight:800;color:#334155}
    .checkerActions{display:flex;gap:8px;flex-wrap:wrap}
    .slotbtn{padding:10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;font-weight:900}
    .slotbtn.on{background:linear-gradient(180deg,var(--teal),var(--teal2));color:#fff;border-color:var(--teal2)}
    .warn{display:none;font-size:12px;line-height:1.45;color:var(--warn);font-weight:900;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:10px}
    .listSmall{font-size:16px;line-height:1.75;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:14px;max-height:360px;overflow:auto}
    .studentCalcHub{display:none;gap:12px}
    .studentCalcHub.show{display:grid}
    .studentCalcHubHead{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .studentCalcClose{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:999px;background:#eef2f7;color:#64748b}
    .studentCalcClose svg{display:block;width:15px;height:15px}
    .studentCalcTabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .studentCalcTab{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#f8fafc;color:#10203d;font-size:14px;font-weight:900}
    .studentCalcTab.on{background:#10203d;color:#fff;border-color:#10203d;box-shadow:0 10px 20px rgba(16,32,61,.16)}
    .studentCalcPane{display:none;gap:10px}
    .studentCalcPane.show{display:grid}
    .studentCalcModeTitle{font-size:14px;font-weight:900;color:#64748b;letter-spacing:.06em;text-transform:uppercase}
    .studentMonthLogBlock{margin-top:0;padding:0;display:none;gap:10px;box-shadow:none;background:transparent;border:none}
    .studentMonthLogHead{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .studentMonthLogTop{display:grid;gap:10px}
    .studentMonthLogMonthRow{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
    .studentMonthLogMonthRow input{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:12px;font-size:15px;font-weight:800;background:#fff}
    .studentMonthLogTeacherRow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
    .studentMonthLogCards{display:grid;gap:10px}
    .studentMonthLogCard{border:1px solid #e3e9f4;border-radius:16px;background:#fff;box-shadow:0 6px 16px rgba(16,32,61,.05);overflow:hidden}
    .studentMonthLogCard.missed{background:linear-gradient(180deg,#fff8f8 0%,#fffefe 100%);border-color:#f3d3d3}
    .studentMonthLogCard.covered{background:linear-gradient(180deg,#f5fff8 0%,#ffffff 100%);border-color:#cae8d3}
    .studentMonthLogCard.pausecover{background:linear-gradient(180deg,#f3fbff 0%,#ffffff 100%);border-color:#cde6f6}
    .studentMonthLogCard summary{list-style:none;cursor:pointer;padding:12px 13px;display:grid;gap:8px}
    .studentMonthLogCard summary::-webkit-details-marker{display:none}
    .studentMonthLogCardTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .studentMonthLogName{font-size:16px;font-weight:900;line-height:1.2;color:#10203d;word-break:break-word}
    .studentMonthLogMeta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;font-weight:900;color:#64748b}
    .studentMonthLogTeacherChip,.studentMonthLogCountBadge,.studentMonthLogHintChip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px}
    .studentMonthLogTeacherChip{background:#eef4ff;border:1px solid #d8e3f2;color:#10203d}
    .studentMonthLogCountBadge{min-width:64px;background:#10203d;color:#fff}
    .studentMonthLogCard.missed .studentMonthLogCountBadge{background:#a30d11}
    .studentMonthLogCard.covered .studentMonthLogCountBadge{background:#0f7a43}
    .studentMonthLogCard.pausecover .studentMonthLogCountBadge{background:#0f5c84}
    .studentMonthLogHintChip{background:#f8fafc;border:1px solid #e2e8f0;color:#64748b}
    .studentMonthLogBody{padding:0 13px 13px;display:grid;gap:6px}
    .studentMonthLogDateLine{font-size:13px;font-weight:800;line-height:1.45;color:#24324d;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.78);border:1px solid rgba(219,228,240,.9)}
    .studentMonthLogCard.missed .studentMonthLogDateLine{background:#fffdfd}
    .studentMonthLogCard.covered .studentMonthLogDateLine{background:#fbfffd}
    .studentMonthLogCard.pausecover .studentMonthLogDateLine{background:#fafdff}
    .studentMonthLogEmpty{padding:16px 12px;border:1px dashed #d7dfec;border-radius:14px;background:#fbfdff;font-size:14px;font-weight:800;color:#64748b;text-align:center}
    .appLoadOverlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(237,243,255,.58);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:88;pointer-events:auto}
    .appLoadOverlay.show{display:flex}
    .appLoadIndicator{display:grid;justify-items:center;gap:10px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.96);border:1px solid #d8e3f0;box-shadow:0 16px 32px rgba(16,32,61,.12)}
    .appLoadSpinner{width:34px;height:34px;border-radius:999px;border:3px solid #dbe4f0;border-top-color:#10203d;animation:studentSpin .8s linear infinite}
    .appLoadText{font-size:13px;font-weight:900;color:#10203d;white-space:nowrap}
    .localLoadHost{position:relative}
    .localLoadHost.localLoadBusy{pointer-events:none}
    .localLoadMask{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(237,243,255,.46);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);border-radius:18px;z-index:18}
    .localLoadHost.localLoadBusy .localLoadMask{display:flex}
    .localLoadCard{display:grid;justify-items:center;gap:8px;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.96);border:1px solid #d8e3f0;box-shadow:0 10px 24px rgba(16,32,61,.10)}
    .localLoadSpinner{width:26px;height:26px;border-width:3px}
    .localLoadText{font-size:12px;font-weight:900;color:#10203d;white-space:nowrap}
    #studentAlertModal{z-index:90}
    .studentAlertCard{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,420px);max-height:min(82vh,620px);overflow:auto;background:#fff;border-radius:22px;padding:16px;display:grid;gap:12px;box-shadow:0 22px 44px rgba(10,16,28,.24)}
    .studentAlertHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .studentAlertTone{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:900;border:1px solid transparent}
    .studentAlertTone.high{background:#fdecec;border-color:#efc8c8;color:#8b1c1c}
    .studentAlertTone.repeat{background:#fff6db;border-color:#f1dda0;color:#8a6400}
    .studentAlertTone.birthday{background:#e8f7ee;border-color:#cfe9d8;color:#0f5c34}
    .studentAlertTone.admission{background:#edf7ff;border-color:#cfe4f6;color:#185b99}
    .studentAlertTone.exam{background:#fff5ea;border-color:#f0d0a9;color:#8a5300}
    .studentAlertTone.rejoin{background:#edf4ff;border-color:#d2def6;color:#184f99}
    .studentAlertTone.feedback{background:#fff8e8;border-color:#f0d9a5;color:#8a6400}
    .studentAlertTone.timetable{background:#edf4ff;border-color:#d2def6;color:#184f99}
    .studentAlertStep{font-size:12px;font-weight:900;color:#64748b;white-space:nowrap}
    .studentAlertHero{display:grid;justify-items:center;gap:8px}
    .studentAlertEmoji{font-size:34px;line-height:1}
    .studentAlertEmoji.birthday{font-size:52px}
    .studentAlertTitle{font-size:24px;font-weight:900;line-height:1.1;color:#10203d}
    .studentAlertMeta{font-size:12px;font-weight:900;color:#64748b}
    .studentAlertDetail{font-size:17px;font-weight:900;line-height:1.35;color:#10203d}
    .studentAlertHelper{font-size:14px;font-weight:800;line-height:1.5;color:#475569;padding:10px 12px;border-radius:14px;background:#f8fbff;border:1px solid #e2e8f0}
    .studentAlertActionBtn{min-height:56px;font-size:18px}
    .studentAlertMsg{min-height:20px;font-size:13px;font-weight:800;text-align:center;color:#b42318}
    .studentAlertMsg.pending{color:#475569}
    .alertManagerTabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .alertManagerTabBtn{border:1px solid #d9e4f1;border-radius:16px;background:#f8fbff;color:#10203d;padding:14px 14px;font-size:16px;font-weight:900}
    .alertManagerTabBtn.on{background:linear-gradient(180deg,var(--brand),var(--brand2));border-color:#7d0000;color:#fff;box-shadow:0 8px 18px rgba(149,0,0,.18)}
    .alertManagerToolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:8px}
    .alertManagerMiniBtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d9e4f1;border-radius:999px;background:#fff;color:#10203d;padding:12px 16px;font-size:14px;font-weight:900}
    .alertManagerMiniBtn.primary{background:linear-gradient(180deg,#10203d,#0d1a31);border-color:#10203d;color:#fff}
    .alertManagerMiniBtn:disabled{opacity:.72}
    .alertManagerComposer{display:grid;gap:14px;padding:16px;border:1px solid #d9e4f1;border-radius:20px;background:#f8fbff}
    .alertManagerGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .alertManagerField{display:grid;gap:6px}
    .alertManagerField label{font-size:14px;font-weight:900;color:#334155}
    .alertManagerComposer input,.alertManagerComposer select,.alertManagerComposer textarea{width:100%;padding:14px 14px;border:1.5px solid #d9e4f1;border-radius:14px;background:#fff;font-size:15px;font-weight:900;color:#10203d}
    .alertManagerComposer textarea{min-height:78px;resize:none}
    .alertManagerList{display:grid;gap:10px;margin-top:10px}
    .alertRuleCard,.alertLogCard{padding:15px 16px;border:1px solid #dbe5f2;border-radius:18px;background:#fff;box-shadow:0 8px 20px rgba(16,32,61,.05)}
    .alertRuleHead,.alertLogHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .alertRuleTitle,.alertLogTitle{font-size:17px;font-weight:900;color:#10203d;line-height:1.35}
    .alertRuleMeta,.alertLogMeta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px;font-size:12px;font-weight:900;color:#5a6980}
    .alertRuleChip{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;background:#eef3ff;border:1px solid #d9e4f1;color:#10203d}
    .alertRuleChip.off{background:#f3f4f6;border-color:#e5e7eb;color:#6b7280}
    .alertRuleHelper{margin-top:7px;font-size:12px;font-weight:800;color:#475569;line-height:1.45;white-space:pre-wrap;word-break:break-word}
    .alertLogRow{margin-top:6px;font-size:12px;font-weight:800;color:#475569;line-height:1.5}
    .alertManagerEmpty{padding:16px 10px;text-align:center;font-size:13px;font-weight:800;color:#64748b}
    .alertManagerSectionTitle{margin-top:6px;font-size:13px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#516173}
    .alertManagerSectionNote{margin-top:4px;font-size:12px;font-weight:800;color:#5e6d82;line-height:1.45}
    .alertManagerActionRow{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
    .alertManagerField.wide{grid-column:1/-1}
    .alertManagerComposer input[readonly]{background:#eef3ff;color:#64748b}
    .alertManagerInlineNote{font-size:11px;font-weight:800;color:#7b8798}
    .teacherManagerList{display:grid;gap:10px;margin-top:10px}
    .teacherManagerCard{border:1px solid #d9e4f1;border-radius:8px;background:#fff;padding:12px;display:grid;gap:8px}
    .teacherManagerHead{display:flex;align-items:center;justify-content:space-between;gap:8px}
    .teacherManagerName{font-size:16px;font-weight:900;color:#10203d}
    .teacherManagerMeta{display:flex;flex-wrap:wrap;gap:6px}
    .teacherManagerChip{display:inline-flex;align-items:center;border-radius:999px;background:#eef4fb;color:#10203d;padding:5px 8px;font-size:11px;font-weight:900}
    .teacherManagerChip.off{background:#fff1f2;color:#9f1239}
    .teacherManagerGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .teacherManagerField{display:grid;gap:6px}
    .teacherManagerField.wide{grid-column:1/-1}
    .teacherManagerField label{font-size:13px;font-weight:900;color:#334155}
    .teacherManagerField input,.teacherManagerField textarea{width:100%;padding:12px 12px;border:1.5px solid #d9e4f1;border-radius:8px;background:#fff;font-size:14px;font-weight:800;color:#10203d}
    .teacherManagerField textarea{min-height:70px;resize:none}
    .teacherManagerField input[readonly]{background:#eef3ff;color:#64748b}
    .alertScheduleDays{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
    .alertDayBtn{display:inline-flex;align-items:center;justify-content:center;padding:11px 8px;border:1px solid #d9e4f1;border-radius:12px;background:#fff;color:#10203d;font-size:13px;font-weight:900}
    .alertDayBtn.on{background:#10203d;border-color:#10203d;color:#fff}
    .alertDateList{display:grid;gap:8px}
    .alertDateRow{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center}
    .alertDateRemove{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #d9e4f1;border-radius:12px;background:#fff;color:#7b8798;font-size:18px;font-weight:900}
    .alertDateAddBtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 12px;border:1px dashed #c7d6ea;border-radius:12px;background:#fff;color:#10203d;font-size:13px;font-weight:900}
    .modal{position:fixed;inset:0;background:rgba(10,16,28,.58);display:none;z-index:60}
    @keyframes studentSpin{to{transform:rotate(360deg)}}
    .sheet{position:absolute;left:0;right:0;bottom:0;height:95vh;background:#fff;border-radius:18px 18px 0 0;padding:14px;display:flex;flex-direction:column;overflow:auto;overflow-x:hidden}
    html.protivaIosNativeShell .modal>.sheet{padding-top:calc(14px + var(--protiva-safe-top))}
    .mhead{font-size:22px;font-weight:900;margin-bottom:10px}
    .form,.notesTop,.composer{display:grid;gap:10px}
    .form label{font-size:15px;font-weight:800;color:#334155}
    .form textarea{resize:none;height:92px}
    .counter{display:flex;align-items:center;gap:10px}
    .cbtn{width:48px;height:48px;border:none;border-radius:12px;background:#d9dce4;font-size:22px;font-weight:900}
    .cval{min-width:40px;text-align:center;font-size:20px;font-weight:900}
    .saveBtn{background:linear-gradient(180deg,var(--teal),var(--teal2));color:#fff;font-size:22px;min-height:60px;width:100%}
    .saveBtn.verifiedSaving,.saveBtn.verifiedVerifying{position:relative;overflow:hidden}
    .saveBtn.verifiedSaving::after,.saveBtn.verifiedVerifying::after{content:"";position:absolute;inset:-45%;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.42) 50%,transparent 65%);animation:verifiedSaveShine 1.15s linear infinite;pointer-events:none}
    .saveBtn.verifiedVerifying{background:linear-gradient(180deg,#0f766e,#0f5f59)}
    .saveBtn.verifiedSaved{background:linear-gradient(180deg,#22c55e,#15803d)!important;color:#fff}
    @keyframes verifiedSaveShine{0%{transform:translateX(-35%) rotate(8deg)}100%{transform:translateX(35%) rotate(8deg)}}
    .close{background:#e5e7eb;font-size:17px}
    .monthBar{display:flex;gap:8px;overflow:auto;padding-bottom:2px}
    .monthChip{border:none;background:#edf2f8;border-radius:999px;padding:10px 14px;font-size:15px;font-weight:900;white-space:nowrap}
    .monthChip.on{background:#10203d;color:#fff}
    .chatWrap{margin-top:4px;flex:1;background:linear-gradient(180deg,var(--chat-bg),#ecf8f0);border-radius:16px;padding:18px 12px;overflow:auto;min-height:420px;border:1px solid #c5e0cf}
    .chatRow{display:flex;justify-content:flex-start;margin-bottom:12px;padding-left:6px}
    .bubble{max-width:92%;border-radius:16px;padding:13px 15px;box-shadow:0 4px 12px rgba(16,32,61,.08);background:var(--chat)}
    .bubbleMeta{font-size:14px;color:#526070;font-weight:800;margin-bottom:6px}
    .bubbleText{font-size:18px;line-height:1.72;font-weight:700;white-space:pre-wrap;word-break:break-word}
    .noteThumbBtn{display:block;width:100%;max-width:320px;margin-top:12px;padding:0;border:none;background:transparent;text-align:left;cursor:pointer}
    .noteThumbBlock{display:grid;gap:7px;width:100%;max-width:320px;margin-top:12px}
    .noteThumbBlock .noteThumbBtn{max-width:none;margin-top:0}
    .noteThumbFrame{position:relative;width:100%;min-height:120px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 8px 18px rgba(16,32,61,.08)}
    .noteThumbImg{display:block;width:100%;height:auto;max-height:360px;object-fit:contain;background:#fff}
    .noteThumbFallback{display:none;width:100%;min-height:160px;align-items:center;justify-content:center;padding:14px;text-align:center;font-size:14px;font-weight:800;color:#617084;background:linear-gradient(180deg,#f8fafc,#eef2f7)}
    .noteThumbBtn.broken .noteThumbFallback{display:flex}
    .noteThumbMeta{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;font-weight:900;color:#5f6f84}
    .noteThumbMetaChip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#eef3fb;border:1px solid #d8e3f2}
    .noteDownloadBtn{width:100%;min-height:36px;border:1px solid #cfd9e8;border-radius:8px;background:#f8fbff;color:#10203d;font-size:12px;font-weight:900}
    .notePreviewSheet{width:min(96vw,920px);padding:14px 14px 16px;border-radius:24px}
    .notePreviewHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
    .notePreviewTitle{font-size:18px;font-weight:900;color:#10203d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .notePreviewActions{display:flex;align-items:center;gap:10px;flex-shrink:0}
    .notePreviewIconBtn,.notePreviewClose{width:42px;height:42px;border:none;border-radius:999px;background:#eef3fb;color:#4f5d70;display:inline-flex;align-items:center;justify-content:center}
    .notePreviewIconBtn svg{display:block;width:18px;height:18px;stroke:currentColor}
    .notePreviewIconBtn[disabled]{opacity:.45}
    .notePreviewClose{font-size:24px;font-weight:900}
    .notePreviewStage{display:flex;align-items:center;justify-content:center;min-height:360px;max-height:84vh;border-radius:20px;border:1px solid #d7e4f3;background:linear-gradient(180deg,#f8fbff,#eef3fa);overflow:auto;padding:12px}
    .notePreviewImg{display:block;max-width:100%;max-height:calc(84vh - 36px);width:auto;height:auto;border-radius:16px;object-fit:contain;box-shadow:0 10px 24px rgba(16,32,61,.1)}
    .notePreviewFallback{display:flex;align-items:center;justify-content:center;min-height:180px;padding:18px;text-align:center;font-size:15px;font-weight:800;color:#64748b}
    .posterSheet{width:min(96vw,1040px)}
    .posterShell{display:grid;gap:14px}
    .posterFieldGrid{display:grid;gap:10px}
    .posterFieldGrid input,.posterFieldGrid textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:15px;font-weight:800;color:#10203d}
    .posterFieldGrid textarea{min-height:118px;resize:vertical;line-height:1.45}
    .posterFieldGrid label{display:grid;gap:6px;font-size:13px;font-weight:900;color:#334155}
    .posterFieldGrid input::placeholder,.posterFieldGrid textarea::placeholder{color:#98a2b3;font-weight:700}
    .posterPreviewBox{padding:10px;border:1px solid #e8dcc4;border-radius:20px;background:linear-gradient(180deg,#fffdf8,#fff5df)}
    .posterPreviewBox img{display:block;width:100%;height:auto;border-radius:16px;background:#fff;box-shadow:0 10px 24px rgba(86,66,20,.10)}
    .posterActionRow{display:grid;grid-template-columns:1fr;gap:8px}
    .posterActionRow .btn,.posterActionRow .saveBtn{min-height:48px;width:100%;font-size:16px;padding:12px}
    .posterTemplateRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}
    .posterTemplateBtn{border:1px solid #d8e3f2;background:#f7f9fc;color:#334155;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900}
    .posterInlineTools{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
    .posterFontSizer{display:flex;align-items:center;gap:6px}
    .posterFontBtn{width:30px;height:30px;border:1px solid #d8e3f2;background:#f7f9fc;color:#334155;border-radius:10px;font-size:18px;font-weight:900;line-height:1}
    .posterFontLabel{font-size:11px;font-weight:900;color:#64748b}
    .posterPublishPanel{border:1px solid #e9d8e5;border-radius:18px;background:linear-gradient(180deg,#fff,#fff8fb);padding:12px;display:grid;gap:11px}
    .posterPanelTitle{font-size:14px;font-weight:950;color:#10203d}
    .posterScheduleGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .posterScheduleGrid label,.posterTeacherPicker label{display:grid;gap:6px;font-size:12px;font-weight:950;color:#334155}
    .posterScheduleGrid input,.posterTeacherPicker select,.posterStudentSearchInput{width:100%;padding:11px 12px;border:1.5px solid #d8e3f2;border-radius:13px;background:#fff;color:#10203d;font-size:14px;font-weight:850}
    .posterTeacherPicker{display:none}
    .posterAudienceToggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .posterAudienceBtn{min-height:42px;border:1.5px solid #d8e3f2;border-radius:13px;background:#f8fbff;color:#10203d;font-size:13px;font-weight:950;cursor:pointer}
    .posterAudienceBtn.on{background:linear-gradient(135deg,#10203d,#8a1952);border-color:#10203d;color:#fff;box-shadow:0 8px 16px rgba(16,32,61,.14)}
    .posterStudentPicker{display:none;gap:8px}
    .posterStudentPicker.show{display:grid}
    .posterStudentSearchResults,.posterSelectedStudentsList{display:grid;gap:7px;max-height:180px;overflow:auto}
    .posterStudentSearchResults:empty,.posterSelectedStudentsList:empty{display:none}
    .posterStudentResult,.posterSelectedStudentChip{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid #dce6f5;border-radius:12px;background:#fff;padding:8px 9px;color:#10203d}
    .posterStudentResult strong,.posterSelectedStudentChip strong{font-size:13px;font-weight:950;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .posterStudentResult span,.posterSelectedStudentChip span{font-size:11px;font-weight:850;color:#64748b}
    .posterStudentMiniBtn{border:none;border-radius:10px;background:#eef3fb;color:#10203d;padding:8px 10px;font-size:12px;font-weight:950;cursor:pointer}
    .posterSelectedStudentChip .posterStudentMiniBtn{background:#fff1f2;color:#b42318}
    .posterLiveNotices{display:grid;gap:8px}
    .posterLiveNoticeCard{border:1px solid #dce6f5;border-radius:14px;background:#fff;padding:10px;display:grid;gap:7px;color:#10203d}
    .posterLiveNoticeTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .posterLiveNoticeTitle{font-size:14px;font-weight:950;line-height:1.2;overflow-wrap:anywhere}
    .posterLiveNoticeMeta{font-size:11px;font-weight:850;color:#64748b;line-height:1.35}
    .posterLiveNoticeStudents{font-size:11px;font-weight:900;color:#10203d;line-height:1.4;background:#f8fbff;border:1px solid #e1e9f5;border-radius:10px;padding:7px 8px;overflow-wrap:anywhere}
    .posterLiveNoticeStatus{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eefbf0;color:#167d76;padding:5px 8px;font-size:10px;font-weight:950;white-space:nowrap}
    .posterLiveNoticeStatus.scheduled{background:#fff7db;color:#8a5a00}
    .posterLiveNoticeStatus.expired,.posterLiveNoticeStatus.cancelled{background:#fff1f2;color:#b42318}
    .posterCancelNoticeBtn{border:1px solid #fecdd3;border-radius:10px;background:#fff1f2;color:#b42318;padding:8px 10px;font-size:12px;font-weight:950;cursor:pointer}
    .posterNoticeHint{font-size:12px;font-weight:850;color:#64748b;line-height:1.4}
    #feeLockerBtn{font-size:18px}
    .lockerSheet{width:min(96vw,760px)}
    .lockerShell{display:grid;gap:12px}
    .lockerAccessCard,.lockerComposerCard,.lockerListCard{padding:14px;border:1px solid #eadfd9;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 10px 24px rgba(86,25,25,.05)}
    .lockerAccessCard{display:grid;gap:10px}
    .lockerHint{font-size:12px;font-weight:800;color:#64748b;line-height:1.45}
    .lockerUnlockRow{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:10px}
    .lockerUnlockRow input,.lockerTitleInput,.lockerFileInput,.lockerTextInput{width:100%;padding:12px 13px;border:1.5px solid #d9e4f1;border-radius:14px;background:#fff;font-size:15px;font-weight:800;color:#10203d}
    .lockerTextInput{min-height:106px;resize:vertical;font-family:inherit}
    .lockerFormGrid{display:grid;gap:10px}
    .lockerMetaRow{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
    .lockerMetaChips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .lockerMetaChip{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:#eef3fb;border:1px solid #d8e3f2;color:#10203d;font-size:11px;font-weight:900}
    .lockerMetaChip.typeImage{background:#eefbf0;border-color:#d5ead8;color:#167d76}
    .lockerMetaChip.typeAudio{background:#f6f3ff;border-color:#e2daf9;color:#5b3bb7}
    .lockerMetaChip.typeVideo{background:#fff4ec;border-color:#f2dccb;color:#b45309}
    .lockerMetaChip.typeText{background:#f4f8ff;border-color:#dce6f5;color:#0f3b8c}
    .lockerActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .lockerActionBtn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:12px;padding:10px 12px;font-size:12px;font-weight:900}
    .lockerActionBtn.primary{background:#10203d;color:#fff}
    .lockerActionBtn.soft{background:#eef3fb;color:#10203d;border:1px solid #d8e3f2}
    .lockerActionBtn.warn{background:#fff1f2;color:#b42318;border:1px solid #fecdd3}
    .lockerList{display:grid;gap:12px}
    .lockerCard{display:grid;gap:10px;padding:13px;border:1px solid #dde6f3;border-radius:16px;background:#fff}
    .lockerCardTitle{font-size:16px;font-weight:900;color:#10203d;line-height:1.3;word-break:break-word}
    .lockerCardText{font-size:13px;font-weight:800;color:#475569;line-height:1.6;white-space:pre-wrap;word-break:break-word}
    .lockerThumbBtn{display:block;width:100%;padding:0;border:none;background:transparent;cursor:pointer}
    .lockerThumbFrame{width:100%;min-height:180px;max-height:300px;display:flex;align-items:center;justify-content:center;border-radius:16px;overflow:hidden;border:1px solid #d7e4f3;background:linear-gradient(180deg,#f8fbff,#eef3fa)}
    .lockerThumbImg{display:block;width:100%;height:100%;max-height:300px;object-fit:contain;background:#fff}
    .lockerFileLine{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;font-weight:900;color:#475569}
    .lockerPreviewText{display:block;width:100%;max-width:100%;padding:16px;border-radius:16px;background:#fff;border:1px solid #dde6f3;font-size:14px;font-weight:800;line-height:1.7;color:#334155;white-space:pre-wrap;word-break:break-word}
    .lockerPreviewAudio,.lockerPreviewVideo{display:block;width:min(100%,640px);max-width:100%;border-radius:16px;background:#fff}
    .lockerPreviewVideo{max-height:70vh}
    .lockerEmptyState{padding:18px;border:1px dashed #d8e4f2;border-radius:16px;background:#fbfdff;font-size:13px;font-weight:800;color:#64748b;text-align:center}
    .lockerCloseBtn{margin-top:4px}
    .deleteNoteBtn{display:inline-block;margin-top:10px;border:none;background:#f6dcdc;color:#8b1c1c;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:900}
    .composer textarea{min-height:118px;font-size:19px}
    .sendBtn{background:#1f7a4d;color:#fff;font-size:18px}
    .emptyState{text-align:center;color:#526070;font-size:16px;font-weight:800;padding:28px 10px}

    #feeMain .sum{background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(249,252,255,.98) 100%);border-color:#d9e4f1;box-shadow:0 12px 28px rgba(16,32,61,.06),inset 0 1px 0 rgba(255,255,255,.85)}
    .feeSectionCard{padding:14px;background:rgba(255,255,255,.94);border-color:#d8e3f0;box-shadow:0 14px 30px rgba(16,32,61,.06),inset 0 1px 0 rgba(255,255,255,.82)}
    .feeRows{display:grid;gap:10px;margin-top:10px}
    .feeRow{position:relative;border:1px solid #dee7f2;border-radius:16px;background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);padding:12px;box-shadow:0 8px 22px rgba(16,32,61,.05),inset 0 1px 0 rgba(255,255,255,.88);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease}
    .feeRow:hover{transform:translateY(-1px);border-color:#d3dfed;box-shadow:0 14px 28px rgba(16,32,61,.08),inset 0 1px 0 rgba(255,255,255,.92)}
    .feeCardUtilityRow{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;min-height:0;margin:0;padding:4px;border:1px solid #e2eaf4;border-radius:12px;background:#f7f9fc;box-shadow:0 4px 12px rgba(16,32,61,.05)}
    .feeCardTitleRow{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
    .feeCardTitleRow .name{font-size:18px;line-height:1.02}
    .feeRiskTag{display:inline-flex;align-items:center;justify-content:center;padding:2px 5px;border-radius:7px;border:1px solid transparent;font-size:9px;font-weight:900;line-height:1;white-space:nowrap;text-transform:uppercase;letter-spacing:0}
    .feeRiskTag.medium{background:#fff8d6;border-color:#f0df9a;color:#8a6400}
    .feeRiskTag.high{background:#ffecec;border-color:#efc2c2;color:#b42318}
    .feeTitleMain{min-width:0;display:grid;gap:4px;flex:1 1 auto}
    .feeInlineTeacher{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#eef3ff;border:1px solid #dde6f3;color:#10203d;font-size:11px;font-weight:900;line-height:1;flex:0 0 auto}
    .feeInlineId{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;background:#eef3ff;border:1px solid #dde6f3;color:#10203d;font-size:12px;font-weight:900;white-space:nowrap;flex:0 0 auto}
    .feeCardSideMeta{display:grid;justify-items:end;align-content:start;gap:6px;flex:0 0 auto}
    .feeMetaBadgeStack{display:grid;justify-items:end;gap:6px}
    .feeReminderRemainingRow{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;height:28px}
    .feeWhatsappReminderToggle{width:24px;min-width:24px;height:24px;padding:0;border:1px solid #b8eadf;border-radius:999px;background:#ecfffb;color:#0f766e;font-size:12px;font-weight:900;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(16,32,61,.06)}
    .feeWhatsappReminderToggle.off{border-color:#d9e1eb;background:#eef2f6;color:#94a3b8;box-shadow:none;filter:grayscale(1)}
    .feeWhatsappReminderToggle:disabled{opacity:.72;cursor:not-allowed}
    .feeStatusCircle{min-width:72px;height:28px;border:none;border-radius:999px;padding:0 10px;background:#98a2b3;color:#fff;font-size:11px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(16,32,61,.08)}
    .feeStatusCircle.active{background:#169254}
    .feeStatusCircle.pause{background:#98a2b3}
    .feeStatusCircle.pausedue{background:#86efac;color:#14532d}
    .feeStatusCircle:disabled{opacity:.92}
    .feeRemainingBadge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;border-radius:999px;padding:0 9px;background:#eef3ff;border:1px solid #dce5f3;color:#10203d;font-size:13px;font-weight:900;box-shadow:0 2px 8px rgba(16,32,61,.05);flex:0 0 auto}
    .feeTinyBadge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:18px;border-radius:999px;padding:0 7px;font-size:10px;font-weight:900;letter-spacing:.02em;box-shadow:0 2px 8px rgba(16,32,61,.05)}
    .feeTinyBadge.pauseDue{background:#f2f6fb;border:1px solid #d6dfeb;color:#526070}
    .feeTinyBadge.pay{background:#fff3e0;border:1px solid #f1c27d;color:#9a4f00}
    .feeInfoStack{display:grid;gap:4px;margin-top:8px}
    .feeLine{font-size:13px;color:#334155;font-weight:800;line-height:1.4;word-break:break-word}
    .feeLine strong{color:#10203d}
    .feeAmountPermissionRow{margin-top:5px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;max-width:100%}
    .feeAmountPill{display:inline-flex;align-items:center;justify-content:center;max-width:100%;width:max-content;border:1px solid #dbe6f3;border-radius:999px;background:#f8fbff;color:#10203d;padding:6px 11px;font-size:12px;font-weight:950;line-height:1;box-shadow:0 3px 9px rgba(16,32,61,.05)}
    .feeAmountPill strong{font-size:13px;color:#10203d}
    .feeAmountPill:disabled{opacity:.95;cursor:default}
    .feeCardQuickBtn{display:inline-flex;align-items:center;justify-content:center;height:28px;border:1px solid #dbe6f3;border-radius:999px;background:#f8fbff;color:#10203d;box-shadow:0 3px 9px rgba(16,32,61,.05);font-size:11px;font-weight:950;line-height:1;white-space:nowrap}
    .feeCardQuickBtn.text{min-width:50px;padding:0 12px}
    .feeCardQuickBtn.icon{width:32px;min-width:32px;padding:0;font-size:15px}
    .feeCardQuickBtn:active{transform:translateY(1px)}
    .feeCardQuickBtn:focus-visible{outline:2px solid rgba(22,125,118,.35);outline-offset:2px}
    .feeAmountEditRow{margin-top:5px;display:flex;align-items:center;gap:5px;max-width:100%;min-width:0}
    .feeAmountEditLabel{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 8px;border-radius:999px;background:#eef3ff;border:1px solid #dbe6f3;color:#64748b;font-size:10px;font-weight:900;text-transform:uppercase;flex:0 0 auto}
    .feeAmountInput{width:82px;min-width:0;height:30px;border:1px solid #dbe6f3;border-radius:10px;background:#fff;color:#10203d;padding:0 8px;font-size:13px;font-weight:900;outline:none}
    .feeAmountInput:focus{border-color:#8b1d5c;box-shadow:0 0 0 2px rgba(139,29,92,.12)}
    .feeAmountMiniBtn{height:30px;border:none;border-radius:10px;padding:0 9px;font-size:11px;font-weight:900;box-shadow:0 3px 9px rgba(16,32,61,.06)}
    .feeAmountMiniBtn.save{background:#10203d;color:#fff}
    .feeAmountMiniBtn.cancel{background:#edf2f8;color:#475569}
    .feeAmountMiniBtn:disabled,.feeAmountInput:disabled{opacity:.7}
    .feePauseCompletedCard{border-color:#f0d5a8;background:linear-gradient(180deg,#fffaf1 0%,#fff7e8 100%);box-shadow:0 10px 24px rgba(138,79,0,.08),inset 0 1px 0 rgba(255,255,255,.9)}
    .feePauseCompletedTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .feePauseCompletedIdentity{min-width:0;display:grid;gap:5px}
    .feePauseCompletedNameLine{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
    .feePauseCompletedName{font-size:17px;font-weight:900;color:#10203d;line-height:1.15;word-break:break-word}
    .feePauseCompletedSub{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;font-weight:900;color:#6b5a3d;line-height:1.25}
    .feePauseCompletedBadge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:0 8px;border-radius:999px;background:#fff;border:1px solid #efd3a2;color:#8a4b00;font-size:10px;font-weight:900;white-space:nowrap}
    .feePauseCompletedTeacher{background:#10203d;border-color:#10203d;color:#fff}
    .feePauseCompletedDate{margin-top:10px;padding:9px 10px;border:1px solid #f0d5a8;border-radius:12px;background:#fffdf8;color:#7a4c00;font-size:12px;font-weight:900;line-height:1.35}
    .feePauseCompletedStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}
    .feePauseCompletedStat{min-width:0;padding:8px 6px;border:1px solid #e6edf6;border-radius:12px;background:#fff;text-align:center}
    .feePauseCompletedStat strong{display:block;font-size:16px;font-weight:900;color:#10203d;line-height:1.05}
    .feePauseCompletedStat span{display:block;margin-top:3px;font-size:10px;font-weight:900;color:#64748b;line-height:1.1}
    .feePauseCompletedAction{margin-top:10px;width:100%;border:none;border-radius:12px;background:#0f6b4f;color:#fff;padding:12px 14px;font-size:14px;font-weight:900;box-shadow:0 6px 14px rgba(15,107,79,.16)}
    .feeSlotLevelLine{font-size:11px;color:#64748b;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal}
    .feeButtons{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,1.45fr);gap:8px;margin-top:12px}
    .feeActionBtn{width:100%;padding:14px 14px;background:#10203d;color:#fff;font-size:17px;font-weight:900;box-shadow:0 6px 14px rgba(16,32,61,.16);transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}
    .feeActionBtn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 20px rgba(16,32,61,.2)}
    .feeActionBtn.alt{background:#edf2f8;color:#10203d;box-shadow:0 4px 12px rgba(16,32,61,.08);font-size:16px}
    .feeActionBtn.alt:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 16px rgba(16,32,61,.12)}
    .feeActionSide{display:flex;align-items:stretch;gap:6px;min-width:0}
    .feeActionSide .feeActionBtn.alt{flex:1 1 auto;min-width:0}
    .feeUndoBtn{width:30px;min-width:30px;padding:0;border:none;border-radius:10px;background:#f8fafc;color:#475569;box-shadow:0 4px 12px rgba(16,32,61,.08);font-size:13px;font-weight:900;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}
    .feeUndoBtn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 16px rgba(16,32,61,.12)}
    .feeUndoBtn:disabled{opacity:.55;cursor:not-allowed}
    .feePill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900}
    .feePill.today{background:#e8f7ee;color:#0f5c34}
    .feePill.over7{background:#fdecec;color:#8b1c1c}
    .feePill.over1{background:#fff6db;color:#8a6400}
    .feePill.upcoming{background:#edf2f8;color:#334155}
    .feePill.left{background:#ede9fe;color:#5b21b6}
    .feePill.none{background:#f3f4f6;color:#4b5563}
    .feePre{white-space:pre-wrap;word-break:break-word;margin:0;font:inherit}
    .feeModalHint{font-size:12px;color:var(--muted);font-weight:800}
    .feeSummary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}
    .feeSummary .sum{padding:10px 8px;border-radius:14px}
    .feeSummary .sum .n{font-size:24px;line-height:1.05}
    .feeSummary .sum .t{font-size:11px;line-height:1.2}
    .feeSummaryBox{width:100%;border:1px solid #d9e4f1;cursor:pointer}
    #feeMain .feeSummaryBox.on{background:linear-gradient(180deg,var(--brand),var(--brand2));border-color:#7d0000;box-shadow:0 8px 18px rgba(149,0,0,.18)}
    #feeMain .feeSummaryBox.on .n,#feeMain .feeSummaryBox.on .t{color:#fff}
    #feeMain .topbar{padding-top:2px;overflow:visible}
    .feeTopbarWrap{display:grid;gap:8px;width:100%;justify-items:start;position:relative;overflow:visible}
    .feeTopActions{display:flex;gap:6px;flex-wrap:nowrap;align-items:center;justify-content:flex-start;overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding:3px max(12px,env(safe-area-inset-right)) 6px max(2px,env(safe-area-inset-left));width:100%;scroll-padding-inline:12px}
    .feeTopActions::-webkit-scrollbar{display:none}
.feeHeaderUtilityRow{display:flex;align-items:center;justify-content:flex-start;gap:6px;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding:2px max(12px,env(safe-area-inset-right)) 5px max(2px,env(safe-area-inset-left));width:100%;scroll-padding-inline:12px}
.feeHeaderUtilityRow::-webkit-scrollbar{display:none}
.feeHeaderUtilityRow .feeIconBtn,.feeHeaderUtilityRow .feedbackBtn,.feeHeaderUtilityRow .feeHeaderStatBtn{flex:0 0 auto}
    .feeIconBtn{background:#10203d;color:#fff;border:none;border-radius:13px;width:40px;height:40px;min-width:40px;padding:0;font-size:16px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(16,32,61,.14);transition:transform .14s ease,box-shadow .14s ease,filter .14s ease;flex:0 0 auto}
    .feeIconBtn.on{background:linear-gradient(180deg,var(--brand),var(--brand2))}
    .feeIconBtn.outline{background:#fff;color:#10203d;border:1px solid var(--line)}
    .feeIconBtn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 20px rgba(16,32,61,.18)}
    .feeIconGlyph{display:none}
#refreshFeeBtn::before,#feeBackupHealthBtn::before,#openEditStudentBtn::before,#feeExpenseBtn::before,#feeLogoutBtn::before,#feeEnrollmentAmountBtn::before,#feeAnnualExamApprovalBtn::before{content:'';display:block;width:18px;height:18px;background-repeat:no-repeat;background-position:center;background-size:18px 18px}
    #refreshFeeBtn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-2.64-6.36'/%3E%3Cpath d='M21 3v6h-6'/%3E%3C/svg%3E")}
#feeBackupHealthBtn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310203d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z'/%3E%3Cpath d='M3.3 7 12 12l8.7-5'/%3E%3Cpath d='M12 22V12'/%3E%3Cpath d='m9 16 2 2 4-5'/%3E%3C/svg%3E")}
#openEditStudentBtn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310203d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 1 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E")}
#feeExpenseBtn{background:#fff7f7;color:#b42318;border:1px solid #efc1c1}
#feeExpenseBtn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b42318' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 4h11'/%3E%3Cpath d='M6 8h11'/%3E%3Cpath d='M6 4h4a4 4 0 0 1 0 8H6l8 8'/%3E%3C/svg%3E")}
    #feeLogoutBtn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v8'/%3E%3Cpath d='M7.05 5.05a9 9 0 1 0 9.9 0'/%3E%3C/svg%3E")}
    #feeEnrollmentAmountBtn{background:#fffaf0;color:#8a4b00;border:1px solid #ead6a4}
    #feeEnrollmentAmountBtn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a4b00' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 4h12'/%3E%3Cpath d='M6 8h12'/%3E%3Cpath d='M6 4h5a4 4 0 0 1 0 8H6l8 8'/%3E%3Cpath d='M17 13v7'/%3E%3Cpath d='M14 16h6'/%3E%3C/svg%3E")}
    #feeAnnualExamApprovalBtn{background:#f2fff9;color:#08715d;border:1px solid #a8e4d4}
    #feeAnnualExamApprovalBtn::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2308715d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 21h8'/%3E%3Cpath d='M12 17v4'/%3E%3Cpath d='M7 4h10v4a5 5 0 0 1-10 0V4Z'/%3E%3Cpath d='M5 5H3v2a4 4 0 0 0 4 4'/%3E%3Cpath d='M19 5h2v2a4 4 0 0 1-4 4'/%3E%3Cpath d='m9 9 2 2 4-4'/%3E%3C/svg%3E")}
    #feeReminderBtn{position:relative}
    #feeAppPermissionBtn,#openEditStudentBtn{display:none!important}
    .backupHealthModal{position:fixed;inset:0;z-index:10030;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.42);backdrop-filter:blur(8px)}
    .backupHealthCard{width:min(94vw,680px);max-height:88vh;overflow:auto;border-radius:18px;background:#fff;box-shadow:0 26px 70px rgba(15,23,42,.28);border:1px solid #dbe5f1}
    .backupHealthHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 16px 12px;border-bottom:1px solid #e7edf5;background:linear-gradient(135deg,#f8fbff,#fff)}
    .backupHealthTitle{font-size:18px;font-weight:950;color:#10203d;line-height:1.15}
    .backupHealthSub{margin-top:4px;font-size:12px;font-weight:800;color:#64748b;line-height:1.35}
    .backupHealthClose{width:34px;height:34px;border:none;border-radius:999px;background:#edf2f8;color:#10203d;font-size:18px;font-weight:900}
    .backupHealthBody{display:grid;gap:12px;padding:14px 16px 16px}
    .backupHealthStatusRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:14px;background:#f8fafc;border:1px solid #e4ebf5}
    .backupHealthStatusPill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:950;white-space:nowrap}
    .backupHealthStatusPill.ok{background:#e8f7ee;color:#0f5c34}
    .backupHealthStatusPill.fail{background:#fdecec;color:#8b1c1c}
    .backupHealthStatusPill.warn,.backupHealthStatusPill.unknown{background:#fff6db;color:#8a6400}
    .backupHealthSection{border:1px solid #e3ebf5;border-radius:14px;background:#fff;overflow:hidden}
    .backupHealthSectionHead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;background:#f8fbff;border-bottom:1px solid #e8eef7;font-size:13px;font-weight:950;color:#10203d}
    .backupHealthGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}
    .backupHealthItem{min-width:0;padding:9px 10px;border:1px solid #eef2f7;border-radius:12px;background:#fff}
    .backupHealthItem span{display:block;font-size:10px;font-weight:900;color:#64748b;text-transform:uppercase;line-height:1.15}
    .backupHealthItem strong{display:block;margin-top:4px;font-size:13px;font-weight:950;color:#10203d;line-height:1.25;overflow-wrap:anywhere}
    .backupHealthNote{font-size:12px;font-weight:850;line-height:1.45;color:#475569;background:#f8fafc;border:1px solid #e7edf5;border-radius:12px;padding:10px 11px}
    .backupHealthError{font-size:12px;font-weight:900;color:#8b1c1c;background:#fff5f5;border:1px solid #f1c6c6;border-radius:12px;padding:10px 11px}
    .backupHealthLoading{padding:18px;font-size:14px;font-weight:900;color:#475569;text-align:center}
    @media(max-width:620px){.backupHealthModal{align-items:flex-end;padding:10px}.backupHealthCard{width:100%;max-height:92vh;border-radius:18px 18px 12px 12px}.backupHealthGrid{grid-template-columns:1fr}.backupHealthStatusRow{align-items:flex-start;flex-direction:column}}
    .feeEnrollmentAmountModal{position:fixed;inset:0;z-index:10036;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.46);backdrop-filter:blur(8px)}
    .feeEnrollmentAmountCard{width:min(94vw,520px);border-radius:18px;background:#fff;border:1px solid #dbe5f1;box-shadow:0 26px 70px rgba(15,23,42,.28);overflow:hidden}
    .feeEnrollmentAmountHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #e7edf5;background:linear-gradient(135deg,#fffaf0,#fff)}
    .feeEnrollmentAmountTitle{font-size:21px;font-weight:950;color:#10203d;line-height:1.12}
    .feeEnrollmentAmountSub{margin-top:4px;font-size:12px;font-weight:820;color:#64748b;line-height:1.35}
    .feeEnrollmentAmountClose{width:36px;height:36px;border:none;border-radius:999px;background:#eef3f8;color:#10203d;font-size:20px;font-weight:900}
    .feeEnrollmentAmountBody{display:grid;gap:12px;padding:16px}
    .feeEnrollmentAmountField{display:grid;gap:8px}
    .feeEnrollmentAmountField label{font-size:13px;font-weight:950;color:#5e4a68}
    .feeEnrollmentAmountField input{width:100%;border:1.5px solid #d7e2ef;border-radius:14px;background:#fff;padding:13px 14px;font-size:20px;font-weight:950;color:#10203d}
    .feeEnrollmentAmountHint{font-size:12px;font-weight:820;color:#64748b;line-height:1.45}
    .feeEnrollmentAmountError{font-size:12px;font-weight:900;color:#8b1c1c;background:#fff5f5;border:1px solid #f1c6c6;border-radius:12px;padding:10px 11px}
    .feeEnrollmentAmountActions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
    .feeEnrollmentAmountActions button{min-height:44px;border:none;border-radius:12px;font-size:14px;font-weight:950}
    .feeEnrollmentAmountSave{background:#c97800;color:#fff}
    .feeEnrollmentAmountCancel{background:#f3f6fa;color:#10203d}
    @media(max-width:620px){.feeEnrollmentAmountModal{align-items:flex-end;padding:10px}.feeEnrollmentAmountCard{width:100%;border-radius:18px 18px 12px 12px}}
    .feeAnnualExamApprovalModal{position:fixed;inset:0;z-index:10037;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.46);backdrop-filter:blur(8px)}
    .feeAnnualExamApprovalCard{width:min(96vw,920px);max-height:88vh;overflow:auto;border-radius:18px;background:#fff;border:1px solid #dbe5f1;box-shadow:0 26px 70px rgba(15,23,42,.28)}
    .feeAnnualExamApprovalHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #e7edf5;background:linear-gradient(135deg,#f2fff9,#fff)}
    .feeAnnualExamApprovalTitle{font-size:21px;font-weight:950;color:#10203d;line-height:1.12}
    .feeAnnualExamApprovalSub{margin-top:4px;font-size:12px;font-weight:800;color:#64748b;line-height:1.35}
    .feeAnnualExamApprovalClose{width:36px;height:36px;border:none;border-radius:999px;background:#eef3f8;color:#10203d;font-size:20px;font-weight:900}
    .feeAnnualExamApprovalBody{display:grid;gap:12px;padding:14px 16px 16px}
    .feeAnnualExamApprovalTools{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px}
    .feeAnnualExamApprovalTools input,.feeAnnualExamApprovalTools select{width:100%;border:1.5px solid #d7e2ef;border-radius:14px;background:#fff;padding:12px 13px;font-size:14px;font-weight:850;color:#10203d}
    .feeAnnualExamApprovalTabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
    .feeAnnualExamApprovalTab{border:1.5px solid #d7e2ef;border-radius:14px;background:#f8fbff;color:#10203d;padding:11px 8px;font-size:13px;font-weight:950}
    .feeAnnualExamApprovalTab.on{background:linear-gradient(180deg,#10203d,#1c3159);border-color:#10203d;color:#fff}
    .feeAnnualExamApprovalBulk{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;border:1px solid #e2e8f3;border-radius:14px;background:#fbfdff}
    .feeAnnualExamApprovalBulk span{font-size:12px;font-weight:850;color:#64748b}
    .feeAnnualExamApprovalBulkActions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
    .feeAnnualExamApprovalBulk button,.feeAnnualExamApprovalApprove{border:none;border-radius:12px;background:#0f8a65;color:#fff;padding:10px 12px;font-size:13px;font-weight:950;box-shadow:0 8px 16px rgba(15,138,101,.14)}
    .feeAnnualExamApprovalBulk button:disabled,.feeAnnualExamApprovalApprove:disabled{opacity:.58}
    .feeAnnualExamApprovalList{display:grid;gap:8px;max-height:52vh;overflow:auto;padding-right:2px}
    .feeAnnualExamApprovalRow{display:grid;grid-template-columns:30px minmax(0,1fr) 132px;gap:10px;align-items:center;padding:12px;border:1px solid #e2e8f3;border-radius:14px;background:#fbfdff}
    .feeAnnualExamApprovalRow.approved{background:#f3f4f6;color:#64748b;opacity:.72}
    .feeAnnualExamApprovalRow.approved .feeAnnualExamApprovalName{text-decoration:line-through;text-decoration-thickness:2px}
    .feeAnnualExamApprovalName{font-size:15px;font-weight:950;color:#10203d;line-height:1.25;word-break:break-word}
    .feeAnnualExamApprovalMeta{margin-top:4px;font-size:11px;font-weight:820;color:#64748b;line-height:1.38;word-break:break-word}
    .feeAnnualExamApprovalAddress{margin-top:5px;font-size:11px;font-weight:820;color:#4b5563;line-height:1.38;word-break:break-word}
    .feeAnnualExamApprovalStatus{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:950;white-space:nowrap;background:#fff6db;color:#8a6400}
    .feeAnnualExamApprovalStatus.done{background:#e8f7ee;color:#0f5c34}
    .feeAnnualExamApprovalStatus.digital{background:#eef6ff;color:#124a78}
    .feeAnnualExamApprovalStatus.unpaid{background:#fdecec;color:#8b1c1c}
    .feeAnnualExamApprovalRowActions{display:grid;grid-template-columns:1fr;gap:7px}
    .feeAnnualExamApprovalRowActions button{border:none;border-radius:11px;background:#0f8a65;color:#fff;padding:9px 10px;font-size:12px;font-weight:950}
    .feeAnnualExamApprovalRowActions button+button{background:#10203d}
    .feeAnnualExamApprovalEmpty{padding:22px 12px;border:1px dashed #d7e2ef;border-radius:14px;background:#fbfdff;color:#64748b;text-align:center;font-size:13px;font-weight:850}
    @media(max-width:620px){.feeAnnualExamApprovalModal{align-items:flex-end;padding:10px}.feeAnnualExamApprovalCard{width:100%;max-height:92vh;border-radius:18px 18px 12px 12px}.feeAnnualExamApprovalTools{grid-template-columns:1fr}.feeAnnualExamApprovalTabs{grid-template-columns:1fr 1fr}.feeAnnualExamApprovalBulk{align-items:stretch}.feeAnnualExamApprovalBulkActions{display:grid;grid-template-columns:1fr 1fr;width:100%}.feeAnnualExamApprovalRow{grid-template-columns:26px minmax(0,1fr);align-items:flex-start}.feeAnnualExamApprovalRow .feeAnnualExamApprovalApprove,.feeAnnualExamApprovalRow .feeAnnualExamApprovalStatus,.feeAnnualExamApprovalRow .feeAnnualExamApprovalRowActions{grid-column:2;width:100%;margin-top:2px}}
    #feeAppPermissionBtn{font-size:10px;letter-spacing:0;font-weight:950;background:#f2fff9;color:#08715d;border-color:#a8e4d4}
    .feeAppPermissionModal{position:fixed;inset:0;z-index:10035;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(15,23,42,.46);backdrop-filter:blur(8px)}
    .feeAppPermissionCard{width:min(96vw,820px);max-height:88vh;overflow:auto;border-radius:18px;background:#fff;border:1px solid #dbe5f1;box-shadow:0 26px 70px rgba(15,23,42,.28)}
    .feeAppPermissionHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid #e7edf5;background:linear-gradient(135deg,#f8fbff,#fff)}
    .feeAppPermissionTitle{font-size:21px;font-weight:950;color:#10203d;line-height:1.12}
    .feeAppPermissionSub{margin-top:4px;font-size:12px;font-weight:800;color:#64748b;line-height:1.35}
    .feeAppPermissionClose{width:36px;height:36px;border:none;border-radius:999px;background:#eef3f8;color:#10203d;font-size:20px;font-weight:900}
    .feeAppPermissionBody{display:grid;gap:12px;padding:14px 16px 16px}
    .feeAppPermissionTabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .feeAppPermissionTab{border:1.5px solid #d7e2ef;border-radius:14px;background:#f8fbff;color:#10203d;padding:13px 10px;font-size:15px;font-weight:950}
    .feeAppPermissionTab.on{background:linear-gradient(180deg,#10203d,#1c3159);border-color:#10203d;color:#fff}
    .feeAppPermissionSearch{width:100%;border:1.5px solid #d7e2ef;border-radius:14px;background:#fff;padding:13px 14px;font-size:15px;font-weight:850;color:#10203d}
    .feeAppPermissionList{display:grid;gap:8px;max-height:52vh;overflow:auto;padding-right:2px}
    .feeAppPermissionRow{display:grid;grid-template-columns:minmax(0,1fr) 116px;gap:10px;align-items:center;padding:12px;border:1px solid #e2e8f3;border-radius:14px;background:#fbfdff}
    .feeAppPermissionName{font-size:15px;font-weight:950;color:#10203d;line-height:1.25;word-break:break-word}
    .feeAppPermissionMeta{margin-top:3px;font-size:11px;font-weight:820;color:#64748b;line-height:1.35}
    .feeAppPermissionReason{margin-top:5px;font-size:11px;font-weight:850;color:#8a4b00;line-height:1.35}
    .feeAppPermissionToggle{width:100%;min-height:44px;border:none;border-radius:12px;font-size:14px;font-weight:950;color:#fff;box-shadow:0 8px 16px rgba(16,32,61,.12)}
    .feeAppPermissionToggle.allow{background:#0f8a65}
    .feeAppPermissionToggle.block{background:#b42318}
    .feeAppPermissionToggle:disabled{opacity:.62}
    .feeAppPermissionEmpty{padding:22px 12px;border:1px dashed #d7e2ef;border-radius:14px;background:#fbfdff;color:#64748b;text-align:center;font-size:13px;font-weight:850}
    .studentProfileFreezeNoticeCard{margin:12px 0 4px}
    .studentProfileFreezeStack{display:grid;gap:12px;margin:12px 0 4px}
    .studentProfileFreezeStack .studentProfileFreezeNoticeCard,.studentProfileFreezeStack .studentProfileResumeNoticeCard{margin:0}
    .studentProfileFreezeStack .studentProfileNoticeCard:before{content:none;display:none}
    .studentProfileResumeNoticeCard{border-color:#ead9b0;background:linear-gradient(135deg,#fff 0%,#fffdf8 74%,#f8fbff 100%);box-shadow:0 8px 18px rgba(138,106,42,.08)}
    .studentProfileResumeNoticeCard .guardianFeeSplitPauseLayout{margin:0}
    .studentProfileFreezeNoticeCard .guardianFeeTitle{text-align:center;color:#8a1952}
    .studentProfileFreezeNoticeCard .guardianFeeMeta{text-align:center;color:#7a5b16}
    .studentFreezeNoticeTitle{font-size:20px}
    .studentPauseHelpText{display:block;max-width:540px;margin:0 auto 12px;color:#6b5870;font-size:12.4px;font-weight:850;line-height:1.45;text-align:left}
    .studentFreezeText{white-space:pre-wrap;font-size:13.3px;font-weight:800;color:#3b2b18;line-height:1.52;text-align:left}
    .studentFreezePayBtn{border:none;cursor:pointer;white-space:normal}
    .guardianFeeSplitPauseLayout{border:0;background:transparent;box-shadow:none;padding:0;margin:2px 0 10px;gap:12px}
    .studentPauseSectionTitle{font-size:16px;line-height:1.25;font-weight:950;color:#10203d}
    .guardianFeeSplitPauseLayout .guardianFeeRejoinBox{margin:0}
    .guardianFeeSplitPauseLayout .guardianFeeLabel{font-size:14px;color:#4b3650}
    .guardianFeeSplitPauseLayout .guardianFeeRejoinBox input[type=date]{width:100%;box-sizing:border-box;padding:13px;border:1.5px solid #dbeafe;border-radius:13px;background:#fff;color:#10203d;font-size:15px;font-weight:900}
    .guardianFeeSplitPauseLayout .guardianFeeTypeField{margin:0}
    .guardianFeeRejoinSlotPickerBtn{width:100%;box-sizing:border-box;min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;border:1.5px solid #dbeafe;border-radius:14px;background:#fff;color:#10203d;font-size:14px;font-weight:950;text-align:left;box-shadow:0 7px 16px rgba(16,32,61,.04)}
    .guardianFeeRejoinSlotPickerBtn.selected{border-color:#0f766e;background:#f8fffd;color:#0f5e59}
    .guardianFeeRejoinSlotPickerArrow{color:#64748b;font-size:17px;line-height:1}
    html.guardianFeeRejoinSlotPopupLocked,html.guardianFeeRejoinSlotPopupLocked body{overflow:hidden}
    .guardianFeeRejoinSlotPopup[hidden]{display:none}
    .guardianFeeRejoinSlotPopup{position:fixed;inset:0;z-index:2147483000;display:block;padding:0;background:#fff}
    .guardianFeeRejoinSlotPopupBackdrop{display:none}
    .guardianFeeRejoinSlotPopupCard{width:100%;height:100dvh;max-height:none;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:0;border-radius:0;background:#fff;box-shadow:none;overflow:hidden}
    .guardianFeeRejoinSlotPopupHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 14px 12px;border-bottom:1px solid #edf3fb;background:#fff}
    .guardianFeeRejoinSlotPopupHead strong{font-size:18px;font-weight:950;color:#10203d}
    #guardianFeeRejoinSlotPopupClose{width:36px;height:36px;border:1px solid #dbe5f0;border-radius:999px;background:#fff;color:#10203d;font-size:20px;font-weight:950;line-height:1}
    .guardianFeeRejoinSlotPopup .guardianFeeRejoinSlotList{padding:12px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:#fff}
    .guardianFeeRejoinSlotDoneBtn{margin:0 12px calc(12px + env(safe-area-inset-bottom));border:none;border-radius:14px;background:#10203d;color:#fff;padding:13px;font-size:15px;font-weight:950}
    .guardianFeeRejoinSlotHelp{font-size:11.5px;font-weight:850;color:#64748b;margin:0 0 7px}
    .guardianFeeRejoinHelpBox{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px;padding:8px 9px;border:1px dashed #dbeafe;border-radius:12px;background:#fbfdff;color:#64748b;font-size:10.8px;font-weight:850;line-height:1.2}
    .guardianFeeRejoinHelpBox a{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d7e2ef;border-radius:999px;background:#fff;color:#8a1952;text-decoration:none;padding:5px 9px;font-size:10.5px;font-weight:950;white-space:nowrap}
    .guardianFeeRejoinSlot.selected{border-color:#0f766e;background:#ecfdf5;box-shadow:0 0 0 2px rgba(15,118,110,.1)}
    .guardianFeeRejoinSlot.selected span{color:#0f5e59}
    @media(max-width:620px){.feeAppPermissionModal{align-items:flex-end;padding:10px}.feeAppPermissionCard{width:100%;max-height:92vh;border-radius:18px 18px 12px 12px}.feeAppPermissionRow{grid-template-columns:1fr}.studentFreezePayBtn{width:100%}.studentFreezeNoticeTitle{font-size:17px}.studentPauseHelpText{font-size:11.6px}.studentPauseSectionTitle{font-size:15px}}
    .feeSearchRow{margin:4px 0 12px;position:relative}
    .feeSearchInput{width:100%;padding:14px;border:2px solid var(--line);border-radius:14px;font-size:17px;font-weight:700;background:#fff}
    .feeCashfreeNoticePanel{margin:4px 0 10px;border:1px solid #d8e4f2;border-radius:14px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 6px 16px rgba(16,32,61,.07);overflow:hidden}
    .feeCashfreeNoticeHead{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;color:#10203d;padding:6px 11px;text-align:left}
    .feeCashfreeNoticeTitle{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950}
    .feeCashfreeNoticeTitle .dot{width:8px;height:8px;border-radius:999px;background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.12)}
    .feeCashfreeNoticeTabs{display:inline-flex;align-items:center;gap:6px;min-width:0}
    .feeCashfreeNoticeTab{border:1px solid #d7e2ef;border-radius:999px;background:#fff;color:#10203d;padding:5px 11px;font-size:11.5px;font-weight:950;line-height:1;box-shadow:0 2px 8px rgba(16,32,61,.04);white-space:nowrap}
    .feeCashfreeNoticeTab.on{border-color:#10203d;background:#10203d;color:#fff}
    .feeCashfreeNoticeMeta{display:inline-flex;align-items:center;gap:6px;color:#5f7084;font-size:10.5px;font-weight:900;white-space:nowrap}
    .feeCashfreeNoticeCount{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:#10203d;color:#fff;font-size:10.5px;font-weight:950}
    .feeCashfreeNoticeToggleIcon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:#edf4fb;color:#10203d;font-size:12px;font-weight:950}
    .feeCashfreeNoticePanel.collapsed .feeCashfreeNoticeToggleIcon{transform:rotate(-90deg)}
    .feeCashfreeNoticeBody{border-top:1px solid #e6eef8;padding:5px 8px 8px;background:rgba(255,255,255,.74)}
    .feeCashfreeNoticePanel.collapsed .feeCashfreeNoticeBody{display:none}
    .feeCashfreeNoticeList{max-height:186px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-right:1px;scrollbar-width:thin}
    .feeCashfreeNoticeDate{display:block;margin:3px 0 4px;color:#68778b;font-size:9.5px;font-weight:950;text-align:center;text-transform:uppercase;letter-spacing:0;background:linear-gradient(180deg,#ffffff 0%,rgba(255,255,255,.94) 100%);padding:3px 6px;white-space:normal;line-height:1.25}
    .feeCashfreeNoticeDate:before,.feeCashfreeNoticeDate:after{content:none}
    .feeCashfreeNoticeRow{display:grid;grid-template-columns:48px minmax(0,1fr) 62px;align-items:center;gap:6px;min-height:0;padding:5px 7px;margin:2px 0;border:1px solid #e6eef8;border-radius:9px;background:#fff;color:#10203d;box-shadow:0 1px 5px rgba(16,32,61,.03)}
    .feeCashfreeNoticePanel:has(#feeCashfreeNoticeClassTab.on) .feeCashfreeNoticeRow{align-items:start}
    .feeCashfreeNoticeId{font-size:11px;font-weight:950;color:#8a1952;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .feeCashfreeNoticeMain{min-width:0;font-size:11.5px;font-weight:900;line-height:1.25;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#10203d}
    .feeCashfreeNoticePanel:has(#feeCashfreeNoticeClassTab.on) .feeCashfreeNoticeMain{text-align:left;white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word}
    .feeCashfreeNoticeTime{font-size:10.8px;font-weight:950;color:#0f766e;text-align:right;white-space:nowrap}
    .feeCashfreeNoticePanel:has(#feeCashfreeNoticeClassTab.on) .feeCashfreeNoticeTime{padding-top:1px}
    .feeCashfreeNoticeEmpty{padding:12px;border:1px dashed #d8e4f2;border-radius:12px;background:#fbfdff;color:#68778b;font-size:12px;font-weight:850;text-align:center}
    @media(max-width:620px){.feeCashfreeNoticeList{max-height:186px}.feeCashfreeNoticeHead{padding:6px 9px}.feeCashfreeNoticeTab{padding:5px 10px;font-size:11px}.feeCashfreeNoticeRow{grid-template-columns:46px minmax(0,1fr) 58px;gap:5px;padding:5px 6px}.feeCashfreeNoticeMain{font-size:11px}.feeCashfreeNoticeTime{font-size:10.5px}.feeCashfreeNoticeMeta .label{display:none}}
    .feeFilterRow,.feeTeacherRow,.feeSpecialFilterRow{display:grid;gap:8px;margin-top:10px}
    .feeFilterRow{grid-template-columns:repeat(4,minmax(0,1fr))}
    .feeFilterRow.hasPauseDueCompleted{grid-template-columns:repeat(5,minmax(0,1fr))}
    .feeSpecialFilterRow{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 86px;align-items:stretch}
    .feeTeacherRow{grid-template-columns:repeat(5,minmax(0,1fr))}
    .feeFilterBtn{padding:11px 10px;border:1px solid #d7e2ef;border-radius:12px;background:#f8fbff;color:#10203d;font-size:13px;font-weight:900;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,color .12s ease,border-color .12s ease;box-shadow:0 4px 12px rgba(16,32,61,.04)}
    .feeFilterBtn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(16,32,61,.08);border-color:#c9d7e8}
    .feeFilterBtn.on{background:linear-gradient(180deg,var(--brand),var(--brand2));color:#fff;box-shadow:0 8px 18px rgba(149,0,0,.18)}
    .feeFilterBtn .count{display:block;font-size:11px;font-weight:900;opacity:.82;margin-top:2px}
    .feeFilterBtn.on .count{opacity:.95}
    .feeLoadMoreBtn{width:100%;margin-top:10px;border:1px solid #d7e2ef;border-radius:12px;background:#fff;color:#10203d;padding:12px;font-size:13px;font-weight:950;box-shadow:0 4px 12px rgba(16,32,61,.05)}
    .feeSortCompactBtn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:100%;padding:0 8px;border:1px solid #d7e2ef;border-radius:12px;background:#f8fbff;color:#10203d;font-size:11px;font-weight:900;white-space:nowrap;box-shadow:0 4px 12px rgba(16,32,61,.04)}
    .feeSortCompactBtn.oldest{background:#10203d;border-color:#10203d;color:#fff;box-shadow:0 8px 18px rgba(16,32,61,.16)}
    .feeSortCompactBtn .sortIcon{font-size:12px;line-height:1}
    .feeTeacherBtn{padding:11px 10px;font-size:13px}
    .feeHeaderWarning{display:none;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;margin-top:10px;border:1px solid #f3c77d;border-radius:12px;background:#fff7e8;color:#8a4b00;font-size:13px;font-weight:900;box-shadow:0 4px 12px rgba(16,32,61,.04)}
    .feeHeaderWarning.show{display:flex}
    .feeHeaderWarning button{border:none;background:#8a4b00;color:#fff;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:900}
    .feeHeaderWarning.payDue{background:#fff4e8;border-color:#f1b97a;color:#8a3f00}
    .feeHeaderWarning.payDue button{background:#8a3f00}
    .feeHeaderWarning.strictDue{background:#fff0f0;border-color:#f0a4a4;color:#8f1f1f}
    .feeHeaderWarning.strictDue button{background:#8f1f1f}
.feeHeaderStatBtn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:40px;padding:0 14px;border:1px solid #ead6a4;border-radius:999px;background:linear-gradient(180deg,#fffdf2 0%,#fff6d8 100%);color:#8a4b00;font-size:13px;font-weight:900;box-shadow:0 6px 16px rgba(126,92,20,.08)}
.feeHeaderStatBtn strong{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 8px;border-radius:999px;background:#10203d;color:#fff;font-size:12px;font-weight:900}
.feeHeaderMiniAction{min-height:32px;padding:0 10px;gap:8px;font-size:11px;box-shadow:0 4px 12px rgba(126,92,20,.07)}
.feeHeaderMiniAction strong{min-width:20px;height:20px;padding:0 7px;font-size:10px}
    .whatsappReminderReportBtn{display:none;min-height:32px;padding:0 11px;border:1px solid #b8eadf;border-radius:999px;background:linear-gradient(180deg,#ecfffb 0%,#d8fff5 100%);color:#0f766e;font-size:11px;font-weight:950;white-space:nowrap;box-shadow:0 5px 14px rgba(15,118,110,.09)}
    .whatsappReminderReportModal{display:none;position:fixed;inset:0;z-index:12000;align-items:stretch;justify-content:center;padding:0;background:rgba(16,32,61,.5)}
    .whatsappReminderReportCard{width:100%;height:100dvh;max-height:none;overflow:auto;border:0;border-radius:0;background:#f7fbff;box-shadow:none}
    .whatsappReminderReportHead{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:18px 18px 14px;border-bottom:1px solid #dce8f4;background:linear-gradient(135deg,#ecfffb 0%,#fff8e8 58%,#fff2f7 100%);box-shadow:0 8px 24px rgba(16,32,61,.08)}
    html.protivaIosNativeShell .whatsappReminderReportHead{padding-top:calc(18px + var(--protiva-safe-top))}
    .whatsappReminderReportHead h2{margin:0;color:#10203d;font-size:26px;line-height:1.05}.whatsappReminderReportHead p{margin:6px 0 0;color:#64748b;font-size:12px;font-weight:850;line-height:1.35}.whatsappReminderReportKicker{font-size:11px;font-weight:950;color:#0f766e;text-transform:uppercase;letter-spacing:.08em}
    #whatsappReminderReportClose{width:34px;height:34px;border:1px solid #dbe5f0;border-radius:999px;background:#fff;color:#10203d;font-size:16px;font-weight:950}
    .whatsappReminderReportBody{max-width:980px;margin:0 auto;padding:14px 14px 88px}.whatsappReminderReportSummary{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:9px}.whatsappReminderReportSummary div{padding:12px 10px;border:1px solid #dbe8f3;border-radius:18px;background:#fff;text-align:center;box-shadow:0 10px 24px rgba(16,32,61,.05)}.whatsappReminderReportSummary strong{display:block;color:#10203d;font-size:24px}.whatsappReminderReportSummary span{display:block;margin-top:2px;color:#64748b;font-size:10px;font-weight:900;text-transform:uppercase;line-height:1.2}
    .whatsappReminderReportNote,.whatsappReminderReportEmpty,.whatsappReminderReportError{margin-top:10px;padding:10px 12px;border-radius:14px;font-size:12px;font-weight:850;line-height:1.35}.whatsappReminderReportNote{border:1px solid #f4dfab;background:#fffaf0;color:#8a4b00}.whatsappReminderReportEmpty{border:1px dashed #cbd8e7;background:#f8fbff;color:#64748b;text-align:center}.whatsappReminderReportError{border:1px solid #f0a4a4;background:#fff0f0;color:#8f1f1f}
    .whatsappReminderRolloutGuard{margin-top:14px;padding:12px 14px;border:1px solid #cbe7ff;border-radius:16px;background:#f3faff;color:#10203d;font-size:12px;font-weight:850;line-height:1.4}.whatsappReminderRolloutGuard span{display:block;color:#64748b;margin-top:3px}.whatsappReminderReportSectionTitle{margin:18px 0 10px;color:#10203d;font-size:17px;font-weight:950}.whatsappReminderAlertPanel{margin-top:12px;display:grid;gap:8px}.whatsappReminderAlertPanel h3{margin:0;color:#8f1f1f;font-size:14px;font-weight:950}.whatsappReminderAlertItem{padding:10px 12px;border-radius:14px;border:1px solid #f0d29e;background:#fffaf0;color:#8a4b00}.whatsappReminderAlertItem.error{border-color:#f0a4a4;background:#fff0f0;color:#8f1f1f}.whatsappReminderAlertItem.info{border-color:#cbd8e7;background:#f8fbff;color:#475569}.whatsappReminderAlertItem strong,.whatsappReminderAlertItem span{display:block}.whatsappReminderAlertItem span{margin-top:2px;font-size:11px;font-weight:850;line-height:1.35}
    .whatsappReminderReportTableWrap{margin-top:12px;overflow:auto;border:1px solid #e4edf7;border-radius:16px}.whatsappReminderReportTable{width:100%;border-collapse:collapse;font-size:12px}.whatsappReminderReportTable th{position:sticky;top:0;background:#f8fbff;color:#475569;text-align:left;padding:10px;font-size:10px;text-transform:uppercase;letter-spacing:.05em}.whatsappReminderReportTable td{padding:10px;border-top:1px solid #edf2f7;color:#10203d;font-weight:850;vertical-align:top}.whatsappReminderReportTable td span{display:block;color:#64748b;font-size:10px;margin-top:2px}.whatsappReminderReportTable tr.receive td{background:#f0fff8}.whatsappReminderReportTable tr.already td{background:#fffaf0}.whatsappReminderReportTable tr.failed td,.whatsappReminderReportTable tr.skipped td{background:#fff7f7}
    .whatsappReminderDayList,.whatsappReminderCheckList{display:grid;gap:12px}.whatsappReminderDayGroup{display:grid;gap:9px}.whatsappReminderDayTitle{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:16px;background:#10203d;color:#fff;font-size:14px;font-weight:950}.whatsappReminderDayTitle span{font-size:11px;color:#dbeafe}.whatsappReminderLogCard{padding:13px;border:1px solid #dfeaf5;border-radius:18px;background:#fff;box-shadow:0 10px 24px rgba(16,32,61,.06)}.whatsappReminderLogCard.already,.whatsappReminderLogCard.receive{border-color:#bdebd8;background:linear-gradient(135deg,#f3fff9 0%,#fff 100%)}.whatsappReminderLogCard.failed{border-color:#f2b8b8;background:#fff7f7}.whatsappReminderLogCard.skipped{border-color:#f1dbad;background:#fffaf0}.whatsappReminderLogTop{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.whatsappReminderLogTop strong{display:block;color:#10203d;font-size:15px;line-height:1.2}.whatsappReminderLogTop span{display:block;margin-top:3px;color:#64748b;font-size:11px;font-weight:850}.whatsappReminderLogTop b{white-space:nowrap;border-radius:999px;padding:6px 9px;background:#e9f8f2;color:#0f766e;font-size:11px}.whatsappReminderLogCard.failed .whatsappReminderLogTop b{background:#ffe7e7;color:#9f1239}.whatsappReminderLogCard.skipped .whatsappReminderLogTop b{background:#fff0cc;color:#92400e}.whatsappReminderLogMeta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.whatsappReminderLogMeta span{padding:5px 8px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:10px;font-weight:900}.whatsappReminderLogReason{margin-top:9px;color:#64748b;font-size:12px;font-weight:850;line-height:1.35}.whatsappReminderReportActions{position:fixed;left:0;right:0;bottom:0;z-index:3;display:flex;justify-content:flex-end;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #dce8f4;background:rgba(255,255,255,.94);backdrop-filter:blur(10px)}.whatsappReminderReportActions button{border:none;border-radius:999px;padding:11px 15px;font-size:12px;font-weight:950}.whatsappReminderReportActions button:first-child{background:#0f766e;color:#fff}.whatsappReminderReportActions button:last-child{background:#eef4fb;color:#10203d}
    .whatsappReminderFilterGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.whatsappReminderFilterGrid button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px;padding:9px 11px;border:1px solid #dbe8f3;border-radius:16px;background:#fff;color:#10203d;box-shadow:0 8px 18px rgba(16,32,61,.05)}.whatsappReminderFilterGrid button.active{border-color:#0f766e;background:linear-gradient(135deg,#eafff8 0%,#fff 100%)}.whatsappReminderFilterGrid strong{font-size:13px;font-weight:950}.whatsappReminderFilterGrid span{min-width:26px;height:24px;padding:0 7px;border-radius:999px;background:#10203d;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:950}.whatsappReminderSelectedPanel,.whatsappReminderActionBox{margin-top:12px;padding:12px;border:1px solid #dfeaf5;border-radius:18px;background:#fff;box-shadow:0 10px 24px rgba(16,32,61,.05)}.whatsappReminderSelectedPanel h3,.whatsappReminderActionBox h3{margin:0 0 10px;color:#10203d;font-size:15px;font-weight:950}.whatsappReminderCategoryGroup{display:grid;gap:7px;margin-top:9px}.whatsappReminderCategoryGroup:first-child{margin-top:0}.whatsappReminderCategoryGroup h4{display:flex;align-items:center;justify-content:space-between;margin:0;padding:7px 9px;border-radius:13px;background:#f3f8ff;color:#10203d;font-size:12px;font-weight:950}.whatsappReminderCategoryGroup h4 span{min-width:22px;height:20px;border-radius:999px;background:#e9f8f2;color:#0f766e;display:inline-flex;align-items:center;justify-content:center;font-size:10px}.whatsappReminderMiniList{display:grid;gap:7px}.whatsappReminderMiniCard{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border:1px solid #e4edf7;border-radius:14px;background:#fbfdff}.whatsappReminderMiniCard>div{min-width:0}.whatsappReminderMiniCard strong{display:block;color:#10203d;font-size:12px;font-weight:950;line-height:1.2}.whatsappReminderMiniCard span{display:block;margin-top:3px;color:#64748b;font-size:10px;font-weight:850;line-height:1.35}.whatsappReminderRetryBtn{flex:0 0 auto;border:1px solid #f2b8b8;border-radius:999px;background:#fff;color:#8a1212;font-size:10px;font-weight:950;padding:6px 9px;min-height:28px}.whatsappReminderRetryBtn:disabled{opacity:.65}.whatsappReminderMiniCard.sent,.whatsappReminderMiniCard.already,.whatsappReminderMiniCard.seen,.whatsappReminderMiniCard.will{border-color:#bdebd8;background:#f4fffa}.whatsappReminderMiniCard.failed{border-color:#f2b8b8;background:#fff7f7}.whatsappReminderActionOk{padding:10px;border-radius:14px;background:#f4fffa;border:1px solid #bdebd8;color:#0f766e;font-size:12px;font-weight:900}.whatsappReminderDayTitle{width:100%;border:0;text-align:left;cursor:pointer}.whatsappReminderDayGroup.open .whatsappReminderDayTitle{background:#0f766e}
    .whatsappReminderDayFilterGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.whatsappReminderDayFilterGrid button{display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:32px;padding:6px 7px;border:1px solid #dbe8f3;border-radius:11px;background:#fff;color:#10203d;box-shadow:0 5px 12px rgba(16,32,61,.04)}.whatsappReminderDayFilterGrid button.active{border-color:#0f766e;background:#eafff8}.whatsappReminderDayFilterGrid strong{font-size:10px;font-weight:950}.whatsappReminderDayFilterGrid span{min-width:19px;height:18px;padding:0 5px;border-radius:999px;background:#10203d;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:950}.whatsappReminderDayGroup.open{gap:7px}.whatsappReminderDayGroup.open .whatsappReminderCategoryGroup{margin-top:2px}.whatsappReminderDayGroup.open .whatsappReminderCategoryGroup h4{padding:6px 8px;font-size:11px}.whatsappReminderDayGroup.open .whatsappReminderMiniList{gap:6px}.whatsappReminderDayGroup.open .whatsappReminderMiniCard{padding:8px 9px}
    .leftReasonModal{display:none;position:fixed;inset:0;z-index:13000;align-items:flex-end;justify-content:center;padding:14px;background:rgba(16,32,61,.54)}.leftReasonCard{width:min(520px,100%);padding:14px;border:1px solid #dbe8f3;border-radius:18px;background:#fff;box-shadow:0 22px 60px rgba(16,32,61,.24)}.leftReasonHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.leftReasonHead h3{margin:0;color:#10203d;font-size:18px;line-height:1.15}.leftReasonHead p{margin:4px 0 0;color:#64748b;font-size:12px;font-weight:850;line-height:1.35}.leftReasonHead button{width:34px;height:34px;border:1px solid #dbe8f3;border-radius:999px;background:#f8fbff;color:#10203d;font-size:16px;font-weight:950}.leftReasonCategoryGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.leftReasonCategoryGrid button{min-height:40px;padding:8px;border:1px solid #dbe8f3;border-radius:12px;background:#f8fbff;color:#10203d;font-size:12px;font-weight:950}.leftReasonCategoryGrid button.on{border-color:#0f766e;background:#eafff8;color:#0f5e59}.leftReasonField{display:block;margin-top:12px}.leftReasonField span{display:block;margin-bottom:5px;color:#475569;font-size:11px;font-weight:950;text-transform:uppercase}.leftReasonField textarea{width:100%;resize:vertical;min-height:78px;border:1px solid #cbd8e7;border-radius:12px;padding:10px 11px;color:#10203d;font-size:13px;font-weight:850;line-height:1.35;outline:none}.leftReasonField textarea:focus{border-color:#0f766e;box-shadow:0 0 0 3px rgba(15,118,110,.12)}.leftReasonError{min-height:20px;margin-top:7px;color:#9f1239;font-size:12px;font-weight:900}.leftReasonActions{display:flex;gap:9px;margin-top:8px}.leftReasonActions button{flex:1;min-height:42px;border:0;border-radius:999px;font-size:13px;font-weight:950}.leftReasonActions button:first-child{background:#eef4fb;color:#10203d}.leftReasonActions button:last-child{background:#0f766e;color:#fff}
    .whatsappReminderLoadOlder{display:block;width:min(320px,100%);margin:14px auto 0;padding:11px 16px;border:1px solid #cbd8e7;border-radius:999px;background:#fff;color:#0f766e;font-size:12px;font-weight:950}.whatsappReminderLoadOlder:disabled{opacity:.6}
    @media(max-width:620px){.whatsappReminderReportHead h2{font-size:22px}.whatsappReminderReportSummary{grid-template-columns:repeat(2,minmax(0,1fr))}.whatsappReminderLogTop{display:block}.whatsappReminderLogTop b{display:inline-block;margin-top:8px}.whatsappReminderReportActions{justify-content:stretch}.whatsappReminderReportActions button{flex:1}}
    .feeHeaderIconAction{width:32px;height:32px;min-width:32px;border-radius:11px;font-size:14px;box-shadow:0 4px 12px rgba(16,32,61,.08)}
    .feeSummaryHiddenCard{display:none !important}
    .feeFilterRow,.feeSpecialFilterRow{gap:7px;margin-top:8px}
    .feeFilterBtn{padding:9px 8px;font-size:12px;box-shadow:0 3px 10px rgba(16,32,61,.04)}
    .feeFilterBtn .count{font-size:10px;margin-top:1px}
    .feeSortCompactBtn{padding:0 6px;font-size:10px}
    .feeAdmissionPanel{display:none;padding:12px;margin-top:10px}
    .feeAdmissionPanel.show{display:block}
    .feeAdmissionGroup{border:1px solid #e1e9f3;border-radius:12px;background:#fff;margin-bottom:8px;overflow:hidden}
    .feeAdmissionGroup summary{list-style:none;cursor:pointer}
    .feeAdmissionGroup summary::-webkit-details-marker{display:none}
    .feeAdmissionSummary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;font-size:13px;font-weight:900;color:#10203d}
    .feeAdmissionSummary span{font-size:12px;color:#5a6980}
    .feeAdmissionStudents{display:grid;gap:0;border-top:1px solid #eef2f7;background:#fffdf8}
    .feeAdmissionSourceBlock{border-top:1px solid #eef2f7;background:#fffdf8}
    .feeAdmissionSourceHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;font-size:12px;font-weight:900;color:#8a4b00;background:#fff7e7}
    .feeAdmissionSourceHead span{font-size:11px;color:#8a6400}
    .feeAdmissionStudentLine{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;font-size:12px;font-weight:800;color:#334155;border-top:1px solid #f3f5f9}
    .feeAdmissionStudentLine:first-child{border-top:none}
    .feeAdmissionStudentLine span:last-child{color:#5a6980;white-space:nowrap}
    .feeMonthPanelList{display:grid;gap:8px}
    .feeMonthPanelItem{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid #e1e9f3;border-radius:12px;background:#fff}
    .feeMonthPanelItem strong{font-size:13px}
    .feeMonthPanelItem span{font-size:12px;font-weight:900;color:#10203d}
    .feeMonthGroup{border:1px solid #e1e9f3;border-radius:12px;background:#fff;overflow:hidden}
    .feeMonthGroup summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 11px;font-size:13px;font-weight:900;color:#10203d}
    .feeMonthGroup summary::-webkit-details-marker{display:none}
    .feeMonthGroupLabel{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
    .feeMonthTitleText{min-width:0}
    .feeMonthGroupTotal{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
    .feeMonthChevron{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;transition:transform .16s ease}
    .feeMonthGroup[open] .feeMonthChevron{transform:rotate(180deg)}
    .feeMonthGroupBody{display:grid;border-top:1px solid #eef2f7;background:#fffdf8}
    .feeMonthStatLine{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 11px;font-size:12px;font-weight:800;color:#334155;border-top:1px solid #f3f5f9}
    .feeMonthStatLine:first-child{border-top:none}
    .feeMonthStatLine strong{white-space:nowrap;color:#10203d}
    .feeMonthPaidTitle{padding:8px 11px;border-top:1px solid #eef2f7;background:#f8fbff;font-size:11px;font-weight:900;color:#5a6980}
    .feeMonthPaidList{display:grid;background:#fff}
    .feeMonthPaidLine{padding:8px 11px;border-top:1px solid #f3f5f9;font-size:12px;font-weight:800;color:#334155;line-height:1.45;word-break:break-word}
    .feeMonthEmpty{padding:9px 11px;border-top:1px solid #eef2f7;font-size:12px;font-weight:800;color:#5a6980}
    .feeMonthSearchWrap{position:relative;margin-bottom:8px}
    .feeMonthSearchInput{width:100%;padding:12px 44px 12px 13px;border:1.5px solid #d9e4f1;border-radius:12px;background:#fff;font-size:14px;font-weight:800;color:#10203d}
    .feeMonthTrendChip{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap;border:1px solid transparent}
    .feeMonthTrendChip.good{background:#e8f7ee;border-color:#cfe9d8;color:#0f5c34}
    .feeMonthTrendChip.stable{background:#fff6db;border-color:#f1dda0;color:#8a6400}
    .feeMonthTrendChip.weak{background:#fdecec;border-color:#efc8c8;color:#8b1c1c}
    .expenseAllToggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid #d9e4f1;border-radius:12px;background:#f8fbff;color:#10203d;font-size:13px;font-weight:900}
    .expenseAllToggle .expenseMonthChevron{transition:transform .16s ease}
    .expenseAllToggle.open .expenseMonthChevron{transform:rotate(180deg)}
    .expenseModalHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
    .expenseModalHead .mhead{margin:0}
    .expensePnlBtn{flex:0 0 auto;background:linear-gradient(180deg,#f5fffe 0%,#dffff9 100%);border-color:#9be0d6;color:#08766f}
    .expenseMonthPanel{display:none;gap:8px;margin:8px 0 10px}
    .expenseMonthPanel.show{display:grid}
    .expenseMonthGroup{border:1px solid #e1e9f3;border-radius:12px;background:#fff;overflow:hidden}
    .expenseMonthGroup summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;font-size:13px;font-weight:900;color:#10203d}
    .expenseMonthGroup summary::-webkit-details-marker{display:none}
    .expenseMonthLabel{display:flex;align-items:center;gap:8px;min-width:0}
    .expenseMonthTotal{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
    .expenseMonthChevron{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;transition:transform .16s ease}
    .expenseMonthGroup[open] .expenseMonthChevron{transform:rotate(180deg)}
    .expenseMonthItems{display:grid;border-top:1px solid #eef2f7;background:#fffdf8}
    .expenseMonthLine{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px;font-size:12px;font-weight:800;color:#334155;border-top:1px solid #f3f5f9}
    .expenseMonthLine:first-child{border-top:none}
    .expenseMonthLine span:last-child{white-space:nowrap;color:#10203d;font-weight:900}
    .expenseMonthSummary{padding:11px 12px;border:1px solid #d9e4f1;border-radius:12px;background:#f8fbff;font-size:13px;font-weight:900;color:#10203d}
    .pnlSheet{background:linear-gradient(180deg,#fffdfb 0%,#fff7f3 100%)}
    .pnlHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
    .pnlSubhead{margin-top:-6px;font-size:12px;font-weight:800;color:#7a5e5e}
    .pnlCloseBtn{padding:10px 14px;flex:0 0 auto}
    .pnlTabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
    .pnlTabBtn{border:1px solid #e6d9d4;border-radius:14px;background:#fff;font-size:13px;font-weight:900;color:#5b3b3b;padding:11px 10px;line-height:1.15;box-shadow:0 4px 12px rgba(86,25,25,.05)}
    .pnlTabBtn.on{background:linear-gradient(180deg,#8f0f0f 0%,#6d0000 100%);color:#fff;border-color:#7d0000;box-shadow:0 8px 18px rgba(149,0,0,.18)}
    .pnlContent{display:grid;gap:10px;padding-bottom:10px}
    .pnlCardGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .pnlStatCard{padding:14px 13px;border:1px solid #eadfd9;border-radius:16px;background:#fff;box-shadow:0 10px 24px rgba(86,25,25,.05)}
    .pnlStatCard.good{background:#effaf3;border-color:#cfe8d7}
    .pnlStatCard.stable{background:#fff9e9;border-color:#f0dfaa}
    .pnlStatCard.weak{background:#fff1f1;border-color:#efcece}
    .pnlValue{font-size:25px;font-weight:900;line-height:1.1;color:#10203d}
    .pnlLabel{margin-top:5px;font-size:12px;font-weight:900;color:#5a6980}
    .pnlHelper{margin-top:4px;font-size:11px;font-weight:800;color:#7a5e5e;line-height:1.35}
    .pnlSectionCard{padding:13px;border:1px solid #eadfd9;border-radius:16px;background:#fff;box-shadow:0 10px 24px rgba(86,25,25,.05)}
    .pnlSectionTitle{font-size:15px;font-weight:900;color:#7b0909;margin-bottom:8px}
    .pnlChipRow{display:flex;gap:8px;flex-wrap:wrap}
    .pnlChip{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:900;border:1px solid transparent}
    .pnlChip.good{background:#e8f7ee;border-color:#cfe9d8;color:#0f5c34}
    .pnlChip.stable{background:#fff6db;border-color:#f1dda0;color:#8a6400}
    .pnlChip.weak{background:#fdecec;border-color:#efc8c8;color:#8b1c1c}
    .pnlHintList{display:grid;gap:8px}
    .pnlHintLine{display:flex;align-items:flex-start;gap:8px;padding:10px 11px;border-radius:14px;border:1px solid #eadfd9;background:#fff}
    .pnlHintLine.good{background:#effaf3;border-color:#cfe8d7}
    .pnlHintLine.stable{background:#fff9e9;border-color:#f0dfaa}
    .pnlHintLine.weak{background:#fff1f1;border-color:#efcece}
    .pnlHintLine strong{font-size:12px;line-height:1.45;color:#334155}
    .pnlTeacherList{display:grid;gap:10px}
    .pnlTeacherCard{padding:12px;border:1px solid #eadfd9;border-radius:16px;background:#fff;box-shadow:0 8px 20px rgba(86,25,25,.05)}
    .pnlTeacherCard.good{background:#effaf3;border-color:#cfe8d7}
    .pnlTeacherCard.stable{background:#fff9e9;border-color:#f0dfaa}
    .pnlTeacherCard.weak{background:#fff1f1;border-color:#efcece}
    .pnlTeacherHead{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .pnlTeacherCode{font-size:18px;font-weight:900;color:#10203d}
    .pnlTeacherInsight{font-size:11px;font-weight:900}
    .pnlTeacherStats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
    .pnlMiniCard{padding:9px 10px;border-radius:12px;background:rgba(255,255,255,.76);border:1px solid rgba(16,32,61,.08)}
    .pnlMiniCard strong{display:block;font-size:15px;font-weight:900;color:#10203d}
    .pnlMiniCard span{display:block;margin-top:2px;font-size:11px;font-weight:800;color:#5a6980;line-height:1.35}
    .pnlSearchWrap{position:relative;margin-bottom:8px}
    .pnlSearchInput{width:100%;padding:12px 44px 12px 13px;border:1.5px solid #d9e4f1;border-radius:12px;background:#fff;font-size:14px;font-weight:800;color:#10203d}
    .pnlActionRow{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
    .pnlToggleBtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #ead6a4;border-radius:999px;background:linear-gradient(180deg,#fffdf2 0%,#fff6d8 100%);color:#8a4b00;padding:10px 14px;font-size:12px;font-weight:900}
    .pnlInlineForm{display:grid;gap:10px;padding:12px;border:1px solid #eadfd9;border-radius:16px;background:#fffaf8}
    .pnlInlineForm textarea{min-height:82px}
    .pnlInlineForm select,.pnlInlineForm input,.pnlInlineForm textarea{width:100%;padding:13px 14px;border:1.5px solid #d9e4f1;border-radius:12px;background:#fff;font-size:14px;font-weight:800;color:#10203d}
    .pnlInlineForm .feeDateDmyDisplay{min-height:43px;padding:13px 14px;border:1.5px solid #d9e4f1;border-radius:12px;font-size:14px;font-weight:800}
    .pnlInlineFormRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .pnlCategoryRow{display:flex;gap:8px;flex-wrap:wrap}
    .pnlCategoryTag{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;background:#f8fbff;border:1px solid #d9e4f1;color:#334155;font-size:11px;font-weight:900}
    .pnlSimpleList{display:grid;gap:8px}
    .pnlSimpleLine{padding:9px 11px;border:1px solid #edf2f7;border-radius:12px;background:#fff;font-size:12px;font-weight:800;color:#334155;line-height:1.45}
    .pnlSimpleLine strong{color:#10203d}
    .pnlSimpleHero{display:grid;gap:8px;padding:16px;border:1px solid #dbe5f2;border-radius:16px;background:#fff;box-shadow:0 10px 24px rgba(16,32,61,.06)}
    .pnlHeroLabel{font-size:13px;font-weight:900;color:#5a6980}
    .pnlHeroValue{font-size:42px;font-weight:900;line-height:1;color:#10203d;word-break:break-word}
    .pnlHeroValue.good{color:#166534}
    .pnlHeroValue.weak{color:#b42318}
    .pnlSimpleGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
    .pnlSimpleBox{padding:14px;border:1px solid #dbe5f2;border-radius:14px;background:#fff}
    .pnlSimpleBox strong{display:block;font-size:26px;font-weight:900;line-height:1.05;color:#10203d;word-break:break-word}
    .pnlSimpleBox span{display:block;margin-top:6px;font-size:13px;font-weight:900;color:#5a6980}
    .pnlSimpleBox.good{background:#effaf3;border-color:#cfe8d7}
    .pnlSimpleBox.weak{background:#fff1f1;border-color:#efcece}
    .pnlPlainList{display:grid;gap:8px}
    .pnlPlainLine{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;font-size:14px;font-weight:900;color:#334155}
    .pnlPlainLine strong{font-size:17px;color:#10203d;white-space:nowrap}
    .pnlTeacherSimpleCard{display:grid;gap:10px;padding:14px;border:1px solid #dbe5f2;border-radius:14px;background:#fff}
    .pnlTeacherSimpleHead{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .pnlTeacherSimpleHead strong{font-size:20px;font-weight:900;color:#10203d}
    .pnlTeacherSimpleHead span{font-size:22px;font-weight:900;color:#166534}
    .pnlTeacherSimpleMeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .pnlTeacherSimpleMeta div{padding:10px;border-radius:12px;background:#f8fbff;border:1px solid #e2e8f0}
    .pnlTeacherSimpleMeta strong{display:block;font-size:18px;font-weight:900;color:#10203d}
    .pnlTeacherSimpleMeta span{display:block;margin-top:3px;font-size:12px;font-weight:900;color:#5a6980}
    .pnlPaidList{display:grid;border-top:1px solid #eef2f7;background:#fff}
    .pnlPaidLine{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:8px 11px;border-top:1px solid #f3f5f9}
    .pnlPaidLine:first-child{border-top:none}
    .pnlPaidName{font-size:12px;font-weight:900;color:#10203d;line-height:1.25;word-break:break-word}
    .pnlPaidMeta{margin-top:2px;font-size:10px;font-weight:900;color:#64748b}
    .pnlPaidAmount{font-size:13px;font-weight:900;color:#166534;white-space:nowrap}
    .feeRow.pauseCard,.feeRow.unpaidMutedCard{background:linear-gradient(180deg,#f1f4f8 0%,#ebeff4 100%);border-color:#d9e0ea;box-shadow:0 8px 20px rgba(16,32,61,.05),inset 0 1px 0 rgba(255,255,255,.75)}
    .feeMiniStat{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;background:#edf2f8;color:#334155}
    .feeStatusTag.active{background:#e8f7ee;color:#0f5c34}
    .feeStatusTag.pause{background:#e5e7eb;color:#374151}
    .feeStatusTag.pausedue{background:#dcfce7;color:#166534}
    .feeStatusTag.left{background:#ede9fe;color:#5b21b6}
    .feeStudentInfo{display:none;padding:10px 12px;border:1px solid #f1e4c9;border-radius:14px;background:linear-gradient(180deg,#fffaf1 0%,#fff6e8 100%);box-shadow:0 4px 12px rgba(126,92,20,.06)}
    .feeStudentInfoRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;font-weight:900;color:#334155;line-height:1.45}
    .feeStudentInfoCode{color:#10203d}
    .feeStudentInfoSep{color:#94a3b8}
    .feeStudentInfoDot{width:10px;height:10px;border-radius:999px;display:inline-block;flex:0 0 auto}
    .feeStudentInfoDot.active{background:#16a34a}
    .feeStudentInfoDot.pause,.feeStudentInfoDot.left{background:#9ca3af}
    .lockedInput{background:#f8fafc !important;color:#64748b}
    .feeEditHint{font-size:12px;color:#5a6980;font-weight:800;line-height:1.45}
    .feedbackPanelSummary{padding:11px 12px;border:1px solid #f1e1ba;border-radius:14px;background:linear-gradient(180deg,#fffaf0 0%,#fff7e8 100%);font-size:13px;font-weight:900;color:#7a4c00}
    .teacherPerformancePanel{display:grid;gap:9px;padding:11px;border:1px solid #dce7f3;border-radius:16px;background:linear-gradient(145deg,#f8fbff 0%,#fff 56%,#fff9ef 100%);box-shadow:0 10px 28px rgba(16,32,61,.07)}
    .teacherPerformanceHead{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .teacherPerformanceTitle{font-size:17px;font-weight:950;color:#10203d;letter-spacing:-.02em}
    .teacherPerformanceMonth{display:flex;align-items:center;gap:6px;font-size:10px;color:#64748b;white-space:nowrap}
    .teacherPerformanceMonth b{font-size:11px;color:#10203d}
    .teacherPerformanceMonth span,.teacherPerformanceLive{padding:3px 7px;border-radius:999px;background:#e7f8f1;color:#047857;font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}
    .teacherPerformanceHelp{font-size:10px;font-weight:800;color:#64748b;line-height:1.35}
    .teacherPerformanceRows{display:grid;gap:9px}
    .teacherPerformanceCard{border:1px solid #dde7f2;border-radius:14px;background:rgba(255,255,255,.9);padding:10px;display:grid;gap:8px;box-shadow:0 7px 18px rgba(16,32,61,.055)}
    .teacherPerformanceCard.red,.teacherPerformanceCard.amber,.teacherPerformanceCard.green{border-color:#dde7f2;background:rgba(255,255,255,.9)}
    .teacherPerformanceTop{display:flex;align-items:center;justify-content:space-between;gap:8px}
    .teacherPerformanceCode{font-size:14px;font-weight:950;color:#10203d}
    .teacherPerformanceCurrent{font-size:9px;font-weight:900;color:#7b8798;text-transform:uppercase;letter-spacing:.05em}
    .teacherPerformanceIcon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 auto;border-radius:8px;background:#eef4fb;color:#24436b}
    .teacherPerformanceIcon svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .teacherPerformanceStatusHead{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:950;color:#334155}
    .teacherPerformanceStatusHead b{margin-left:auto;padding:3px 7px;border-radius:999px;background:#edf9f2;color:#16814c;font-size:9px}
    .teacherPerformanceStatusGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
    .teacherPerformanceStatusBtn{min-width:0;display:flex;align-items:baseline;justify-content:center;gap:4px;padding:6px;border:1px solid #e4eaf2;border-radius:9px;background:#fbfdff;color:#10203d;font-family:inherit;cursor:pointer;box-shadow:none}
    .teacherPerformanceStatusBtn:active{transform:translateY(1px)}.teacherPerformanceStatusBtn:focus-visible{outline:2px solid #8eb0d6;outline-offset:2px}.teacherPerformanceStatusBtn:disabled{cursor:default;opacity:.62}
    .teacherPerformanceStatusGrid b{font-size:18px;line-height:1;color:#10203d}
    .teacherPerformanceStatusGrid span{font-size:9px;font-weight:900;color:#64748b}
    .teacherPerformanceStatusBar{height:5px;border-radius:999px;display:flex;overflow:hidden;background:#edf1f5}
    .teacherPerformanceStatusBar i{display:block;height:100%;min-width:0}
    .teacherPerformanceStatusBar .active{background:#22a864}.teacherPerformanceStatusBar .pause{background:#f2b84b}.teacherPerformanceStatusBar .left{background:#e16464}
    .teacherPerformancePrimary{display:grid;grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);gap:6px}
    .teacherPerformancePrimaryCard{min-width:0;display:flex;align-items:center;gap:7px;padding:8px;border:1px solid #e4ebf4;border-radius:11px;background:#f9fbfe}
    .teacherPerformancePrimaryCard.chat{background:linear-gradient(145deg,#eef8ff,#f8fbff)}
    .teacherPerformancePrimaryCard.homework{background:linear-gradient(145deg,#fff8e9,#fffdf8)}
    .teacherPerformancePrimaryCard.chat>div{display:grid;gap:1px}.teacherPerformancePrimaryCard.chat span{font-size:9px;font-weight:900;color:#64748b}.teacherPerformancePrimaryCard.chat b{font-size:22px;line-height:1;color:#10203d}
    .teacherPerformanceHomework{min-width:0;flex:1;display:grid;gap:4px}.teacherPerformanceHomework>span{font-size:9px;font-weight:900;color:#64748b}.teacherPerformanceHomework>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
    .teacherPerformanceHomework b{display:flex;align-items:baseline;gap:3px;font-size:17px;line-height:1;color:#10203d}.teacherPerformanceHomework small{font-size:8px;font-weight:900;color:#64748b;white-space:nowrap}
    .teacherPerformanceSecondary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
    .teacherPerformanceSecondary>div{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center;column-gap:4px;padding:6px 4px;border:1px solid #edf1f5;border-radius:9px;background:#fff}
    .teacherPerformanceSecondary .teacherPerformanceIcon{grid-row:1/3;width:20px;height:20px;border-radius:7px}.teacherPerformanceSecondary b{font-size:14px;line-height:1;color:#10203d}.teacherPerformanceSecondary span:not(.teacherPerformanceIcon){font-size:8px;font-weight:900;color:#718096}
    .teacherPerformanceAction{display:flex;align-items:center;gap:6px;padding:7px 8px;border-radius:10px;background:#10203d;color:#fff;font-size:10px;line-height:1.2}
    .teacherPerformanceAction .teacherPerformanceIcon{width:20px;height:20px;background:rgba(255,255,255,.12);color:#fff}.teacherPerformanceAction span{font-weight:800;color:#b9c8dc}.teacherPerformanceAction b{font-size:11px;font-weight:950}
    .teacherPerformanceHistory{border-top:1px solid #edf1f5;padding-top:7px}.teacherPerformanceHistory summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:#64748b}.teacherPerformanceHistory summary:focus-visible{outline:2px solid #8eb0d6;outline-offset:2px;border-radius:6px}.teacherPerformanceHistory summary::-webkit-details-marker{display:none}.teacherPerformanceHistory summary b{color:#334155}.teacherPerformanceHistory summary span:after{content:'  +';font-weight:950;color:#10203d}.teacherPerformanceHistory[open] summary span:after{content:'  −'}
    .teacherPerformanceHistoryList{display:grid;gap:7px;margin-top:7px}.teacherPerformanceHistoryMonth{display:grid;gap:6px;padding:7px;border:1px solid #e8edf4;border-radius:10px;background:#fafcff}.teacherPerformanceHistoryMonthHead{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px}.teacherPerformanceHistoryMonthHead b{color:#10203d}.teacherPerformanceHistoryMonthHead span{padding:2px 6px;border-radius:999px;font-size:7px;font-weight:950;text-transform:uppercase;letter-spacing:.04em}.teacherPerformanceHistoryMonthHead span.saved{background:#e7f8f1;color:#047857}.teacherPerformanceHistoryMonthHead span.partial{background:#fff4d8;color:#946200}
    .teacherPerformanceStatusGrid.compact .teacherPerformanceStatusBtn{padding:5px}.teacherPerformanceStatusGrid.compact b{font-size:13px}.teacherPerformanceStatusGrid.compact span{font-size:8px}
    .teacherPerformanceHistoryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.teacherPerformanceHistoryGrid span{padding:5px 3px;border-radius:7px;background:#f2f5f9;text-align:center;font-size:7px;font-weight:850;color:#64748b}.teacherPerformanceHistoryGrid b{display:block;color:#10203d;font-size:10px;margin-top:1px}
    .teacherPerformanceStatusDetails{display:grid;gap:6px;padding:7px;border:1px solid #dce6f1;border-radius:10px;background:linear-gradient(145deg,#f8fbff,#fff);max-height:176px;overflow:auto}.teacherPerformanceStatusDetails[hidden]{display:none}.teacherPerformanceStatusDetailsHead{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;color:#334155}.teacherPerformanceStatusDetailsHead span{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:999px;background:#10203d;color:#fff;font-size:8px;font-weight:950}.teacherPerformanceStatusEmpty{padding:5px;text-align:center;color:#7b8798;font-size:9px;font-weight:800}
    .teacherPerformanceStudentList{display:grid;gap:4px}.teacherPerformanceStudentList>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 6px;border-radius:8px;background:#fff;border:1px solid #edf1f5}.teacherPerformanceStudentList span{min-width:0;display:flex;align-items:baseline;gap:5px}.teacherPerformanceStudentList b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#10203d;font-size:9px}.teacherPerformanceStudentList small{flex:0 0 auto;color:#78879a;font-size:7px;font-weight:850}.teacherPerformanceStudentList time{flex:0 0 auto;color:#8b5a00;font-size:7px;font-weight:900}
    @media(min-width:760px){.teacherPerformanceRows{grid-template-columns:repeat(2,minmax(0,1fr))}.teacherPerformanceCard{padding:12px}.teacherPerformanceCard:only-child{grid-column:1/-1}.teacherPerformanceTitle{font-size:19px}.teacherPerformanceStatusGrid b{font-size:20px}}
    .feedbackModalHead{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .feedbackModalHead .mhead{margin:0}
    .feedbackTopCloseBtn{padding:10px 14px;flex:0 0 auto}
    .feedbackFilterRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
    .feedbackFilterBtn{padding:11px 10px;border:1px solid #d7e2ef;border-radius:12px;background:#f8fbff;color:#10203d;font-size:13px;font-weight:900}
    .feedbackFilterBtn.on{background:linear-gradient(180deg,var(--brand),var(--brand2));color:#fff;border-color:#8b0000}
    .feedbackSearchWrap{position:relative}
    .feedbackSearchInput{width:100%;padding:13px 44px 13px 14px;border:2px solid var(--line);border-radius:14px;font-size:16px;font-weight:800;background:#fff}
    .feedbackSearchClear{font-size:0}
    .feedbackList{display:grid;gap:10px}
    .feedbackMonthHeader{padding:2px 4px 0;font-size:13px;font-weight:900;color:#5a6980}
    .feedbackRow{border:1px solid #dbe5f2;border-radius:16px;background:#fff;box-shadow:0 8px 20px rgba(16,32,61,.05);overflow:hidden}
    .feedbackRowBtn{width:100%;border:none;background:transparent;padding:13px 14px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:10px}
    .feedbackRowBtn:active{transform:none}
    .feedbackRowActions{margin:0 14px 13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .feedbackDeleteBtn,.feedbackBanBtn{padding:9px 12px;border-radius:10px;font-size:12px;font-weight:900}
    .feedbackDeleteBtn{border:1px solid #fecaca;background:#fff5f5;color:#b42318}
    .feedbackBanBtn{border:1px solid #fed7aa;background:#fff7ed;color:#9a3412}
    .feedbackRowMain{min-width:0;display:grid;gap:3px}
    .feedbackRowNameLine{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;min-width:0}
    .feedbackRowName{font-size:16px;font-weight:900;color:#10203d;line-height:1.25;word-break:break-word}
    .feedbackRowTime{font-size:10px;font-weight:900;color:#7b8798;line-height:1.2;white-space:nowrap}
    .feedbackRowMeta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;font-weight:900;color:#5a6980}
    .feedbackTeacherChip{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#eef3ff;border:1px solid #dce6f5;color:#10203d;font-size:11px;font-weight:900}
    .feedbackStudentIdChip{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:0 8px;border-radius:999px;background:#f8fafc;border:1px solid #dbe5f2;color:#53627a;font-size:11px;font-weight:900}
    .feedbackScoreChip{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:34px;padding:0 12px;border-radius:999px;background:#10203d;color:#fff;font-size:15px;font-weight:900;white-space:nowrap}
    .feedbackCaret{font-size:18px;color:#6b7280;line-height:1}
    .feedbackDetails{padding:0 14px 14px;border-top:1px solid #eef2f7;background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%)}
    .feedbackQuestionList{display:grid;gap:8px;margin-top:12px}
    .feedbackQuestion{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #edf2f7;border-radius:12px;background:#fff}
    .feedbackQuestionLabel{min-width:0;font-size:12px;font-weight:800;color:#334155;line-height:1.45}
    .feedbackQuestionScore{flex:0 0 auto;min-width:34px;text-align:center;font-size:13px;font-weight:900;color:#10203d}
    .feedbackGuardianNote{margin-top:12px;padding:11px 12px;border:1px solid #f1e1ba;border-radius:12px;background:#fffaf0}
    .feedbackGuardianNote strong{display:block;font-size:12px;font-weight:900;color:#7a4c00;margin-bottom:4px}
    .feedbackGuardianNote span{display:block;font-size:13px;font-weight:800;color:#334155;line-height:1.5;white-space:pre-wrap;word-break:break-word}
    .feeAmountInput:disabled{background:#f3f4f6;color:#7b8798}
    #feeEntryDateWrap{display:none}
    .feeDateDmyField{position:relative;display:block;width:100%;min-width:0}
    .feeDateDmyField>input[type=date]{position:absolute!important;inset:0!important;z-index:2;width:100%!important;height:100%!important;margin:0!important;padding:0!important;opacity:0!important;cursor:pointer}
    .feeDateDmyDisplay{display:flex;align-items:center;justify-content:space-between;gap:10px;box-sizing:border-box;width:100%;min-height:49px;padding:14px;border:2px solid var(--line);border-radius:14px;background:#fff;color:#10203d;font-size:17px;font-weight:700;line-height:1.2}
    #feeEventModal .feeDateDmyDisplay{min-height:47px;padding:12px 14px;border-radius:14px;font-size:16px}
    .feeDateDmyDisplay.placeholder{color:#7b8798}
    .feeDateDmyDisplay.disabled{background:#f3f4f6;color:#7b8798}
    .feeDateDmyArrow{flex:0 0 auto;color:#64748b;font-size:18px;font-weight:500;line-height:1}
    .feeDateDmyField:focus-within .feeDateDmyDisplay{border-color:#5373a4;box-shadow:0 0 0 2px rgba(83,115,164,.14)}
    #feeEventModal .form input,#feeEventModal .form select{padding:12px 14px;font-size:16px;border-radius:14px}
    #feeEventModal .form label{font-size:14px}
    .feeExtendPrompt{display:none;margin:6px 0 4px;padding:12px;border:1px solid #ead6a4;border-radius:14px;background:#fffaf0;color:#10203d;box-shadow:0 8px 18px rgba(126,92,20,.08)}
    .feeExtendTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .feeExtendTitle{font-size:15px;font-weight:900;line-height:1.2}
    .feeExtendSummary{margin-top:4px;color:#64748b;font-size:12px;font-weight:800;line-height:1.4}
    .feeExtendClose{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:999px;background:#f2f4f8;color:#64748b;font-size:18px;font-weight:900;line-height:1}
    .feeExtendActions{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:8px;margin-top:10px}
    .feeExtendBtn{border:none;border-radius:12px;padding:11px 12px;font-size:13px;font-weight:900;background:#10203d;color:#fff}
    .feeExtendBtn.secondary{background:#eef2f7;color:#475569}
    .feeExtendFields{display:none;margin-top:10px;gap:8px}
    .feeExtendGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .feeExtendCalc{font-size:12px;font-weight:900;color:#7a4c00;line-height:1.45}
    .feeSourceBadge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;font-size:13px;font-weight:900;line-height:1;box-shadow:0 1px 3px rgba(16,32,61,.08)}
    .feeSourceBadge.fb{background:#1877f2;color:#fff;font-family:Arial,sans-serif}
    .feeSourceBadge.google{background:#fff;color:#4285f4;border:1px solid #d8e1ef;font-family:Arial,sans-serif}
    .feeSourceBadge.youtube{background:#ff0000;color:#fff;border-radius:8px;min-width:30px;font-size:12px}
    .feeSourceBadge.family{background:#fff6db;color:#8a6400;font-size:15px}
    .archiveBadge{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;background:#f3f4f6;color:#6b7280;font-size:14px;box-shadow:0 1px 3px rgba(16,32,61,.08)}
    #feeMain .iconBtn,#feeMain .miniIconBtn{background:#f7f9fc;border:1px solid #e2eaf4;box-shadow:0 6px 14px rgba(16,32,61,.06);transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease,border-color .14s ease}
    #feeMain .iconBtn:hover,#feeMain .miniIconBtn:hover{transform:translateY(-1px);box-shadow:0 10px 18px rgba(16,32,61,.09);border-color:#d7e2ef;background:#fff}
    .feeUtilityBtn{display:inline-flex;align-items:center;justify-content:center;border:none;background:#f7f9fc;border:1px solid #e2eaf4;color:#10203d;box-shadow:0 4px 12px rgba(16,32,61,.05);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background-color .12s ease}
    .feeUtilityBtn:hover{transform:translateY(-1px);box-shadow:0 8px 16px rgba(16,32,61,.08);border-color:#d7e2ef;background:#fff}
    .feeUtilityBtn.primary{width:30px;height:30px;border-radius:10px;font-size:14px;font-weight:900}
    .feeUtilityBtn.notes{position:relative;width:30px;min-width:30px;height:30px;border-radius:10px;padding:0;font-size:14px;font-weight:900}
    .feeUtilityBtn.secondary{width:24px;height:24px;border-radius:8px;font-size:12px;font-weight:900;opacity:.82}
    #feeMain .feeUtilityBtn .noteActionIcon{font-size:15px;line-height:1}
    .feeUtilityCount{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;border-radius:999px;background:#10203d;color:#fff;font-size:9px;font-weight:900;padding:0 4px}
    .feeUtilityBtn.notes .feeUtilityCount{position:absolute;top:-5px;right:-5px;z-index:2}
    .feeCardExportBtn{font-size:13px;line-height:1}
    .leftActionBtn{background:#f3f4f6;color:#6b7280}
    .card.hasLeftAction,.feeRow.hasLeftAction{padding-top:18px}
    .card.hasLeftAction .head,.feeRow.hasLeftAction .feeCardHead{padding-left:44px}
    .cardCornerAction{position:absolute;top:12px;left:12px;z-index:3;width:30px;height:30px;padding:0;border:none;border-radius:999px;background:#f3f4f6;color:#6b7280;font-size:17px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(16,32,61,.08);transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,color .12s ease}
    .cardCornerAction:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(16,32,61,.12);background:#eef2f7}
    .cardCornerAction:active{transform:scale(.96)}
    .feeRow.hasLeftAction{padding-top:12px}
    .feeRow .cardCornerAction{top:10px;left:10px;width:24px;height:24px;font-size:12px;opacity:.72;box-shadow:0 2px 8px rgba(16,32,61,.06)}
    .feeRow .cardCornerAction:hover{opacity:.95}
    .payerBadge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900}
    .payerBadge.excellent{background:#e8f7ee;color:#0f5c34}
    .payerBadge.average{background:#fff6db;color:#8a6400}
    .payerBadge.bad{background:#fdecec;color:#8b1c1c}
    .feeHidden{display:none !important}
    .ttCompactRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 42px;gap:8px;margin-top:12px;align-items:stretch}
    .ttDayRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
    .ttTeacherRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}
    .ttModeRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
    .ttLevelRow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:8px}
    .ttActionRow{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
    .ttCompactBtn{padding:11px 8px;border:1px solid #d7e2ef;border-radius:12px;background:#f8fbff;color:#10203d;font-size:13px;font-weight:900;line-height:1.15;white-space:normal;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,color .12s ease,border-color .12s ease;box-shadow:0 4px 12px rgba(16,32,61,.04)}
    .ttCompactBtn.on{background:linear-gradient(180deg,var(--brand),var(--brand2));color:#fff;border-color:#7d0000;box-shadow:0 8px 18px rgba(149,0,0,.18)}
    .ttCompactBtn.ttCompactActionBtn{background:#10203d;border-color:#10203d;color:#fff;box-shadow:0 8px 18px rgba(16,32,61,.12)}
    .ttCompactBtn.ttCompactActionBtn.on{background:#10203d;border-color:#10203d;color:#fff}
    .ttCompactLabelStack{display:grid;gap:1px;justify-items:center}
    .ttCompactLabelStack span{display:block}
    .ttCompactBtn.ttCompactWideLabel{font-size:11px}
    .ttCompactShareBtn{width:100%;height:100%;min-height:44px;padding:0;border:1px solid #d7e2ef;border-radius:12px;background:#fff;color:#10203d;font-size:16px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(16,32,61,.08)}
    .ttCompactShareBtn[disabled]{opacity:.72;cursor:not-allowed}
    .ttCompactCloseBtn{font-size:18px;color:#64748b}
    .ttCompactCloseBtn svg{display:block;width:16px;height:16px}
    .ttDayBtn{padding:11px 8px;border:1px solid #d7e2ef;border-radius:12px;background:#f8fbff;color:#10203d;font-size:13px;font-weight:900;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,color .12s ease,border-color .12s ease;box-shadow:0 4px 12px rgba(16,32,61,.04)}
    .ttDayBtn.on{background:linear-gradient(180deg,var(--brand),var(--brand2));color:#fff;border-color:#7d0000;box-shadow:0 8px 18px rgba(149,0,0,.18)}
    .ttModeBtn,.ttLevelBtn{padding:11px 8px;border:1px solid #d7e2ef;border-radius:12px;background:#f8fbff;color:#10203d;font-size:13px;font-weight:900;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,color .12s ease,border-color .12s ease;box-shadow:0 4px 12px rgba(16,32,61,.04)}
    .ttModeBtn.on,.ttLevelBtn.on{background:linear-gradient(180deg,#10203d,#1d3557);color:#fff;border-color:#10203d;box-shadow:0 8px 18px rgba(16,32,61,.18)}
    .ttTeacherBtn{padding:10px 8px;font-size:13px}
    .ttEditLauncher{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border:none;border-radius:12px;background:#10203d;color:#fff;font-size:13px;font-weight:900;box-shadow:0 8px 18px rgba(16,32,61,.12)}
    .ttShareLauncher{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border:1px solid #d7e2ef;border-radius:12px;background:#fff;color:#10203d;font-size:13px;font-weight:900;box-shadow:0 8px 18px rgba(16,32,61,.08)}
    .ttShareLauncher[disabled]{opacity:.72;cursor:not-allowed}
    .ttLevelHeadRow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
    .ttLevelTitle{font-size:14px;font-weight:900;color:#10203d}
    .ttLevelShareBtn{width:34px;height:34px;border:1px solid #d7e2ef;border-radius:999px;background:#fff;color:#10203d;display:inline-flex;align-items:center;justify-content:center;font-size:17px;font-weight:900;box-shadow:0 4px 12px rgba(16,32,61,.05)}
    .ttLevelCard{padding:12px 14px;display:grid;gap:8px}
    .ttLevelStudentRow{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:flex-start;font-size:14px;font-weight:800;color:#10203d}
    .ttLevelStudentIndex{color:#64748b;text-align:right}
    .ttLevelStudentText{word-break:break-word}
    .ttSharePreviewWrap{padding:12px;border:1px solid #dbe5f2;border-radius:18px;background:linear-gradient(180deg,#f8fbff 0%,#f2f6ff 100%)}
    .ttShareInstantList{width:100%;max-width:760px;margin:0 auto;border-radius:14px;background:#fff;color:#10203d;box-shadow:0 12px 34px rgba(0,0,0,.22);overflow:hidden}
    .ttShareInstantHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;background:#10203d;color:#fff;font-size:15px;font-weight:900}
    .ttShareInstantHead span{font-size:12px;color:#cfe0ff}
    .ttShareInstantRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:12px 16px;border-top:1px solid #e8eef7;font-size:14px;font-weight:850;align-items:center}
    .ttShareInstantName{min-width:0;overflow-wrap:anywhere}
    .ttShareInstantLevel{display:inline-flex;align-items:center;margin-left:6px;padding:1px 7px;border:1px solid #dbe5f2;border-radius:999px;background:#f8fafc;color:#64748b;font-size:10px;font-weight:500;line-height:1.4;vertical-align:middle}
    .ttShareInstantName small{display:block;color:#64748b;font-size:12px;font-weight:800;margin-top:3px}
    .ttShareInstantSlot{white-space:nowrap;color:#0f766e;font-weight:900}
    .ttSharePreviewImg{display:block;width:100%;height:auto;border-radius:14px;background:#fff;border:1px solid #dbe5f2}
    .ttShareHint{font-size:12px;color:#5a6980;font-weight:800;line-height:1.5}
    .ttShareActionRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
    .ttShareActionRow .btn,.ttShareActionRow .today{width:100%}
    .timetableShareFullModal{position:fixed!important;inset:0!important;background:rgba(7,14,30,.94);padding:0;z-index:1000000!important;isolation:isolate;transform:translateZ(0);pointer-events:auto}
    .timetableShareFullModal .ttShareSheet{width:100%;max-width:none;height:100dvh;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;display:flex;flex-direction:column;padding:10px}
    html.protivaIosNativeShell .timetableShareFullModal .ttShareSheet{padding-top:calc(10px + var(--protiva-safe-top))}
    .timetableShareFullModal .form{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:0}
    .timetableShareFullModal .ttSharePreviewWrap{flex:1;min-height:0;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:8px;border:0;border-radius:0;background:transparent}
    .timetableShareFullModal .ttSharePreviewImg{width:auto;max-width:100%;height:auto;max-height:none;border:0;border-radius:14px;box-shadow:0 12px 34px rgba(0,0,0,.34)}
    .timetableShareFullModal .ttShareLoading{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}
    .timetableShareFullModal .ttShareLoading[hidden]{display:none}
    .timetableShareFullModal .ttShareSpinner{width:28px;height:28px;border:3px solid rgba(255,255,255,.28);border-top-color:#fff;border-radius:999px;animation:ttShareSpin .72s linear infinite}
    @keyframes ttShareSpin{to{transform:rotate(360deg)}}
    .timetableShareFullModal .ttShareActionRow{display:flex;justify-content:center;align-items:center;gap:12px;padding:5px 0 9px;grid-template-columns:none}
    .timetableShareFullModal .ttShareIconBtn{width:34px;height:34px;border-radius:999px;border:1px solid rgba(255,255,255,.38);background:rgba(255,255,255,.1);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;line-height:1;box-shadow:0 8px 20px rgba(0,0,0,.24)}
    .timetableShareFullModal .ttShareIconBtn:disabled{opacity:.42;cursor:wait}
    .timetableShareFullModal .ttShareIconBtn:active{transform:scale(.96)}
    .ttWeekGroup{display:grid;gap:12px;margin-top:12px}
    .ttWeekCard{padding:12px;border:1px solid #dbe5f2;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);box-shadow:0 8px 20px rgba(16,32,61,.06)}
    .ttWeekCardHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
    .ttWeekTitle{font-size:18px;font-weight:900;color:#10203d;margin:0}
    .ttWeekTableWrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
    .ttWeekTable{width:100%;min-width:500px;border-collapse:separate;border-spacing:0;border:1px solid #e4ebf6;border-radius:14px;overflow:hidden;background:#fff}
    .ttWeekTable thead th{padding:11px 14px;background:#eef4ff;color:#10203d;font-size:15px;font-weight:900;text-align:left;border-bottom:1px solid #e3ebf6}
.ttWeekTable tbody td{padding:12px 14px;font-size:15px;font-weight:800;color:#24324d;border-top:1px solid #eef2f7;vertical-align:top}
.ttWeekTable tbody tr:first-child td{border-top:none}
.ttWeekIdCell{width:100px;color:#10203d;white-space:nowrap}
.ttWeekNameCell{min-width:220px;white-space:normal;word-break:break-word;line-height:1.3}
.ttWeekNameText{display:inline}
.ttWeekLevelChip{display:inline-flex;align-items:center;margin-left:6px;padding:1px 7px;border:1px solid #dbe5f2;border-radius:999px;background:#f8fafc;color:#64748b;font-size:10px;font-weight:500;line-height:1.4;vertical-align:middle;white-space:nowrap}
.ttWeekSlotCell{width:120px;white-space:nowrap;text-align:right;color:#10203d}
    .ttSearchWrap{display:grid;gap:6px;margin:6px 0 10px}
    .ttSearchField{position:relative}
    .ttSearchInput{width:100%;padding:14px;border:2px solid var(--line);border-radius:14px;font-size:16px;font-weight:700;background:#fff}
    .ttSearchField .ttSearchInput{padding-right:44px}
    .ttSearchNav{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:24px}
    .ttSearchCount{font-size:11px;font-weight:900;color:#64748b;white-space:nowrap}
    .ttSearchJumpBtn{width:26px;height:26px;border:1px solid #d7e2ef;border-radius:999px;background:#fff;color:#10203d;font-size:13px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}
    .ttSearchJumpBtn[disabled]{opacity:.42;cursor:not-allowed}
    .ttWeekNameCell.ttWeekNameMatch{background:#fff6db;color:#8a4b00!important}
    .ttWeekTable tbody tr.ttWeekActiveMatch .ttWeekNameCell{background:#ffe8b0;color:#7c2d12!important;box-shadow:inset 4px 0 0 #b45309}
.ttCard{display:grid;grid-template-columns:68px 1fr;gap:10px;align-items:center;padding:8px 10px;border:1px solid #dbe5f2;border-radius:14px;background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);box-shadow:0 6px 18px rgba(16,32,61,.04)}
    .ttCardTime{display:flex;align-items:center;justify-content:center;min-height:34px;padding:4px 6px;border-radius:11px;background:#eef4ff;border:1px solid #dce6f5;color:#10203d;font-size:12px;font-weight:900;text-align:center}
    .ttCardBody{min-width:0;display:grid;gap:2px}
    .ttCardName{font-size:15px;font-weight:900;line-height:1.15;color:#10203d;word-break:break-word}
    .ttMutedName{color:#7b8798}
    .ttMutedTime{color:#7b8798}
    .ttCardName.ttMutedName,.ttWeekNameCell.ttMutedName{color:#7b8798!important}
    .ttCardTime.ttMutedTime,.ttWeekSlotCell.ttMutedTime{color:#7b8798!important}
    .ttNotStartedBadge{display:inline-block;margin-left:5px;font-size:10px;line-height:1;font-weight:900;color:#7b8798;vertical-align:middle;white-space:nowrap}
    .ttWeekNameCell .ttNotStartedBadge{font-size:9px}
    .ttCardMeta{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
    .ttCardId{font-size:10px;font-weight:900;color:#5a6980}
    .ttTeacherMini{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:999px;padding:0 6px;background:#eef3ff;border:1px solid #dce6f5;color:#10203d;font-size:10px;font-weight:900}
    .ttEditorRows{display:grid;gap:10px}
    .ttEditorRow{position:relative;padding:10px;border:1px solid #dbe5f2;border-radius:14px;background:#fff;box-shadow:0 6px 16px rgba(16,32,61,.04);cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}
    .ttEditorRow.on{border-color:#950000;box-shadow:0 0 0 2px rgba(149,0,0,.18),0 10px 22px rgba(16,32,61,.08)}
    .ttEditorRow.on .ttEditorLabel{color:#950000}
    .ttEditorRowTop{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
    .ttEditorLabel{font-size:11px;font-weight:900;color:#64748b}
    .ttEditorGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
    .ttEditorTimeWrap{display:grid;gap:8px}
    .ttEditorGrid input,.ttEditorGrid select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-size:15px;font-weight:800;background:#fff}
    .ttEditorRemove{width:28px;height:28px;border:none;border-radius:10px;background:#f3f4f6;color:#6b7280;font-size:18px;font-weight:900;display:inline-flex;align-items:center;justify-content:center}
    .ttEditorEmpty{padding:18px 12px;border:1px dashed #d7e2ef;border-radius:14px;background:#fbfdff;color:#64748b;font-size:14px;font-weight:800;text-align:center}
    .newStudentSection{display:grid;gap:8px;padding:12px;border:1px solid #f1e4c9;border-radius:16px;background:linear-gradient(180deg,#fffdf8 0%,#fff8ee 100%);box-shadow:0 6px 16px rgba(126,92,20,.05)}
    .newStudentSectionTitle{font-size:14px;font-weight:900;color:#10203d;margin:0}
    .newStudentSectionHint{font-size:12px;color:#5a6980;font-weight:800;line-height:1.45}
    .newStudentStep{display:grid;gap:8px}
    .newStudentPrimaryGrid{display:grid;gap:8px}
    .newStudentModalHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .newStudentNavWrap{display:grid;justify-items:end;gap:6px}
    .newStudentNavBtns{display:flex;align-items:center;gap:8px}
    .newStudentNavBtn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#10203d;box-shadow:0 6px 14px rgba(16,32,61,.05)}
    .newStudentNavBtn svg{display:block;width:16px;height:16px}
    .newStudentNavBtn:disabled{opacity:.45;box-shadow:none}
    .newStudentNavMeta{font-size:11px;font-weight:800;color:#64748b;line-height:1.25;text-align:right;min-height:14px}
    .newStudentPaymentWrap{display:grid;gap:8px}
    .newStudentPaymentWrap input,.newStudentPaymentWrap select,.newStudentPrimaryGrid input,.newStudentPrimaryGrid select,.newStudentStep input,.newStudentStep select,.newStudentStep textarea{padding:11px 13px;border:1px solid var(--line);border-radius:12px;font-size:15px;font-weight:800;background:#fff}
    .newStudentStep textarea{width:100%;resize:vertical;min-height:86px;line-height:1.35;font-family:inherit}
    .newStudentTimetableHint{font-size:12px;color:#5a6980;font-weight:800;line-height:1.45}
    .newStudentStep .checkerActions{margin-top:0}
    .newStudentPaymentGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .newStudentField{display:grid;gap:6px}
    .newStudentField.full{grid-column:1/-1}
    .newStudentSlotPair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .newStudentSlotStack{display:grid;gap:8px}
    .slotSuggestionWrap,.slotManagerList{display:grid;gap:10px}
    .slotSuggestionGroup{display:grid;gap:8px;padding:10px;border:1px solid #e3e9f4;border-radius:16px;background:#fff}
    .slotSuggestionGroupTitle{font-size:13px;font-weight:900;color:#10203d}
    .slotSuggestionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .slotSuggestionBtn{width:100%;border:1px solid #dbe4f2;border-radius:14px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);padding:11px 12px;text-align:left;display:grid;gap:4px;box-shadow:0 6px 14px rgba(16,32,61,.05)}
    .slotSuggestionBtn strong{font-size:14px;color:#10203d;line-height:1.2}
    .slotSuggestionBtn span{font-size:12px;font-weight:900;color:#475569}
    .slotSuggestionBtn small{font-size:11px;font-weight:900;color:#167d76}
    .slotSuggestionBtn .slotSuggestionNote{color:#7c5b16}
    .slotManagerShell{display:grid;gap:12px}
    .slotManagerToolbar{display:grid;gap:8px}
    .slotManagerHint,.slotSuggestionMeta{font-size:12px;font-weight:800;line-height:1.45;color:#5a6980}
    .slotManagerMsg{min-height:18px;font-size:12px;font-weight:900;color:#b42318}
    .slotManagerList{display:grid;gap:10px}
    .slotManagerEmpty,.slotSuggestionEmpty{padding:13px;border:1px dashed #d8e4f2;border-radius:14px;background:#fbfdff;font-size:13px;font-weight:800;color:#64748b;text-align:center}
    .slotLevelSection{display:grid;gap:10px;padding:12px;border:1px solid #e2e8f3;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);box-shadow:0 8px 18px rgba(16,32,61,.05)}
    .slotLevelHead{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .slotLevelTitle{font-size:15px;font-weight:900;color:#10203d}
    .slotLevelAction{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d7e2ef;border-radius:999px;background:#fff;color:#10203d;padding:8px 12px;font-size:12px;font-weight:900}
    .slotLevelRows{display:grid;gap:8px}
    .slotManagerCard{display:grid;gap:8px;padding:10px 11px;border:1px solid #e1e8f3;border-radius:14px;background:#fff}
    .slotManagerCard.inactive{background:#f3f4f6;border-color:#e5e7eb;color:#64748b}
    .slotManagerHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .slotManagerTitle{font-size:15px;font-weight:900;color:#10203d;line-height:1.25}
    .slotManagerMeta{font-size:11px;font-weight:800;color:#5a6980;line-height:1.4}
    .slotManagerAvailability{font-size:13px;font-weight:900;color:#10203d}
    .slotManagerFoot{font-size:12px;font-weight:800;color:#5a6980}
    .slotManagerSide{display:grid;justify-items:end;gap:6px}
    .slotManagerSideTop{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
    .slotTeacherTag{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:999px;padding:0 8px;background:#eef4ff;border:1px solid #dce6f5;color:#10203d;font-size:11px;font-weight:900}
    .slotManagerStateTag{display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:900;border:1px solid #dce6f5;background:#eef3ff;color:#10203d}
    .slotManagerStateTag.inactive{background:#f3f4f6;color:#6b7280;border-color:#e5e7eb}
    .slotManagerEditBtn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d7e2ef;border-radius:10px;background:#fff;color:#10203d;padding:7px 10px;font-size:12px;font-weight:900}
    .slotInlineEditor{display:grid;gap:8px;padding:10px;border-top:1px dashed #dbe4f2;border-radius:12px}
    .slotInlineEditor.inactive{background:#f3f4f6;border-color:#e5e7eb}
    .slotInlineEditorGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;align-items:end}
    .slotInlineEditor input,.slotInlineEditor select{width:100%;padding:12px 13px;border:1.5px solid #d9e4f1;border-radius:12px;background:#fff;font-size:14px;font-weight:800;color:#10203d}
    .slotInlineEditor .full{grid-column:1 / -1}
    .slotInlineActions{display:flex;gap:8px;justify-content:flex-end}
    .slotInlineSave{min-width:96px}
    .slotInlineCancel{border:1px solid #d7e2ef;border-radius:12px;background:#eef2f7;color:#475569;padding:10px 12px;font-size:12px;font-weight:900}
    .slotActiveField{display:flex;align-items:flex-end}
    .slotActiveToggle{width:100%;min-height:47px;border:1px solid #cfd9e8;border-radius:12px;background:#f3f4f6;color:#64748b;font-size:13px;font-weight:900}
    .slotActiveToggle.on{background:#eaf8ef;border-color:#bee5ca;color:#0f6b3f}
    .slotCustomTimeWrap{display:none}
    .slotFinderToggleBtn{display:none;align-items:center;justify-content:center;width:100%;min-height:42px;border:1px solid #d7e2ef;border-radius:14px;background:#f8fbff;color:#10203d;font-size:13px;font-weight:900}
    .slotFinderSection{display:grid;gap:10px;padding:12px;border:1px solid #e2e8f3;border-radius:18px;background:#fff}
    .slotFinderHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .slotFinderControls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .slotFinderControls .btn{align-self:end;height:48px}
    .slotFinderActionRow{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
    .slotFinderOutput{padding:13px;border:1px solid #dbe4f2;border-radius:14px;background:#f8fbff;font-size:13px;font-weight:800;color:#10203d;line-height:1.65;white-space:pre-wrap}
    .slotSuggestionBtn.static{cursor:default}
    .examShell{display:grid;gap:12px}
    .examTabRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
    .examTabRow.admin,.examTabRow.aok{grid-template-columns:repeat(4,minmax(0,1fr))}
    .examTabBtn{min-height:36px;padding:7px 8px;border:1px solid #d7e2ef;border-radius:12px;background:#f8fbff;color:#10203d;font-size:11px;font-weight:900}
    .examTabBtn.on{background:linear-gradient(180deg,var(--brand),var(--brand2));border-color:#8b0000;color:#fff}
    .examSummaryRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
    .examMarksSummaryRow{grid-template-columns:repeat(3,minmax(0,1fr))}
    .examAttendanceSummaryRow{grid-template-columns:repeat(3,minmax(0,1fr))}
    .examSummaryChip{padding:10px 9px;border:1px solid #dde6f3;border-radius:14px;background:#fff;text-align:center}
    .examSummaryChip strong{display:block;font-size:18px;font-weight:900;color:#10203d}
    .examSummaryChip span{display:block;font-size:11px;font-weight:800;color:#64748b}
    .examSectionCard{display:grid;gap:10px;padding:12px;border:1px solid #e2e8f3;border-radius:18px;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)}
    .examCurrentBox{display:grid;gap:8px;padding:12px;border:1px solid #dce6f4;border-radius:16px;background:#fff}
    .examCurrentTitle{font-size:16px;font-weight:900;color:#10203d}
    .examCurrentMeta{font-size:12px;font-weight:800;color:#5a6980;line-height:1.5}
    .examModalHead{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}
    .examModalHeadActions{display:inline-flex;align-items:center;gap:8px;margin-left:auto}
    #examManagerMeta{display:none!important}
    body:has(#examModal[style*="display: block"]) #mobileQuickPrivateChatBtn,
    body:has(#examModal[style*="display: block"]) #mobileQuickPrivateChatPreviewBtn{display:none!important}
    #examModal.examMarksEditingMode .examModalHead,#examModal.examMarksEditingMode #examManagerTabs,#examModal.examMarksEditingMode #examManagerMeta,#examModal.examMarksEditingMode #examManagerMsg,#examModal.examMarksEditingMode #closeExamModal{display:none!important}
    #examModal.examMarksEditingMode .examShell{gap:0}
    #examModal.examMarksEditingMode .examMarksFullScreen{padding:0;border:0;background:#fff}
    .examHeaderCloseBtn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid #d7e2ef;border-radius:999px;background:#fff;color:#10203d;font-size:20px;font-weight:900;line-height:1;box-shadow:0 6px 14px rgba(16,32,61,.06)}
    .examDeadlineBadge{display:inline-flex;align-items:center;justify-content:center;border:1px solid #fed7aa;background:#fff7ed;color:#9a3412;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;line-height:1.1}
    .examDeadlineBadge.overdue{border-color:#fecdd3;background:#fff1f2;color:#be123c}
    .examDeadlineControl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;padding:10px;border:1px solid #fde2c4;background:#fffaf3;border-radius:14px}
    .examDeadlineControl .newStudentField{margin:0}
    .examDeadlineControl input{width:100%;padding:12px;border:1.5px solid #e3d7ca;border-radius:12px;font-size:14px;font-weight:900;background:#fff}
    .examDeadlineStatus{grid-column:1/-1;font-size:12px;font-weight:900;color:#9a3412;line-height:1.35}
    .examInlineActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .examSearchWrap{position:relative}
    .examSearchWrap input{width:100%;padding:12px 54px 12px 14px;border:1.5px solid #d9e4f1;border-radius:14px;background:#fff;font-size:15px;font-weight:800;color:#10203d}
    .examSearchClearBtn{font-size:0}
    .examList{display:grid;gap:8px}
    .examAttendanceListCard{gap:8px;padding:10px}
    .examAttendanceList{gap:6px}
    .examAttendanceList .examStudentRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;border-radius:12px}
    .examAttendanceList .examStudentMain{gap:2px}
    .examAttendanceList .examStudentName{font-size:13px;line-height:1.15}
    .examAttendanceList .examStudentMeta{font-size:10px;line-height:1.25}
    .examAttendanceList .examStudentActions{gap:6px;flex-wrap:nowrap;justify-content:flex-end}
    .examAttendanceList .examSheetBtn,.examAttendanceList .examPresentBtn,.examAttendanceList .examMarksBtn,.examAttendanceList .examSecondaryBtn{min-width:auto;min-height:30px;padding:7px 10px;border-radius:10px;font-size:11px}
    .examMarksListCard{gap:8px;padding:10px}
    .examMarksList{gap:6px}
    .examMarksList .examCurrentBox{gap:0;padding:0;border:0;border-radius:0;background:transparent}
    .examMarksList .examStudentRow{gap:8px;padding:8px 10px;border-radius:12px}
    .examMarksList .examStudentMain{gap:2px}
    .examMarksList .examStudentName{font-size:13px;line-height:1.15}
    .examMarksList .examStudentMeta{font-size:10px;line-height:1.25}
    .examMarksList .examStudentActions{gap:6px;flex-wrap:nowrap}
    .examMarksList .examBadge{min-width:48px;height:28px;padding:0 8px;font-size:10px}
    .examMarksList .examMarksBtn{min-height:30px;padding:7px 10px;border-radius:10px;font-size:11px}
    .examStudentRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid #dbe4f2;border-radius:14px;background:#fff}
    .examStudentMain{min-width:0;display:grid;gap:3px}
    .examStudentName{font-size:14px;font-weight:900;color:#10203d;line-height:1.25;word-break:break-word}
    .examStudentMeta{font-size:11px;font-weight:800;color:#64748b;line-height:1.4}
    .examStudentActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
    .examSheetBtn{display:inline-flex;align-items:center;justify-content:center;min-width:72px;min-height:34px;border:1px solid #d7e2ef;border-radius:10px;background:#fff7e6;color:#8a4b00;font-size:11px;font-weight:900;padding:8px 10px}
    .examSheetBtn.done{background:#eaf8f0;border-color:#bfe8ce;color:#0f5c34}
    .examSheetBtn:disabled{opacity:.68}
    .examSheetUploadSheet{height:min(92vh,760px)}
    .examSheetUploadShell{display:grid;gap:10px}
    .examSheetPreviewBox{width:100%;min-height:190px;max-height:360px;border:1px dashed #cfdbea;border-radius:14px;background:#f8fbff;display:flex;align-items:center;justify-content:center;overflow:hidden}
    .examSheetPreviewBox img{display:block;width:100%;height:100%;max-height:360px;object-fit:contain;background:#fff}
    .examSheetPreviewBox span{font-size:13px;font-weight:900;color:#64748b}
    .examSheetUploadInfo{font-size:12px;font-weight:800;color:#64748b;line-height:1.45}
    .examSheetUploadInfo.good{color:#0f5c34}
    .examSheetUploadInfo.bad{color:#a61b1b}
    .examSheetUploadActions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
    .examPresentBtn,.examUndoBtn,.examMarksBtn,.examExportBtn,.examLockBtn,.examSecondaryBtn,.examDangerBtn{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;font-size:12px;font-weight:900;padding:10px 12px}
    .examPresentBtn{background:linear-gradient(180deg,#0b8c7b,#0a7065);color:#fff;border:none}
    .examUndoBtn,.examSecondaryBtn{background:#eef2f7;color:#475569;border:1px solid #d7e2ef}
    .examMarksBtn,.examExportBtn,.examLockBtn{background:#10203d;color:#fff;border:none}
    .examDangerBtn{background:#fff1f1;color:#a61b1b;border:1px solid #f3c4c4}
    .examAiMarksBar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .examAiMarksBtn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:36px;padding:8px 10px;border:1px solid #f5bfd6;border-radius:12px;background:#fff7fb;color:#9a1952;font-size:12px;font-weight:900}
    .examAiMarksBtn[aria-pressed="true"]{border-color:#9a1952;background:#fce6f0}
    .examSheetTotalGroup{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:inherit}
    .examAiMarksBtn.loading{background:#fff8db;color:#8a1952}
    .examAiMarksBtn.loading::after{content:"";position:absolute;inset:-35% -70%;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.82) 48%,transparent 64%);animation:homeworkAiCorrectionShine 1.05s linear infinite;pointer-events:none}
    .examAiChangeSheetBtn{min-height:36px;padding:8px 11px;font-size:12px;white-space:nowrap}
    .examMarksToolbarTotal{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px;padding:7px 10px;border:1px solid #d9e4f1;border-radius:12px;background:#fff;color:#10203d;font-size:18px;font-weight:900;line-height:1}
    .examBadge{display:inline-flex;align-items:center;justify-content:center;min-width:60px;height:32px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:900}
    .examBadge.done{background:#e7f8ed;color:#0f5c34}
    .examBadge.pending{background:#fff7df;color:#8a6400}
    .examBadge.absent{background:#fef0f0;color:#b42318}
    .examRankingActions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
    .examRankPodium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
    .examRankCard{display:grid;gap:4px;padding:10px 12px;border-radius:14px;border:1px solid #dce6f4;background:#fff}
    .examRankCard strong{font-size:14px;font-weight:900;color:#12274d}
    .examRankCard span{font-size:11px;font-weight:800;color:#6b7a90}
    .examRankCard em{font-size:12px;font-style:normal;font-weight:800;color:#0f172a}
    .examRankList{display:grid;gap:8px}
    .examRankRow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;border:1px solid #e2e8f3;background:#fff}
    .examRankPos{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:32px;padding:0 10px;border-radius:999px;background:#eef4ff;color:#12274d;font-size:12px;font-weight:900}
    .examRankMeta{display:grid;gap:3px;min-width:0}
    .examRankMeta strong{font-size:13px;font-weight:900;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .examRankMeta span{font-size:11px;font-weight:800;color:#6b7a90}
    .examRankScore{font-size:13px;font-weight:900;color:#12274d}
    .examLevelRankWrap{display:grid;gap:10px}
    .examLevelRankHead{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
    .examLevelRankHead strong{font-size:15px;font-weight:900;color:#12274d}
    .examLevelRankHead span{font-size:11px;font-weight:800;color:#6b7a90}
    .examRankingSectionCard{gap:12px;background:#fbfdff}
    .examLevelRankingGrid{display:grid;gap:12px}
    .examLevelRankingCard,.examRankingConfirmBox,.examRankingPublishBox{display:grid;gap:10px;padding:12px;border:1px solid #dce6f4;border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(16,32,61,.04)}
    .examLevelRankingTitle{display:flex;align-items:center;justify-content:space-between;gap:10px}
    .examLevelRankingTitle strong{font-size:15px;font-weight:900;color:#10203d}
    .examLevelRankingTitle span{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 9px;border-radius:999px;background:#eef4ff;color:#12274d;font-size:10px;font-weight:900}
    .examLevelRankingTable{display:grid;gap:6px}
    .examLevelRankingRow{display:grid;grid-template-columns:72px minmax(0,1fr) 82px 78px;gap:6px;align-items:center;padding:9px 10px;border:1px solid #edf2f8;border-radius:12px;background:linear-gradient(180deg,#fff,#fbfdff)}
    .examLevelRankingRow.head{padding:7px 10px;background:#eef4ff;border-color:#dbe7f7;color:#475569;font-size:10px;font-weight:900;text-transform:uppercase}
    .examLevelRankingCell{min-width:0;font-size:11px;font-weight:900;color:#10203d;line-height:1.25}
    .examLevelRankingCell.name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .examLevelRankingCell.marks{color:#0f766e;text-align:right}
    .examLevelRankingCell.position{text-align:center;color:#8b0000}
    .examLevelRankingEmpty{padding:14px;border:1px dashed #dbe4f2;border-radius:12px;background:#f8fbff;color:#64748b;font-size:12px;font-weight:900;text-align:center}
    .examRankingConfirmList{display:grid;gap:8px}
    .examRankingConfirmRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,210px);gap:8px;align-items:center;padding:9px 10px;border:1px solid #edf2f8;border-radius:12px;background:#fbfdff}
    .examRankingConfirmStudent{display:grid;gap:2px;min-width:0}
    .examRankingConfirmStudent strong{font-size:12px;font-weight:900;color:#10203d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .examRankingConfirmStudent span{font-size:10px;font-weight:800;color:#64748b}
    .examRankingNoticeDetails{display:grid;gap:8px;padding:10px;border:1px solid #e2e8f3;border-radius:14px;background:#fff}
    .examRankingNoticeDetails summary{cursor:pointer;font-size:12px;font-weight:900;color:#10203d}
    .teacherActivitySheet{height:min(92vh,820px);display:flex;flex-direction:column}
    .teacherActivityControls{display:grid;gap:8px;margin:8px 0 10px}
    .teacherActivityFilterRow{display:flex;gap:7px;flex-wrap:wrap}
    .teacherActivityChip{border:1px solid #d7e2ef;background:#fff;color:#10203d;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:900}
    .teacherActivityChip.on{background:#10203d;color:#fff;border-color:#10203d}
    .teacherActivitySummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
    .teacherActivityStat{border:1px solid #e2e8f3;background:#f8fbff;border-radius:12px;padding:9px;text-align:center}
    .teacherActivityStat strong{display:block;font-size:16px;font-weight:900;color:#10203d}
    .teacherActivityStat span{display:block;font-size:10px;font-weight:900;color:#64748b}
    .teacherActivityList{flex:1;overflow:auto;display:grid;align-content:start;gap:7px;padding-right:2px}
    .teacherActivityRow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:9px 10px;border:1px solid #e2e8f3;border-radius:12px;background:#fff}
    .teacherActivityTime{font-size:10px;font-weight:900;color:#64748b;line-height:1.25;white-space:nowrap}
    .teacherActivityMain{display:grid;gap:3px;min-width:0}
    .teacherActivityTitle{font-size:12px;font-weight:900;color:#10203d;line-height:1.25}
    .teacherActivityMeta{font-size:10px;font-weight:800;color:#64748b;line-height:1.35}
    .teacherActivityTeacher{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;padding:0 7px;border-radius:999px;background:#fff7ed;color:#9a3412;font-size:10px;font-weight:900;margin-right:5px}
    .examRankingNoticeBox{width:100%;min-height:180px;padding:12px 14px;border:1.5px solid #d9e4f1;border-radius:14px;background:#fbfdff;font-size:12px;font-weight:700;color:#10203d;line-height:1.6;white-space:pre-wrap}
    .examMarksEditor{display:grid;gap:10px;padding:12px;border:1px dashed #d5dfec;border-radius:16px;background:#fbfdff}
    .examMarksFullScreen{min-height:calc(100vh - 170px)}
    .examMarksFullScreen .examMarksEditor{grid-template-columns:minmax(0,.9fr) minmax(320px,1fr);grid-template-areas:"sheet score" "feedback feedback" "actions actions";align-items:start;gap:12px;padding:0;border:0;background:transparent}
    .examMarksFullScreen .examEditorHead{display:none}
    .examMarksFullHead{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;background:#fff}
    .examMarksSheetPanel{grid-area:sheet}
    .examMarksScorePanel{grid-area:score;position:sticky;top:12px;display:grid;gap:9px;padding:12px;border:1.5px solid #f2c8da;border-radius:16px;background:#fff9fc}
    .examMarksFeedbackPanel{grid-area:feedback;display:grid;gap:10px;padding:12px;border:1.5px solid #d9e4f1;border-radius:16px;background:#f8fbff}
    .examMarksStickyActions{grid-area:actions}
    .examMarksSheetViewer{display:grid;gap:8px;padding:10px;border:1.5px solid #d9e4f1;border-radius:14px;background:#fff}
    .examMarksSheetHead{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:900;color:#10203d}
    .examMarksSheetMeta{font-size:11px;font-weight:800;color:#64748b}
    .examMarksFullScreen .examMarksSheetMeta{display:none}
    .examSheetZoomBar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
    .examSheetZoomBtn{border:1px solid #d7e2ef;border-radius:8px;background:#f4f7fb;color:#10203d;font-size:11px;font-weight:900;padding:7px 10px}
    .examSheetZoomBtn.on{background:#10203d;color:#fff;border-color:#10203d}
    .examMarksSheetFrame{position:relative;width:100%;max-height:62vh;min-height:320px;overflow:auto;border:1px solid #dbe4f2;border-radius:12px;background:#f8fbff;display:flex;align-items:flex-start;justify-content:center;touch-action:pan-x pan-y;cursor:zoom-in}
    .examMarksFullScreen .examMarksSheetFrame{max-height:min(42vh,430px);min-height:240px}
    .examMarksSheetFrame img{display:block;width:100%;height:auto;max-width:none;background:#fff}
    .examSheetTapHint{position:absolute;right:9px;bottom:9px;z-index:3;padding:5px 8px;border-radius:999px;background:rgba(16,32,61,.82);color:#fff;font-size:10px;font-weight:900;pointer-events:none}
    .examMarksSheetFrame::before,.examMarksSheetFrame::after{content:"";position:absolute;inset:0;z-index:2;border-radius:12px;opacity:0;pointer-events:none}
    .examMarksSheetFrame::before{background:linear-gradient(135deg,rgba(20,184,166,.18),rgba(59,130,246,.16),rgba(236,72,153,.14));mix-blend-mode:screen}
    .examMarksSheetFrame::after{height:40%;top:-45%;background:linear-gradient(180deg,transparent,rgba(34,211,238,.42),rgba(168,85,247,.28),transparent);box-shadow:0 0 28px rgba(34,211,238,.35)}
    .examMarksEditor.examAiScanning .examMarksSheetFrame::before{opacity:1;animation:examAiScanGlow 1.25s ease-in-out infinite alternate}
    .examMarksEditor.examAiScanning .examMarksSheetFrame::after{opacity:1;animation:examAiScanLine 1.45s ease-in-out infinite}
    @keyframes examAiScanGlow{from{filter:hue-rotate(0deg);opacity:.55}to{filter:hue-rotate(70deg);opacity:1}}
    @keyframes examAiScanLine{0%{transform:translateY(0)}100%{transform:translateY(365%)}}
    .examSheetInspectModal{position:fixed;inset:0;z-index:100020;display:grid;grid-template-rows:auto 1fr;background:#07111f;color:#fff}
    .examSheetInspectTop{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;background:rgba(7,17,31,.96);border-bottom:1px solid rgba(255,255,255,.12)}
    .examSheetInspectBack{width:42px;height:42px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.1);color:#fff;font-size:24px;font-weight:900;line-height:1}
    .examSheetInspectTitle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:900}
    .examSheetInspectStage{overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pinch-zoom pan-x pan-y;padding:10px;display:flex;align-items:flex-start;justify-content:center}
    .examSheetInspectStage img{display:block;width:100%;height:auto;max-width:none;border-radius:12px;background:#fff;box-shadow:0 18px 42px rgba(0,0,0,.28)}
    .examMarksSheetEmpty{padding:14px;border:1px dashed #d9e4f1;border-radius:12px;background:#fff7e6;color:#8a4b00;font-size:12px;font-weight:900}
    .examMarksGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .examMarksField{display:grid;gap:5px}
    .examMarksField label{font-size:12px;font-weight:800;color:#475569}
    .examMarksField select{width:100%;padding:11px 12px;border:1.5px solid #d9e4f1;border-radius:12px;background:#fff;font-size:14px;font-weight:800;color:#10203d}
    .examMarksField.wide{grid-column:1/-1}
    .examLevelSelect{font-size:12px!important;line-height:1.25}
    .examLevelRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,230px);gap:8px;align-items:center;padding:10px;border:1px solid #e2e8f3;border-radius:14px;background:#fbfdff}
    .examLevelStudent{font-size:13px;font-weight:900;color:#10203d;line-height:1.35;word-break:break-word}
    .examLevelStudent span{display:block;margin-top:2px;font-size:11px;font-weight:800;color:#64748b}
    .examLevelRow select{width:100%;padding:10px 11px;border:1.5px solid #d9e4f1;border-radius:12px;background:#fff;font-size:12px;font-weight:900;color:#10203d}
    .examMarkStepper{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:6px;padding:6px;border:1.5px solid #d9e4f1;border-radius:14px;background:#fff}
    .examMarkStepBtn{height:42px;border:none;border-radius:12px;background:#eef3fa;color:#10203d;font-size:22px;font-weight:900;line-height:1}
    .examMarkValue{height:42px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#fbfdff;color:#10203d;font-size:24px;font-weight:900;letter-spacing:.02em;user-select:none}
    .examEditorHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
    .examEditorMeta{font-size:12px;font-weight:800;color:#64748b}
    .examExportBox{display:grid;gap:10px;padding:12px;border:1px solid #dbe4f2;border-radius:16px;background:#fff}
    .examExportPreview{width:100%;min-height:180px;padding:12px;border:1.5px solid #d9e4f1;border-radius:14px;background:#fbfdff;font-size:12px;font-weight:700;color:#10203d;line-height:1.5;white-space:pre}
    .examReportCardActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .examReportCardHint{font-size:12px;font-weight:800;line-height:1.45;color:#5a6980}
    .examReportCardList{display:grid;gap:6px;max-height:320px;overflow:auto;padding-right:2px}
    .examReportCardRow{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(54px,72px) auto;align-items:center;gap:8px;padding:6px 8px;border:1px solid #e2e8f3;border-radius:12px;background:#fbfdff;min-height:42px}
    .examReportCardCheck{width:16px;height:16px;margin:0;justify-self:center}
    .examReportCardPick{display:flex;align-items:flex-start;gap:10px;min-width:0}
    .examReportCardPick input{margin-top:3px;transform:scale(1.15)}
    .examReportCardMeta{display:grid;gap:1px;min-width:0}
    .examReportCardMeta strong{font-size:12px;font-weight:900;color:#10203d;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .examReportCardMeta span{font-size:10px;font-weight:800;color:#64748b;line-height:1.2}
    .examReportCardCompactMarks{font-size:11px;font-weight:900;color:#008272;line-height:1.1;text-align:center;white-space:nowrap}
    .examReportCardDownloadBtn{height:32px!important;min-height:0!important;padding:0 10px!important;border-radius:10px!important;font-size:11px!important;line-height:1!important}
    .examReportCardDownloadBadge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 6px;border-radius:999px;background:#e8f7ee;color:#0f5c34;font-size:10px;font-weight:900;line-height:1.2;white-space:nowrap;vertical-align:middle}
    .examReportCardCount{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 8px;border-radius:999px;background:#edf3ff;color:#10203d;font-size:11px;font-weight:900}
    .examCsvTools summary{cursor:pointer;font-size:12px;font-weight:900;color:#5a6980}
    .examCsvTools[open]{display:grid;gap:10px}
    .examReportGrid{display:grid;grid-template-columns:1fr;gap:8px}
    .examReportField{display:grid;gap:5px}
    .examReportField label{font-size:12px;font-weight:800;color:#475569;line-height:1.45}
    .examReportField select{width:100%;padding:11px 12px;border:1.5px solid #d9e4f1;border-radius:12px;background:#fff;font-size:14px;font-weight:800;color:#10203d}
    .examWarningBox{display:grid;gap:8px;padding:12px;border:1px solid #f0d0a9;border-radius:16px;background:#fff7ea}
    .examWarningTitle{font-size:13px;font-weight:900;color:#8a5300}
    .examWarningList{display:grid;gap:6px}
    .examWarningLine{font-size:12px;font-weight:800;color:#7a5a25;line-height:1.35}
    .examWatchFilters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
    .examWatchFilters .btn{height:46px;align-self:end}
    .examWatchRow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border:1px solid #dbe4f2;border-radius:14px;background:#fff}
    .aokBadge{display:inline-flex;align-items:center;justify-content:center;min-width:74px;height:30px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:900;background:#fff7df;color:#8a6400}
    .aokBadge.done{background:#e7f8ed;color:#0f5c34}
    .examStudentRow[data-aok-row] .examStudentActions{gap:6px;flex-wrap:nowrap}
    .aokIconBtn{display:inline-flex;align-items:center;justify-content:center;min-width:42px;width:42px;height:42px;padding:0;border-radius:10px;font-size:18px;line-height:1}
    .aokIconBtn svg{display:block;width:18px;height:18px;stroke:currentColor}
    .aokCopyPanel{display:grid;gap:8px;padding:10px;border:1px solid #d7e2ef;border-radius:14px;background:#fff}
    .aokCopyPanel textarea{width:100%;min-height:170px;border:1px solid #cbd8e8;border-radius:12px;padding:10px 11px;background:#fbfdff;color:#10203d;font-size:13px;font-weight:800;line-height:1.45;resize:vertical;white-space:pre-wrap}
    .aokCopyHint{font-size:12px;font-weight:800;color:#5a6980;line-height:1.4}
    .aokProgress{font-size:12px;font-weight:900;color:#5a6980;line-height:1.45}
    .examEmpty{padding:13px;border:1px dashed #d8e4f2;border-radius:14px;background:#fbfdff;font-size:13px;font-weight:800;color:#64748b;text-align:center}
    .examSectionHint{font-size:12px;font-weight:800;line-height:1.45;color:#5a6980}

    @media (max-width:640px){
      .wrap{padding:calc(6px + var(--protiva-safe-top)) calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left))}
      .posterScheduleGrid,.posterAudienceToggle{grid-template-columns:1fr}
      .login,.checker,.card,.sum{border-radius:14px}
      h1{font-size:26px;line-height:1.05}
      .subhead{font-size:12px}
      .topbar{align-items:flex-start}
      .topbarActions{justify-content:flex-end}
      #feeMain .topbar{display:grid;grid-template-columns:1fr;gap:10px}
      #feeMain .topbarBrand{width:100%}
    #feeMain .topbarActions{width:100%;justify-content:flex-start}
    #feeMain .feeTopbarWrap{gap:6px}
    #feeMain .feeTopActions{gap:5px;justify-content:flex-start;overflow-x:auto;overflow-y:visible;padding:3px max(12px,env(safe-area-inset-right)) 6px max(2px,env(safe-area-inset-left));scroll-padding-inline:12px}
      #feeMain .feeIconBtn,#feeMain .navIconBtn{width:34px;height:34px;min-width:34px;padding:0;font-size:14px}
      .miniBtn,.logoutBtn,.installBtn,.navIconBtn{padding:9px 11px;font-size:12px}
      .feedbackBtn{min-width:68px;height:36px;padding:0 10px;font-size:12px}
.feeHeaderStatBtn{min-height:36px;padding:0 12px;font-size:12px}
.feeHeaderStatBtn strong{min-width:22px;height:22px;font-size:11px}
      .studentSortInlineBtn{min-height:36px;padding:0 12px;font-size:11px}
      .feeHeaderMiniAction{min-height:30px;padding:0 8px;font-size:10.5px}
      .feeHeaderMiniAction strong{min-width:18px;height:18px;font-size:10px}
      .feeHeaderIconAction{width:28px;height:30px;min-width:28px;font-size:12px}
      .growthGuidelineBtn{width:34px!important;height:34px!important;min-width:34px!important}
      .responsibilityModalCard{width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:12px 10px calc(14px + env(safe-area-inset-bottom));padding-top:calc(12px + env(safe-area-inset-top))}
      .responsibilityTitle{font-size:23px}
      .responsibilityRow{grid-template-columns:auto minmax(0,1fr);gap:8px;padding:9px}
      .responsibilityActions{grid-column:2;justify-content:flex-start}
      .responsibilityTeacherButtons{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}
      .responsibilityTeacherBtn{flex:0 0 auto}
      .feeAdmissionSummary{padding:9px 11px;font-size:12px}
      .feeAdmissionStudentLine{padding:8px 11px;font-size:11px}
      .navIconBtn{font-size:18px}
      .dropPanel{right:0;left:auto;width:min(360px,calc(100vw - 16px))}
      .taskRow{grid-template-columns:1fr}
      .newStudentSection{padding:10px;border-radius:14px;gap:7px}
      .newStudentNavBtn{width:36px;height:36px}
      .newStudentPrimaryGrid input,.newStudentPrimaryGrid select,.newStudentPaymentWrap input,.newStudentPaymentWrap select,.newStudentStep input,.newStudentStep select{padding:10px 12px;font-size:14px}
      .summary{gap:8px}
      .sum{padding:10px 8px}
      .sum .n{font-size:26px}
      .sum .t{font-size:13px}
      .controls{gap:8px}
      .fieldLabel{font-size:12px}
      .rejoinInput{padding:12px;font-size:14px}
      .slots{grid-template-columns:repeat(3,minmax(0,1fr))}
      .cycleGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
      .feeActionGrid{grid-template-columns:1fr}
      .head{flex-direction:column;align-items:flex-start}
      .headRight{justify-content:flex-start;width:100%}
      .name{font-size:24px}
      .teacher{font-size:14px}
      .id{font-size:12px;padding:6px 10px}
      .iconBtn{padding:8px 10px}
      .miniIconBtn{padding:9px 10px;font-size:18px}
      .stats{gap:6px}
      .s{padding:10px 8px}
      .s .n{font-size:22px}
      .s .t{font-size:13px}
      .notesBtn,.today,.shareBtn,.sendBtn,.close{padding:12px;font-size:16px}
      .checker{padding:12px}
      .sheet{height:100vh;padding:12px 10px 14px}
      html.protivaIosNativeShell .modal>.sheet{padding-top:calc(12px + var(--protiva-safe-top))}
      .mhead{font-size:20px;line-height:1.35}
      .pnlTabs{grid-template-columns:repeat(2,minmax(0,1fr))}
      .pnlCardGrid,.pnlTeacherStats,.pnlInlineFormRow,.pnlSimpleGrid,.pnlTeacherSimpleMeta{grid-template-columns:1fr}
      .pnlValue{font-size:22px}
      .pnlHeroValue{font-size:34px}
      .pnlCloseBtn{padding:10px 12px}
      .monthChip{font-size:14px;padding:10px 13px}
      .chatWrap{min-height:420px;padding:12px 8px}
      .chatRow{padding-left:0}
      .bubble{max-width:100%;padding:14px 12px}
      .bubbleMeta{font-size:13px}
      .bubbleText{font-size:17px;line-height:1.7}
      .composer textarea{font-size:18px;min-height:112px}
      .listSmall{font-size:16px;line-height:1.7;padding:12px;overflow-x:hidden}
      .feeSummary{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
      .feeSummary .sum{padding:9px 6px}
      .feeSummary .sum .n{font-size:21px}
      .feeSummary .sum .t{font-size:10px}
      .feeFilterRow{grid-template-columns:repeat(2,minmax(0,1fr))}
      .feeFilterRow.hasPauseDueCompleted{grid-template-columns:repeat(3,minmax(0,1fr))}
      .feeSpecialFilterRow{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 74px}
      .feeTeacherRow{grid-template-columns:repeat(5,minmax(0,1fr))}
      .feeButtons{gap:8px}
      .feeActionBtn{min-height:52px;font-size:17px}
      .feeUndoBtn{width:28px;min-width:28px;font-size:12px}
      .feeRemainingBadge{min-width:28px;height:28px;font-size:13px}
      .feeTinyBadge{min-width:32px;font-size:10px}
      .feeUtilityBtn.primary{width:28px;height:28px;font-size:14px}
      .feeUtilityBtn.notes{width:28px;min-width:28px;height:28px;font-size:14px}
      .feeUtilityBtn.secondary{width:22px;height:22px;font-size:11px}
      .feeCardTitleRow{align-items:center}
      .card.hasLeftAction .head,.feeRow.hasLeftAction .feeCardHead{padding-left:40px}
      .cardCornerAction{top:10px;left:10px;width:28px;height:28px;font-size:16px}
      #studentTopTabs{grid-template-columns:repeat(3,minmax(0,1fr)) 38px}
      #studentTopTabs .ttCompactBtn{padding:10px 8px;font-size:13px;min-height:52px}
      .studentPrimaryStatusBar{grid-template-columns:repeat(3,minmax(0,1fr))}
      .studentSecondaryStatusBar{grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr)}
      .studentStatusBtn{min-height:68px;padding:13px 10px;font-size:15px}
      .studentMiniFilterBtn{min-height:52px;padding:10px 10px;font-size:12px}
      .studentMiniShareBtn{min-height:52px;font-size:18px}
      .studentTimetableShortcutSection{padding:9px 10px;gap:7px}
      .studentFocusBoard{padding:14px 13px 13px;gap:10px}
      .studentFocusTitle{font-size:20px}
      .studentFocusGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
      .studentFocusCard{padding:12px 10px;border-radius:16px}
      .studentFocusCard strong{font-size:24px}
      .studentChecklistCard{padding:13px 12px}
      .studentChecklistTitle{font-size:18px}
      .studentSectionCard{padding:12px}
      .studentRejoinQuickRow{grid-template-columns:repeat(2,minmax(0,1fr))}
      .feeTaskAssignGrid,.feeTaskAssignActionRow{grid-template-columns:minmax(0,1fr)}
      .studentStatusBar{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
      .studentPrimaryStatusBar{grid-template-columns:repeat(3,minmax(0,1fr))}
      .studentSecondaryStatusBar{grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr)}
      .studentStatusBtn,.studentStatusAuxBtn{min-height:60px;padding:12px 10px;font-size:13px}
      .studentMiniFilterBtn{min-height:50px;padding:10px 9px;font-size:11.5px}
      .studentStatusCount{min-width:22px;height:22px;font-size:10px}
      .studentRangeGrid{grid-template-columns:1fr}
      #refreshStudentBtn,#logoutBtn,#birthdayBtn{width:36px;height:36px;min-width:36px}
      .ttCompactRow{grid-template-columns:repeat(4,minmax(0,1fr)) 38px}
      #studentTopTabs{grid-template-columns:1fr 1fr 1.22fr}
      .ttCompactBtn{padding:10px 7px;font-size:12px}
      #studentTopTabs .ttCompactWideLabel{font-size:11.8px}
      .ttCompactShareBtn{min-height:42px;font-size:15px}
      .ttDayBtn,.ttTeacherBtn,.ttModeBtn,.ttLevelBtn{padding:10px 8px;font-size:13px}
      .ttActionRow{justify-content:stretch;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
      .ttEditLauncher,.ttShareLauncher{width:100%}
      .ttShareActionRow{grid-template-columns:1fr}
      .timetableShareFullModal .ttShareActionRow{grid-template-columns:none}
      .ttCard{grid-template-columns:60px 1fr;gap:8px;padding:7px 9px}
      .ttCardTime{min-height:32px;font-size:11px}
      .ttCardName{font-size:14px}
      .ttTeacherMini{min-width:18px;height:18px;font-size:9px}
      .ttLevelShareBtn{width:32px;height:32px;font-size:16px}
      .ttCardId{font-size:10px}
      .ttWeekCard{padding:8px}
      .ttWeekCardHead{margin-bottom:8px}
      .ttWeekTitle{font-size:16px}
      .ttWeekTable{min-width:0;table-layout:fixed}
      .ttWeekTable thead th{padding:8px 8px;font-size:13px}
      .ttWeekTable tbody td{padding:9px 8px;font-size:13px}
      .ttWeekIdCell{width:72px;font-size:12px}
      .ttWeekNameCell{min-width:0;line-height:1.25}
      .ttWeekSlotCell{width:86px;font-size:12px}
      .ttEditorGrid{grid-template-columns:1fr}
      .ttEditorGrid input,.ttEditorGrid select{padding:9px 11px;font-size:14px}
      .feedbackFilterBtn{padding:10px 8px;font-size:12px}
      .feedbackRowBtn{padding:12px}
      .feedbackRowName{font-size:15px}
      .feedbackScoreChip{min-width:48px;height:32px;font-size:14px}
      .examSummaryRow,.examMarksGrid,.examWatchFilters,.examRankPodium{grid-template-columns:repeat(2,minmax(0,1fr))}
      .examTabRow,.examTabRow.admin,.examTabRow.aok{grid-template-columns:repeat(4,minmax(0,1fr))}
      .examTabBtn{min-height:34px;padding:6px 4px;font-size:10px}
      .examMarksSummaryRow{grid-template-columns:repeat(3,minmax(0,1fr))!important}
      .examAttendanceSummaryRow{grid-template-columns:repeat(3,minmax(0,1fr))!important}
      .examLevelRankingCard,.examRankingConfirmBox,.examRankingPublishBox{padding:10px;border-radius:14px}
      .examLevelRankingRow{grid-template-columns:54px minmax(0,1fr) 62px 62px;gap:4px;padding:8px 7px}
      .examLevelRankingRow.head{font-size:9px}
      .examLevelRankingCell{font-size:10px}
      .examLevelRankingCell.name{font-size:11px}
      .examRankingConfirmRow{grid-template-columns:1fr;gap:7px}
      .examMarksFullScreen{min-height:calc(100dvh - 104px)}
      .examMarksFullScreen .examMarksEditor{grid-template-columns:1fr;grid-template-areas:"sheet" "score" "feedback" "actions";gap:8px}
      .examMarksFullScreen .examMarksFullHead{padding:6px 0}
      .examMarksFullScreen .examMarksSheetViewer,.examMarksFullScreen .examMarksScorePanel,.examMarksFullScreen .examMarksFeedbackPanel{padding:8px;border-radius:14px}
      .examMarksFullScreen .examMarksScorePanel{position:static}
      .examMarksFullScreen .examMarksSheetHead{font-size:11px}
      .examMarksFullScreen .examMarksSheetMeta{font-size:10px;line-height:1.35}
      .examMarksFullScreen .examMarksSheetFrame{max-height:30vh;min-height:150px}
      .examMarksFullScreen .examSheetZoomBtn{padding:6px 8px;font-size:10px}
      .examMarksFullScreen .examSheetBtn{min-width:58px;min-height:30px;padding:6px 8px;font-size:10px}
      .examMarksFullScreen .examAiMarksBar{gap:6px}
      .examMarksFullScreen .examAiMarksBtn{min-width:44px;min-height:34px;padding:7px 9px}
      .examMarksFullScreen .examMarksToolbarTotal{min-width:34px;min-height:34px;padding:6px 8px;font-size:18px}
      .examMarksFullScreen .examMarkStepper{grid-template-columns:34px minmax(0,1fr) 34px;gap:4px;padding:4px;border-radius:12px}
      .examMarksFullScreen .examMarkStepBtn,.examMarksFullScreen .examMarkValue{height:34px;border-radius:10px}
      .examMarksFullScreen .examMarkStepBtn{font-size:19px}
      .examMarksFullScreen .examMarkValue{font-size:20px}
      .examLevelRow{grid-template-columns:1fr}
      .examStudentRow,.examEditorHead{display:grid}
      .examMarksList .examStudentRow{grid-template-columns:minmax(0,1fr) auto;align-items:center}
      .examStudentActions,.examInlineActions{justify-content:flex-start}
      .examMarksList .examStudentActions{justify-content:flex-end}
      .examMarksStickyActions{justify-content:space-between;padding:4px 0 calc(8px + env(safe-area-inset-bottom,0px))}
      .examSheetUploadActions{grid-template-columns:1fr}
      .examRankRow{grid-template-columns:1fr}
      .lockerUnlockRow{grid-template-columns:1fr}
    }

    .studentDirectoryPage{position:fixed;inset:0;z-index:100000;overflow:auto;background:#edf3ff;color:#10203d;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;padding:20px}
    html.protivaIosNativeShell .studentDirectoryPage{padding-top:calc(20px + var(--protiva-safe-top))}
    .studentDirectoryShell{width:min(1100px,100%);margin:0 auto;display:grid;gap:14px}
    .studentDirectoryHeader,.studentDirectoryTools,.studentDirectoryRow,.studentDirectoryState{background:#fff;border:1px solid #c9d5e6;border-radius:18px;box-shadow:0 8px 24px rgba(16,32,61,.08)}
    .studentDirectoryHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px}
    .studentDirectoryEyebrow{display:block;font-size:11px;font-weight:900;letter-spacing:.14em;color:#8a1538;margin-bottom:5px}
    .studentDirectoryHeader h1{margin:0;font-size:28px;line-height:1.1}.studentDirectoryHeader p{margin:7px 0 0;color:#5a6980;font-weight:700}
    .studentDirectoryHeaderActions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
    .studentDirectoryHeaderActions button,.studentDirectorySearchRow button,.studentDirectoryState button{border:1px solid #b9c8dc;border-radius:12px;background:#fff;color:#10203d;padding:10px 14px;font-weight:900;cursor:pointer}
    .studentDirectoryHeaderActions button.danger{color:#950000;border-color:#e9b4b4}
    .studentDirectoryTools{padding:16px}.studentDirectoryTools label{display:block;font-size:12px;font-weight:900;margin-bottom:7px;color:#5a6980}
    .studentDirectorySearchRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}.studentDirectorySearchRow input{min-width:0;border:1px solid #aebed3;border-radius:13px;padding:13px 15px;font-size:16px;font-weight:800;color:#10203d;background:#fff}
    .studentDirectorySearchRow button{background:#10203d;color:#fff;border-color:#10203d}.studentDirectoryMetaRow{display:flex;justify-content:space-between;gap:12px;margin-top:10px;color:#5a6980;font-size:12px;font-weight:800}.studentDirectoryMetaRow .error{color:#a61b1b}
    .studentDirectoryList{display:grid;gap:10px;padding-bottom:22px}.studentDirectoryRow{display:grid;grid-template-columns:120px minmax(180px,.8fr) minmax(260px,1.5fr);gap:14px;padding:15px;align-items:start}
    .studentDirectoryId,.studentDirectoryValue{min-width:0}.studentDirectoryId>span,.studentDirectoryValue>span{display:block;color:#708097;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}.studentDirectoryId strong{font-size:20px}.studentDirectoryValue>div{display:flex;align-items:flex-start;gap:7px}.studentDirectoryValue strong{font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.studentDirectoryValue strong.missing{color:#8995a7;font-weight:700}
    .studentDirectoryCopy{flex:0 0 auto;width:28px;height:28px;border:1px solid #c9d5e6;border-radius:9px;background:#f7f9fd;color:#10203d;font-size:15px;font-weight:900;cursor:pointer}.studentDirectoryCopy:disabled{opacity:.35;cursor:not-allowed}
    .studentDirectoryState{padding:22px;text-align:center;font-weight:800;color:#5a6980}.studentDirectoryState.error{color:#a61b1b}.studentDirectoryState button{display:block;margin:12px auto 0}
    @media (max-width:700px){.studentDirectoryPage{padding:10px}.studentDirectoryHeader{display:grid;padding:16px}.studentDirectoryHeader h1{font-size:23px}.studentDirectoryHeaderActions{justify-content:flex-start}.studentDirectoryRow{grid-template-columns:78px minmax(0,1fr);gap:12px}.studentDirectoryValue.address{grid-column:1/-1;border-top:1px dashed #d6deea;padding-top:10px}.studentDirectoryMetaRow{display:grid}}

    .quickPayPublicBody{background:#f7fbff}.quickPayPublicPage{min-height:100vh;padding:18px;background:linear-gradient(180deg,#eef6ff 0,#fff7fb 100%);color:#10203d;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.quickPayCard{width:min(520px,100%);margin:0 auto;background:#fff;border:1px solid #ffc6dd;border-radius:8px;box-shadow:0 14px 34px rgba(16,32,61,.12);padding:18px;display:grid;gap:14px}.quickPayBrandRow{display:flex;align-items:center;gap:12px;border-bottom:1px solid #edf1f7;padding-bottom:14px}.quickPayBrandRow img{width:44px;height:44px;border-radius:8px;border:1px solid #d8e2ef;background:#fff}.quickPayBrandRow span{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#0c8378}.quickPayBrandRow strong{display:block;font-size:23px;line-height:1.1;color:#10203d}.quickPayForm{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.58fr);gap:10px;align-items:end}.quickPayField{display:grid;gap:6px}.quickPayField span{font-size:12px;font-weight:900;color:#8a1952}.quickPayField input,.quickPaySelect{width:100%;min-height:46px;border:1px solid #ffc0d8;border-radius:8px;background:#fff;color:#10203d;font-size:16px;font-weight:900;padding:11px 12px;outline:none}.quickPayField input:focus,.quickPaySelect:focus{border-color:#0d877d;box-shadow:0 0 0 3px rgba(13,135,125,.12)}.quickPayCheckBtn,.quickPayPayBtn,.quickPayProfileBtn{min-height:46px;border:0;border-radius:8px;background:#10203d;color:#fff;font-size:15px;font-weight:950;cursor:pointer;text-align:center;text-decoration:none;display:grid;place-items:center}.quickPayCheckBtn{grid-column:1/-1}.quickPayCheckBtn:disabled,.quickPayPayBtn:disabled{opacity:.62;cursor:not-allowed}.quickPayStateBox{border:1px dashed #bfd0e5;border-radius:8px;background:#f8fbff;padding:16px;color:#5a6980;font-weight:850;text-align:center}.quickPayStateBox.error{border-color:#ffb9c9;background:#fff3f7;color:#9d164d}.quickPaySummary{display:grid;gap:12px}.quickPayStudentLine{border:1px solid #d6e3ef;border-radius:8px;background:#f8fbff;padding:12px}.quickPayStudentLine span,.quickPaySummaryGrid span,.quickPayAmountGrid span{display:block;font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#68788f}.quickPayStudentLine strong{display:block;margin-top:4px;font-size:22px;line-height:1.1;color:#10203d}.quickPayStudentLine em{display:inline-flex;margin-top:8px;border:1px solid #cde3ff;border-radius:999px;background:#fff;color:#0c567c;padding:4px 9px;font-style:normal;font-size:12px;font-weight:950}.quickPaySummaryGrid,.quickPayAmountGrid,.quickPaySuccessActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.quickPaySummaryGrid div,.quickPayAmountGrid div{border:1px solid #e3ebf4;border-radius:8px;background:#fff;padding:11px}.quickPaySummaryGrid strong,.quickPayAmountGrid strong{display:block;margin-top:4px;font-size:16px;color:#10203d}.quickPayAmountGrid div:last-child{grid-column:1/-1;background:#fff9eb;border-color:#ffd88f}.quickPayAmountGrid div:last-child strong{font-size:24px;color:#006f65}.quickPayNotice{border-left:4px solid #0d877d;background:#effbf9;border-radius:8px;padding:10px 12px;color:#245a57;font-weight:850}.quickPayPaymentMessage{border:1px solid #d6e3ef;border-radius:8px;background:#f8fbff;padding:10px 12px;color:#4b5870;font-weight:850;text-align:center}.quickPayPayBtn{background:#0d877d}.quickPayProfileBtn{background:#fff;color:#10203d;border:1px solid #bfd0e5}.quickPaySuccessBox .quickPayStudentLine{background:#f0fdf9;border-color:#9be3d8}.quickPayFooter{text-align:center;color:#6a5060;font-size:12px;font-weight:850}.quickPayTypeField{min-width:0}.quickPayRejoinBox{grid-column:1/-1;border:1px solid #d6e3ef;border-radius:8px;background:#fbfdff;padding:12px;display:grid;gap:10px}.quickPayRejoinTitle{font-size:15px;font-weight:950;color:#10203d}.quickPaySlotGroupTitle{font-size:12px;font-weight:950;color:#68788f}.quickPaySlotChoice{min-height:42px;border:1px solid #dce7f4;border-radius:8px;background:#fff;padding:9px 10px;display:flex;align-items:center;gap:9px;font-weight:900;color:#10203d}.quickPaySlotChoice.selected{border-color:#0d877d;background:#effbf9}.quickPaySlotChoice.disabled{opacity:.58}.quickPaySlotChoice input{width:18px;height:18px;flex:0 0 auto}.quickPaySlotChoice span{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.quickPaySlotChoice em{border:1px solid #ffd88f;border-radius:999px;background:#fff9eb;padding:2px 7px;font-size:11px;font-style:normal;color:#8a5a00}.quickPayChooseLater{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:900;color:#5a6980}.quickPayChooseLater input{width:17px;height:17px}
    .quickPayCard{width:min(500px,100%);border-color:#ffd1e3;box-shadow:0 18px 42px rgba(16,32,61,.09)}.quickPayBrandRow{padding-bottom:12px}.quickPayBrandRow img{width:42px;height:42px}.quickPayBrandRow strong{font-size:25px}.quickPayForm{grid-template-columns:1fr;gap:12px}.quickPayField input,.quickPaySelect{min-height:48px;border-color:#f4b8d2;background:#fffdfd}.quickPayCheckBtn,.quickPayPayBtn,.quickPayProfileBtn{min-height:50px}.quickPayStateBox{background:#fbfdff;border-style:solid;padding:14px}.quickPaySummary{gap:10px}.quickPayDetailTypeField{border:1px solid #e3ebf4;border-radius:8px;background:#fff;padding:11px}.quickPayDetailTypeField .quickPaySelect{margin-top:4px}.quickPaySummaryGrid,.quickPayAmountGrid{gap:8px}.quickPaySummaryGrid div,.quickPayAmountGrid div{padding:13px}.quickPayAmountGrid div:last-child{background:#fffaf0}.quickPayPaymentMessage{font-size:13px}.quickPayFooter{font-size:11px;color:#6e5b67}
    .quickPayPublicPage{background:linear-gradient(180deg,#eef7ff 0,#fff 48%,#fff7fb 100%)}.quickPayCard{border-color:#dbe9f6;box-shadow:0 18px 44px rgba(16,32,61,.1)}.quickPayBrandRow{border:1px solid #e5eef8;border-radius:8px;background:#fbfdff;padding:10px 12px;justify-content:space-between}.quickPayBrandMain{display:flex;align-items:center;gap:12px;min-width:0}.quickPayBrandMain>img{width:42px;height:42px;border-radius:8px;border:1px solid #d8e2ef;background:#fff}.quickPayHeaderActions{display:flex;align-items:flex-start;justify-content:flex-end;gap:6px;flex:0 0 auto}.quickPayHeaderActions .guardianFeeDiscountWrap{display:grid!important;width:auto;min-width:40px;gap:0}.quickPayHeaderActions .guardianFeeDiscountGift,.quickPayHeaderActions .studentFeeRulesBookBtn{min-width:40px;padding:0;gap:0}.quickPayHeaderActions .guardianFeeDiscountGiftFrame,.quickPayHeaderActions .studentFeeRulesBookFrame{width:36px;height:34px;border-radius:12px;animation:none}.quickPayHeaderActions .guardianFeeDiscountGiftImg,.quickPayHeaderActions .studentFeeRulesBookImg{width:36px;height:36px;border:0;background:transparent}.quickPayHeaderActions .guardianFeeDiscountLabel,.quickPayHeaderActions .studentFeeRulesBookLabel{font-size:8px;line-height:1}.quickPayCheckBtn{box-shadow:0 10px 20px rgba(16,32,61,.14)}.quickPayPayBtn{box-shadow:0 12px 22px rgba(13,135,125,.18)}.quickPayEmptyHint{padding:10px 12px;font-size:13px;line-height:1.35;color:#526174;background:#fff;border-color:#dbe6f2}.quickPayRememberRow{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:-2px}.quickPayRememberRow[hidden]{display:none}.quickPayRememberCheck{display:inline-flex;align-items:center;gap:8px;min-width:0;color:#526174;font-size:13px;font-weight:850}.quickPayRememberCheck input{width:17px;height:17px;accent-color:#0d877d}.quickPayForgetBtn{border:0;background:transparent;color:#8a1952;font-size:12px;font-weight:950;text-decoration:underline;cursor:pointer;padding:4px 2px}.quickPayFooter{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;line-height:1.3}.quickPayWhatsappBtn{min-height:30px;border:1px solid #16a34a;border-radius:8px;background:#fff;color:#128c3a;display:inline-flex;align-items:center;justify-content:center;gap:0;padding:5px 10px;box-shadow:0 8px 16px rgba(22,163,74,.12);text-decoration:none;flex:0 0 auto;font-size:12px;font-weight:950}.quickPayFooter .quickPayWhatsappBtn svg{display:none}.quickPayWhatsappBtn svg{width:17px;height:17px;display:block}.quickPayWhatsappBtn circle{fill:#25d366}.quickPayWhatsappBtn path{fill:#fff}
    .quickPayRejoinIntro{grid-column:1/-1;display:grid;gap:10px}.quickPayPauseNotice{border:0;background:transparent;border-radius:0;padding:0;color:#b00020;font-size:12px;line-height:1.35;font-weight:900}.quickPayRejoinHelpText,.quickPayRejoinBox>.guardianFeeRejoinSlotHelp{border:0;background:transparent;border-radius:0;padding:0;color:#b00020;font-size:12px;line-height:1.35;font-weight:900;margin:0}.quickPayRejoinSlotToggle{width:100%;min-height:46px;border:1px solid #bfd0e5;border-radius:8px;background:#fff;color:#10203d;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;font-size:15px;font-weight:950;cursor:pointer}.quickPayRejoinSlotToggle em{font-style:normal;color:#6d7d94}.quickPayRejoinSlotPanel{display:grid;gap:8px}.quickPayStudentLine,.quickPayRejoinBox,.quickPayPaymentSection{box-shadow:0 8px 22px rgba(16,32,61,.06)}.quickPayPaymentSection{border:1px solid #dbe6f2;border-radius:8px;background:#fff;padding:10px;gap:8px}.quickPaySectionTitle{font-size:15px;font-weight:950;color:#10203d}.quickPaySummaryLedger{display:grid;gap:0;border:1px solid #bbf7d0;border-radius:8px;background:#f2fff8;overflow:hidden}.quickPayAmountHero{display:grid;gap:3px;padding:10px 12px;border-bottom:1px solid rgba(6,95,70,.12)}.quickPayAmountHero span{font-size:10px;font-weight:950;letter-spacing:.06em;text-transform:uppercase;color:#0f766e}.quickPayAmountHero strong{font-size:26px;line-height:1;color:#065f46}.quickPayAmountHero em{width:max-content;max-width:100%;border-radius:999px;background:#dcfce7;color:#047857;padding:4px 8px;font-size:10.5px;font-style:normal;font-weight:950}.quickPaySummaryLine{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 12px;border-top:1px solid rgba(6,95,70,.08);font-size:12px;line-height:1.25}.quickPaySummaryLine:first-of-type{border-top:0}.quickPaySummaryLine span{color:#0f766e;font-weight:950}.quickPaySummaryLine strong{text-align:right;color:#075f55;font-size:12px;font-weight:950;overflow-wrap:anywhere}.quickPaySummaryLine.muted span,.quickPaySummaryLine.muted strong{color:#64748b}.quickPaySummaryLine.strong span,.quickPaySummaryLine.strong strong{color:#064e3b}.quickPaySummaryLine.wide{display:grid;gap:2px}.quickPaySummaryLine.wide strong{text-align:left}.quickPaySuccessHelper{font-size:12px;line-height:1.35;color:#526174;font-weight:850;text-align:center}.quickPaySuccessWhatsappBtn{min-height:38px;border:1px solid #16a34a;border-radius:8px;background:#fff;color:#128c3a;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;font-size:14px;font-weight:950;text-decoration:none}.quickPaySuccessWhatsappBtn svg{width:18px;height:18px;display:block;flex:0 0 auto}.quickPaySuccessWhatsappBtn circle{fill:#25d366}.quickPaySuccessWhatsappBtn path{fill:#fff}
    .quickPaySummaryWide{grid-column:1/-1}
    .quickPayWhatsappProfileBtn{background:#16a34a;color:#fff;border-color:#16a34a}

    @media (max-width:430px){
      .login{margin:8px auto 14px;padding:22px 16px 18px;border-radius:22px}
      .loginBrand img{max-width:min(210px,86%);max-height:84px}
      .loginTitle{font-size:22px}
      .newStudentPaymentGrid,.newStudentSlotPair,.slotSuggestionGrid{grid-template-columns:1fr}
      .quickPayPublicPage{padding:10px}.quickPayCard{padding:14px}.quickPayBrandRow strong{font-size:22px}.quickPayForm,.quickPaySummaryGrid,.quickPayAmountGrid,.quickPaySuccessActions{grid-template-columns:1fr}.quickPayAmountGrid div:last-child{grid-column:auto}
    }

    /* Private conversations only: retain the established keyboard geometry. */
    #studentTeacherChatModal,.privateChatConversation{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#17251f}
    #studentTeacherChatModal .studentTeacherChatCanvas,.privateChatConversation .classHubChatMessages{background:#f1f5f1}
    #studentTeacherChatModal .studentTeacherChatHead,.privateChatConversation .classHubChatThreadHead{background:#fff;border-color:#dce5df;backdrop-filter:none}
    #studentTeacherChatModal .studentTeacherChatTitle,.privateChatConversation .classHubChatThreadTitle{color:#17251f;font-weight:650}
    #studentTeacherChatModal .studentTeacherChatSub,.privateChatConversation .classHubChatThreadSub{color:#65756c;font-weight:400}
    #studentTeacherChatModal .studentTeacherChatBubble,.classHubChatThreadCard.privateChatConversation .studentTeacherChatBubble{background:#fff;border-color:#e0e7e1;box-shadow:0 1px 2px rgba(20,45,30,.06)}
    #studentTeacherChatModal .studentTeacherChatRow.student .studentTeacherChatBubble,.privateChatConversation .studentTeacherChatRow.student .studentTeacherChatBubble{background:#ddf4d7;border-color:#d5ebcf}
    #studentTeacherChatModal .studentTeacherChatBubbleText,.privateChatConversation .studentTeacherChatBubbleText{font-size:14px;font-weight:400;line-height:1.4;color:#17251f}
    #studentTeacherChatModal .studentTeacherChatBubbleMeta,.privateChatConversation .studentTeacherChatBubbleMeta{color:#61766a;font-weight:400;font-size:10px}
    #studentTeacherChatModal .studentTeacherChatComposer,.privateChatConversation .classHubChatComposer{background:#f8faf8;border-color:#dce5df;box-shadow:none}
    #studentTeacherChatModal .studentTeacherChatSend,.classHubChatThreadCard.privateChatConversation .classHubChatSendBtn{background:#167a55;color:#fff;border-color:#167a55}
    #studentTeacherChatModal .studentTeacherChatBack,.privateChatConversation .classHubChatBackBtn,.privateChatConversation .classHubChatThreadAction{color:#167a55;border-color:#dce5df;background:#fff}
    .privateTeacherChatLoadStatus{font:400 12px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;padding:7px 10px;color:#62736a;background:#f4f7f4;overflow-wrap:anywhere}
    .privateTeacherChatLoadStatus.error{color:#924218;background:#fff4e8}
    .privateTeacherChatLoadStatus button{font-family:inherit;font-size:12px;font-weight:600;line-height:1.3;margin-left:8px;border:1px solid #cdd8d0;border-radius:7px;padding:5px 9px;background:#fff;color:#176444;cursor:pointer}

    /* Private inbox, archive and bulk tools share the conversation palette. */
    #classHubChatPane{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
    #classHubChatPane .classHubChatSearchCard{background:#fff;border-bottom:1px solid #dce5df;box-shadow:none}
    #classHubChatPane .classHubChatStudentCount{color:#65756c;font-weight:500;font-size:11px}
    #classHubChatPane .classHubChatSearchInput{background:#f2f5f3;border-color:#e3e9e5;font-weight:400;font-size:16px;padding:7px 10px}
    #classHubChatPane .classHubChatSearchRow button{background:#fff;border-color:#e3e9e5;color:#167a55;box-shadow:none}
    #classHubChatPane .classHubChatArchiveBtn.active{background:#e9f4ee;border-color:#9abdaa}
    #classHubChatPane .classHubChatRow.unread{background:#f5faf7;border-bottom-color:#e3e9e5}
    #classHubChatPane .classHubChatRow.pinned{background:#f8f9f6;border-bottom-color:#e3e9e5;box-shadow:none}
    #classHubChatPane .classHubChatName{font-weight:600;font-size:15px;color:#17251f}
    #classHubChatPane .classHubChatRow.unread .classHubChatName{font-weight:700}
    #classHubChatPane .classHubChatId,#classHubChatPane .classHubChatTime{font-weight:400;color:#65756c}
    #classHubChatPane .classHubChatPreview{font-weight:400;font-size:13px;color:#65756c;line-height:1.35}
    #classHubChatPane .classHubChatAvatar{border-color:#e3e9e5}
    #classHubChatPane .classHubChatAvatarFallback{background:#e8eeea;color:#567060;font-weight:500}
    #classHubChatPane .classHubChatPinBtn{border-color:transparent;background:transparent;box-shadow:none}
    #classHubChatPane .classHubChatUnread{background:#167a55;font-weight:600}
    #classHubChatPane .classHubChatArchiveHead{font-weight:600}
    #classHubChatPane .classHubChatArchiveBack,#classHubChatPane .classHubBulkMessageHead button{background:#fff;border-color:#dce5df;color:#167a55}
    #classHubChatPane .classHubBulkMessageHead b{font-size:16px;font-weight:600}
    #classHubChatPane .classHubBulkMessageHead span,#classHubChatPane .classHubBulkMessageStatus{color:#65756c;font-weight:400}
    #classHubChatPane .classHubBulkMessageSearchInput,#classHubChatPane .classHubBulkMessageComposer{border:1px solid #dce5df;border-radius:12px;font-size:16px;font-weight:400;box-sizing:border-box}
    #classHubChatPane .classHubBulkMessageStudent{border:0;border-bottom:1px solid #e7ece8;background:#fff;border-radius:0;font-weight:400;font-size:14px}
    #classHubChatPane .classHubBulkMessageStudent input{accent-color:#167a55}
    #classHubChatPane .classHubBulkMessageSendBtn{background:#167a55;box-shadow:none;font-weight:600;border-radius:12px}
    #studentTeacherChatModal .studentTeacherChatInput,.privateChatConversation .classHubChatInput{font-family:inherit;font-size:16px;font-weight:400;line-height:1.35;border-color:#dce5df}
    #studentTeacherChatModal .studentTeacherChatAvatar,#studentTeacherChatModal .studentTeacherChatAvatarFallback{border-radius:50%;box-shadow:none;border-color:#dce5df}
    #studentTeacherChatModal .privateTeacherChatStickerBtn,#studentTeacherChatModal .privateTeacherChatImageBtn,.privateChatConversation .classHubChatPresetBtn,.privateChatConversation .privateTeacherChatStickerBtn,.privateChatConversation .privateTeacherChatImageBtn{background:#fff;border-color:#dce5df;color:#65756c;box-shadow:none}
    #studentTeacherChatModal .privateTeacherChatReplyComposer,.privateChatConversation .privateTeacherChatReplyComposer{background:#eef4ef;border-color:#cddacf;box-shadow:none}
    #studentTeacherChatModal .privateTeacherChatStickerSheet,.privateChatConversation .privateTeacherChatStickerSheet,.privateChatConversation .classHubChatPresetSheet{background:#fff;border-color:#dce5df}
    #studentTeacherChatModal .privateTeacherChatWatermark,.privateChatConversation .privateTeacherChatWatermark{opacity:.025}
    #classHubChatPane .classHubChatSearchRow{grid-template-columns:34px auto minmax(0,1fr) 34px 34px 34px;gap:4px}
    #classHubChatPane .classHubChatSearchRow button{width:34px;min-width:34px}
    /* A single bounded track prevents percentage-width message rows from expanding the implicit grid. */
    #studentTeacherChatFeed .studentTeacherChatList{grid-template-columns:minmax(0,1fr)}
