/* Class Teacher analysis: requested card grids and Student Mix pie only. */
.qcm-class-analysis .qca-attendance-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 14px 10px;border:0;border-radius:0}
.qcm-class-analysis .qca-attendance-strip>.qca-kpi{min-height:86px;border:1px solid var(--qcm-line);border-radius:14px;box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.05))}
.qcm-class-analysis .qca-attendance-strip>button.qca-kpi{appearance:none;font:inherit;text-align:left;cursor:pointer}
.qcm-class-analysis .qca-attendance-strip>button.qca-kpi:focus-visible{outline:2px solid #1769ff;outline-offset:2px}
.qcm-class-analysis .qca-attendance-strip>.qca-kpi:first-child{border-radius:14px}
.qcm-class-analysis .qca-attendance-state{min-height:86px;border:1px solid var(--qcm-line);border-radius:14px;background:var(--qcm-card);box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.05))}
.qcm-class-analysis .qca-today-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 14px 14px;border:0;border-radius:0}
.qcm-class-analysis .qca-today-actions>.qca-teaching-row{border:1px solid var(--qcm-line);border-radius:14px;box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.05))}
.qcm-class-analysis .qca-summary-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.qcm-class-analysis .qca-summary-kpis>button.qca-kpi{appearance:none;font:inherit;text-align:center;cursor:pointer}
.qcm-class-analysis .qca-summary-kpis>button.qca-kpi:focus-visible{outline:2px solid #1769ff;outline-offset:2px}
.qcm-class-analysis .qca-syllabus-card>header .qcm-syllabus-next-exam{height:30px;gap:5px;padding:0 9px;border-radius:999px}
.qcm-class-analysis .qca-syllabus-card>header .qcm-syllabus-next-exam i{font-size:.68rem}
.qcm-class-analysis .qca-syllabus-card>header .qcm-syllabus-next-exam strong{display:inline;margin:0;font-size:.78rem;line-height:1}
.qca-attendance-sheet{height:calc(100dvh - 45px);max-height:calc(100dvh - 45px);display:flex;flex-direction:column;overflow:hidden}
.qca-attendance-sheet>[data-qca-attendance-body]{min-height:0;display:flex;flex:1;flex-direction:column;overflow:hidden}
.qca-attendance-sheet>[data-qca-attendance-body]>.qca-sheet-content{min-height:0;flex:1;overflow:auto}
.qca-sheet-student>em.not-marked{background:#f1f5f9;color:#64748b}
.qca-summary-sheet{height:calc(100dvh - 45px);max-height:calc(100dvh - 45px);display:flex;flex-direction:column;overflow:hidden}
.qca-summary-sheet .qca-summary-sheet-head{grid-template-columns:34px minmax(0,1fr) 34px}
.qca-summary-sheet .qca-summary-content{min-height:0;flex:1;overflow:auto;padding-top:12px}
.qca-teacher-list,.qca-attention-sheet-list{display:grid;gap:8px}
.qca-teacher-list>article,.qca-attention-sheet-list>article{min-height:70px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--qcm-line);border-radius:12px;background:var(--qcm-card)}
.qca-teacher-list .qct-avatar,.qca-attention-sheet-list .qct-avatar{width:40px;height:40px;font-size:.62rem}
.qca-teacher-list article>div,.qca-attention-sheet-list article>div{min-width:0;display:grid;gap:3px}
.qca-teacher-list strong,.qca-attention-sheet-list strong{overflow:hidden;font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}
.qca-teacher-list small,.qca-attention-sheet-list small{color:var(--text-soft,#64748b);font-size:.5rem}
.qca-teacher-list p,.qca-attention-sheet-list p{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 0}
.qca-teacher-list p b,.qca-attention-sheet-list p b,.qca-attention-sheet-list p em{padding:4px 7px;border-radius:999px;background:#eaf2ff;color:#1769ff;font-size:.47rem;font-style:normal;font-weight:850}
.qca-attention-sheet-list p b{background:#fff4e8;color:#c2410c}
.qca-attention-sheet-list p em{background:#f1f5f9;color:#475569}
.qca-status-list,.qca-student-group-list{display:grid;gap:8px}
.qca-status-list>article,.qca-student-group-list>article{min-height:62px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--qcm-line);border-radius:11px;background:var(--qcm-card)}
.qca-status-list .qct-avatar,.qca-student-group-list .qct-avatar{width:36px;height:36px;font-size:.54rem}
.qca-status-list article>div,.qca-student-group-list article>div{min-width:0;display:grid;gap:3px}
.qca-status-list strong,.qca-student-group-list strong{overflow:hidden;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}
.qca-status-list small,.qca-student-group-list small{overflow:hidden;color:var(--text-soft,#64748b);font-size:.48rem;text-overflow:ellipsis;white-space:nowrap}
.qca-status-list article>em,.qca-student-group-list article>em{padding:5px 7px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.45rem;font-style:normal;font-weight:850;white-space:nowrap}
.qca-status-list article>em.approved,.qca-status-list article>em.updated{background:#dcfce7;color:#15803d}
.qca-status-list article>em.approval_pending,.qca-status-list article>em.pending{background:#fff4e8;color:#c2410c}
.qca-status-list article>em.returned{background:#fee2e2;color:#dc2626}
.qca-student-group-list article>em{background:#eaf2ff;color:#1769ff}
.qca-summary-section{margin-bottom:12px;padding:11px;border:1px solid var(--qcm-line);border-radius:13px;background:var(--qcm-card)}
.qca-summary-section:last-child{margin-bottom:0}
.qca-summary-section>h4{margin:0 0 10px;color:#0964ea;font-size:.64rem;letter-spacing:.06em}
.qca-average-table-wrap{overflow-x:auto;border:1px solid var(--qcm-line);border-radius:10px}
.qca-average-table{width:100%;min-width:620px;border-collapse:collapse;background:var(--qcm-card);font-size:.52rem;text-align:center}
.qca-average-table th,.qca-average-table td{min-width:48px;padding:7px 6px;border-right:1px solid var(--qcm-line);border-bottom:1px solid var(--qcm-line);white-space:nowrap}
.qca-average-table th:first-child{position:sticky;z-index:1;left:0;min-width:120px;background:var(--qcm-card);text-align:left}
.qca-average-table thead th{background:var(--qcm-soft);color:#334155;font-weight:900}
.qca-average-table thead th:first-child{z-index:2;background:var(--qcm-soft)}
.qca-average-table tr:last-child th,.qca-average-table tr:last-child td{border-bottom:0}
.qca-average-table th:last-child,.qca-average-table td:last-child{border-right:0}
.qca-fixed-line{overflow-x:auto}
.qca-fixed-line>div{position:relative;min-width:520px}
.qca-fixed-line svg{display:block;width:100%;height:164px;overflow:visible}
.qca-fixed-line svg line{stroke:var(--qcm-line);stroke-width:1}
.qca-fixed-line svg polyline{fill:none;stroke:#1769ff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.qca-fixed-line svg circle{fill:var(--qcm-card);stroke:#1769ff;stroke-width:3}
.qca-fixed-line-green svg polyline{stroke:#159447}
.qca-fixed-line-green svg circle{stroke:#159447}
.qca-fixed-labels{position:relative;height:22px;margin:0 18px 0 24px;color:var(--text-soft,#64748b);font-size:.45rem;font-weight:800}
.qca-fixed-labels span{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}
.qca-fixed-empty{position:absolute;top:70px;right:40px;left:40px;color:var(--text-soft,#64748b);font-size:.56rem;text-align:center}
.qca-subject-trends{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.qca-subject-trend{min-width:0;padding:9px;border:1px solid var(--qcm-line);border-radius:11px;background:var(--qcm-soft)}
.qca-subject-trend h5{margin:0 0 4px;font-size:.58rem}
.qca-subject-trend .qca-fixed-line>div{min-width:430px}
.qca-subject-trend .qca-fixed-line svg{height:145px}
.qcm-class-analysis .qca-student-mix>div{display:block;padding:0 14px 14px}
.qcm-class-analysis .qca-mix-chart{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:20px;padding:8px 14px 14px}
.qcm-class-analysis .qca-mix-pie{--qca-hostel:0%;position:relative;width:138px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#1769ff 0 var(--qca-hostel),#f59e0b var(--qca-hostel) 100%);box-shadow:inset 0 0 0 1px rgba(15,23,42,.05)}
.qcm-class-analysis .qca-mix-pie:before{position:absolute;inset:25%;border-radius:50%;background:var(--qcm-card);box-shadow:0 0 0 1px var(--qcm-line);content:""}
.qcm-class-analysis .qca-mix-pie>span{position:relative;z-index:1;display:grid;justify-items:center;gap:2px}
.qcm-class-analysis .qca-mix-pie strong{font-size:1.12rem;line-height:1}
.qcm-class-analysis .qca-mix-pie small{color:var(--text-soft,#64748b);font-size:.46rem;font-weight:800}
.qcm-class-analysis .qca-mix-legend{display:grid;gap:8px}
.qcm-class-analysis .qca-mix-legend button{min-width:0;display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:9px;margin:0;padding:10px 11px;border:1px solid var(--qcm-line);border-radius:12px;background:var(--qcm-soft);color:inherit;font:inherit;text-align:left;cursor:pointer}
.qcm-class-analysis .qca-mix-legend button>i{width:10px;height:10px;border-radius:50%;background:#1769ff}
.qcm-class-analysis .qca-mix-legend button>i.day-scholar{background:#f59e0b}
.qcm-class-analysis .qca-mix-legend button>span{min-width:0;display:grid;gap:2px}
.qcm-class-analysis .qca-mix-legend strong,.qcm-class-analysis .qca-mix-legend small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qcm-class-analysis .qca-mix-legend strong{font-size:.61rem}
.qcm-class-analysis .qca-mix-legend small{color:var(--text-soft,#64748b);font-size:.48rem}
.qcm-class-analysis .qca-mix-legend em{font-size:.82rem;font-style:normal;font-weight:900}
@media(max-width:599px){
  .qcm-class-analysis .qca-attendance-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0 9px 8px}
  .qcm-class-analysis .qca-attendance-strip>.qca-kpi{min-height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:7px 6px;border:1px solid var(--qcm-line);border-radius:12px;text-align:center}
  .qcm-class-analysis .qca-attendance-strip>.qca-kpi>span{width:31px;height:31px;flex:0 0 auto;border-radius:10px;font-size:.7rem}
  .qcm-class-analysis .qca-attendance-strip>.qca-kpi small{min-height:2.2em;overflow:visible;font-size:.43rem;line-height:1.1;text-overflow:clip;white-space:normal}
  .qcm-class-analysis .qca-attendance-strip>.qca-kpi strong{font-size:1.18rem}
  .qcm-class-analysis .qca-attendance-state{position:relative;min-height:96px;display:grid;grid-template-columns:1fr;grid-template-rows:31px auto auto;align-content:center;align-items:start;gap:4px;padding:7px 6px;border:1px solid var(--qcm-line);border-radius:12px}
  .qcm-class-analysis .qca-attendance-state>i:first-child{width:31px;height:31px;font-size:.86rem}
  .qcm-class-analysis .qca-attendance-state span{gap:2px}
  .qcm-class-analysis .qca-attendance-state strong,.qcm-class-analysis .qca-attendance-state small{overflow:visible;text-overflow:clip;white-space:normal}
  .qcm-class-analysis .qca-attendance-state strong{font-size:.43rem;line-height:1.1}
  .qcm-class-analysis .qca-attendance-state small{font-size:.42rem;line-height:1.1}
  .qcm-class-analysis .qca-attendance-state>i:last-child{position:absolute;right:6px;bottom:7px;font-size:.46rem}
  .qcm-class-analysis .qca-today-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 9px 9px}
  .qcm-class-analysis .qca-today-actions>.qca-teaching-row{min-height:76px;grid-template-columns:36px minmax(0,1fr) 7px;gap:7px;padding:8px;border:1px solid var(--qcm-line);border-radius:12px}
  .qcm-class-analysis .qca-today-actions>.qca-teaching-row>span{width:36px;height:36px;border-radius:11px;font-size:.88rem}
  .qcm-class-analysis .qca-today-actions>.qca-teaching-row strong{font-size:.59rem}
  .qcm-class-analysis .qca-today-actions>.qca-teaching-row small{font-size:.54rem}
  .qcm-class-analysis .qca-today-actions>.qca-teaching-row em{font-size:.43rem}
  .qcm-class-analysis .qca-summary-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .qcm-class-analysis .qca-summary-kpis>.qca-kpi{min-height:98px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:7px 6px;text-align:center}
  .qcm-class-analysis .qca-summary-kpis>.qca-kpi>span{width:31px;height:31px;flex:0 0 auto;border-radius:10px;font-size:.7rem}
  .qcm-class-analysis .qca-summary-kpis>.qca-kpi small{min-height:2.2em;overflow:visible;font-size:.43rem;line-height:1.1;text-overflow:clip;white-space:normal}
  .qcm-class-analysis .qca-summary-kpis>.qca-kpi strong{font-size:.88rem}
  .qcm-class-analysis .qca-summary-kpis>.qca-kpi em{overflow:visible;font-size:.4rem;line-height:1.1;text-overflow:clip;white-space:normal}
  .qcm-class-analysis .qca-syllabus-card>header .qcm-syllabus-next-exam{height:26px;gap:4px;padding:0 8px}
  .qcm-class-analysis .qca-syllabus-card>header .qcm-syllabus-next-exam i{font-size:.58rem}
  .qcm-class-analysis .qca-syllabus-card>header .qcm-syllabus-next-exam strong{font-size:.72rem}
  .qca-summary-sheet{height:calc(100dvh - 28px);max-height:calc(100dvh - 28px)}
  .qca-summary-sheet .qca-summary-content{padding:9px 9px 18px}
  .qca-teacher-list>article,.qca-attention-sheet-list>article{min-height:64px;grid-template-columns:36px minmax(0,1fr);gap:8px;padding:8px}
  .qca-teacher-list .qct-avatar,.qca-attention-sheet-list .qct-avatar{width:34px;height:34px;font-size:.52rem}
  .qca-teacher-list strong,.qca-attention-sheet-list strong{font-size:.6rem}
  .qca-summary-section{padding:8px}
  .qca-summary-section>h4{font-size:.57rem}
  .qca-subject-trends{grid-template-columns:1fr}
  .qcm-class-analysis .qca-student-mix>div{display:block;padding:0 9px 9px}
  .qcm-class-analysis .qca-mix-chart{grid-template-columns:118px minmax(0,1fr);gap:10px;padding:4px 5px 10px}
  .qcm-class-analysis .qca-mix-pie{width:112px}
  .qcm-class-analysis .qca-mix-pie strong{font-size:.94rem}
  .qcm-class-analysis .qca-mix-pie small{font-size:.39rem}
  .qcm-class-analysis .qca-mix-legend{gap:6px}
  .qcm-class-analysis .qca-mix-legend button{grid-template-columns:8px minmax(0,1fr) auto;gap:6px;padding:8px 7px}
  .qcm-class-analysis .qca-mix-legend button>i{width:8px;height:8px}
  .qcm-class-analysis .qca-mix-legend strong{font-size:.53rem}
  .qcm-class-analysis .qca-mix-legend small{font-size:.42rem}
  .qcm-class-analysis .qca-mix-legend em{font-size:.72rem}
  .qca-attendance-sheet{height:calc(100dvh - 28px);max-height:calc(100dvh - 28px)}
}
