/* QWERTY Mobile Core v106 — compact presentation only. */
.qcm-mobile-view{
  --qcm-purple:#6d28d9;--qcm-blue:#2563eb;--qcm-green:#16a34a;
  --qcm-orange:#ea580c;--qcm-red:#dc2626;
  --qcm-line:color-mix(in srgb,var(--border,#dbe3ef) 84%,transparent);
  --qcm-soft:var(--surface-2,#f5f7fb);--qcm-card:var(--surface,#fff);
  min-width:0;overflow-x:clip;color:var(--text,#1f2937)
}

.qcm-page{display:grid;gap:12px;width:100%;max-width:1120px;min-width:0;margin:0 auto;padding:0 0 10px;color:var(--text,#1f2937)}
.qcm-page *{box-sizing:border-box}
.qcm-page button,.qcm-page a,.qcm-page input,.qcm-page select,.qcm-page textarea{font:inherit}
.qcm-page button,.qcm-page a,.qcm-page select{touch-action:manipulation}
.qcm-page button:focus-visible,.qcm-page a:focus-visible,.qcm-page input:focus-visible,.qcm-page select:focus-visible,.qcm-page textarea:focus-visible,.qcm-sheet button:focus-visible,.qcm-sheet a:focus-visible{outline:3px solid color-mix(in srgb,var(--accent,#6d28d9) 38%,transparent);outline-offset:2px}
.qcm-page button:active{transform:translateY(1px)}

.qcm-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:18px;border:1px solid var(--qcm-line);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#6d28d9) 9%,var(--qcm-card)),var(--qcm-card));box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.06))}
.qcm-hero-copy{min-width:0}.qcm-hero-copy>span{display:block;color:var(--accent,#6d28d9);font-size:.67rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.qcm-hero h2{margin:4px 0 0;font-size:1.45rem;line-height:1.12;letter-spacing:-.035em;overflow-wrap:anywhere}.qcm-hero p{max-width:680px;margin:5px 0 0;color:var(--text-soft,#64748b);font-size:.82rem;line-height:1.45}.qcm-hero-side{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.qcm-primary,.qcm-secondary{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;border-radius:12px;font-size:.74rem;font-weight:850;text-decoration:none;cursor:pointer}.qcm-primary{border:1px solid var(--accent,#6d28d9);background:linear-gradient(135deg,var(--accent,#6d28d9),#2563eb);color:#fff}.qcm-secondary{border:1px solid var(--qcm-line);background:var(--qcm-card);color:var(--text,#1f2937)}.qcm-full{width:100%}

.qcm-badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;max-width:100%;padding:0 10px;border-radius:999px;font-size:.64rem;font-weight:850;line-height:1.2;white-space:nowrap}.qcm-badge.success{background:#dcfce7;color:#15803d}.qcm-badge.danger{background:#fee2e2;color:#b91c1c}.qcm-badge.warn{background:#ffedd5;color:#c2410c}.qcm-badge.info{background:#dbeafe;color:#1d4ed8}

.qcm-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-width:0}.qcm-kpi{position:relative;min-width:0;min-height:110px;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-areas:"icon label" "icon value" "icon note";align-content:center;column-gap:10px;padding:13px;border:1px solid var(--qcm-line);border-radius:16px;background:var(--qcm-card);color:var(--text,#1f2937);text-align:left;box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.05))}.qcm-kpi:is(button){cursor:pointer}.qcm-kpi>span{grid-area:icon;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#dbeafe;color:#1d4ed8}.qcm-kpi>small{grid-area:label;align-self:end;color:var(--text-soft,#64748b);font-size:.66rem;font-weight:800}.qcm-kpi>strong{grid-area:value;min-width:0;margin-top:2px;font-size:1.06rem;line-height:1.18;overflow-wrap:anywhere}.qcm-kpi>em{grid-area:note;margin-top:3px;color:var(--text-soft,#64748b);font-size:.61rem;font-style:normal}.qcm-kpi>i{position:absolute;right:10px;bottom:10px;color:var(--text-soft,#64748b);font-size:.6rem}.qcm-kpi.green>span{background:#dcfce7;color:#15803d}.qcm-kpi.orange>span{background:#ffedd5;color:#c2410c}.qcm-kpi.red>span{background:#fee2e2;color:#b91c1c}.qcm-kpi.purple>span{background:#ede9fe;color:#6d28d9}

.qcm-section{min-width:0;overflow:hidden;border:1px solid var(--qcm-line);border-radius:18px;background:var(--qcm-card);box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.05))}.qcm-section>header{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--qcm-line)}.qcm-section>header h3{min-width:0;margin:0;font-size:.9rem;overflow-wrap:anywhere}.qcm-section>header button{min-height:44px;padding:0 6px;border:0;background:transparent;color:var(--accent,#6d28d9);font-size:.7rem;font-weight:850;cursor:pointer}.qcm-section>header>span{color:var(--text-soft,#64748b);font-size:.67rem;font-weight:700}.qcm-section-body{min-width:0}.qcm-section-body>.qcm-state{border:0;border-radius:0}

.qcm-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:12px}.qcm-actions-wide{grid-template-columns:repeat(3,minmax(0,1fr));padding:0}.qcm-action{min-width:0;min-height:78px;display:grid;grid-template-columns:40px minmax(0,1fr) 12px;grid-template-rows:auto auto;align-items:center;gap:1px 9px;padding:10px;border:1px solid var(--qcm-line);border-radius:14px;background:var(--qcm-card);color:var(--text,#1f2937);text-align:left;cursor:pointer}.qcm-action>span{grid-row:1/3;width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#ede9fe;color:#6d28d9}.qcm-action>strong{align-self:end;min-width:0;font-size:.78rem;line-height:1.2;overflow-wrap:anywhere}.qcm-action>small{align-self:start;min-width:0;color:var(--text-soft,#64748b);font-size:.62rem;line-height:1.3;overflow-wrap:anywhere}.qcm-action>i{grid-row:1/3;grid-column:3;color:var(--text-soft,#64748b);font-size:.62rem}.qcm-action.green>span{background:#dcfce7;color:#15803d}.qcm-action.orange>span{background:#ffedd5;color:#c2410c}.qcm-action.blue>span{background:#dbeafe;color:#1d4ed8}.qcm-action.red>span{background:#fee2e2;color:#b91c1c}

.qcm-record-list,.qcm-section-body{display:grid}.qcm-record{min-width:0;min-height:64px;display:grid;grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"icon title right" "icon meta right";align-items:center;gap:2px 10px;width:100%;padding:10px 12px;border:0;border-bottom:1px solid var(--qcm-line);background:var(--qcm-card);color:var(--text,#1f2937);text-align:left}.qcm-record:last-child{border-bottom:0}.qcm-record:is(button){cursor:pointer}.qcm-record>span:first-child{grid-area:icon;width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#dbeafe;color:#1d4ed8}.qcm-record>span.green{background:#dcfce7;color:#15803d}.qcm-record>span.red{background:#fee2e2;color:#b91c1c}.qcm-record>span.orange{background:#ffedd5;color:#c2410c}.qcm-record>span.purple{background:#ede9fe;color:#6d28d9}.qcm-record>strong{grid-area:title;align-self:end;min-width:0;font-size:.76rem;line-height:1.25;overflow-wrap:anywhere}.qcm-record>small{grid-area:meta;align-self:start;min-width:0;color:var(--text-soft,#64748b);font-size:.64rem;line-height:1.3;overflow-wrap:anywhere}.qcm-record-right{grid-area:right;display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.qcm-record-right>.qcm-money{font-size:.78rem;white-space:nowrap}.qcm-mini{min-height:36px;padding:0 10px;border:1px solid var(--qcm-line);border-radius:10px;background:var(--qcm-soft);color:var(--accent,#6d28d9);font-size:.67rem;font-weight:850;cursor:pointer}

.qcm-state{display:grid;place-items:center;min-height:150px;padding:24px;border:1px solid var(--qcm-line);border-radius:16px;background:var(--qcm-card);text-align:center}.qcm-state>i{font-size:1.4rem;color:var(--text-soft,#64748b)}.qcm-state.error>i,.qcm-state.denied>i{color:var(--qcm-red)}.qcm-state.offline>i{color:var(--qcm-orange)}.qcm-state h3{margin:10px 0 0;font-size:.9rem}.qcm-state p{max-width:440px;margin:5px 0 0;color:var(--text-soft,#64748b);font-size:.72rem;line-height:1.5}.qcm-state small{margin-top:6px;color:var(--text-soft,#64748b);font-size:.6rem}.qcm-state .qcm-primary{margin-top:12px}
.qcm-home-note{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--qcm-line);border-radius:15px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#6d28d9) 7%,var(--qcm-card)),var(--qcm-card))}.qcm-home-note>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:var(--accent-soft,#ede9fe);color:var(--accent,#6d28d9)}.qcm-home-note strong{display:block;font-size:.79rem}.qcm-home-note p{margin:3px 0 0;color:var(--text-soft,#64748b);font-size:.66rem;line-height:1.4}.qcm-action.is-disabled{cursor:not-allowed;opacity:.58;filter:saturate(.55)}.qcm-action.is-disabled>i:last-child{color:var(--text-soft,#64748b)}
.mobile-primary-nav [data-qedu-context-switch]{position:relative;background:linear-gradient(145deg,var(--accent,#6d28d9),#2563eb)!important;color:#fff!important;box-shadow:0 7px 17px color-mix(in srgb,var(--accent,#6d28d9) 28%,transparent)!important}.mobile-primary-nav [data-qedu-context-switch] i,.mobile-primary-nav [data-qedu-context-switch] span{color:#fff!important}.mobile-primary-nav [data-qedu-context-switch].active{background:linear-gradient(145deg,var(--accent,#6d28d9),#2563eb)!important;color:#fff!important}

.qcm-chooser,.qcm-month{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:10px 12px;border:1px solid var(--qcm-line);border-radius:14px;background:var(--qcm-card)}.qcm-chooser>span,.qcm-month>span{color:var(--text-soft,#64748b);font-size:.72rem;font-weight:850}.qcm-chooser select,.qcm-month select{min-width:0;width:100%;height:44px;padding:0 36px 0 11px;border:1px solid var(--qcm-line);border-radius:11px;background:var(--qcm-card);color:var(--text,#1f2937);font-size:16px}
.qcm-identity{position:relative;min-width:0;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:14px;border:1px solid var(--qcm-line);border-radius:18px;background:var(--qcm-card);color:var(--text,#1f2937);text-align:left;box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.05))}.qcm-identity.is-clickable{grid-template-columns:58px minmax(0,1fr) auto 14px;cursor:pointer}.qcm-avatar{width:58px;height:58px;display:grid;place-items:center;overflow:hidden;border-radius:16px;background:linear-gradient(135deg,var(--accent,#6d28d9),#2563eb);color:#fff;font-size:1.2rem;font-weight:900}.qcm-avatar img{width:100%;height:100%;object-fit:cover}.qcm-identity-copy{min-width:0;display:flex;flex-direction:column}.qcm-identity-copy small{color:var(--text-soft,#64748b);font-size:.66rem}.qcm-identity-copy strong{margin-top:2px;font-size:.96rem;line-height:1.25;overflow-wrap:anywhere}.qcm-identity-copy em{margin-top:3px;color:var(--text-soft,#64748b);font-size:.7rem;font-style:normal;line-height:1.3;overflow-wrap:anywhere}.qcm-identity>i{color:var(--text-soft,#64748b)}

.qcm-tabs,.qcm-filter-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;min-width:0;padding:4px;border-radius:14px;background:var(--qcm-soft)}.qcm-filter-tabs{grid-template-columns:1fr 1fr}.qcm-tabs button,.qcm-filter-tabs button{min-width:0;min-height:44px;padding:4px;border:0;border-radius:10px;background:transparent;color:var(--text-soft,#64748b);font-size:.7rem;font-weight:800;line-height:1.2;cursor:pointer}.qcm-tabs button.active,.qcm-filter-tabs button.active{background:var(--qcm-card);color:var(--accent,#6d28d9);box-shadow:0 2px 8px rgba(15,23,42,.08)}.qcm-tabs button b{margin-left:3px}
.qcm-profile-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.qcm-profile-panel[hidden]{display:none}.qcm-profile-panel article{min-width:0;display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-areas:"icon label" "icon value";gap:1px 10px;padding:12px;border:1px solid var(--qcm-line);border-radius:14px;background:var(--qcm-card)}.qcm-profile-panel article>span{grid-area:icon;width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:var(--accent-soft,#ede9fe);color:var(--accent,#6d28d9)}.qcm-profile-panel small{grid-area:label;color:var(--text-soft,#64748b);font-size:.64rem}.qcm-profile-panel strong{grid-area:value;min-width:0;font-size:.78rem;line-height:1.35;overflow-wrap:anywhere}

.qcm-attendance-summary{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:18px;padding:18px;border:1px solid var(--qcm-line);border-radius:18px;background:var(--qcm-card)}.qcm-donut{--score:0;position:relative;width:150px;aspect-ratio:1;display:grid;place-items:center;margin:auto;border-radius:50%;background:conic-gradient(var(--accent,#6d28d9) calc(var(--score)*1%),var(--qcm-soft) 0)}.qcm-donut:before{content:"";position:absolute;inset:18px;border-radius:50%;background:var(--qcm-card)}.qcm-donut strong,.qcm-donut small{position:relative}.qcm-donut strong{font-size:1.6rem;color:var(--accent,#6d28d9)}.qcm-donut small{margin-top:-45px;color:var(--text-soft,#64748b);font-size:.65rem}.qcm-attendance-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.qcm-attendance-counts .qcm-kpi{min-height:92px}

/* Guardian monthly attendance tracker v158. */
.qcm-guardian-attendance{--qcm-attendance-blue:#07529b;--qcm-attendance-sky:#10b9ec;--qcm-attendance-present:#179b35;--qcm-attendance-absent:#ef4444;--qcm-attendance-leave:#f59e0b}
.qcm-attendance-head{position:relative;isolation:isolate;min-height:132px;display:flex;align-items:center;gap:15px;overflow:hidden;padding:20px;border:1px solid #38bdf8;border-radius:22px;background:linear-gradient(135deg,#06427f,#0879c6 58%,#10b9ec);color:#fff;box-shadow:0 12px 28px rgba(7,82,155,.2)}
.qcm-attendance-head:before,.qcm-attendance-head:after{content:"";position:absolute;z-index:-1;border:2px solid rgba(255,255,255,.13);border-radius:50%}.qcm-attendance-head:before{width:125px;height:125px;right:-32px;top:-55px}.qcm-attendance-head:after{width:88px;height:88px;right:62px;bottom:-62px}
.qcm-attendance-head>span{flex:0 0 auto;width:58px;height:58px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:18px;background:rgba(255,255,255,.14);font-size:1.35rem;box-shadow:inset 0 1px rgba(255,255,255,.22)}
.qcm-attendance-head>div{min-width:0}.qcm-attendance-head small{display:block;font-size:.6rem;font-weight:900;letter-spacing:.14em;opacity:.82}.qcm-attendance-head h2{margin:4px 0 0;font-size:1.45rem;line-height:1.08;letter-spacing:-.03em}.qcm-attendance-head p{overflow:hidden;margin:6px 0 0;font-size:.7rem;opacity:.86;text-overflow:ellipsis;white-space:nowrap}
#qcmAttendanceBody{display:grid;gap:12px;min-width:0}
.qcm-attendance-overall{min-height:106px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid var(--qcm-line);border-radius:18px;background:linear-gradient(135deg,#fff,var(--qcm-card));box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.06))}
.qcm-attendance-overall>div{display:grid;gap:4px}.qcm-attendance-overall small{color:var(--text-soft,#64748b);font-size:.7rem;font-weight:800}.qcm-attendance-overall strong{color:#123f73;font-size:1.05rem}.qcm-attendance-overall>b{color:#07529b;font-size:2.2rem;line-height:1;letter-spacing:-.06em}
.qcm-attendance-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.qcm-attendance-metrics article{min-width:0;min-height:98px;display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:9px;padding:12px;border:1px solid var(--qcm-line);border-radius:16px;background:var(--qcm-card);box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.04))}
.qcm-metric-ring{--qcm-value:0;position:relative;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--qcm-attendance-present) calc(var(--qcm-value)*1%),#dcfce7 0)}.qcm-metric-ring:before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--qcm-card)}.qcm-metric-ring b{position:relative;font-size:.64rem}.qcm-attendance-metrics article.absent .qcm-metric-ring{background:conic-gradient(var(--qcm-attendance-absent) calc(var(--qcm-value)*1%),#fee2e2 0)}.qcm-attendance-metrics article.leave .qcm-metric-ring{background:conic-gradient(var(--qcm-attendance-leave) calc(var(--qcm-value)*1%),#ffedd5 0)}
.qcm-attendance-metrics article>div{min-width:0;display:grid;gap:2px}.qcm-attendance-metrics small{color:var(--text-soft,#64748b);font-size:.61rem;font-weight:800}.qcm-attendance-metrics strong{font-size:.77rem;white-space:nowrap}.qcm-attendance-metrics .present strong,.qcm-attendance-metrics .present .qcm-metric-ring b{color:#15803d}.qcm-attendance-metrics .absent strong,.qcm-attendance-metrics .absent .qcm-metric-ring b{color:#dc2626}.qcm-attendance-metrics .leave strong,.qcm-attendance-metrics .leave .qcm-metric-ring b{color:#c2410c}
.qcm-attendance-calendar{overflow:hidden;border:1px solid var(--qcm-line);border-radius:18px;background:var(--qcm-card);box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.06))}.qcm-attendance-calendar>header{min-height:72px;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--qcm-line);background:linear-gradient(180deg,#fff,var(--qcm-card))}.qcm-attendance-calendar>header button{width:44px;height:44px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#0676bc;cursor:pointer}.qcm-attendance-calendar>header button:disabled{border-color:var(--qcm-line);background:var(--qcm-soft);color:#94a3b8;cursor:not-allowed;opacity:.6}.qcm-attendance-calendar>header div{min-width:0;text-align:center}.qcm-attendance-calendar>header small{display:block;color:var(--text-soft,#64748b);font-size:.58rem;font-weight:800}.qcm-attendance-calendar>header strong{display:block;margin-top:2px;color:#123f73;font-size:1rem}
.qcm-attendance-week,.qcm-attendance-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:center}.qcm-attendance-week{padding:12px 12px 5px}.qcm-attendance-week b{color:#31557c;font-size:.57rem;text-align:center}.qcm-attendance-grid{gap:6px;padding:6px 12px 14px}.qcm-attendance-day{position:relative;width:34px;height:34px;display:grid;place-items:center;justify-self:center;border:1px solid transparent;border-radius:50%;color:#334155;font-size:.68rem;font-weight:800}.qcm-attendance-day.present{background:#dcfce7;color:#15803d}.qcm-attendance-day.absent{background:#fee2e2;color:#dc2626}.qcm-attendance-day.leave{background:#ffedd5;color:#c2410c}.qcm-attendance-day.unmarked{border-color:#dbe3ef;background:#fff;color:#475569}.qcm-attendance-day.outside{color:#cbd5e1}.qcm-attendance-day.today:after{content:"";position:absolute;inset:-3px;border:2px solid #0ea5e9;border-radius:inherit}
.qcm-attendance-calendar>footer{display:flex;align-items:center;justify-content:center;gap:8px 13px;flex-wrap:wrap;padding:10px 12px;border-top:1px solid var(--qcm-line);background:var(--qcm-soft)}.qcm-attendance-calendar>footer span{display:inline-flex;align-items:center;gap:5px;color:var(--text-soft,#64748b);font-size:.55rem;font-weight:750}.qcm-attendance-calendar>footer span:before{content:"";width:8px;height:8px;border-radius:50%;background:#fff;border:1px solid #cbd5e1}.qcm-attendance-calendar>footer .present:before{border-color:#86efac;background:#bbf7d0}.qcm-attendance-calendar>footer .absent:before{border-color:#fca5a5;background:#fecaca}.qcm-attendance-calendar>footer .leave:before{border-color:#fdba74;background:#fed7aa}.qcm-attendance-empty{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;padding:10px 12px;border-top:1px solid var(--qcm-line);color:var(--text-soft,#64748b);font-size:.6rem;text-align:center}
@media(max-width:599px){.qcm-attendance-head{min-height:112px;padding:16px;border-radius:18px}.qcm-attendance-head>span{width:50px;height:50px;border-radius:15px;font-size:1.1rem}.qcm-attendance-head h2{font-size:1.24rem}.qcm-attendance-overall{min-height:92px;padding:15px}.qcm-attendance-overall>b{font-size:1.9rem}.qcm-attendance-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.qcm-attendance-metrics article{min-height:88px;grid-template-columns:1fr;justify-items:center;gap:5px;padding:9px 5px;text-align:center}.qcm-metric-ring{width:46px;height:46px}.qcm-attendance-metrics strong{font-size:.65rem}.qcm-attendance-grid{gap:4px;padding-inline:8px}.qcm-attendance-day{width:32px;height:32px;font-size:.64rem}.qcm-attendance-week{padding-inline:8px}}

/* Guardian attendance v183: every monthly fact stays inside one phone
   viewport. The page itself never becomes a second vertical scroller. */
@media(max-width:599px){
  .qcm-guardian-attendance{
    height:calc(100dvh - var(--topbar-h,66px) - 87px - env(safe-area-inset-bottom));
    min-height:0;grid-template-rows:58px minmax(0,1fr);gap:6px;overflow:hidden;padding:0
  }
  .qcm-guardian-attendance .qcm-attendance-head{min-height:0;height:58px;gap:10px;padding:7px 10px;border-radius:14px;box-shadow:0 5px 14px rgba(7,82,155,.14)}
  .qcm-guardian-attendance .qcm-attendance-head>span{width:40px;height:40px;border-radius:12px;font-size:.9rem}
  .qcm-guardian-attendance .qcm-attendance-head small{font-size:.48rem;letter-spacing:.1em}
  .qcm-guardian-attendance .qcm-attendance-head h2{margin-top:1px;font-size:.94rem;line-height:1.05}
  .qcm-guardian-attendance .qcm-attendance-head p{margin-top:2px;font-size:.54rem}
  .qcm-guardian-attendance .qcm-attendance-child{width:100%;height:44px;margin-top:-1px;padding:0 28px 0 7px;border:1px solid rgba(255,255,255,.28);border-radius:10px;background:rgba(255,255,255,.14);color:#fff;font-size:13px;font-weight:800}
  .qcm-guardian-attendance .qcm-attendance-child option{color:#1f2937;background:#fff}
  .qcm-guardian-attendance.has-child-switch .qcm-attendance-head small{display:none}
  .qcm-guardian-attendance #qcmAttendanceBody{min-height:0;grid-template-rows:50px 52px minmax(0,1fr);gap:6px;overflow:hidden}
  .qcm-guardian-attendance .qcm-attendance-overall{min-height:0;height:50px;padding:6px 12px;border-radius:12px;box-shadow:none}
  .qcm-guardian-attendance .qcm-attendance-overall>div{gap:0}
  .qcm-guardian-attendance .qcm-attendance-overall small{font-size:.51rem}
  .qcm-guardian-attendance .qcm-attendance-overall strong{font-size:.7rem}
  .qcm-guardian-attendance .qcm-attendance-overall>b{font-size:1.28rem}
  .qcm-guardian-attendance .qcm-attendance-metrics{height:52px;gap:5px}
  .qcm-guardian-attendance .qcm-attendance-metrics article{min-height:0;height:52px;grid-template-columns:30px minmax(0,1fr);justify-items:stretch;gap:5px;padding:5px;border-radius:11px;text-align:left;box-shadow:none}
  .qcm-guardian-attendance .qcm-metric-ring{width:30px;height:30px}
  .qcm-guardian-attendance .qcm-metric-ring:before{inset:3px}
  .qcm-guardian-attendance .qcm-metric-ring b{font-size:.42rem}
  .qcm-guardian-attendance .qcm-attendance-metrics small{font-size:.46rem}
  .qcm-guardian-attendance .qcm-attendance-metrics strong{font-size:.52rem}
  .qcm-guardian-attendance .qcm-attendance-calendar{min-height:0;display:grid;grid-template-rows:44px 18px minmax(0,1fr) 24px;border-radius:13px;box-shadow:none}
  .qcm-guardian-attendance .qcm-attendance-calendar>header{min-height:0;height:44px;grid-template-columns:44px minmax(0,1fr) 44px;gap:4px;padding:0 5px}
  .qcm-guardian-attendance .qcm-attendance-calendar>header button{width:44px;height:44px;border:0;border-radius:10px;background:transparent}
  .qcm-guardian-attendance .qcm-attendance-calendar>header small{font-size:.44rem}
  .qcm-guardian-attendance .qcm-attendance-calendar>header strong{margin-top:0;font-size:.72rem}
  .qcm-guardian-attendance .qcm-attendance-week{height:18px;padding:3px 5px 0}
  .qcm-guardian-attendance .qcm-attendance-week b{font-size:.43rem}
  .qcm-guardian-attendance .qcm-attendance-grid{height:100%;align-content:space-evenly;gap:1px 3px;padding:1px 5px 3px}
  .qcm-guardian-attendance .qcm-attendance-day{width:clamp(22px,7.2vw,28px);height:clamp(22px,7.2vw,28px);font-size:.52rem}
  .qcm-guardian-attendance .qcm-attendance-day.today:after{inset:-1px;border-width:1px}
  .qcm-guardian-attendance .qcm-attendance-calendar>footer{height:24px;gap:3px 8px;flex-wrap:nowrap;padding:2px 5px}
  .qcm-guardian-attendance .qcm-attendance-calendar>footer span{gap:3px;font-size:.42rem;white-space:nowrap}
  .qcm-guardian-attendance .qcm-attendance-calendar>footer span:before{width:6px;height:6px}
  .qcm-guardian-attendance .qcm-attendance-empty{display:none}
}

.qcm-work-grid,.qcm-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.qcm-work-card{min-width:0;min-height:150px;padding:15px;border:1px solid var(--qcm-line);border-left:4px solid var(--qcm-orange);border-radius:16px;background:var(--qcm-card);color:var(--text,#1f2937);text-align:left;cursor:pointer}.qcm-work-card>span{color:var(--qcm-orange);font-size:.64rem;font-weight:850}.qcm-work-card h3{margin:6px 0 0;font-size:.9rem;overflow-wrap:anywhere}.qcm-work-card p{min-height:40px;margin:7px 0;color:var(--text-soft,#64748b);font-size:.7rem;line-height:1.45;overflow-wrap:anywhere}.qcm-work-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.qcm-work-card footer small{color:var(--text-soft,#64748b);font-size:.64rem}
.qcm-result{overflow:hidden;border:1px solid var(--qcm-line);border-radius:17px;background:var(--qcm-card)}.qcm-result>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;background:linear-gradient(135deg,#f5f3ff,var(--qcm-card))}.qcm-result>header small{color:var(--text-soft,#64748b);font-size:.62rem}.qcm-result>header h3{margin:3px 0 0;font-size:.92rem}.qcm-result>header>strong{font-size:1.45rem;color:var(--qcm-purple)}.qcm-result>div{padding:5px 14px}.qcm-result article{display:grid;grid-template-columns:minmax(0,1fr) auto 38px;align-items:center;gap:10px;min-height:48px;border-bottom:1px solid var(--qcm-line)}.qcm-result article:last-child{border:0}.qcm-result article strong{font-size:.75rem;overflow-wrap:anywhere}.qcm-result article span{color:var(--text-soft,#64748b);font-size:.7rem;white-space:nowrap}.qcm-result article b{width:38px;height:32px;display:grid;place-items:center;border-radius:9px;background:#ede9fe;color:#6d28d9;font-size:.7rem}

.qcm-total-due{display:flex;flex-direction:column;padding:18px;border:1px solid #bbf7d0;border-radius:18px;background:linear-gradient(135deg,#ecfdf5,#f0fdf4);color:#166534}.qcm-total-due small{font-size:.68rem;font-weight:750}.qcm-total-due strong{margin-top:3px;font-size:1.75rem;line-height:1.15;letter-spacing:-.04em;overflow-wrap:anywhere}.qcm-total-due span{margin-top:3px;font-size:.66rem}.qcm-fee-line{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:9px 14px;border-bottom:1px solid var(--qcm-line);font-size:.72rem}.qcm-fee-line:last-child{border:0}.qcm-fee-line span{min-width:0;overflow-wrap:anywhere}.qcm-fee-line strong{flex:0 0 auto;white-space:nowrap}.qcm-fee-line.total{background:#ecfdf5;color:#166534;font-weight:850}
.qcm-student-ledger{gap:15px;max-width:1000px}.qcm-fee-due-card{display:grid;grid-template-columns:82px minmax(0,1fr) 42px;align-items:center;gap:18px;min-height:188px;padding:24px;border:1px solid;border-radius:24px;box-shadow:0 10px 30px rgba(15,23,42,.07)}.qcm-fee-due-card.is-due{border-color:#fca5a5;background:linear-gradient(135deg,#fff7f7,#fff1f2);color:#dc2626}.qcm-fee-due-card.is-cleared{border-color:#86efac;background:linear-gradient(135deg,#f0fdf4,#ecfdf5);color:#15803d}.qcm-fee-due-icon{width:78px;height:78px;display:grid;place-items:center;border:10px solid color-mix(in srgb,currentColor 15%,transparent);border-radius:50%;background:currentColor;box-shadow:0 0 0 1px color-mix(in srgb,currentColor 28%,transparent)}.qcm-fee-due-icon i{color:#fff;font-size:1.75rem}.qcm-fee-due-card>div{min-width:0}.qcm-fee-due-card small{display:block;font-size:1rem;font-weight:750}.qcm-fee-due-card strong{display:block;margin-top:4px;font-size:2.5rem;line-height:1;letter-spacing:-.045em}.qcm-fee-due-card p{margin:12px 0 0;color:var(--text,#172033);font-size:.83rem;line-height:1.4}.qcm-fee-due-card>i{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--qcm-card);box-shadow:0 6px 18px rgba(15,23,42,.12);font-size:1rem}.qcm-fee-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.qcm-fee-tabs button{min-width:0;min-height:50px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;border:1px solid var(--qcm-line);border-radius:14px;background:var(--qcm-card);color:var(--text,#172033);font-size:.72rem;font-weight:800;cursor:pointer}.qcm-fee-tabs button i{color:#6d28d9;font-size:.85rem}.qcm-fee-tabs button.active{border-color:#6d28d9;background:linear-gradient(135deg,#6d28d9,#4f46e5);color:#fff;box-shadow:0 6px 16px rgba(109,40,217,.2)}.qcm-fee-tabs button.active i{color:#fff}.qcm-fee-ledger-head,.qcm-fee-ledger-row{display:grid;grid-template-columns:64px 92px minmax(160px,1fr) 88px 82px 10px;align-items:center;gap:10px}.qcm-fee-ledger-head{padding:0 14px;color:var(--text-soft,#64748b);font-size:.62rem}.qcm-fee-ledger-head span:nth-child(2){grid-column:2/4}.qcm-fee-ledger-head span:nth-child(3),.qcm-fee-ledger-head span:nth-child(4){text-align:right}.qcm-fee-ledger-list{display:grid;gap:9px}.qcm-fee-ledger-row{width:100%;min-height:92px;padding:12px 14px;border:1px solid var(--qcm-line);border-radius:16px;background:var(--qcm-card);color:var(--text,#172033);text-align:left;box-shadow:0 4px 14px rgba(15,23,42,.04);cursor:pointer}.qcm-fee-ledger-row time{display:grid;color:#172554;font-style:normal}.qcm-fee-ledger-row time strong{font-size:1rem}.qcm-fee-ledger-row time span,.qcm-fee-ledger-row time em{font-size:.55rem;font-style:normal}.qcm-fee-kind{justify-self:start;padding:7px 8px;border-radius:8px;background:#dbeafe;color:#1d4ed8;font-size:.58rem;font-weight:800}.qcm-fee-ledger-row.payment .qcm-fee-kind{background:#dcfce7;color:#15803d}.qcm-fee-ledger-row.adjustment .qcm-fee-kind{background:#ede9fe;color:#6d28d9}.qcm-fee-copy{min-width:0;display:flex;flex-direction:column}.qcm-fee-copy strong{overflow:hidden;font-size:.7rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.qcm-fee-copy small{margin-top:4px;color:var(--text-soft,#64748b);font-size:.58rem}.qcm-fee-amount,.qcm-fee-balance{font-size:.75rem;text-align:right;white-space:nowrap}.qcm-fee-amount.positive{color:#15803d}.qcm-fee-amount.negative{color:#dc2626}.qcm-fee-ledger-row>i{color:var(--text-soft,#64748b);font-size:.6rem}.qcm-fee-secure{display:flex;align-items:center;gap:8px;margin:2px 5px;color:var(--text-soft,#64748b);font-size:.62rem}.qcm-fee-secure i{color:#6d28d9}.qcm-fee-pay-locked{min-height:54px;border:1px solid #cbd5e1;border-radius:14px;background:#f1f5f9;color:#94a3b8;font-size:.78rem;font-weight:850;cursor:not-allowed}.qcm-fee-pay-locked i{margin-right:8px}
@media(max-width:599px){.qcm-student-ledger{gap:10px}.qcm-fee-due-card{grid-template-columns:54px minmax(0,1fr) 30px;gap:10px;min-height:126px;padding:14px;border-radius:16px}.qcm-fee-due-icon{width:54px;height:54px;border-width:7px}.qcm-fee-due-icon i{font-size:1.15rem}.qcm-fee-due-card small{font-size:.68rem}.qcm-fee-due-card strong{font-size:1.65rem}.qcm-fee-due-card p{margin-top:7px;font-size:.59rem;line-height:1.35}.qcm-fee-due-card>i{width:30px;height:30px;font-size:.7rem}.qcm-fee-tabs{gap:5px}.qcm-fee-tabs button{min-height:44px;flex-direction:column;gap:2px;padding:3px;border-radius:10px;font-size:.51rem}.qcm-fee-tabs button i{font-size:.7rem}.qcm-fee-ledger-head,.qcm-fee-ledger-row{grid-template-columns:34px 49px minmax(0,1fr) 49px 45px 6px;gap:4px}.qcm-fee-ledger-head{padding:0 7px;font-size:.43rem}.qcm-fee-ledger-row{min-height:74px;padding:7px;border-radius:11px}.qcm-fee-ledger-row time strong{font-size:.72rem}.qcm-fee-ledger-row time span,.qcm-fee-ledger-row time em{font-size:.4rem}.qcm-fee-kind{padding:5px 4px;border-radius:6px;font-size:.4rem}.qcm-fee-copy strong{font-size:.52rem}.qcm-fee-copy small{margin-top:2px;font-size:.42rem}.qcm-fee-amount,.qcm-fee-balance{font-size:.51rem}.qcm-fee-ledger-row>i{font-size:.42rem}.qcm-fee-secure{font-size:.5rem}.qcm-fee-pay-locked{min-height:46px;font-size:.62rem}}

.qcm-day-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.qcm-day-tabs button{min-width:0;min-height:44px;border:1px solid var(--qcm-line);border-radius:11px;background:var(--qcm-card);color:var(--text-soft,#64748b);font-size:.68rem;font-weight:800;cursor:pointer}.qcm-day-tabs button.active{border-color:var(--accent,#6d28d9);background:var(--accent,#6d28d9);color:#fff}.qcm-timeline{display:grid;gap:8px;padding:12px;border:1px solid var(--qcm-line);border-radius:18px;background:var(--qcm-card)}.qcm-timeline>article{display:grid;grid-template-columns:74px 10px minmax(0,1fr);align-items:center;gap:10px;min-height:64px}.qcm-timeline time{color:var(--text-soft,#64748b);font-size:.66rem;font-weight:750}.qcm-timeline>article>i{position:relative;width:9px;height:9px;border-radius:50%;background:var(--accent,#6d28d9)}.qcm-timeline>article>i:before{content:"";position:absolute;top:9px;bottom:-47px;left:4px;width:1px;background:var(--qcm-line)}.qcm-timeline>article:last-child>i:before{display:none}.qcm-timeline>article>div{display:flex;min-width:0;flex-direction:column;padding:11px;border:1px solid var(--qcm-line);border-radius:12px}.qcm-timeline strong{font-size:.76rem;overflow-wrap:anywhere}.qcm-timeline small{margin-top:3px;color:var(--text-soft,#64748b);font-size:.64rem;overflow-wrap:anywhere}

/* Guardian period-wise timetable v159. */
.qcm-guardian-timetable-page>.qcm-hero{border-color:#0ea5e9;background:linear-gradient(135deg,#073b78,#075ba7 58%,#0db7e9);color:#fff}.qcm-guardian-timetable-page>.qcm-hero .qcm-hero-copy>span,.qcm-guardian-timetable-page>.qcm-hero p{color:rgba(255,255,255,.82)}
.qcm-guardian-timetable{min-width:0;overflow:hidden;border:1px solid #dce7f3;border-radius:18px;background:#f7fbff;box-shadow:0 9px 24px rgba(17,58,101,.07)}.qcm-guardian-timetable.is-home{border:0;border-radius:0;box-shadow:none}
#qcmTimetableShell{min-width:0;transition:opacity .16s ease}#qcmTimetableShell.is-loading{opacity:.58;pointer-events:none}
.qcm-tt-dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:12px;border-bottom:1px solid #dce7f3;background:#fff}.qcm-tt-dates button{min-width:0;min-height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px 2px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;color:#173f71;box-shadow:0 4px 12px rgba(15,23,42,.05);cursor:pointer}.qcm-tt-dates button strong{font-size:.83rem}.qcm-tt-dates button span{color:#64748b;font-size:.52rem;font-weight:800}.qcm-tt-dates button.active{border-color:#0ea5e9;background:linear-gradient(150deg,#18b8ed,#0989d6);color:#fff;box-shadow:0 7px 16px rgba(14,165,233,.25)}.qcm-tt-dates button.active span{color:#fff}
.qcm-tt-date-title{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:62px;padding:13px 15px;border-bottom:1px solid #dce7f3;background:linear-gradient(180deg,#fafdff,#f5f9fe)}.qcm-tt-date-title strong{min-width:0;color:#123f73;font-size:.87rem;overflow-wrap:anywhere}.qcm-tt-date-title span{flex:0 0 auto;color:#64748b;font-size:.61rem;font-weight:800}
.qcm-tt-list{display:grid;gap:10px;padding:12px}.qcm-tt-period{min-width:0;min-height:104px;display:grid;grid-template-columns:88px 50px minmax(0,1fr);align-items:center;gap:10px;padding:13px;border:1px solid #e2e8f0;border-radius:15px;background:#fff;box-shadow:0 5px 16px rgba(15,23,42,.055)}.qcm-tt-number{display:flex;min-width:0;flex-direction:column}.qcm-tt-number strong{color:#123f73;font-size:.74rem}.qcm-tt-number span{margin-top:3px;color:#64748b;font-size:.61rem;line-height:1.2}.qcm-tt-subject{width:50px;height:50px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#2db7f2,#0b82d3);color:#fff;font-size:1.1rem;font-style:normal;box-shadow:0 5px 13px rgba(14,165,233,.2)}.qcm-tt-subject.green{background:linear-gradient(145deg,#43d34e,#18a632)}.qcm-tt-subject.orange{background:linear-gradient(145deg,#ffad27,#f97316)}.qcm-tt-subject.cyan{background:linear-gradient(145deg,#38d4ec,#06a9cf)}.qcm-tt-subject.pink{background:linear-gradient(145deg,#ff78b2,#ec4899)}.qcm-tt-subject.purple{background:linear-gradient(145deg,#8b75ff,#6655e9)}.qcm-tt-subject.red{background:linear-gradient(145deg,#ff6c76,#ef4444)}.qcm-tt-copy{display:flex;min-width:0;flex-direction:column}.qcm-tt-copy strong{color:#123f73;font-size:.9rem;line-height:1.22;overflow-wrap:anywhere}.qcm-tt-copy span{margin-top:4px;color:#64748b;font-size:.68rem;line-height:1.3;overflow-wrap:anywhere}.qcm-tt-copy small{margin-top:3px;color:#94a3b8;font-size:.57rem}
.qcm-tt-recess{min-height:54px;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 13px;border-radius:13px;background:linear-gradient(135deg,#0aa7e4,#12c4ee);color:#fff;box-shadow:0 5px 14px rgba(14,165,233,.18)}.qcm-tt-recess i{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.17)}.qcm-tt-recess strong{font-size:.72rem}.qcm-tt-recess span{font-size:.61rem;font-weight:750;white-space:nowrap}.qcm-guardian-timetable .qcm-state{min-height:150px;border:0;background:transparent;box-shadow:none}
.qcm-teacher-timetable-page>.qcm-hero{background:linear-gradient(135deg,#073b78,#075ba7 58%,#0db7e9)}.qcm-tt-teacher-period .qcm-tt-copy>span{display:flex;align-items:center;gap:6px;color:#365f8d;font-weight:750}.qcm-tt-teacher-period .qcm-tt-copy>span i{color:#0b93d5;font-size:.66rem}.qcm-tt-teacher-period .qcm-tt-copy small{display:flex;align-items:center;gap:5px;color:#7c3aed}.qcm-teacher-timetable.is-loading{opacity:.68;pointer-events:none;transition:opacity .16s ease}
@media(max-width:599px){.qcm-tt-dates{gap:4px;padding:9px 7px}.qcm-tt-dates button{min-height:61px;border-radius:10px}.qcm-tt-dates button strong{font-size:.75rem}.qcm-tt-date-title{min-height:58px;padding:11px 12px}.qcm-tt-date-title strong{font-size:.77rem}.qcm-tt-period{min-height:94px;grid-template-columns:73px 44px minmax(0,1fr);gap:8px;padding:10px}.qcm-tt-subject{width:44px;height:44px;border-radius:12px;font-size:.96rem}.qcm-tt-number strong{font-size:.68rem}.qcm-tt-number span{font-size:.56rem}.qcm-tt-copy strong{font-size:.8rem}.qcm-tt-copy span{font-size:.62rem}.qcm-tt-list{gap:8px;padding:9px}.qcm-tt-recess{grid-template-columns:30px minmax(0,1fr);min-height:50px}.qcm-tt-recess i{width:30px;height:30px}.qcm-tt-recess span{grid-column:2;white-space:normal}}

.qcm-search{position:relative;display:block;min-width:0}.qcm-search>i{position:absolute;z-index:1;top:50%;left:14px;transform:translateY(-50%);color:var(--text-soft,#64748b);pointer-events:none}.qcm-search input{width:100%;height:46px;padding:0 14px 0 42px;border:1px solid var(--qcm-line);border-radius:13px;background:var(--qcm-card);color:var(--text,#1f2937);font-size:16px}.qcm-more-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.qcm-more-grid button{min-width:0;min-height:98px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px;border:1px solid var(--qcm-line);border-radius:14px;background:var(--qcm-card);color:var(--text,#1f2937);cursor:pointer}.qcm-more-grid button>i{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--accent-soft,#ede9fe);color:var(--accent,#6d28d9)}.qcm-more-grid strong{max-width:100%;font-size:.7rem;line-height:1.25;text-align:center;overflow-wrap:anywhere}.qcm-more-grid small{color:var(--text-soft,#64748b);font-size:.58rem}.qcm-account-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.qcm-account-actions button{min-height:46px;border:1px solid var(--qcm-line);border-radius:13px;background:var(--qcm-card);color:var(--text,#1f2937);font-size:.72rem;font-weight:750;cursor:pointer}.qcm-account-actions button i{margin-right:6px}.qcm-account-actions button.danger{border-color:#fecaca;background:#fef2f2;color:#b91c1c}

.qcm-class-card,.qcm-transport-card{min-width:0;overflow:hidden;border:1px solid var(--qcm-line);border-radius:16px;background:var(--qcm-card);box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.05))}.qcm-class-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:15px}.qcm-class-card>header>div{min-width:0}.qcm-class-card>header small{color:var(--accent,#6d28d9);font-size:.62rem;font-weight:850;text-transform:uppercase}.qcm-class-card h3{margin:4px 0 0;font-size:1rem;overflow-wrap:anywhere}.qcm-class-card p{margin:4px 0 0;color:var(--text-soft,#64748b);font-size:.68rem;line-height:1.4;overflow-wrap:anywhere}.qcm-class-card>footer{display:flex;gap:8px;padding:10px;border-top:1px solid var(--qcm-line)}.qcm-class-card>footer button{flex:1;min-height:44px;border:0;border-radius:10px;background:var(--qcm-soft);color:var(--text,#1f2937);font-size:.7rem;font-weight:850;cursor:pointer}.qcm-class-card>footer button.primary{background:var(--qcm-green);color:#fff}
.qcm-transport-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;padding:15px}.qcm-transport-card>span{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:#dbeafe;color:#1d4ed8;font-size:1.15rem}.qcm-transport-card>div{min-width:0}.qcm-transport-card small{color:var(--text-soft,#64748b);font-size:.62rem}.qcm-transport-card h3{margin:3px 0 10px;font-size:.9rem;overflow-wrap:anywhere}.qcm-transport-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 10px}.qcm-transport-card dl div{min-width:0}.qcm-transport-card dt{color:var(--text-soft,#64748b);font-size:.6rem}.qcm-transport-card dd{margin:2px 0 0;font-size:.7rem;overflow-wrap:anywhere}

.qcm-command-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid #ddd6fe;border-radius:16px;background:linear-gradient(135deg,#f5f3ff,#eef2ff)}.qcm-command-strip>div{display:flex;min-width:0;flex-direction:column}.qcm-command-strip small{color:#6d28d9;font-size:.62rem;font-weight:850;text-transform:uppercase}.qcm-command-strip strong{font-size:1.6rem;line-height:1;color:#4c1d95}.qcm-command-strip button{min-height:44px;display:flex;align-items:center;gap:10px;padding:0 12px;border:0;border-radius:12px;background:#fff;color:#4c1d95;font-size:.72rem;font-weight:850;cursor:pointer}.qcm-inbox-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
.qcm-student-list{display:grid;gap:8px}.qcm-student-card{min-width:0;min-height:76px;display:grid;grid-template-columns:46px minmax(0,1fr) auto 10px;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid var(--qcm-line);border-radius:14px;background:var(--qcm-card);color:var(--text,#1f2937);text-align:left;cursor:pointer}.qcm-student-card>span:first-child{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,var(--accent,#6d28d9),#2563eb);color:#fff;font-size:.92rem;font-weight:900}.qcm-student-card>div{display:flex;min-width:0;flex-direction:column}.qcm-student-card strong{font-size:.78rem;line-height:1.25;overflow-wrap:anywhere}.qcm-student-card small,.qcm-student-card em{margin-top:2px;color:var(--text-soft,#64748b);font-size:.62rem;font-style:normal;line-height:1.3;overflow-wrap:anywhere}.qcm-student-card>i{color:var(--text-soft,#64748b);font-size:.6rem}

.qcm-offline-hint{display:flex;align-items:center;gap:10px;min-width:0;margin:0 0 10px;padding:10px 12px;border:1px solid #bbf7d0;border-radius:13px;background:#f0fdf4;color:#166534}.qcm-offline-hint.offline{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.qcm-offline-hint>i{width:34px;height:34px;display:grid;flex:0 0 auto;place-items:center;border-radius:10px;background:rgba(255,255,255,.75)}.qcm-offline-hint>span{display:flex;min-width:0;flex-direction:column}.qcm-offline-hint strong{font-size:.72rem}.qcm-offline-hint small{margin-top:2px;font-size:.62rem;line-height:1.35;overflow-wrap:anywhere}

.qcm-loading{display:grid;gap:12px;padding:12px}.qcm-loading>span{color:var(--text-soft,#64748b);font-size:.72rem;text-align:center}.qcm-skeleton,.qcm-skeleton-grid i{display:block;overflow:hidden;border-radius:16px;background:linear-gradient(90deg,var(--qcm-soft) 25%,color-mix(in srgb,var(--qcm-soft) 55%,#fff) 50%,var(--qcm-soft) 75%);background-size:220% 100%;animation:qcm-shimmer 1.15s infinite}.qcm-skeleton.hero{height:110px}.qcm-skeleton.list{height:220px}.qcm-skeleton-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.qcm-skeleton-grid i{height:110px}@keyframes qcm-shimmer{to{background-position:-220% 0}}
.qcm-inline-loading{min-height:92px;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--text-soft,#64748b);font-size:.7rem}

.qcm-sheet-layer{position:fixed;z-index:2200;inset:0;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.qcm-sheet-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.52);opacity:0;transition:opacity .18s ease}.qcm-sheet{position:relative;width:min(620px,100%);max-height:min(82vh,760px);display:flex;flex-direction:column;border-radius:20px 20px 0 0;background:var(--surface,#fff);box-shadow:0 -20px 60px rgba(15,23,42,.22);transform:translateY(105%);transition:transform .18s ease}.qcm-sheet-layer.open{pointer-events:auto}.qcm-sheet-layer.open .qcm-sheet-backdrop{opacity:1}.qcm-sheet-layer.open .qcm-sheet{transform:translateY(0)}.qcm-sheet>header{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border,#dbe3ef)}.qcm-sheet>header h3{margin:0;font-size:.95rem;overflow-wrap:anywhere}.qcm-sheet>header button{width:44px;height:44px;border:0;border-radius:12px;background:var(--surface-2,#f5f7fb);color:var(--text,#1f2937);cursor:pointer}.qcm-sheet-content{overflow:auto;padding:15px}.qcm-sheet>footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--border,#dbe3ef)}.qcm-sheet-details{display:grid;gap:0;margin:0}.qcm-sheet-details>div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;padding:11px 0;border-bottom:1px solid var(--border,#dbe3ef)}.qcm-sheet-details>div:last-child{border:0}.qcm-sheet-details dt{color:var(--text-soft,#64748b);font-size:.68rem}.qcm-sheet-details dd{min-width:0;margin:0;color:var(--text,#1f2937);font-size:.74rem;line-height:1.45;overflow-wrap:anywhere}.qcm-ledger-detail{margin:0;font-size:.76rem;line-height:1.6;overflow-wrap:anywhere}

/* Tablet Director/Management student profile master-detail. */
.qcm-director-tablet-profile{display:grid!important;grid-template-columns:260px minmax(0,1fr);align-items:start;gap:12px;max-width:none!important;overflow:visible!important}.qcm-tablet-switcher{position:sticky;top:8px;max-height:calc(100dvh - 84px);display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--qcm-line);border-radius:17px;background:var(--surface,#fff);box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.06))}.qcm-tablet-switcher>header{padding:14px 14px 5px}.qcm-tablet-switcher>header small{color:var(--accent,#6d28d9);font-size:.6rem;font-weight:900;text-transform:uppercase}.qcm-tablet-switcher>header h3{margin:4px 0 0;font-size:1rem}.qcm-tablet-switcher>.qcm-search{margin:8px 10px}.qcm-tablet-switcher>[data-qcm-tablet-results]{display:grid;overflow:auto;padding:0 8px 8px}.qcm-tablet-switcher [data-qcm-tablet-student]{min-width:0;min-height:64px;display:grid;grid-template-columns:38px minmax(0,1fr) 8px;align-items:center;gap:8px;padding:8px;border:0;border-bottom:1px solid var(--qcm-line);background:transparent;color:var(--text,#1f2937);text-align:left;cursor:pointer}.qcm-tablet-switcher [data-qcm-tablet-student]>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--accent-soft,#ede9fe);color:var(--accent,#6d28d9);font-size:.72rem;font-weight:900}.qcm-tablet-switcher [data-qcm-tablet-student]>div{display:flex;min-width:0;flex-direction:column}.qcm-tablet-switcher [data-qcm-tablet-student] strong{font-size:.7rem;line-height:1.25;overflow-wrap:anywhere}.qcm-tablet-switcher [data-qcm-tablet-student] small{margin-top:2px;color:var(--text-soft,#64748b);font-size:.56rem;line-height:1.25;overflow-wrap:anywhere}.qcm-tablet-switcher [data-qcm-tablet-student]>i{color:var(--text-soft,#64748b);font-size:.54rem}.qcm-tablet-detail{display:grid;min-width:0;gap:12px}.qcm-tablet-tabs{position:sticky;z-index:12;top:8px;display:flex;gap:6px;overflow-x:auto;padding:7px;border:1px solid var(--qcm-line);border-radius:14px;background:color-mix(in srgb,var(--surface,#fff) 94%,transparent);backdrop-filter:blur(14px);scrollbar-width:none}.qcm-tablet-tabs::-webkit-scrollbar{display:none}.qcm-tablet-tabs button{flex:0 0 auto;min-height:44px;padding:0 12px;border:1px solid var(--qcm-line);border-radius:10px;background:var(--surface,#fff);color:var(--text-soft,#64748b);font-size:.65rem;font-weight:800;cursor:pointer}.qcm-tablet-tabs button:first-child{border-color:var(--accent,#6d28d9);background:var(--accent,#6d28d9);color:#fff}.qcm-tablet-detail .spx-panel,.qcm-tablet-detail .spx-profile-card,.qcm-tablet-detail .spx-transactions{scroll-margin-top:78px}.qcm-tablet-detail .spx-actions{position:sticky!important;z-index:10;bottom:8px}.qcm-tablet-detail .spx-transactions tbody tr{cursor:pointer}

@media(max-width:1024px){
  html,body,.main,.content,#view{max-width:100%;min-width:0}
  body.qcm-v106-ready{overflow-x:clip}
  .qcm-mobile-view{width:100%;max-width:100%;box-sizing:border-box}
  .qcm-input,.mobile-app-ready input,.mobile-app-ready select,.mobile-app-ready textarea{font-size:16px!important}
  .mobile-app-ready .form-grid,.mobile-app-ready .admission-form-grid{gap:10px}
  .mobile-app-ready .field>label,.mobile-app-ready .field>span{font-size:.72rem}
  .mobile-app-ready .form-actions,.mobile-app-ready .modal-foot{position:sticky;z-index:16;bottom:0;padding-bottom:max(10px,env(safe-area-inset-bottom));background:var(--surface,#fff)}
  .mobile-app-ready .form-actions .btn,.mobile-app-ready .modal-foot .btn,.mobile-app-ready .attendance-stage button{min-height:44px}
  .mobile-app-ready .data-table th,.mobile-app-ready .data-table td{font-size:.72rem}
  .mobile-app-ready .mobile-card-table{display:block;width:100%}.mobile-app-ready .mobile-card-table thead{display:none}.mobile-app-ready .mobile-card-table tbody{display:grid;gap:9px}.mobile-app-ready .mobile-card-table tr{display:grid;grid-template-columns:1fr 1fr;gap:0;overflow:hidden;border:1px solid var(--qcm-line);border-radius:14px;background:var(--surface,#fff)}.mobile-app-ready .mobile-card-table td{display:grid;grid-template-columns:minmax(88px,.7fr) minmax(0,1fr);gap:8px;min-width:0;padding:9px 10px;border:0;border-bottom:1px solid var(--qcm-line);overflow-wrap:anywhere}.mobile-app-ready .mobile-card-table td:before{content:attr(data-label);color:var(--text-soft,#64748b);font-size:.62rem;font-weight:800}.mobile-app-ready .mobile-card-table td:last-child{border-bottom:0}.mobile-app-ready .mobile-scroll-table{position:relative;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity}.mobile-app-ready .mobile-scroll-table:after{content:"Swipe table →";position:sticky;right:8px;bottom:6px;display:inline-flex;padding:4px 7px;border-radius:8px;background:rgba(15,23,42,.78);color:#fff;font-size:.56rem;pointer-events:none}
}

@media(min-width:1025px){body.qcm-v106-ready>.mobile-primary-nav{display:none!important}}

@media(min-width:600px) and (max-width:1024px){
  .qcm-page{padding-inline:2px}.qcm-actions-wide{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mobile-primary-nav{position:fixed!important;z-index:90;top:66px!important;right:auto!important;bottom:12px!important;left:8px!important;width:68px!important;height:auto!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;gap:5px!important;padding:7px!important;border:1px solid var(--qcm-line)!important;border-radius:17px!important;background:color-mix(in srgb,var(--surface,#fff) 94%,transparent)!important;backdrop-filter:blur(16px);box-shadow:0 12px 30px rgba(15,23,42,.14)!important}
  .mobile-primary-nav button{width:54px!important;min-height:54px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;border:0!important;border-radius:12px!important;background:transparent!important;color:var(--text-soft,#64748b)!important}.mobile-primary-nav button.active{background:var(--accent-soft,#ede9fe)!important;color:var(--accent,#6d28d9)!important}.mobile-primary-nav button i{font-size:1rem!important}.mobile-primary-nav button span{font-size:.52rem!important;font-weight:800!important}
}

@media(max-width:760px){
  .qcm-page{gap:10px}.qcm-hero{padding:15px;border-radius:15px}.qcm-hero h2{font-size:1.2rem}.qcm-hero p{font-size:.73rem}.qcm-hero-side{max-width:44%}
  .qcm-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.qcm-kpi{min-height:96px;padding:10px}.qcm-kpi>strong{font-size:.96rem}
  .qcm-actions-wide{grid-template-columns:repeat(2,minmax(0,1fr))}.qcm-card-grid,.qcm-work-grid{grid-template-columns:1fr}.qcm-more-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .qcm-profile-panel{grid-template-columns:1fr}.qcm-attendance-summary{grid-template-columns:1fr;padding:14px}.qcm-donut{width:130px}.qcm-attendance-counts{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:599px){
  .mobile-app-ready .content{padding:9px 9px calc(78px + env(safe-area-inset-bottom))!important}
  .mobile-primary-nav{position:fixed!important;z-index:100;right:8px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;left:8px!important;width:auto!important;height:64px!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:3px!important;padding:4px!important;border:1px solid var(--qcm-line)!important;border-radius:17px!important;background:color-mix(in srgb,var(--surface,#fff) 96%,transparent)!important;backdrop-filter:blur(18px);box-shadow:0 12px 32px rgba(15,23,42,.18)!important}
  .mobile-primary-nav button{min-width:0!important;min-height:54px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;padding:3px!important;border:0!important;border-radius:12px!important;background:transparent!important;color:var(--text-soft,#64748b)!important}.mobile-primary-nav button.active{background:var(--accent-soft,#ede9fe)!important;color:var(--accent,#6d28d9)!important}.mobile-primary-nav button i{font-size:.98rem!important}.mobile-primary-nav button span{max-width:100%;font-size:.52rem!important;font-weight:850!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .qcm-hero{align-items:flex-start}.qcm-hero-side{max-width:48%;align-items:flex-end;flex-direction:column}.qcm-hero .qcm-primary{min-height:44px;padding:0 10px;font-size:.66rem}.qcm-badge{font-size:.58rem}
  .qcm-identity{grid-template-columns:50px minmax(0,1fr) auto;padding:11px}.qcm-identity.is-clickable{grid-template-columns:50px minmax(0,1fr) auto 9px}.qcm-avatar{width:50px;height:50px;border-radius:13px}.qcm-identity-copy strong{font-size:.84rem}.qcm-identity-copy em{font-size:.62rem}
  .qcm-section{border-radius:15px}.qcm-section>header{min-height:48px;padding:9px 12px}.qcm-actions{gap:7px;padding:10px}.qcm-action{min-height:72px;padding:8px}.qcm-action>strong{font-size:.72rem}.qcm-action>small{font-size:.58rem}
  .qcm-record{grid-template-columns:38px minmax(0,1fr) auto;min-height:60px;padding:9px}.qcm-record>span:first-child{width:38px;height:38px}.qcm-record>strong{font-size:.72rem}.qcm-record>small{font-size:.6rem}.qcm-record-right>.qcm-money{font-size:.7rem}
  .qcm-day-tabs{gap:4px}.qcm-day-tabs button{font-size:.6rem}.qcm-timeline{padding:10px}.qcm-timeline>article{grid-template-columns:58px 8px minmax(0,1fr);gap:8px}
  .qcm-more-grid button{min-height:86px}.qcm-account-actions{grid-template-columns:1fr 1fr}.qcm-account-actions .danger{grid-column:1/-1}
  .qcm-command-strip{align-items:stretch}.qcm-command-strip button{max-width:66%;text-align:left}.qcm-student-card{grid-template-columns:44px minmax(0,1fr) auto 8px;padding:9px}.qcm-student-card>span:first-child{width:44px;height:44px}.qcm-student-card .qcm-badge{padding:0 7px}
  .qcm-student-home>.qcm-hero{min-height:70px;padding:10px 13px;border-radius:13px}.qcm-student-home>.qcm-hero .qcm-hero-copy>span{font-size:.56rem}.qcm-student-home>.qcm-hero h2{margin-top:3px;font-size:1rem;line-height:1.12}.qcm-student-home>.qcm-hero .qcm-hero-side{display:none}
  .qcm-sheet{max-height:88dvh}.qcm-sheet-details>div{grid-template-columns:100px minmax(0,1fr)}
  .mobile-app-ready .mobile-card-table tr{grid-template-columns:1fr}.mobile-app-ready .mobile-card-table td{grid-template-columns:110px minmax(0,1fr)}
}

@media(max-width:370px){
  .qcm-actions{grid-template-columns:1fr}.qcm-actions.qcm-fixed-home-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px}.qcm-fixed-home-actions .qcm-action{min-height:72px;grid-template-columns:34px minmax(0,1fr) 8px;gap:1px 6px;padding:7px}.qcm-fixed-home-actions .qcm-action>span{width:34px;height:34px;border-radius:10px}.qcm-fixed-home-actions .qcm-action>strong{font-size:.66rem}.qcm-fixed-home-actions .qcm-action>small{font-size:.51rem;line-height:1.22}.qcm-fixed-home-actions .qcm-action>i{font-size:.54rem}.qcm-actions-wide{grid-template-columns:1fr 1fr}.qcm-more-grid{grid-template-columns:1fr 1fr}.qcm-kpi>strong{font-size:.88rem}.qcm-hero-side .qcm-badge{display:none}.qcm-inbox-tabs button{font-size:.6rem}.qcm-student-card .qcm-badge{display:none}
}

@media(max-width:329px){.qcm-actions.qcm-fixed-home-actions{grid-template-columns:1fr}}

@media(prefers-reduced-motion:reduce){.qcm-page,.qcm-page *,.qcm-sheet,.qcm-sheet-backdrop{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media print{.mobile-primary-nav,.qcm-hero-side,.qcm-account-actions,.qcm-tabs,.qcm-day-tabs,.qcm-search,.qcm-tablet-switcher{display:none!important}.qcm-page,.qcm-tablet-detail{display:block!important}.qcm-section,.qcm-result{break-inside:avoid;box-shadow:none}.qcm-director-tablet-profile{display:block!important}}

/* v141 · shared employee home, contextual centre button and teacher class insights */
.qcm-swipe-enter{animation:qcm-swipe-enter .28s cubic-bezier(.22,.8,.3,1) both}.qcm-swipe-back-enter{animation:qcm-swipe-back-enter .28s cubic-bezier(.22,.8,.3,1) both}@keyframes qcm-swipe-enter{from{opacity:.42;transform:translate3d(54px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}@keyframes qcm-swipe-back-enter{from{opacity:.42;transform:translate3d(-54px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.qcm-mobile-view.qcm-live-swiping{position:relative;overflow:hidden!important;isolation:isolate;touch-action:none;user-select:none}
.qcm-mobile-view.qcm-live-swiping>.qcm-page{position:relative;z-index:1;backface-visibility:hidden}
.qcm-live-swipe-preview{position:absolute;z-index:2;right:0;left:0;min-width:100%;overflow:hidden;background:var(--bg,#f5f7fb);pointer-events:none;will-change:transform;backface-visibility:hidden;box-shadow:-18px 0 34px rgba(15,23,42,.12)}
.qcm-live-swipe-preview>.qcm-page{min-height:100%;padding-bottom:calc(82px + env(safe-area-inset-bottom));background:var(--bg,#f5f7fb)}
body[data-qcm-route="roleWorkspace"]{overscroll-behavior-x:none}
body[data-qcm-route="roleWorkspace"] #view{touch-action:pan-y;overscroll-behavior-x:none}
.mobile-primary-nav [data-qedu-context-switch]{align-self:center;transform:translateY(-8px);min-width:58px!important;min-height:58px!important;border-radius:50%!important}
.mobile-primary-nav [data-qedu-context-switch]:active{transform:translateY(-7px) scale(.97)!important}
.mobile-primary-nav button{position:relative}.mobile-primary-nav [data-qedu-task-count]{position:absolute;top:2px;right:8px;min-width:18px;height:18px;display:grid;place-items:center;padding:0 4px;border:2px solid var(--surface,#fff);border-radius:999px;background:#dc2626;color:#fff;font-size:.54rem;line-height:1}.mobile-primary-nav [data-qedu-task-count][hidden]{display:none}
.mobile-primary-nav button:disabled{opacity:.38;cursor:default}.qcm-home-v141 .qcm-hero{min-height:116px}.qcm-swipe-hint{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:9px 12px;border:1px dashed color-mix(in srgb,var(--accent,#6d28d9) 42%,var(--qcm-line));border-radius:14px;background:color-mix(in srgb,var(--accent-soft,#ede9fe) 48%,var(--qcm-card));color:var(--accent,#6d28d9);font-size:.69rem;font-weight:800;text-align:center}
.qcm-teacher-insights{touch-action:pan-y}.qcm-insight-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:17px;border:1px solid var(--qcm-line);border-radius:18px;background:linear-gradient(135deg,#eff6ff,var(--qcm-card));box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.05))}.qcm-insight-head>div{min-width:0}.qcm-insight-head small{color:#2563eb;font-size:.62rem;font-weight:900;letter-spacing:.1em}.qcm-insight-head h2{margin:4px 0 0;font-size:1.35rem;line-height:1.1}.qcm-insight-head p{margin:5px 0 0;color:var(--text-soft,#64748b);font-size:.7rem;line-height:1.4}.qcm-insight-head>span{flex:0 0 auto;padding:6px 9px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:.65rem;font-weight:900}
.qcm-class-picker{position:relative;flex:0 0 auto;z-index:12}.qcm-class-picker>summary{min-width:104px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:9px;padding:0 13px;border:1px solid #bfdbfe;border-radius:14px;background:#fff;color:#1d4ed8;font-size:.76rem;font-weight:900;list-style:none;cursor:pointer;box-shadow:0 5px 14px rgba(37,99,235,.1)}.qcm-class-picker>summary::-webkit-details-marker{display:none}.qcm-class-picker>summary i{font-size:.66rem;transition:transform .18s ease}.qcm-class-picker[open]>summary i{transform:rotate(180deg)}.qcm-class-picker-menu{position:absolute;top:calc(100% + 8px);right:0;width:min(310px,calc(100vw - 36px));max-height:min(420px,62vh);overflow-y:auto;padding:7px;border:1px solid var(--qcm-line);border-radius:16px;background:var(--qcm-card,#fff);box-shadow:0 20px 48px rgba(15,23,42,.2)}.qcm-class-picker-menu button{width:100%;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:0;border-radius:11px;background:transparent;color:var(--text,#172033);text-align:left;cursor:pointer}.qcm-class-picker-menu button+button{margin-top:3px}.qcm-class-picker-menu button.active{background:#eff6ff;color:#1d4ed8}.qcm-class-picker-menu button span{min-width:0;display:grid;gap:3px}.qcm-class-picker-menu button strong,.qcm-class-picker-menu button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qcm-class-picker-menu button strong{font-size:.78rem}.qcm-class-picker-menu button small{color:var(--text-soft,#64748b);font-size:.65rem;font-weight:700}.qcm-class-picker-menu button>i{flex:0 0 auto;color:#2563eb}
.qcm-slide-controls{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:9px}.qcm-slide-controls button{width:44px;height:44px;border:1px solid var(--qcm-line);border-radius:13px;background:var(--qcm-card);color:var(--accent,#6d28d9);cursor:pointer}.qcm-slide-controls button:disabled{opacity:.35}.qcm-slide-controls>div{display:flex;align-items:center;justify-content:center;gap:5px;overflow:hidden}.qcm-slide-controls>div i{width:7px;height:7px;flex:0 0 auto;border-radius:999px;background:#cbd5e1}.qcm-slide-controls>div i.active{width:24px;background:var(--accent,#6d28d9)}
.qcm-insight-chart{min-width:0;overflow:hidden;padding:10px 10px 8px}.qcm-insight-chart svg{display:block;width:100%;height:auto;max-height:230px;overflow:visible}.qcm-insight-chart svg line{stroke:var(--qcm-line);stroke-width:1}.qcm-insight-chart svg text{fill:var(--text-soft,#64748b);font-size:11px}.qcm-insight-chart svg polyline{fill:none;stroke:#2563eb;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.qcm-insight-chart svg circle{fill:#fff;stroke:#2563eb;stroke-width:3}.qcm-chart-green svg polyline{stroke:#16a34a}.qcm-chart-green svg circle{stroke:#16a34a}.qcm-chart-labels{display:block;position:relative;height:18px;margin:0 2px 0 28px}.qcm-chart-labels span{position:absolute;top:0;max-width:44px;overflow:hidden;color:var(--text-soft,#64748b);font-size:.55rem;text-align:center;text-overflow:ellipsis;transform:translateX(-50%);white-space:nowrap}
.qcm-rank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.qcm-rank-card{min-width:0;overflow:hidden;border:1px solid var(--qcm-line);border-radius:16px;background:var(--qcm-card)}.qcm-rank-card>header{padding:10px 12px;background:var(--qcm-soft)}.qcm-rank-card h4{margin:0;font-size:.72rem}.qcm-rank-card ol{display:grid;margin:0;padding:0;list-style:none}.qcm-rank-card li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:48px;padding:7px 9px;border-bottom:1px solid var(--qcm-line)}.qcm-rank-card li:last-child{border:0}.qcm-rank-card li>b{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:#dcfce7;color:#15803d;font-size:.62rem}.qcm-rank-card li>span{display:flex;min-width:0;flex-direction:column}.qcm-rank-card li strong{overflow:hidden;font-size:.67rem;text-overflow:ellipsis;white-space:nowrap}.qcm-rank-card li small{margin-top:2px;color:var(--text-soft,#64748b);font-size:.54rem}.qcm-rank-card li em{color:#15803d;font-size:.66rem;font-style:normal;font-weight:900}.qcm-rank-red li>b{background:#fee2e2;color:#b91c1c}.qcm-rank-red li em{color:#b91c1c}.qcm-rank-orange li>b{background:#ffedd5;color:#c2410c}.qcm-rank-orange li em{color:#c2410c}.qcm-rank-blue li>b{background:#dbeafe;color:#1d4ed8}.qcm-rank-blue li em{color:#1d4ed8}.qcm-rank-card li.is-empty{display:flex;justify-content:center;color:var(--text-soft,#64748b);font-size:.65rem}
.qcm-insight-stats,.qcm-ledger-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:11px}.qcm-insight-stats article,.qcm-ledger-summary article{min-width:0;padding:11px;border:1px solid var(--qcm-line);border-radius:13px;background:var(--qcm-soft)}.qcm-insight-stats span,.qcm-ledger-summary span{display:block;color:var(--text-soft,#64748b);font-size:.6rem}.qcm-insight-stats strong,.qcm-ledger-summary strong{display:block;margin-top:3px;font-size:.92rem;overflow-wrap:anywhere}.qcm-my-ledger-list{display:grid}.qcm-my-ledger-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:70px;padding:10px 12px;border-bottom:1px solid var(--qcm-line)}.qcm-my-ledger-row:last-child{border:0}.qcm-my-ledger-row>div{display:flex;min-width:0;flex-direction:column}.qcm-my-ledger-row small,.qcm-my-ledger-row span{color:var(--text-soft,#64748b);font-size:.58rem}.qcm-my-ledger-row strong{margin:3px 0;font-size:.69rem;line-height:1.3}.qcm-my-ledger-row em{font-size:.75rem;font-style:normal;font-weight:900;white-space:nowrap}.qcm-my-ledger-row em.credit{color:#15803d}.qcm-my-ledger-row em.debit{color:#b91c1c}
@media(max-width:599px){.mobile-primary-nav [data-qedu-context-switch]{transform:translateY(-10px);box-shadow:0 8px 22px rgba(109,40,217,.3)!important}.qcm-rank-grid{grid-template-columns:1fr}.qcm-insight-chart{padding-inline:4px}.qcm-insight-stats,.qcm-ledger-summary{gap:6px;padding:8px}.qcm-insight-stats article,.qcm-ledger-summary article{padding:9px 7px}.qcm-ledger-summary strong{font-size:.78rem}}

/* v147 · Principal Role dashboard. All values are supplied by the compact
   server summary; these rules contain presentation only. */
.qcm-principal-role{--qcm-principal-blue:#2563eb;--qcm-principal-green:#16a34a}
.qcm-principal-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 18px;border:1px solid #bfdbfe;border-radius:18px;background:linear-gradient(135deg,#1d4ed8,#2563eb 58%,#4f46e5);color:#fff;box-shadow:0 12px 28px rgba(37,99,235,.22)}
.qcm-principal-head>div{min-width:0}.qcm-principal-head small{font-size:.6rem;font-weight:900;letter-spacing:.11em;opacity:.82}.qcm-principal-head h2{margin:4px 0 0;font-size:1.35rem;line-height:1.12;letter-spacing:-.025em}.qcm-principal-head p{margin:5px 0 0;font-size:.67rem;opacity:.82}.qcm-principal-head>span{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.14);font-size:.62rem;font-weight:850}.qcm-principal-head>span i{width:7px;height:7px;border-radius:50%;background:#86efac;box-shadow:0 0 0 4px rgba(134,239,172,.14)}
.qcm-principal-kpis .qcm-kpi{min-height:102px}.qcm-principal-kpis .qcm-kpi>strong{font-size:.94rem}.qcm-principal-kpis .qcm-kpi:nth-child(3)>strong,.qcm-principal-kpis .qcm-kpi:nth-child(4)>strong{font-size:.84rem}
.qcm-principal-today{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px 10px 0}.qcm-principal-today article{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;padding:11px;border:1px solid var(--qcm-line);border-radius:14px;background:var(--qcm-soft)}.qcm-principal-today article>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px}.qcm-principal-today article>span.blue{background:#dbeafe;color:#1d4ed8}.qcm-principal-today article>span.green{background:#dcfce7;color:#15803d}.qcm-principal-today article>div{min-width:0;display:grid}.qcm-principal-today small{color:var(--text-soft,#64748b);font-size:.58rem;font-weight:800}.qcm-principal-today strong{margin-top:1px;font-size:1rem}.qcm-principal-today em{margin-top:1px;color:var(--text-soft,#64748b);font-size:.56rem;font-style:normal}
.qcm-principal-trend{min-width:0;overflow:hidden;padding:9px 10px 11px}.qcm-principal-trend-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:2px 5px 5px}.qcm-principal-trend-head>div:first-child{display:grid;gap:2px}.qcm-principal-trend-head strong{font-size:.68rem}.qcm-principal-trend-head small{color:var(--text-soft,#64748b);font-size:.54rem}.qcm-principal-legend{display:flex;align-items:center;justify-content:flex-end;gap:11px;color:var(--text-soft,#64748b);font-size:.55rem;font-weight:800}.qcm-principal-legend span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.qcm-principal-legend i{width:13px;height:3px;border-radius:9px;background:#2563eb}.qcm-principal-legend .employees i{background:#16a34a}.qcm-principal-legend b{color:var(--text,#172033);font-size:.58rem}.qcm-principal-trend svg{display:block;width:100%;height:auto;max-height:214px;overflow:visible}.qcm-principal-trend svg .plot{fill:color-mix(in srgb,var(--qcm-soft) 72%,transparent);stroke:var(--qcm-line);stroke-width:1}.qcm-principal-trend svg line{stroke:color-mix(in srgb,var(--qcm-line) 78%,transparent);stroke-width:1;stroke-dasharray:4 5}.qcm-principal-trend svg text{fill:var(--text-soft,#64748b);font-size:10px}.qcm-principal-trend svg .line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 2px rgba(15,23,42,.08))}.qcm-principal-trend svg .area{stroke:none}.qcm-principal-trend svg circle{fill:var(--qcm-card);stroke-width:3}.qcm-principal-trend svg .students .line,.qcm-principal-trend svg .students circle{stroke:#2563eb}.qcm-principal-trend svg .employees .line,.qcm-principal-trend svg .employees circle{stroke:#16a34a}
.qcm-principal-decisions{display:grid}.qcm-principal-decision{min-width:0;min-height:66px;display:grid;grid-template-columns:40px minmax(0,1fr) auto 9px;align-items:center;gap:9px;padding:9px 12px;border:0;border-bottom:1px solid var(--qcm-line);background:var(--qcm-card);color:var(--text,#1f2937);text-align:left;cursor:pointer}.qcm-principal-decision:last-child{border-bottom:0}.qcm-principal-decision>span{width:40px;height:40px;display:grid;place-items:center;border-radius:12px}.qcm-principal-decision.orange>span{background:#ffedd5;color:#c2410c}.qcm-principal-decision.blue>span{background:#dbeafe;color:#1d4ed8}.qcm-principal-decision.red>span{background:#fee2e2;color:#b91c1c}.qcm-principal-decision>div{min-width:0;display:grid;gap:3px}.qcm-principal-decision strong{font-size:.74rem}.qcm-principal-decision small{color:var(--text-soft,#64748b);font-size:.58rem}.qcm-principal-decision>b{min-width:28px;height:28px;display:grid;place-items:center;padding:0 7px;border-radius:999px;background:var(--qcm-soft);font-size:.68rem}.qcm-principal-decision>i{color:var(--text-soft,#64748b);font-size:.55rem}
.qcm-principal-pulses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}.qcm-principal-pulse{position:relative;min-width:0;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:8px;overflow:hidden;padding:10px;border:1px solid var(--qcm-line);border-radius:13px;background:var(--qcm-soft)}.qcm-principal-pulse>span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#ede9fe;color:#6d28d9}.qcm-principal-pulse.blue>span{background:#dbeafe;color:#1d4ed8}.qcm-principal-pulse.green>span{background:#dcfce7;color:#15803d}.qcm-principal-pulse>div{min-width:0;display:grid}.qcm-principal-pulse small{color:var(--text-soft,#64748b);font-size:.56rem;font-weight:800}.qcm-principal-pulse strong{font-size:.88rem}.qcm-principal-pulse em{overflow:hidden;color:var(--text-soft,#64748b);font-size:.53rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.qcm-principal-pulse>i{position:absolute;right:0;bottom:0;left:0;height:3px;background:linear-gradient(90deg,currentColor var(--qcm-progress),var(--qcm-line) var(--qcm-progress));color:#7c3aed}.qcm-principal-pulse.blue>i{color:#2563eb}.qcm-principal-pulse.green>i{color:#16a34a}
.qcm-principal-analysis{width:calc(100% - 20px);min-height:44px;display:flex;align-items:center;justify-content:space-between;margin:0 10px 10px;padding:0 12px;border:1px solid #ddd6fe;border-radius:12px;background:#f5f3ff;color:#6d28d9;font-size:.68rem;font-weight:850;cursor:pointer}.qcm-principal-analysis span{display:inline-flex;align-items:center;gap:7px}.qcm-principal-analysis>i{font-size:.56rem}
@media(max-width:599px){.qcm-principal-head{padding:14px}.qcm-principal-head h2{font-size:1.18rem}.qcm-principal-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.qcm-principal-kpis .qcm-kpi{min-height:94px}.qcm-principal-today{grid-template-columns:1fr 1fr;padding-inline:8px}.qcm-principal-today article{grid-template-columns:36px minmax(0,1fr);gap:7px;padding:9px}.qcm-principal-today article>span{width:36px;height:36px}.qcm-principal-pulses{grid-template-columns:1fr;padding:8px}.qcm-principal-pulse{min-height:62px}.qcm-principal-trend{padding-inline:4px}.qcm-principal-trend-head{align-items:flex-start;flex-direction:column}.qcm-principal-legend{width:100%;justify-content:flex-start}.qcm-principal-decision{min-height:64px}.qcm-principal-analysis{width:calc(100% - 16px);margin:0 8px 8px}}

/* Accounts Manager / Accountant mobile Role dashboard. */
.qcm-account-role{--qcm-account-green:#16a34a;--qcm-account-blue:#2563eb;--qcm-account-red:#dc2626}
.qcm-account-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px;border:1px solid #99f6e4;border-radius:18px;background:linear-gradient(135deg,#0f766e,#0d9488 54%,#2563eb);color:#fff;box-shadow:0 12px 28px rgba(13,148,136,.22)}
.qcm-account-head>div{min-width:0}.qcm-account-head small{font-size:.6rem;font-weight:900;letter-spacing:.11em;opacity:.84}.qcm-account-head h2{margin:4px 0 0;font-size:1.35rem;line-height:1.12;letter-spacing:-.025em}.qcm-account-head p{margin:5px 0 0;font-size:.67rem;opacity:.84}.qcm-account-head>span{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.14);font-size:.62rem;font-weight:850}.qcm-account-head>span i{width:7px;height:7px;border-radius:50%;background:#86efac;box-shadow:0 0 0 4px rgba(134,239,172,.14)}
.qcm-account-kpis .qcm-kpi{min-height:104px}.qcm-account-kpis .qcm-kpi>strong{overflow:hidden;font-size:.86rem;text-overflow:ellipsis;white-space:nowrap}.qcm-account-kpis .qcm-kpi>em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qcm-account-snapshots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}.qcm-account-snapshot{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:8px;padding:10px;border:1px solid var(--qcm-line);border-radius:13px;background:var(--qcm-soft)}.qcm-account-snapshot>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#dbeafe;color:#1d4ed8}.qcm-account-snapshot.green>span{background:#dcfce7;color:#15803d}.qcm-account-snapshot.red>span{background:#fee2e2;color:#b91c1c}.qcm-account-snapshot>div{min-width:0;display:grid}.qcm-account-snapshot small{color:var(--text-soft,#64748b);font-size:.54rem;font-weight:850}.qcm-account-snapshot strong{overflow:hidden;margin-top:1px;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.qcm-account-snapshot em{overflow:hidden;margin-top:1px;color:var(--text-soft,#64748b);font-size:.5rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.qcm-account-chart{min-width:0;padding:10px 10px 12px}.qcm-account-chart-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:0 2px 10px}.qcm-account-chart-head>div:first-child{display:grid;gap:2px}.qcm-account-chart-head strong{font-size:.7rem}.qcm-account-chart-head small{color:var(--text-soft,#64748b);font-size:.54rem}.qcm-account-chart-head>div:last-child{display:flex;gap:10px;color:var(--text-soft,#64748b);font-size:.54rem;font-weight:800}.qcm-account-chart-head>div:last-child span{display:inline-flex;align-items:center;gap:4px}.qcm-account-chart-head>div:last-child i{width:10px;height:10px;border-radius:3px;background:#22c55e}.qcm-account-chart-head>div:last-child .expense i{background:#f87171}.qcm-account-chart-grid{height:174px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:8px 4px 0;border:1px solid var(--qcm-line);border-radius:14px;background:linear-gradient(to top,color-mix(in srgb,var(--qcm-line) 45%,transparent) 1px,transparent 1px);background-size:100% 25%}.qcm-account-chart-grid article{min-width:0;display:grid;grid-template-rows:minmax(0,1fr) 20px;gap:5px}.qcm-account-chart-grid article>div{min-height:0;display:flex;align-items:flex-end;justify-content:center;gap:3px}.qcm-account-chart-grid article>div>span{position:relative;width:min(17px,42%);height:var(--qcm-account-height);min-height:0;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,#4ade80,#16a34a);box-shadow:0 2px 8px rgba(22,163,74,.16)}.qcm-account-chart-grid article>div>span.expense{background:linear-gradient(180deg,#fca5a5,#ef4444);box-shadow:0 2px 8px rgba(239,68,68,.14)}.qcm-account-chart-grid article>div>span b{position:absolute;right:50%;bottom:calc(100% + 3px);display:none;transform:translateX(50%);color:var(--text,#172033);font-size:.43rem;white-space:nowrap}.qcm-account-chart-grid article>div>span:hover b{display:block}.qcm-account-chart-grid article>small{overflow:hidden;color:var(--text-soft,#64748b);font-size:.52rem;font-weight:800;text-align:center;text-overflow:ellipsis;white-space:nowrap}
.qcm-account-dues{display:grid}.qcm-account-dues>button{min-width:0;min-height:62px;display:grid;grid-template-columns:38px minmax(0,1fr) auto 8px;align-items:center;gap:8px;padding:9px 11px;border:0;border-bottom:1px solid var(--qcm-line);background:var(--qcm-card);color:var(--text,#172033);text-align:left}.qcm-account-dues>button:last-child{border-bottom:0}.qcm-account-dues>button>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#dcfce7;color:#15803d}.qcm-account-dues>button.blue>span{background:#dbeafe;color:#1d4ed8}.qcm-account-dues>button.orange>span{background:#ffedd5;color:#c2410c}.qcm-account-dues>button.red>span{background:#fee2e2;color:#b91c1c}.qcm-account-dues>button>div{min-width:0;display:grid;gap:2px}.qcm-account-dues strong{font-size:.68rem}.qcm-account-dues small{color:var(--text-soft,#64748b);font-size:.54rem}.qcm-account-dues b{font-size:.68rem;white-space:nowrap}.qcm-account-dues>button>i{color:var(--text-soft,#64748b);font-size:.52rem}
@media(max-width:599px){.qcm-account-head{padding:14px}.qcm-account-head h2{font-size:1.18rem}.qcm-account-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.qcm-account-kpis .qcm-kpi{min-height:96px}.qcm-account-snapshots{grid-template-columns:1fr;padding:8px}.qcm-account-snapshot{min-height:60px}.qcm-account-chart{padding-inline:7px}.qcm-account-chart-grid{height:158px;gap:4px}.qcm-account-chart-grid article>div{gap:2px}.qcm-account-dues>button{min-height:60px}.qcm-account-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Office Manager mobile Role dashboard: admission first, follow-up focused. */
.qcm-office-role{--qcm-office-blue:#2563eb;--qcm-office-orange:#ea580c;--qcm-office-green:#16a34a}
.qcm-office-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px;border:1px solid #bae6fd;border-radius:18px;background:linear-gradient(135deg,#0369a1,#0284c7 56%,#4f46e5);color:#fff;box-shadow:0 12px 28px rgba(2,132,199,.22)}
.qcm-office-head>div{min-width:0}.qcm-office-head small{font-size:.6rem;font-weight:900;letter-spacing:.11em;opacity:.84}.qcm-office-head h2{margin:4px 0 0;font-size:1.35rem;line-height:1.12;letter-spacing:-.025em}.qcm-office-head p{margin:5px 0 0;font-size:.67rem;opacity:.84}.qcm-office-head>span{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.14);font-size:.62rem;font-weight:850}.qcm-office-head>span i{width:7px;height:7px;border-radius:50%;background:#86efac;box-shadow:0 0 0 4px rgba(134,239,172,.14)}
.qcm-office-admit{width:100%;min-height:88px;display:grid;grid-template-columns:50px minmax(0,1fr) 40px;align-items:center;gap:12px;padding:14px 16px;border:1px solid #bbf7d0;border-radius:18px;background:linear-gradient(135deg,#f0fdf4,#ecfeff);color:var(--text,#172033);text-align:left;cursor:pointer;box-shadow:0 8px 22px rgba(22,163,74,.12)}.qcm-office-admit>span{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,#16a34a,#0d9488);color:#fff;font-size:1.08rem}.qcm-office-admit>div{min-width:0;display:grid;gap:2px}.qcm-office-admit small{color:#15803d;font-size:.56rem;font-weight:900;letter-spacing:.1em}.qcm-office-admit strong{font-size:1.03rem}.qcm-office-admit em{overflow:hidden;color:var(--text-soft,#64748b);font-size:.62rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.qcm-office-admit>i{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#fff;color:#15803d;box-shadow:0 4px 12px rgba(15,23,42,.08)}
.qcm-office-kpis .qcm-kpi{min-height:101px}.qcm-office-kpis .qcm-kpi>strong{font-size:.98rem}
.qcm-office-followups{display:grid}.qcm-office-followup{min-width:0;min-height:70px;display:grid;grid-template-columns:42px minmax(0,1fr) auto 8px;align-items:center;gap:9px;padding:10px 12px;border:0;border-bottom:1px solid var(--qcm-line);background:var(--qcm-card);color:var(--text,#172033);text-align:left;cursor:pointer}.qcm-office-followup:last-child{border-bottom:0}.qcm-office-followup>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#ffedd5;color:#c2410c}.qcm-office-followup.red>span{background:#fee2e2;color:#b91c1c}.qcm-office-followup>div{min-width:0;display:grid;gap:2px}.qcm-office-followup strong,.qcm-office-followup small,.qcm-office-followup em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qcm-office-followup strong{font-size:.71rem}.qcm-office-followup small{color:var(--text-soft,#64748b);font-size:.56rem}.qcm-office-followup em{color:#9a3412;font-size:.52rem;font-style:normal;font-weight:800}.qcm-office-followup.red em{color:#b91c1c}.qcm-office-followup>b{padding:5px 7px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:.54rem;white-space:nowrap}.qcm-office-followup.red>b{background:#fef2f2;color:#b91c1c}.qcm-office-followup>i{color:var(--text-soft,#64748b);font-size:.52rem}
.qcm-office-chart{min-width:0;padding:10px 10px 12px}.qcm-office-chart-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:0 2px 10px}.qcm-office-chart-head>div:first-child{display:grid;gap:2px}.qcm-office-chart-head strong{font-size:.7rem}.qcm-office-chart-head small{color:var(--text-soft,#64748b);font-size:.54rem}.qcm-office-chart-head>div:last-child{display:flex;gap:10px;color:var(--text-soft,#64748b);font-size:.54rem;font-weight:800}.qcm-office-chart-head>div:last-child span{display:inline-flex;align-items:center;gap:4px}.qcm-office-chart-head>div:last-child i{width:10px;height:10px;border-radius:3px;background:#3b82f6}.qcm-office-chart-head>div:last-child .follow i{background:#f97316}.qcm-office-chart-grid{height:172px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:8px 4px 0;border:1px solid var(--qcm-line);border-radius:14px;background:linear-gradient(to top,color-mix(in srgb,var(--qcm-line) 45%,transparent) 1px,transparent 1px);background-size:100% 25%}.qcm-office-chart-grid article{min-width:0;display:grid;grid-template-rows:minmax(0,1fr) 20px;gap:5px}.qcm-office-chart-grid article>div{min-height:0;display:flex;align-items:flex-end;justify-content:center;gap:3px}.qcm-office-chart-grid article>div>span{position:relative;width:min(15px,42%);height:var(--qcm-office-height);border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,#60a5fa,#2563eb);box-shadow:0 2px 8px rgba(37,99,235,.16)}.qcm-office-chart-grid article>div>span.follow{background:linear-gradient(180deg,#fdba74,#f97316);box-shadow:0 2px 8px rgba(249,115,22,.14)}.qcm-office-chart-grid article>div>span b{position:absolute;right:50%;bottom:calc(100% + 3px);transform:translateX(50%);color:var(--text,#172033);font-size:.44rem}.qcm-office-chart-grid article>small{overflow:hidden;color:var(--text-soft,#64748b);font-size:.5rem;font-weight:800;text-align:center;text-overflow:ellipsis;white-space:nowrap}
.qcm-office-pulses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}.qcm-office-pulses article{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:8px;padding:10px;border:1px solid var(--qcm-line);border-radius:13px;background:var(--qcm-soft)}.qcm-office-pulses article>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#dbeafe;color:#1d4ed8}.qcm-office-pulses article>span.purple{background:#ede9fe;color:#6d28d9}.qcm-office-pulses article>span.green{background:#dcfce7;color:#15803d}.qcm-office-pulses article>div{min-width:0;display:grid}.qcm-office-pulses small{color:var(--text-soft,#64748b);font-size:.54rem;font-weight:850}.qcm-office-pulses strong{font-size:.88rem}.qcm-office-pulses em{overflow:hidden;color:var(--text-soft,#64748b);font-size:.51rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.qcm-office-admissions{display:grid}.qcm-office-admission{min-width:0;min-height:64px;display:grid;grid-template-columns:38px minmax(0,1fr) auto 8px;align-items:center;gap:9px;padding:9px 12px;border:0;border-bottom:1px solid var(--qcm-line);background:var(--qcm-card);color:var(--text,#172033);text-align:left}.qcm-office-admission:last-child{border-bottom:0}.qcm-office-admission>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#dbeafe;color:#1d4ed8;font-size:.7rem;font-weight:900}.qcm-office-admission>div{min-width:0;display:grid;gap:2px}.qcm-office-admission strong,.qcm-office-admission small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qcm-office-admission strong{font-size:.7rem}.qcm-office-admission small,.qcm-office-admission time{color:var(--text-soft,#64748b);font-size:.54rem}.qcm-office-admission>i{color:var(--text-soft,#64748b);font-size:.52rem}
@media(max-width:599px){.qcm-office-head{padding:14px}.qcm-office-head h2{font-size:1.18rem}.qcm-office-admit{min-height:82px;padding:12px 13px}.qcm-office-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.qcm-office-kpis .qcm-kpi{min-height:94px}.qcm-office-followup{grid-template-columns:38px minmax(0,1fr) auto 7px;min-height:68px;padding-inline:9px}.qcm-office-followup>span{width:38px;height:38px}.qcm-office-followup>b{font-size:.49rem}.qcm-office-chart{padding-inline:7px}.qcm-office-chart-grid{height:154px;gap:3px}.qcm-office-chart-grid article>div{gap:2px}.qcm-office-pulses{grid-template-columns:1fr;padding:8px}.qcm-office-pulses article{min-height:58px}.qcm-office-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Hostel Warden mobile Role dashboard. */
.qcm-hostel-role{--qcm-hostel-green:#0f766e;--qcm-hostel-blue:#2563eb;--qcm-hostel-red:#dc2626}
.qcm-hostel-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px;border:1px solid #99f6e4;border-radius:18px;background:linear-gradient(135deg,#115e59,#0f766e 55%,#0891b2);color:#fff;box-shadow:0 12px 28px rgba(15,118,110,.22)}.qcm-hostel-head>div{min-width:0}.qcm-hostel-head small{font-size:.6rem;font-weight:900;letter-spacing:.11em;opacity:.84}.qcm-hostel-head h2{margin:4px 0 0;font-size:1.35rem;line-height:1.12;letter-spacing:-.025em}.qcm-hostel-head p{margin:5px 0 0;font-size:.67rem;opacity:.84}.qcm-hostel-head>span{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.14);font-size:.62rem;font-weight:850}.qcm-hostel-head>span i{width:7px;height:7px;border-radius:50%;background:#86efac;box-shadow:0 0 0 4px rgba(134,239,172,.14)}
.qcm-hostel-primary-actions{min-width:0;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:10px}.qcm-hostel-attendance-action,.qcm-hostel-gate-action{width:100%;min-width:0;min-height:88px;display:grid;grid-template-columns:50px minmax(0,1fr) 36px;align-items:center;gap:11px;padding:14px;border-radius:18px;color:var(--text,#172033);text-align:left;cursor:pointer;box-shadow:0 8px 22px rgba(15,118,110,.12)}.qcm-hostel-attendance-action{border:1px solid #a7f3d0;background:linear-gradient(135deg,#ecfdf5,#ecfeff)}.qcm-hostel-gate-action{border:1px solid #bfdbfe;background:linear-gradient(135deg,#eff6ff,#ecfeff);box-shadow:0 8px 22px rgba(37,99,235,.11)}.qcm-hostel-attendance-action>span,.qcm-hostel-gate-action>span{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;color:#fff;font-size:1.08rem}.qcm-hostel-attendance-action>span{background:linear-gradient(135deg,#0f766e,#0891b2)}.qcm-hostel-gate-action>span{background:linear-gradient(135deg,#1d4ed8,#0891b2)}.qcm-hostel-attendance-action>div,.qcm-hostel-gate-action>div{min-width:0;display:grid;gap:2px}.qcm-hostel-attendance-action small,.qcm-hostel-gate-action small{font-size:.54rem;font-weight:900;letter-spacing:.08em}.qcm-hostel-attendance-action small{color:#0f766e}.qcm-hostel-gate-action small{color:#1d4ed8}.qcm-hostel-attendance-action strong,.qcm-hostel-gate-action strong{font-size:.91rem;line-height:1.15}.qcm-hostel-attendance-action em,.qcm-hostel-gate-action em{overflow:hidden;color:var(--text-soft,#64748b);font-size:.59rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.qcm-hostel-attendance-action>i,.qcm-hostel-gate-action>i{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#fff;box-shadow:0 4px 12px rgba(15,23,42,.08)}.qcm-hostel-attendance-action>i{color:#0f766e}.qcm-hostel-gate-action>i{color:#1d4ed8}
.qcm-hostel-kpis .qcm-kpi{min-height:101px}.qcm-hostel-kpis .qcm-kpi>strong{font-size:.98rem}
.qcm-hostel-chart{min-width:0;padding:10px 10px 12px}.qcm-hostel-chart-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:0 2px 10px}.qcm-hostel-chart-head>div:first-child{display:grid;gap:2px}.qcm-hostel-chart-head strong{font-size:.7rem}.qcm-hostel-chart-head small{color:var(--text-soft,#64748b);font-size:.54rem}.qcm-hostel-chart-head>div:last-child{display:flex;gap:10px;color:var(--text-soft,#64748b);font-size:.54rem;font-weight:800}.qcm-hostel-chart-head>div:last-child span{display:inline-flex;align-items:center;gap:4px}.qcm-hostel-chart-head>div:last-child i{width:10px;height:10px;border-radius:3px;background:#14b8a6}.qcm-hostel-chart-head>div:last-child .absent i{background:#ef4444}.qcm-hostel-chart-grid{height:172px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:8px 4px 0;border:1px solid var(--qcm-line);border-radius:14px;background:linear-gradient(to top,color-mix(in srgb,var(--qcm-line) 45%,transparent) 1px,transparent 1px);background-size:100% 25%}.qcm-hostel-chart-grid article{min-width:0;display:grid;grid-template-rows:minmax(0,1fr) 20px;gap:5px}.qcm-hostel-chart-grid article>div{min-height:0;display:flex;align-items:flex-end;justify-content:center;gap:3px}.qcm-hostel-chart-grid article>div>span{position:relative;width:min(15px,42%);height:var(--qcm-hostel-height);border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,#5eead4,#0f766e);box-shadow:0 2px 8px rgba(15,118,110,.16)}.qcm-hostel-chart-grid article>div>span.absent{background:linear-gradient(180deg,#fca5a5,#ef4444);box-shadow:0 2px 8px rgba(239,68,68,.14)}.qcm-hostel-chart-grid article>div>span b{position:absolute;right:50%;bottom:calc(100% + 3px);transform:translateX(50%);color:var(--text,#172033);font-size:.44rem}.qcm-hostel-chart-grid article>small{overflow:hidden;color:var(--text-soft,#64748b);font-size:.5rem;font-weight:800;text-align:center;text-overflow:ellipsis;white-space:nowrap}
.qcm-hostel-attention-list{display:grid}.qcm-hostel-attention{min-width:0;min-height:70px;display:grid;grid-template-columns:42px minmax(0,1fr) auto 8px;align-items:center;gap:9px;padding:10px 12px;border:0;border-bottom:1px solid var(--qcm-line);background:var(--qcm-card);color:var(--text,#172033);text-align:left}.qcm-hostel-attention:last-child{border-bottom:0}.qcm-hostel-attention>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#ffedd5;color:#c2410c}.qcm-hostel-attention.red>span{background:#fee2e2;color:#b91c1c}.qcm-hostel-attention>div{min-width:0;display:grid;gap:2px}.qcm-hostel-attention strong,.qcm-hostel-attention small,.qcm-hostel-attention em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qcm-hostel-attention strong{font-size:.71rem}.qcm-hostel-attention small{color:var(--text-soft,#64748b);font-size:.55rem}.qcm-hostel-attention em{color:var(--text-soft,#64748b);font-size:.51rem;font-style:normal}.qcm-hostel-attention>b{padding:5px 7px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:.55rem}.qcm-hostel-attention.red>b{background:#fef2f2;color:#b91c1c}.qcm-hostel-attention>i{color:var(--text-soft,#64748b);font-size:.52rem}
.qcm-hostel-groups{display:grid;gap:11px;padding:12px}.qcm-hostel-groups article{min-width:0;display:grid;gap:6px}.qcm-hostel-groups article>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.qcm-hostel-groups strong{overflow:hidden;font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.qcm-hostel-groups span{color:var(--text-soft,#64748b);font-size:.54rem;white-space:nowrap}.qcm-hostel-groups article>i{height:7px;overflow:hidden;border-radius:999px;background:#e2e8f0}.qcm-hostel-groups article>i>b{display:block;width:var(--qcm-hostel-width);height:100%;border-radius:inherit;background:linear-gradient(90deg,#14b8a6,#2563eb)}
.qcm-hostel-pulses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}.qcm-hostel-pulses article{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:8px;padding:10px;border:1px solid var(--qcm-line);border-radius:13px;background:var(--qcm-soft)}.qcm-hostel-pulses article>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px}.qcm-hostel-pulses .green{background:#dcfce7;color:#15803d}.qcm-hostel-pulses .orange{background:#ffedd5;color:#c2410c}.qcm-hostel-pulses .red{background:#fee2e2;color:#b91c1c}.qcm-hostel-pulses article>div{min-width:0;display:grid}.qcm-hostel-pulses small{color:var(--text-soft,#64748b);font-size:.54rem;font-weight:850}.qcm-hostel-pulses strong{font-size:.88rem}.qcm-hostel-pulses em{overflow:hidden;color:var(--text-soft,#64748b);font-size:.51rem;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:599px){.qcm-hostel-head{padding:14px}.qcm-hostel-head h2{font-size:1.18rem}.qcm-hostel-primary-actions{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:8px}.qcm-hostel-attendance-action,.qcm-hostel-gate-action{min-height:92px;grid-template-columns:38px minmax(0,1fr);grid-template-areas:"icon copy";gap:8px;padding:10px}.qcm-hostel-attendance-action>span,.qcm-hostel-gate-action>span{grid-area:icon;width:38px;height:38px;border-radius:12px;font-size:.86rem}.qcm-hostel-attendance-action>div,.qcm-hostel-gate-action>div{grid-area:copy}.qcm-hostel-attendance-action>i,.qcm-hostel-gate-action>i{display:none}.qcm-hostel-attendance-action small,.qcm-hostel-gate-action small{font-size:.45rem;letter-spacing:.055em}.qcm-hostel-attendance-action strong,.qcm-hostel-gate-action strong{font-size:.72rem}.qcm-hostel-attendance-action em,.qcm-hostel-gate-action em{font-size:.49rem}.qcm-hostel-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.qcm-hostel-kpis .qcm-kpi{min-height:94px}.qcm-hostel-chart{padding-inline:7px}.qcm-hostel-chart-grid{height:154px;gap:3px}.qcm-hostel-chart-grid article>div{gap:2px}.qcm-hostel-attention{grid-template-columns:38px minmax(0,1fr) auto 7px;min-height:68px;padding-inline:9px}.qcm-hostel-attention>span{width:38px;height:38px}.qcm-hostel-pulses{grid-template-columns:1fr;padding:8px}.qcm-hostel-pulses article{min-height:58px}.qcm-hostel-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Guardian student profile: real identity, finance, attendance and ratings. */
.qcm-student-profile{gap:14px;max-width:1180px}.qcm-sp-profile-card{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);gap:18px;padding:20px;border:1px solid color-mix(in srgb,var(--accent,#6d28d9) 28%,var(--qcm-line));border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent,#6d28d9) 4%,var(--qcm-card)),var(--qcm-card));box-shadow:0 12px 34px rgba(76,29,149,.08)}
.qcm-sp-person{min-width:0;display:grid;grid-template-columns:126px minmax(0,1fr);gap:20px}.qcm-sp-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:9px;padding-top:3px}.qcm-sp-avatar-ring{--qcm-sp-ring:#94a3b8;width:112px;height:112px;display:grid;place-items:center;padding:6px;border-radius:50%;background:conic-gradient(var(--qcm-sp-ring) 0 100%);box-shadow:0 0 0 5px color-mix(in srgb,var(--qcm-sp-ring) 13%,transparent),0 10px 24px rgba(15,23,42,.12)}.qcm-sp-avatar-ring.is-present{--qcm-sp-ring:#16a34a}.qcm-sp-avatar-ring.is-absent{--qcm-sp-ring:#dc2626}.qcm-sp-avatar-ring.is-leave{--qcm-sp-ring:#f59e0b}.qcm-sp-avatar{width:100%;height:100%;display:grid;place-items:center;overflow:hidden;border:5px solid var(--qcm-card);border-radius:50%;background:linear-gradient(135deg,#ede9fe,#dbeafe);color:#5b21b6;font-size:2.5rem;font-weight:900}.qcm-sp-avatar img{width:100%;height:100%;object-fit:cover}.qcm-sp-avatar-wrap>em{max-width:122px;min-height:28px;display:inline-flex;align-items:center;justify-content:center;margin-top:-18px;padding:0 10px;border:2px solid var(--qcm-card);border-radius:999px;background:#f1f5f9;color:#475569;font-size:.62rem;font-style:normal;font-weight:900;text-align:center;box-shadow:0 3px 8px rgba(15,23,42,.1)}.qcm-sp-avatar-wrap>em.is-present{background:#dcfce7;color:#15803d}.qcm-sp-avatar-wrap>em.is-absent{background:#fee2e2;color:#b91c1c}.qcm-sp-avatar-wrap>em.is-leave{background:#ffedd5;color:#c2410c}
.qcm-sp-person-copy{min-width:0}.qcm-sp-person-copy h3{margin:2px 0 9px;font-size:1.55rem;line-height:1.1;letter-spacing:-.035em;overflow-wrap:anywhere}.qcm-sp-chips{display:flex;gap:7px;flex-wrap:wrap}.qcm-sp-chips span,.qcm-sp-session{min-height:31px;display:inline-flex;align-items:center;padding:0 12px;border-radius:999px;background:linear-gradient(135deg,#ede9fe,#f5f3ff);color:#5b21b6;font-size:.7rem;font-weight:850}.qcm-sp-session{margin-top:8px}.qcm-sp-person-copy dl{display:grid;margin:15px 0 0}.qcm-sp-person-copy dl>div{display:grid;grid-template-columns:135px minmax(0,1fr);gap:10px;padding:10px 0;border-top:1px solid var(--qcm-line)}.qcm-sp-person-copy dt{color:var(--text-soft,#64748b);font-size:.7rem}.qcm-sp-person-copy dt i{width:22px;color:#6d28d9}.qcm-sp-person-copy dd{min-width:0;margin:0;font-size:.73rem;font-weight:800;overflow-wrap:anywhere}
.qcm-sp-keyfacts{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-content:start;padding-left:17px;border-left:1px dashed color-mix(in srgb,var(--accent,#6d28d9) 24%,var(--qcm-line))}.qcm-sp-info{min-width:0;min-height:92px;display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-areas:"icon label" "icon value";align-content:center;gap:2px 9px;padding:11px;border:1px solid var(--qcm-line);border-radius:14px;background:var(--qcm-card)}.qcm-sp-info>span{grid-area:icon;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#ede9fe;color:#6d28d9}.qcm-sp-info>small{grid-area:label;color:var(--text-soft,#64748b);font-size:.6rem}.qcm-sp-info>strong{grid-area:value;min-width:0;font-size:.72rem;overflow-wrap:anywhere}.qcm-sp-info.green>span{background:#dcfce7;color:#15803d}.qcm-sp-info.green>strong{color:#15803d}.qcm-sp-info.red>span{background:#fee2e2;color:#b91c1c}.qcm-sp-info.red>strong{color:#b91c1c}
.qcm-sp-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qcm-sp-service,.qcm-sp-due{min-width:0;min-height:98px;padding:14px;border:1px solid var(--qcm-line);border-radius:17px;background:var(--qcm-card);box-shadow:var(--shadow-sm,0 5px 20px rgba(15,23,42,.05))}.qcm-sp-service{display:grid;grid-template-columns:43px minmax(0,1fr);align-items:center;gap:11px}.qcm-sp-service>span{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:#ede9fe;color:#6d28d9}.qcm-sp-service small{display:block;color:var(--text-soft,#64748b);font-size:.66rem}.qcm-sp-service strong{display:block;margin-top:4px;font-size:.9rem;overflow-wrap:anywhere}.qcm-sp-service.green>span{background:#dcfce7;color:#15803d}.qcm-sp-service.green strong{color:#15803d}.qcm-sp-service.red>span{background:#fee2e2;color:#dc2626}.qcm-sp-service.red strong{color:#dc2626}.qcm-sp-service.orange>span{background:#ffedd5;color:#ea580c}.qcm-sp-service.blue>span{background:#dbeafe;color:#2563eb}.qcm-sp-service.slate>span{background:#f1f5f9;color:#64748b}.qcm-sp-due{display:flex;flex-direction:column;justify-content:center;border-color:#86efac;background:linear-gradient(135deg,#ecfdf5,#f0fdf4);color:#15803d}.qcm-sp-due small{font-size:.7rem;font-weight:800}.qcm-sp-due strong{margin-top:3px;font-size:1.65rem;line-height:1}.qcm-sp-due span{margin-top:5px;font-size:.66rem}
.qcm-sp-ratings{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;padding:12px;border:1px solid var(--qcm-line);border-radius:19px;background:var(--qcm-card)}.qcm-sp-rating{min-width:0;min-height:152px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 9px;border:1px solid var(--qcm-line);border-radius:14px;background:linear-gradient(180deg,var(--qcm-card),color-mix(in srgb,#ede9fe 22%,var(--qcm-card)));text-align:center}.qcm-sp-rating header{display:flex;align-items:center;gap:7px}.qcm-sp-rating header>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#ede9fe;color:#6d28d9}.qcm-sp-rating header strong{font-size:.66rem;text-transform:uppercase}.qcm-sp-stars{display:flex;gap:2px;margin-top:11px;color:#6d28d9;font-size:.68rem}.qcm-sp-rating>b{margin-top:8px;font-size:.86rem}.qcm-sp-rating>small{margin-top:5px;color:var(--text-soft,#64748b);font-size:.58rem;line-height:1.35;overflow-wrap:anywhere}.qcm-sp-rating.green{background:linear-gradient(180deg,var(--qcm-card),#f0fdf4)}.qcm-sp-rating.green header>span{background:#dcfce7;color:#15803d}.qcm-sp-rating.green .qcm-sp-stars{color:#16a34a}.qcm-sp-rating.blue header>span{background:#dbeafe;color:#2563eb}.qcm-sp-rating.blue .qcm-sp-stars{color:#2563eb}.qcm-sp-rating.orange{background:linear-gradient(180deg,var(--qcm-card),#fff7ed)}.qcm-sp-rating.orange header>span{background:#ffedd5;color:#ea580c}.qcm-sp-rating.orange .qcm-sp-stars{color:#f59e0b}.qcm-sp-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.qcm-sp-actions .qcm-primary,.qcm-sp-actions .qcm-secondary{min-height:52px;font-size:.78rem}.qcm-sp-actions .is-locked{cursor:not-allowed;filter:saturate(.35);opacity:.68;box-shadow:none}.qcm-sp-payment-note{grid-column:1/-1;min-height:58px;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #fde68a;border-radius:14px;background:linear-gradient(135deg,#fffbeb,#fff7ed);color:#92400e}.qcm-sp-payment-note>span{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:10px;background:#fef3c7;color:#b45309}.qcm-sp-payment-note div{min-width:0;display:grid;gap:2px}.qcm-sp-payment-note strong{font-size:.7rem}.qcm-sp-payment-note small{color:#a16207;font-size:.6rem}
@media(max-width:900px){.qcm-sp-profile-card{grid-template-columns:1fr}.qcm-sp-keyfacts{grid-template-columns:repeat(4,minmax(0,1fr));padding:16px 0 0;border-top:1px dashed var(--qcm-line);border-left:0}.qcm-sp-ratings{grid-template-columns:repeat(3,minmax(0,1fr))}.qcm-sp-rating:last-child{grid-column:2}}
@media(max-width:599px){
  .qcm-student-profile{gap:5px;padding-bottom:74px}
  .qcm-student-profile>.qcm-chooser{min-height:36px;margin:0;padding:4px 7px}.qcm-student-profile>.qcm-chooser span{font-size:.5rem}.qcm-student-profile>.qcm-chooser select{min-height:28px;font-size:.56rem}
  .qcm-sp-profile-card{gap:6px;padding:8px;border-radius:13px;box-shadow:0 5px 16px rgba(76,29,149,.06)}
  .qcm-sp-person{grid-template-columns:54px minmax(0,1fr);gap:7px}.qcm-sp-avatar-wrap{gap:2px;padding-top:1px}.qcm-sp-avatar-ring{width:50px;height:50px;padding:3px;box-shadow:0 0 0 2px color-mix(in srgb,var(--qcm-sp-ring) 14%,transparent),0 4px 9px rgba(15,23,42,.09)}.qcm-sp-avatar{border-width:2px;font-size:1.05rem}.qcm-sp-avatar-wrap>em{max-width:58px;min-height:16px;margin-top:-10px;padding:0 4px;border-width:1px;font-size:.38rem;line-height:1}
  .qcm-sp-person-copy h3{margin:1px 0 3px;font-size:.82rem;line-height:1.05}.qcm-sp-chips{gap:3px;flex-wrap:nowrap}.qcm-sp-chips span,.qcm-sp-session{min-height:19px;padding:0 6px;font-size:.42rem;white-space:nowrap}.qcm-sp-session{margin-top:3px}
  .qcm-sp-person-copy dl{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;margin-top:5px}.qcm-sp-person-copy dl>div{display:block;min-width:0;padding:4px;border:1px solid var(--qcm-line);border-radius:6px}.qcm-sp-person-copy dt,.qcm-sp-person-copy dd{overflow:hidden;font-size:.42rem;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.qcm-sp-person-copy dt i{width:11px}.qcm-sp-person-copy dd{margin-top:2px}
  .qcm-sp-keyfacts{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding-top:5px}.qcm-sp-info{min-height:42px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;padding:4px;border-radius:7px}.qcm-sp-info>span{width:18px;height:18px;border-radius:5px;font-size:.5rem}.qcm-sp-info>small{font-size:.38rem;line-height:1}.qcm-sp-info>strong{max-width:100%;overflow:hidden;font-size:.46rem;text-overflow:ellipsis;white-space:nowrap}
  .qcm-sp-service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.qcm-sp-service,.qcm-sp-due{min-height:54px;padding:5px;border-radius:8px;box-shadow:none}.qcm-sp-service{display:flex;align-items:center;gap:4px}.qcm-sp-service>span{width:22px;height:22px;flex:0 0 22px;border-radius:6px;font-size:.58rem}.qcm-sp-service small{font-size:.38rem;line-height:1.05}.qcm-sp-service strong{margin-top:2px;font-size:.49rem;line-height:1.05}.qcm-sp-due{grid-column:auto}.qcm-sp-due small{font-size:.4rem}.qcm-sp-due strong{font-size:.78rem}.qcm-sp-due span{margin-top:2px;font-size:.36rem}
  .qcm-sp-ratings{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:4px;border-radius:9px}.qcm-sp-rating,.qcm-sp-rating:last-child{grid-column:auto;min-height:88px;padding:4px 2px;border-radius:7px}.qcm-sp-rating header{display:grid;justify-items:center;gap:2px}.qcm-sp-rating header>span{width:19px;height:19px;border-radius:5px;font-size:.5rem}.qcm-sp-rating header strong{max-width:100%;overflow:hidden;font-size:.36rem;text-overflow:ellipsis;white-space:nowrap}.qcm-sp-stars{gap:0;margin-top:5px;font-size:.42rem}.qcm-sp-rating>b{margin-top:4px;font-size:.5rem}.qcm-sp-rating>small{display:-webkit-box;max-height:20px;margin-top:3px;overflow:hidden;font-size:.34rem;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .qcm-sp-actions{grid-template-columns:1fr 1fr;gap:5px}.qcm-sp-actions .qcm-primary,.qcm-sp-actions .qcm-secondary{min-height:38px;padding:0 5px;font-size:.55rem}.qcm-sp-payment-note{min-height:46px;gap:7px;padding:6px 9px;border-radius:8px}.qcm-sp-payment-note>span{width:27px;height:27px;flex-basis:27px;border-radius:7px;font-size:.68rem}.qcm-sp-payment-note strong{font-size:.52rem;line-height:1.15}.qcm-sp-payment-note small{font-size:.42rem;line-height:1.15}
}
@media(max-width:370px){.qcm-sp-profile-card{padding:6px}.qcm-sp-person{grid-template-columns:48px minmax(0,1fr)}.qcm-sp-avatar-ring{width:44px;height:44px}.qcm-sp-person-copy h3{font-size:.74rem}.qcm-sp-chips span,.qcm-sp-session{font-size:.38rem}.qcm-sp-service,.qcm-sp-due{min-height:50px;padding:4px}.qcm-sp-rating,.qcm-sp-rating:last-child{min-height:82px}.qcm-sp-rating>small{display:none}}
/* One compact school brand across every mobile role and route. Route names
   remain available to screen readers and browser history, while the visible
   header no longer jumps in width between pages. */
@media(max-width:1024px){
  .mobile-app-ready .topbar{min-height:58px}
  .mobile-app-ready .page-title.qcm-brand-title{display:flex!important;align-items:center;gap:8px;max-width:none;min-width:0;margin:0;overflow:visible;color:var(--text,#172033);white-space:normal}
  .qcm-brand-mark{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;overflow:hidden;border:1px solid var(--border,#e2e8f0);border-radius:50%;background:#fff}
  .qcm-brand-mark img{width:100%;height:100%;display:block;object-fit:contain;border-radius:50%}
  .qcm-brand-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;line-height:1}
  .qcm-brand-copy strong{color:var(--text,#172033);font-size:.84rem;font-weight:900;letter-spacing:.01em}
  .qcm-brand-copy small{align-self:flex-start;margin-top:3px;transform:translateX(6px);background:linear-gradient(90deg,#6d28d9,#2563eb);background-clip:text;-webkit-background-clip:text;color:transparent;font-size:.69rem;font-weight:950;letter-spacing:.105em}
  .mobile-app-ready .topbar .icon-btn{flex:0 0 40px}
  .mobile-app-ready .topbar .user-chip{flex:0 0 auto}
}
@media(max-width:374px){
  .mobile-app-ready .topbar{padding-inline:8px}
  .qcm-brand-mark{width:34px;height:34px;flex-basis:34px}
  .qcm-brand-copy strong{font-size:.76rem}
  .qcm-brand-copy small{transform:translateX(5px);font-size:.62rem}
}

/* Director-only mobile Home. The renderer is protected independently on the
   client and server; these styles never alter another role's common Home. */
.qcm-director-home{gap:12px;padding-bottom:86px}.qcm-director-welcome{position:relative;min-height:172px;display:flex;align-items:center;overflow:hidden;padding:22px;border:1px solid #ddd6fe;border-radius:21px;background:radial-gradient(circle at 92% 10%,rgba(255,255,255,.9),transparent 34%),linear-gradient(135deg,#faf5ff,#eef2ff 58%,#ede9fe);box-shadow:0 12px 30px rgba(109,40,217,.09)}.qcm-director-welcome:after{content:"";position:absolute;right:-32px;bottom:-68px;width:190px;height:190px;border-radius:50%;background:rgba(167,139,250,.14)}.qcm-director-welcome>div{position:relative;z-index:2;max-width:70%}.qcm-director-welcome small{color:#6d28d9;font-size:.58rem;font-weight:950;letter-spacing:.13em}.qcm-director-welcome h2{margin:8px 0 0;color:var(--text,#172033);font-size:1.42rem;line-height:1.14;letter-spacing:-.035em}.qcm-director-welcome p{margin:7px 0 0;color:var(--text-soft,#64748b);font-size:.68rem;line-height:1.45}.qcm-director-welcome time{min-height:30px;display:inline-flex;align-items:center;gap:7px;margin-top:13px;padding:0 10px;border:1px solid #ddd6fe;border-radius:999px;background:rgba(255,255,255,.76);color:#6d28d9;font-size:.58rem;font-weight:850}.qcm-director-welcome>i{position:absolute;z-index:1;right:23px;bottom:28px;color:#8b5cf6;font-size:4.4rem;filter:drop-shadow(0 9px 13px rgba(109,40,217,.16));opacity:.76}.qcm-director-block{min-width:0;overflow:hidden;border:1px solid var(--qcm-line);border-radius:19px;background:var(--qcm-card);box-shadow:var(--shadow-sm,0 6px 22px rgba(15,23,42,.06))}.qcm-director-block>header{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 15px;border-bottom:1px solid var(--qcm-line)}.qcm-director-block>header h3{margin:0;font-size:.83rem}.qcm-director-block>header button{min-height:44px;padding:0;border:0;background:transparent;color:#6d28d9;font-size:.58rem;font-weight:850}.qcm-director-block>header button i{margin-left:5px;font-size:.48rem}.qcm-director-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px}.qcm-director-overview{min-width:0;min-height:124px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:9px 6px;border:1px solid var(--qcm-line);border-radius:15px;background:var(--qcm-card);color:var(--text,#172033);text-align:center}.qcm-director-overview>span{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#ede9fe;color:#6d28d9;font-size:.92rem}.qcm-director-overview.green>span{background:#dcfce7;color:#15803d}.qcm-director-overview.blue>span{background:#dbeafe;color:#2563eb}.qcm-director-overview.orange>span{background:#ffedd5;color:#ea580c}.qcm-director-overview small{margin-top:8px;color:var(--text-soft,#64748b);font-size:.55rem;font-weight:750}.qcm-director-overview strong{max-width:100%;overflow:hidden;margin-top:4px;font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.qcm-director-overview em{margin-top:3px;color:var(--text-soft,#64748b);font-size:.48rem;font-style:normal}.qcm-director-priority-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:12px}.qcm-director-priority{min-width:0;min-height:86px;display:grid;grid-template-columns:40px minmax(0,1fr) 8px;align-items:center;gap:9px;padding:10px;border:1px solid var(--qcm-line);border-radius:14px;background:var(--qcm-card);color:var(--text,#172033);text-align:left}.qcm-director-priority>span{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:#dcfce7;color:#15803d}.qcm-director-priority.orange>span{background:#ffedd5;color:#ea580c}.qcm-director-priority.purple>span{background:#ede9fe;color:#6d28d9}.qcm-director-priority.blue>span{background:#dbeafe;color:#2563eb}.qcm-director-priority.red>span{background:#fee2e2;color:#dc2626}.qcm-director-priority.yellow>span{background:#fef3c7;color:#b45309}.qcm-director-priority>div{min-width:0;display:grid}.qcm-director-priority small{overflow:hidden;color:var(--text-soft,#64748b);font-size:.53rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.qcm-director-priority strong{margin-top:2px;font-size:.83rem}.qcm-director-priority em{margin-top:2px;color:var(--text-soft,#64748b);font-size:.48rem;font-style:normal}.qcm-director-priority>i{color:var(--text-soft,#64748b);font-size:.48rem}.qcm-director-notices{display:grid}.qcm-director-notice{min-width:0;min-height:64px;display:grid;grid-template-columns:38px minmax(0,1fr) 8px;align-items:center;gap:9px;padding:9px 13px;border:0;border-bottom:1px solid var(--qcm-line);background:var(--qcm-card);color:var(--text,#172033);text-align:left}.qcm-director-notice:last-child{border-bottom:0}.qcm-director-notice>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#ede9fe;color:#6d28d9}.qcm-director-notice>span.urgent{background:#fee2e2;color:#dc2626}.qcm-director-notice>div{min-width:0;display:grid;gap:3px}.qcm-director-notice strong{overflow:hidden;font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.qcm-director-notice small{color:var(--text-soft,#64748b);font-size:.52rem}.qcm-director-notice>i{color:var(--text-soft,#64748b);font-size:.48rem}.qcm-director-finance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px}.qcm-director-finance{min-width:0;min-height:92px;display:flex;flex-direction:column;justify-content:center;padding:11px;border:1px solid var(--qcm-line);border-radius:14px;background:linear-gradient(145deg,var(--qcm-card),#f8fafc);color:var(--text,#172033);text-align:left}.qcm-director-finance small{color:var(--text-soft,#64748b);font-size:.51rem}.qcm-director-finance strong{max-width:100%;overflow:hidden;margin-top:5px;color:#15803d;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.qcm-director-finance.orange strong{color:#ea580c}.qcm-director-finance.blue strong{color:#2563eb}.qcm-director-finance.red strong{color:#dc2626}.qcm-director-finance.purple strong{color:#6d28d9}.qcm-director-finance em{margin-top:4px;color:var(--text-soft,#64748b);font-size:.46rem;font-style:normal}
@media(max-width:599px){.qcm-director-home{gap:6px;padding:6px 6px 74px}.qcm-director-welcome{min-height:72px;padding:10px 12px;border-radius:15px}.qcm-director-welcome>div{max-width:80%}.qcm-director-welcome small{font-size:.46rem}.qcm-director-welcome h2{margin-top:3px;font-size:.91rem}.qcm-director-welcome p{margin-top:2px;font-size:.49rem}.qcm-director-welcome time{min-height:21px;margin-top:4px;padding:0 7px;font-size:.43rem}.qcm-director-welcome>i{right:13px;bottom:13px;font-size:2.35rem}.qcm-director-block{border-radius:14px}.qcm-director-block>header{min-height:29px;padding-inline:9px}.qcm-director-block>header h3{font-size:.64rem}.qcm-director-block>header button{min-height:29px;font-size:.46rem}.qcm-director-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:5px}.qcm-director-overview{min-height:76px;padding:5px 2px;border-radius:10px}.qcm-director-overview>span{width:27px;height:27px;font-size:.66rem}.qcm-director-overview small{margin-top:4px;font-size:.43rem;line-height:1.08}.qcm-director-overview strong{margin-top:2px;font-size:.65rem}.qcm-director-overview em{margin-top:1px;font-size:.38rem;line-height:1.08}.qcm-director-priority-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:5px}.qcm-director-priority{min-height:52px;grid-template-columns:25px minmax(0,1fr);gap:4px;padding:5px;border-radius:9px}.qcm-director-priority>span{width:25px;height:25px;border-radius:8px;font-size:.58rem}.qcm-director-priority>i{display:none}.qcm-director-priority small{font-size:.39rem;line-height:1.08;white-space:normal}.qcm-director-priority strong{margin-top:1px;font-size:.6rem}.qcm-director-priority em{margin-top:0;font-size:.36rem}.qcm-director-notice{min-height:30px;grid-template-columns:22px minmax(0,1fr) 6px;gap:5px;padding:3px 8px}.qcm-director-notice>span{width:22px;height:22px;border-radius:7px;font-size:.52rem}.qcm-director-notice>div{gap:0}.qcm-director-notice strong{font-size:.49rem}.qcm-director-notice small{font-size:.39rem}.qcm-director-notices .qcm-state{min-height:38px;padding:5px}.qcm-director-finance-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:5px}.qcm-director-finance{min-height:55px;padding:5px;border-radius:9px}.qcm-director-finance small{font-size:.4rem;line-height:1.08}.qcm-director-finance strong{margin-top:2px;font-size:.57rem}.qcm-director-finance em{margin-top:1px;font-size:.35rem;line-height:1.08}}
@media(max-width:599px){.qcm-director-home{gap:4px;padding:4px 4px 66px}.qcm-director-welcome{min-height:58px;padding:7px 10px}.qcm-director-welcome h2{font-size:.84rem}.qcm-director-welcome p{display:none}.qcm-director-welcome time{min-height:18px;margin-top:3px}.qcm-director-welcome>i{bottom:9px;font-size:2rem}.qcm-director-block>header{min-height:24px}.qcm-director-block>header button{min-height:24px}.qcm-director-overview-grid{padding:4px}.qcm-director-overview{min-height:62px;padding:3px 2px}.qcm-director-overview>span{width:22px;height:22px;font-size:.55rem}.qcm-director-overview small{margin-top:2px}.qcm-director-overview strong{font-size:.59rem}.qcm-director-priority-grid{padding:4px}.qcm-director-priority{min-height:42px;grid-template-columns:20px minmax(0,1fr);padding:3px}.qcm-director-priority>span{width:20px;height:20px;font-size:.47rem}.qcm-director-notices{grid-template-columns:repeat(3,minmax(0,1fr))}.qcm-director-notice{min-height:38px;grid-template-columns:16px minmax(0,1fr);padding:3px 4px;border-right:1px solid var(--qcm-line);border-bottom:0}.qcm-director-notice:last-child{border-right:0}.qcm-director-notice>span{width:16px;height:16px;font-size:.4rem}.qcm-director-notice>i{display:none}.qcm-director-notice strong{font-size:.43rem}.qcm-director-notice small{font-size:.34rem}.qcm-director-finance-grid{padding:4px}.qcm-director-finance{min-height:47px;padding:4px}.qcm-director-finance strong{font-size:.53rem}}

/* Director/Principal mobile Balance Sheet. Finance calculations and actions
   stay in the shared ledger module; this layer only presents them as cards. */
@media(max-width:700px){
  body[data-qcm-route="balancesheet"] .balance-sheet-page{display:grid;gap:6px;margin:0}
  body[data-qcm-route="balancesheet"] .balance-sheet-heading{display:none!important}
  body[data-qcm-route="balancesheet"] .balance-ledger{margin:0;border:0;background:transparent;box-shadow:none;overflow:visible}
  body[data-qcm-route="balancesheet"] .balance-ledger-head{display:block;padding:0;border:0}
  body[data-qcm-route="balancesheet"] .balance-ledger-head>div:first-child{display:none}
  body[data-qcm-route="balancesheet"] .balance-ledger-head-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  body[data-qcm-route="balancesheet"] .balance-current-box{grid-column:1/-1;order:1;width:100%;min-width:0;min-height:92px;display:grid;grid-template-columns:minmax(112px,.9fr) minmax(0,1.25fr);grid-template-rows:auto 1fr;align-items:center;justify-content:stretch;padding:11px 14px;border:0;border-radius:14px;background:linear-gradient(135deg,#2369e8,#0b91df 58%,#056a9d)!important;color:#fff;box-shadow:0 8px 18px rgba(15,105,210,.2)}
  body[data-qcm-route="balancesheet"] .balance-current-box>span{grid-column:1;grid-row:1;color:rgba(255,255,255,.88);font-size:.52rem;letter-spacing:.1em}
  body[data-qcm-route="balancesheet"] .balance-current-box>strong{grid-column:1;grid-row:2;margin:3px 0 0;color:#fff!important;font-size:1.42rem;letter-spacing:-.04em}
  body[data-qcm-route="balancesheet"] .balance-daily-summary{grid-column:2;grid-row:1/3;height:100%;align-items:center;margin:0;padding:0 0 0 11px;border-top:0;border-left:1px solid rgba(255,255,255,.28);gap:7px}
  body[data-qcm-route="balancesheet"] .balance-daily-item{grid-template-columns:24px minmax(0,1fr);gap:5px}
  body[data-qcm-route="balancesheet"] .balance-daily-item+ .balance-daily-item{padding-left:7px;border-left:1px solid rgba(255,255,255,.24)}
  body[data-qcm-route="balancesheet"] .balance-daily-item>i{width:24px;height:24px;background:rgba(255,255,255,.2);color:#fff;font-size:.62rem}
  body[data-qcm-route="balancesheet"] .balance-daily-item small{color:rgba(255,255,255,.82);font-size:.41rem;letter-spacing:.02em}
  body[data-qcm-route="balancesheet"] .balance-daily-item b{margin-top:0;color:#fff;font-size:.63rem}
  body[data-qcm-route="balancesheet"] .balance-daily-item em{color:rgba(255,255,255,.72);font-size:.39rem}
  body[data-qcm-route="balancesheet"] #bsAddTransaction{grid-column:1/-1;order:2;min-height:42px;border:0;border-radius:11px;background:linear-gradient(135deg,#6d28d9,#7c3aed);color:#fff;font-size:.68rem;box-shadow:0 5px 13px rgba(109,40,217,.18)}
  body[data-qcm-route="balancesheet"] #bsReconcileStudents{order:3}
  body[data-qcm-route="balancesheet"] #bsExport{order:4}
  body[data-qcm-route="balancesheet"] #bsReconcileStudents,body[data-qcm-route="balancesheet"] #bsExport{min-height:42px;padding:5px 7px;border:1px solid var(--qcm-line);border-radius:11px;background:var(--surface,#fff);color:var(--text,#172033);font-size:.52rem;line-height:1.16;white-space:normal}
  body[data-qcm-route="balancesheet"] .balance-ledger-filters,body[data-qcm-route="balancesheet"] .balance-colour-legend{display:none!important}
  body[data-qcm-route="balancesheet"] .balance-ledger .table-scroll.balance-ledger-scroll{max-height:none;min-height:0;overflow:visible!important;border:0;background:transparent}
  body[data-qcm-route="balancesheet"] .balance-ledger-table{display:block!important;width:100%;min-width:0;border-collapse:separate;background:transparent;font-size:.68rem}
  body[data-qcm-route="balancesheet"] .balance-ledger-table thead{display:none!important}
  body[data-qcm-route="balancesheet"] .balance-ledger-table tbody{display:grid!important;gap:6px}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-virtual-spacer{display:none!important}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row{min-height:92px;display:grid!important;grid-template-columns:minmax(82px,.9fr) minmax(102px,1.2fr) minmax(70px,.72fr);grid-template-areas:"txn item amount" "date item balance" "category receipt actions";align-items:center;gap:1px 7px;overflow:hidden;padding:7px 8px 6px;border:1px solid var(--qcm-line);border-left:4px solid #94a3b8;border-radius:11px;background:var(--surface,#fff);box-shadow:0 3px 10px rgba(15,23,42,.045)}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .ledger-tone-income{border-left-color:#22c55e;background:linear-gradient(90deg,#f0fdf4,var(--surface,#fff) 40%)}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .ledger-tone-expense,body[data-qcm-route="balancesheet"] .balance-ledger-table .ledger-tone-employee-expense{border-left-color:#ef4444;background:linear-gradient(90deg,#fff1f2,var(--surface,#fff) 45%)}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .ledger-tone-new-bill{border-left-color:#eab308;background:linear-gradient(90deg,#fefce8,var(--surface,#fff) 45%)}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .ledger-tone-auto-bill{border-left-color:#3b82f6;background:linear-gradient(90deg,#eff6ff,var(--surface,#fff) 45%)}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .ledger-tone-opening,body[data-qcm-route="balancesheet"] .balance-ledger-table .ledger-tone-adjustment{border-left-color:#8b5cf6;background:linear-gradient(90deg,#faf5ff,var(--surface,#fff) 45%)}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td{display:none!important;min-width:0;padding:1px!important;border:0!important;background:transparent!important;white-space:normal;overflow:hidden;text-overflow:ellipsis}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(2){grid-area:txn;display:block!important;align-self:end;color:#172554;font-size:.68rem}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(3){grid-area:date;display:block!important;align-self:start;color:#172554;font-size:.52rem;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(4){grid-area:category;display:block!important;align-self:center;padding:3px 5px!important;border-radius:999px!important;background:#dcfce7!important;color:#15803d;font-size:.41rem;font-weight:800;white-space:nowrap}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .ledger-tone-expense>td:nth-child(4),body[data-qcm-route="balancesheet"] .balance-ledger-table .ledger-tone-employee-expense>td:nth-child(4){background:#fee2e2!important;color:#dc2626}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(5){grid-area:item;display:block!important;align-self:center;color:#172554;font-size:.58rem;line-height:1.25}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(6){grid-area:receipt;display:block!important;align-self:start;color:#334155;font-size:.47rem;white-space:nowrap}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(9){grid-area:amount;display:block!important;align-self:end;text-align:right;font-size:.66rem;white-space:nowrap}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(10){grid-area:balance;display:grid!important;align-self:start;text-align:right;color:#172554;font-size:.54rem;white-space:nowrap}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(10):before{content:"Balance";color:#64748b;font-size:.39rem;font-weight:500}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(12){grid-area:actions;display:block!important;align-self:end;overflow:visible}
  body[data-qcm-route="balancesheet"] .ledger-mobile-subcategory{display:none!important}
  body[data-qcm-route="balancesheet"] .ledger-actions{display:flex;justify-content:flex-end;gap:4px}
  body[data-qcm-route="balancesheet"] .ledger-actions button{width:28px;height:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:1px;border:1px solid #dbe3ef;border-radius:8px;background:#fff;color:#172554;font-size:.48rem}
  body[data-qcm-route="balancesheet"] .ledger-actions button[data-ledger-print]{display:none}
  body[data-qcm-route="balancesheet"] .ledger-actions button[data-ledger-view]:after{content:"View";font-size:.34rem}
  body[data-qcm-route="balancesheet"] .ledger-actions button[data-ledger-reverse]:after{content:"Undo";font-size:.34rem}
  body[data-qcm-route="balancesheet"] .balance-ledger-load-status{position:static!important;width:auto!important;height:auto!important;margin:6px 0 0!important;padding:8px!important;overflow:visible!important;clip:auto!important;clip-path:none!important;border:1px solid var(--qcm-line)!important;border-radius:10px;background:var(--surface,#fff);color:#6d28d9;font-size:.54rem;font-weight:800;text-align:center;white-space:normal!important;cursor:pointer}
}

@media(max-width:380px){
  body[data-qcm-route="balancesheet"] .balance-current-box{min-height:86px;grid-template-columns:minmax(106px,.88fr) minmax(0,1.2fr);padding:9px 11px}
  body[data-qcm-route="balancesheet"] .balance-current-box>strong{font-size:1.28rem}
  body[data-qcm-route="balancesheet"] .balance-daily-summary{padding-left:8px}
  body[data-qcm-route="balancesheet"] .balance-daily-item{grid-template-columns:21px minmax(0,1fr);gap:3px}
  body[data-qcm-route="balancesheet"] .balance-daily-item>i{width:21px;height:21px}
  body[data-qcm-route="balancesheet"] .balance-daily-item b{font-size:.57rem}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row{min-height:88px;grid-template-columns:minmax(76px,.86fr) minmax(94px,1.15fr) minmax(64px,.72fr);gap:1px 4px;padding-inline:7px}
}

/* Ultra-compact mobile ledger v188-4. Keep every transaction readable in two
   lines; secondary receipt/detail text remains available from the View action. */
@media(max-width:700px){
  body[data-qcm-route="balancesheet"] .balance-ledger-table tbody{gap:3px}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row{
    min-height:62px;height:62px;
    grid-template-columns:minmax(58px,.76fr) minmax(0,1.4fr) minmax(68px,.82fr) 50px;
    grid-template-rows:repeat(2,minmax(0,1fr));
    grid-template-areas:"txn item amount actions" "date category balance actions";
    gap:2px 7px;padding:6px 7px;border-left-width:3px;border-radius:9px;
    box-shadow:0 2px 7px rgba(15,23,42,.04)
  }
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(2),
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(3),
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(4),
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(5),
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(9),
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(10){width:100%!important;max-width:100%;justify-self:stretch}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(2){align-self:center;font-size:.64rem;line-height:1;white-space:nowrap!important}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(3){align-self:center;font-size:.48rem;line-height:1}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(4){align-self:center;max-width:100%;padding:3px 5px!important;font-size:.42rem;line-height:1;overflow:hidden!important;text-overflow:ellipsis!important}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(5){align-self:center;font-size:.57rem;line-height:1.12;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(6){display:none!important}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(9){align-self:center;font-size:.63rem;line-height:1}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(10){align-self:center;display:block!important;font-size:.5rem;line-height:1;overflow:hidden!important;text-overflow:ellipsis!important}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(10):before{display:none}
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row>td:nth-child(12){align-self:center;justify-self:end}
  body[data-qcm-route="balancesheet"] .ledger-actions{gap:2px}
  body[data-qcm-route="balancesheet"] .ledger-actions button{width:23px;height:28px;gap:0;border-radius:7px;font-size:.49rem}
  body[data-qcm-route="balancesheet"] .ledger-actions button[data-ledger-view]:after,
  body[data-qcm-route="balancesheet"] .ledger-actions button[data-ledger-reverse]:after{display:none}
}
@media(max-width:380px){
  body[data-qcm-route="balancesheet"] .balance-ledger-table .bs-ledger-row{min-height:58px;height:58px;grid-template-columns:minmax(54px,.74fr) minmax(0,1.35fr) minmax(64px,.8fr) 48px;gap:1px 5px;padding:5px 6px}
}

/* Director Home + Principal Role management dashboard v189. The same live,
   server-authoritative figures are presented to the two approved roles. */
.qcm-management-dashboard{width:min(100%,980px);margin-inline:auto;gap:14px;padding-bottom:92px;color:#0f265c}
.qcm-mgmt-heading{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border:1px solid #dbe6f4;border-radius:20px;background:linear-gradient(135deg,#fff,#f5f9ff);box-shadow:0 7px 24px rgba(30,64,175,.06)}
.qcm-mgmt-heading>div{min-width:0}.qcm-mgmt-heading small{color:#2563eb;font-size:.62rem;font-weight:900;letter-spacing:.13em}.qcm-mgmt-heading h2{margin:4px 0 0;color:#10245a;font-size:1.32rem;line-height:1.1;letter-spacing:-.025em}.qcm-mgmt-heading p{margin:5px 0 0;color:#64748b;font-size:.68rem;font-weight:650}.qcm-mgmt-heading>span{width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border-radius:17px;background:linear-gradient(145deg,#dbeafe,#eff6ff);color:#2563eb;font-size:1.25rem}.qcm-mgmt-heading.principal small{color:#7c3aed}.qcm-mgmt-heading.principal>span{background:linear-gradient(145deg,#ede9fe,#faf5ff);color:#7c3aed}
.qcm-mgmt-hero{position:relative;min-height:310px;overflow:hidden;display:grid;grid-template-rows:auto 1fr;padding:27px 30px 22px;border:0;border-radius:25px;background:radial-gradient(circle at 88% 4%,rgba(34,211,238,.82),transparent 35%),linear-gradient(135deg,#0865e9 0%,#0751b8 55%,#04a8c8 100%);box-shadow:0 17px 34px rgba(8,84,190,.25);color:#fff;text-align:left;cursor:pointer}.qcm-mgmt-hero:before{content:"";position:absolute;right:-5%;top:-35%;width:58%;height:100%;border:1px solid rgba(255,255,255,.12);border-radius:50%;transform:rotate(-10deg)}.qcm-mgmt-hero.negative{background:radial-gradient(circle at 88% 4%,rgba(249,115,22,.66),transparent 35%),linear-gradient(135deg,#075fd4,#073a91 62%,#b45309)}.qcm-mgmt-hero-copy{position:relative;z-index:2;display:grid;align-content:start}.qcm-mgmt-hero-copy small{font-size:.84rem;font-weight:800;letter-spacing:.08em}.qcm-mgmt-hero-copy strong{margin-top:11px;font-size:3.45rem;line-height:1;font-weight:900;letter-spacing:-.045em}.qcm-mgmt-wallet{position:absolute;z-index:1;right:40px;top:44px;width:180px;height:124px;color:#fff}.qcm-mgmt-wallet .fa-wallet{position:absolute;right:0;bottom:0;font-size:7.8rem;filter:drop-shadow(0 13px 12px rgba(4,45,121,.32));opacity:.96}.qcm-mgmt-wallet .fa-coins{position:absolute;left:0;bottom:-8px;color:#ffd24c;font-size:4.1rem;filter:drop-shadow(0 7px 5px rgba(90,49,0,.3));transform:rotate(-7deg)}
.qcm-mgmt-formula{position:relative;z-index:2;align-self:end;min-height:126px;display:grid;grid-template-columns:150px minmax(0,1fr) 38px minmax(0,1fr);align-items:center;gap:20px;padding:15px 21px;border:1px solid rgba(255,255,255,.3);border-radius:22px;background:rgba(0,44,126,.42);backdrop-filter:blur(4px)}.qcm-mgmt-formula>div:not(.qcm-mgmt-rate){min-width:0;display:grid;gap:7px}.qcm-mgmt-formula>div>small{color:#dbeafe;font-size:.75rem;font-weight:650}.qcm-mgmt-formula>div>strong{color:#55efcf;font-size:1.34rem;line-height:1.1;white-space:nowrap}.qcm-mgmt-formula>i{color:#bfd6ff;font-size:1.9rem}.qcm-mgmt-rate{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:10px}.qcm-mgmt-rate>span{width:78px;height:78px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at center,#0757bd 56%,transparent 58%),conic-gradient(#28e0bd var(--qcm-mgmt-rate),rgba(255,255,255,.25) 0);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}.qcm-mgmt-rate b{font-size:1.2rem}.qcm-mgmt-rate>small{color:#fff!important;font-size:.67rem!important;line-height:1.3}
.qcm-mgmt-section{overflow:hidden;border:1px solid #dbe6f4;border-radius:21px;background:#fff;box-shadow:0 6px 22px rgba(15,23,42,.055)}.qcm-mgmt-section>header{min-height:57px;display:flex;align-items:center;gap:11px;padding:0 18px;border-bottom:1px solid #e8eef7}.qcm-mgmt-section>header>span{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:#dbeafe;color:#1682f3}.qcm-mgmt-section>header h3{flex:1;margin:0;color:#0f2f79;font-size:.94rem;letter-spacing:.005em}.qcm-mgmt-section>header button{width:42px;height:42px;border:0;background:transparent;color:#1682f3}.qcm-mgmt-section.green>header>span{background:#dcfce7;color:#15803d}.qcm-mgmt-section.green>header h3,.qcm-mgmt-section.green>header button{color:#15803d}.qcm-mgmt-section.red{border-color:#fee2e2;background:linear-gradient(180deg,#fff,#fffafa)}.qcm-mgmt-section.red>header{border-color:#fee2e2}.qcm-mgmt-section.red>header>span{background:#fee2e2;color:#e32727}.qcm-mgmt-section.red>header h3,.qcm-mgmt-section.red>header button{color:#d71920}.qcm-mgmt-section.purple>header>span{background:#ede9fe;color:#6d28d9}.qcm-mgmt-section.purple>header h3,.qcm-mgmt-section.purple>header button{color:#3f2aa8}
.qcm-mgmt-grid{display:grid;gap:12px;padding:15px 18px 18px}.qcm-mgmt-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.qcm-mgmt-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.qcm-mgmt-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.qcm-mgmt-metric{min-width:0;min-height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:13px 9px;border:1px solid #bfdbfe;border-radius:16px;background:linear-gradient(145deg,#fff,#f2f8ff);color:#0f2f79;text-align:center}.qcm-mgmt-metric>span{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#e0f2fe;color:#1385ed;font-size:1.13rem}.qcm-mgmt-metric small{margin-top:10px;color:#233d73;font-size:.68rem;font-weight:700;line-height:1.2}.qcm-mgmt-metric strong{max-width:100%;overflow:hidden;margin-top:5px;color:#0c2571;font-size:1.28rem;line-height:1.08;text-overflow:ellipsis;white-space:nowrap}.qcm-mgmt-metric em{margin-top:4px;color:#64748b;font-size:.53rem;font-style:normal}.qcm-mgmt-metric.green{border-color:#9ee7bd;background:linear-gradient(145deg,#fff,#effdf4)}.qcm-mgmt-metric.green>span{background:#dcfce7;color:#16a34a}.qcm-mgmt-metric.green strong{color:#08752b}.qcm-mgmt-metric.red{border-color:#fecaca;background:linear-gradient(145deg,#fff,#fff0f0)}.qcm-mgmt-metric.red>span{background:#fee2e2;color:#dc2626}.qcm-mgmt-metric.red strong{color:#dc1717}.qcm-mgmt-metric.purple{border-color:#d8ccff;background:linear-gradient(145deg,#fff,#f7f3ff)}.qcm-mgmt-metric.purple>span{background:#ede9fe;color:#6d28d9}.qcm-mgmt-metric.purple strong{color:#3f2aa8}.qcm-mgmt-metric.solid-purple{border-color:#5930df;background:linear-gradient(135deg,#5430d7,#7c3aed);box-shadow:0 9px 20px rgba(91,48,216,.2);color:#fff}.qcm-mgmt-metric.solid-purple>span{background:rgba(255,255,255,.15);color:#fff}.qcm-mgmt-metric.solid-purple small,.qcm-mgmt-metric.solid-purple strong,.qcm-mgmt-metric.solid-purple em{color:#fff}
.qcm-mgmt-sunk{min-height:82px;width:calc(100% - 36px);display:grid;grid-template-columns:54px minmax(0,1fr) 45px;align-items:center;gap:13px;margin:0 18px 18px;padding:11px 17px;border:1px solid #fdba74;border-radius:15px;background:linear-gradient(100deg,#fff7ed,#fffbeb);color:#9a3412;text-align:left}.qcm-mgmt-sunk>span{width:50px;height:50px;display:grid;place-items:center;border-radius:14px;background:#f97316;color:#fff;font-size:1.3rem}.qcm-mgmt-sunk>div{display:grid}.qcm-mgmt-sunk small{font-size:.65rem;font-weight:750}.qcm-mgmt-sunk strong{margin-top:2px;color:#ea580c;font-size:1.1rem}.qcm-mgmt-sunk em{margin-top:2px;color:#9a3412;font-size:.52rem;font-style:normal}.qcm-mgmt-sunk>i{width:38px;height:38px;display:grid;place-items:center;border:1px solid #fdba74;border-radius:50%;color:#f97316}
.qcm-mgmt-load-formula{display:grid;grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr) 30px minmax(0,1.25fr);align-items:center;gap:10px;padding:15px 18px 0}.qcm-mgmt-load-formula>.qcm-mgmt-metric{min-height:128px}.qcm-mgmt-load-formula>i{color:#6d28d9;font-size:1.35rem}.qcm-mgmt-month-load{padding-top:12px}.qcm-mgmt-month-load>.qcm-mgmt-metric{min-height:96px;display:grid;grid-template-columns:minmax(0,1fr) 42px;grid-template-areas:"label icon" "value icon";align-content:center;justify-items:start;padding-inline:16px;text-align:left}.qcm-mgmt-month-load>.qcm-mgmt-metric>span{grid-area:icon}.qcm-mgmt-month-load>.qcm-mgmt-metric small{grid-area:label;margin:0}.qcm-mgmt-month-load>.qcm-mgmt-metric strong{grid-area:value;margin-top:5px}
.qcm-director-gate-pass{border-color:#bfe8dd;background:linear-gradient(180deg,#fff,#f7fffc)}.qcm-director-gate-pass>header{border-color:#d9f2eb}.qcm-director-gate-pass>header>span{background:#dcfce7;color:#087a54}.qcm-director-gate-pass>header h3{color:#086c4c}.qcm-director-gate-pass>header>small{display:inline-flex;align-items:center;gap:6px;color:#087a54;font-size:.64rem;font-weight:850}.qcm-director-gate-pass>header>small i{font-size:.42rem}.qcm-director-gate-pass-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:15px 18px 18px}.qcm-director-gate-pass-grid article{min-width:0;min-height:112px;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:13px;padding:15px;border:1px solid #a7e4ce;border-radius:16px;background:linear-gradient(145deg,#fff,#effcf6);color:#134e3a}.qcm-director-gate-pass-grid article>span{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#d9f8e9;color:#078153;font-size:1.2rem}.qcm-director-gate-pass-grid article>div{min-width:0;display:grid}.qcm-director-gate-pass-grid small{color:#285748;font-size:.73rem;font-weight:750;line-height:1.25}.qcm-director-gate-pass-grid strong{margin-top:3px;color:#08754f;font-size:1.65rem;line-height:1}.qcm-director-gate-pass-grid em{margin-top:4px;color:#5c786f;font-size:.62rem;font-style:normal}.qcm-director-gate-pass-grid article.overdue{border-color:#fecaca;background:linear-gradient(145deg,#fff,#fff4f4);color:#991b1b}.qcm-director-gate-pass-grid article.overdue>span{background:#fee2e2;color:#dc2626}.qcm-director-gate-pass-grid article.overdue small{color:#7f1d1d}.qcm-director-gate-pass-grid article.overdue strong{color:#dc2626}.qcm-director-gate-pass-grid article.overdue em{color:#9f4b4b}
@media(max-width:599px){
  .qcm-management-dashboard{gap:8px;padding:7px 7px 78px}.qcm-mgmt-heading{min-height:67px;padding:10px 12px;border-radius:15px}.qcm-mgmt-heading small{font-size:.44rem}.qcm-mgmt-heading h2{margin-top:3px;font-size:.9rem}.qcm-mgmt-heading p{margin-top:3px;font-size:.48rem}.qcm-mgmt-heading>span{width:38px;height:38px;flex-basis:38px;border-radius:12px;font-size:.92rem}
  .qcm-mgmt-hero{min-height:226px;padding:17px 18px 14px;border-radius:17px}.qcm-mgmt-hero-copy small{font-size:.59rem}.qcm-mgmt-hero-copy strong{margin-top:7px;font-size:2.16rem}.qcm-mgmt-wallet{right:18px;top:25px;width:94px;height:74px}.qcm-mgmt-wallet .fa-wallet{font-size:4.5rem}.qcm-mgmt-wallet .fa-coins{font-size:2.45rem}.qcm-mgmt-formula{min-height:100px;grid-template-columns:82px minmax(0,1fr) 18px minmax(0,1fr);gap:8px;padding:10px 9px;border-radius:14px}.qcm-mgmt-rate{grid-template-columns:52px 1fr;gap:5px}.qcm-mgmt-rate>span{width:52px;height:52px}.qcm-mgmt-rate b{font-size:.79rem}.qcm-mgmt-rate>small{font-size:.43rem!important}.qcm-mgmt-formula>div>small{font-size:.45rem;line-height:1.25}.qcm-mgmt-formula>div>strong{font-size:.71rem}.qcm-mgmt-formula>i{font-size:.82rem}
  .qcm-mgmt-section{border-radius:15px}.qcm-mgmt-section>header{min-height:37px;gap:7px;padding:0 9px}.qcm-mgmt-section>header>span{width:23px;height:23px;border-radius:7px;font-size:.63rem}.qcm-mgmt-section>header h3{font-size:.64rem}.qcm-mgmt-section>header button{width:31px;height:31px;font-size:.65rem}.qcm-mgmt-grid{gap:5px;padding:7px 8px 9px}.qcm-mgmt-metric{min-height:84px;padding:7px 3px;border-radius:10px}.qcm-mgmt-metric>span{width:28px;height:28px;border-radius:8px;font-size:.74rem}.qcm-mgmt-metric small{margin-top:5px;font-size:.45rem;line-height:1.12}.qcm-mgmt-metric strong{margin-top:3px;font-size:.7rem}.qcm-mgmt-metric em{margin-top:2px;font-size:.38rem;line-height:1.1}.qcm-mgmt-sunk{min-height:58px;width:calc(100% - 16px);grid-template-columns:36px minmax(0,1fr) 29px;gap:8px;margin:0 8px 9px;padding:7px 9px;border-radius:10px}.qcm-mgmt-sunk>span{width:34px;height:34px;border-radius:9px;font-size:.85rem}.qcm-mgmt-sunk small{font-size:.45rem}.qcm-mgmt-sunk strong{font-size:.73rem}.qcm-mgmt-sunk em{font-size:.36rem}.qcm-mgmt-sunk>i{width:27px;height:27px;font-size:.65rem}
  .qcm-mgmt-load-formula{grid-template-columns:minmax(0,1fr) 13px minmax(0,1fr) 13px minmax(0,1.18fr);gap:3px;padding:8px 8px 0}.qcm-mgmt-load-formula>.qcm-mgmt-metric{min-height:88px}.qcm-mgmt-load-formula>i{font-size:.62rem}.qcm-mgmt-month-load{padding-top:6px}.qcm-mgmt-month-load>.qcm-mgmt-metric{min-height:64px;grid-template-columns:minmax(0,1fr) 28px;padding-inline:8px}.qcm-mgmt-month-load>.qcm-mgmt-metric strong{font-size:.68rem}
  .qcm-director-gate-pass>header>small{font-size:.68rem}.qcm-director-gate-pass-grid{gap:7px;padding:8px}.qcm-director-gate-pass-grid article{min-height:124px;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:8px;padding:12px 9px;border-radius:11px}.qcm-director-gate-pass-grid article>span{width:34px;height:34px;border-radius:10px;font-size:.88rem}.qcm-director-gate-pass-grid small{font-size:1rem;line-height:1.25}.qcm-director-gate-pass-grid strong{margin-top:7px;font-size:1.7rem}.qcm-director-gate-pass-grid em{margin-top:6px;font-size:.82rem}
}
@media(max-width:370px){.qcm-mgmt-hero{min-height:214px}.qcm-mgmt-hero-copy strong{font-size:1.95rem}.qcm-mgmt-formula{grid-template-columns:72px minmax(0,1fr) 14px minmax(0,1fr)}.qcm-mgmt-rate{grid-template-columns:45px 1fr}.qcm-mgmt-rate>span{width:45px;height:45px}.qcm-mgmt-metric strong{font-size:.63rem}}

/* Director Home / Principal Role: two-page management swipe and live
   Financial Insights. Only the two approved renderers can mount this view. */
.qcm-mgmt-pager{min-height:34px;display:flex;align-items:center;justify-content:center;gap:9px;padding:2px 6px;color:#64748b}.qcm-mgmt-pager button{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border:0;background:transparent;color:#64748b;font-size:.64rem;font-weight:800}.qcm-mgmt-pager button i{width:7px;height:7px;border-radius:50%;background:#cbd5e1;transition:.2s}.qcm-mgmt-pager button.active{color:#5b25e7}.qcm-mgmt-pager button.active i{width:22px;border-radius:5px;background:linear-gradient(90deg,#2563eb,#7c3aed)}.qcm-mgmt-pager small{margin-left:auto;font-size:.58rem;font-weight:700;color:#8290a9}
.qcm-financial-insights{width:min(100%,980px);margin-inline:auto;gap:14px;padding-bottom:92px;color:#10245a}.qcm-insight-heading{min-height:86px;display:grid;grid-template-columns:44px minmax(0,1fr) 52px;align-items:center;gap:13px;padding:14px 18px;border:1px solid #dbe6f4;border-radius:20px;background:linear-gradient(135deg,#fff,#f4f8ff);box-shadow:0 7px 24px rgba(30,64,175,.06)}.qcm-insight-heading>button{width:42px;height:42px;display:grid;place-items:center;border:1px solid #dbe6f4;border-radius:13px;background:#fff;color:#173d88}.qcm-insight-heading>div{min-width:0}.qcm-insight-heading small{color:#2563eb;font-size:.6rem;font-weight:900;letter-spacing:.13em}.qcm-insight-heading h2{margin:3px 0 0;color:#10245a;font-size:1.26rem;line-height:1.1}.qcm-insight-heading p{margin:4px 0 0;color:#64748b;font-size:.65rem;font-weight:650}.qcm-insight-heading>span{width:52px;height:52px;display:grid;place-items:center;border-radius:17px;background:linear-gradient(145deg,#dbeafe,#ede9fe);color:#5b31d5;font-size:1.2rem}
.qcm-insight-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.qcm-insight-metric{position:relative;min-width:0;min-height:125px;display:flex;flex-direction:column;align-items:flex-start;padding:13px 12px;border:1px solid #dbe6f4;border-radius:17px;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.045)}.qcm-insight-metric>span{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;font-size:.95rem}.qcm-insight-metric>small{min-height:28px;margin-top:9px;color:#445571;font-size:.63rem;font-weight:800;line-height:1.25}.qcm-insight-metric>strong{margin-top:4px;color:#174fc2;font-size:1.25rem;line-height:1}.qcm-insight-metric>em{margin-top:auto;padding-top:7px;color:#64748b;font-size:.52rem;font-style:normal;line-height:1.25}.qcm-insight-metric.green>span{background:#dcfce7;color:#139548}.qcm-insight-metric.green>strong{color:#138a45}.qcm-insight-metric.blue>span{background:#dbeafe;color:#1769ed}.qcm-insight-metric.orange>span{background:#ffedd5;color:#ef4d26}.qcm-insight-metric.orange>strong{color:#ef3f24}.qcm-insight-metric.purple>span{background:#ede9fe;color:#7535e6}.qcm-insight-metric.purple>strong{color:#6d28d9}
.qcm-insight-card{overflow:hidden;border:1px solid #dbe6f4;border-radius:18px;background:#fff;box-shadow:0 5px 19px rgba(15,23,42,.045)}.qcm-insight-card>header{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;border-bottom:1px solid #e8eef7}.qcm-insight-card>header h3{margin:0;color:#102d72;font-size:.86rem}.qcm-insight-card>header small{color:#718096;font-size:.55rem;font-weight:700}.qcm-insight-card.orange>header h3{color:#c2410c}.qcm-insight-card.purple>header h3{color:#5b21b6}.qcm-insight-card.green>header h3{color:#087a36}
.qcm-insight-line{padding:10px 12px 8px}.qcm-insight-line svg{display:block;width:100%;height:auto;max-height:190px}.qcm-insight-line text{fill:#66758f;font:600 9px system-ui,sans-serif}.qcm-insight-legend{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;color:#4b5d78;font-size:.56rem;font-weight:750}.qcm-insight-legend span{display:inline-flex;align-items:center;gap:5px}.qcm-insight-legend i{width:13px;height:3px;border-radius:5px;background:var(--qcm-line)}
.qcm-insight-donut-wrap{min-height:210px;display:grid;grid-template-columns:148px minmax(0,1fr);align-items:center;gap:24px;padding:20px}.qcm-insight-donut{width:142px;height:142px;display:grid;place-content:center;border-radius:50%;background:radial-gradient(circle,#fff 0 47%,transparent 48%),conic-gradient(var(--qcm-donut));text-align:center;box-shadow:inset 0 0 0 1px rgba(15,23,42,.03)}.qcm-insight-donut strong{font-size:.83rem}.qcm-insight-donut small{margin-top:2px;color:#64748b;font-size:.52rem}.qcm-insight-donut-legend{display:grid;gap:9px}.qcm-insight-donut-legend span{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:7px;color:#243a66;font-size:.61rem}.qcm-insight-donut-legend i{width:9px;height:9px;border-radius:3px;background:var(--qcm-dot)}.qcm-insight-donut-legend b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qcm-insight-donut-legend em{font-style:normal;font-weight:850}
.qcm-insight-bars{display:grid;gap:11px;padding:16px}.qcm-insight-bars article{display:grid;gap:5px}.qcm-insight-bars article>div{display:flex;justify-content:space-between;gap:9px;color:#263b64;font-size:.63rem}.qcm-insight-bars article>div strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qcm-insight-bars article>div span{font-weight:850}.qcm-insight-bars article>i{height:11px;overflow:hidden;border-radius:10px;background:#edf2f8}.qcm-insight-bars article>i>b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1d65ea,#208bf3)}.qcm-insight-bars.mixed article:nth-child(2)>i>b{background:#20b56b}.qcm-insight-bars.mixed article:nth-child(3)>i>b{background:#7338e6}.qcm-insight-bars.mixed article:nth-child(4)>i>b{background:#ef3434}.qcm-insight-bars article>small{color:#7a879d;font-size:.5rem}
.qcm-insight-columns{padding:13px 16px 11px}.qcm-insight-column-grid{height:180px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:10px;margin-top:8px;padding-top:24px;border-bottom:1px solid #dbe6f4;background:repeating-linear-gradient(to bottom,#fff 0,#fff 43px,#edf2f8 44px)}.qcm-insight-column-grid article{height:100%;display:grid;grid-template-rows:20px minmax(0,1fr) 20px;align-items:end;text-align:center}.qcm-insight-column-grid article>em{align-self:start;justify-self:center;padding:2px 5px;border-radius:6px;background:#dcfce7;color:#15803d;font-size:.48rem;font-style:normal;font-weight:850}.qcm-insight-column-grid article>em.down{background:#fee2e2;color:#dc2626}.qcm-insight-column-grid article>div{height:100%;display:flex;align-items:end;justify-content:center;gap:4px}.qcm-insight-column-grid article>div i,.qcm-insight-column-grid article>div b{width:14px;min-height:2px;border-radius:5px 5px 0 0;background:#a9c9ff}.qcm-insight-column-grid article>div b{background:#1859ca}.qcm-insight-column-grid article>small{font-size:.5rem;color:#66758f}.qcm-insight-columns>p{margin:8px 0 0;color:#7a879d;font-size:.49rem;text-align:center}
.qcm-insight-empty{min-height:170px;display:grid;place-content:center;justify-items:center;gap:8px;color:#8090aa;font-size:.64rem;font-weight:700}.qcm-insight-empty i{font-size:1.3rem;color:#a9b7ca}.qcm-insight-alerts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.qcm-insight-alerts article{min-height:80px;display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid #dbe6f4;border-radius:16px;background:#fff}.qcm-insight-alerts article>i{width:39px;height:39px;flex:0 0 39px;display:grid;place-items:center;border-radius:50%;font-size:1rem}.qcm-insight-alerts span{min-width:0;display:grid;gap:3px}.qcm-insight-alerts strong{overflow:hidden;color:#243a66;font-size:.69rem;text-overflow:ellipsis;white-space:nowrap}.qcm-insight-alerts small{color:#64748b;font-size:.53rem}.qcm-insight-alerts .red{border-color:#fecaca;background:#fffafa}.qcm-insight-alerts .red>i{background:#fee2e2;color:#dc2626}.qcm-insight-alerts .orange{border-color:#fed7aa;background:#fffaf4}.qcm-insight-alerts .orange>i{background:#ffedd5;color:#ea580c}.qcm-insight-alerts .green{border-color:#bbf7d0;background:#f8fff9}.qcm-insight-alerts .green>i{background:#dcfce7;color:#15803d}
@keyframes qcmMgmtEnterLeft{from{opacity:.45;transform:translateX(28px)}to{opacity:1;transform:translateX(0)}}@keyframes qcmMgmtEnterRight{from{opacity:.45;transform:translateX(-28px)}to{opacity:1;transform:translateX(0)}}.qcm-mgmt-enter-left{animation:qcmMgmtEnterLeft .2s ease-out}.qcm-mgmt-enter-right{animation:qcmMgmtEnterRight .2s ease-out}
@media(min-width:600px) and (max-width:1024px){.qcm-financial-insights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.qcm-insight-heading,.qcm-mgmt-pager,.qcm-insight-metrics,.qcm-insight-alerts{grid-column:1/-1}.qcm-insight-card{min-width:0}}
@media(max-width:599px){
  .qcm-mgmt-pager{min-height:25px;gap:2px;padding:0 2px}.qcm-mgmt-pager button{gap:4px;padding:3px 5px;font-size:.46rem}.qcm-mgmt-pager button i{width:5px;height:5px}.qcm-mgmt-pager button.active i{width:15px}.qcm-mgmt-pager small{font-size:.4rem}
  .qcm-financial-insights{gap:8px;padding:7px 7px 78px}.qcm-insight-heading{min-height:67px;grid-template-columns:32px minmax(0,1fr) 38px;gap:8px;padding:9px 10px;border-radius:15px}.qcm-insight-heading>button{width:30px;height:30px;border-radius:9px;font-size:.65rem}.qcm-insight-heading small{font-size:.43rem}.qcm-insight-heading h2{font-size:.88rem}.qcm-insight-heading p{margin-top:3px;font-size:.46rem}.qcm-insight-heading>span{width:38px;height:38px;border-radius:12px;font-size:.86rem}
  .qcm-insight-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.qcm-insight-metric{min-height:86px;padding:7px 8px;border-radius:11px}.qcm-insight-metric>span{width:25px;height:25px;border-radius:8px;font-size:.66rem}.qcm-insight-metric>small{min-height:18px;margin-top:5px;font-size:.45rem}.qcm-insight-metric>strong{font-size:.82rem}.qcm-insight-metric>em{padding-top:4px;font-size:.37rem}
  .qcm-insight-card{border-radius:13px}.qcm-insight-card>header{min-height:38px;padding:7px 9px}.qcm-insight-card>header h3{font-size:.61rem}.qcm-insight-card>header small{font-size:.4rem}.qcm-insight-line{padding:6px 7px 3px}.qcm-insight-line svg{max-height:150px}.qcm-insight-legend{gap:8px;font-size:.4rem}.qcm-insight-legend i{width:9px;height:2px}
  .qcm-insight-donut-wrap{min-height:146px;grid-template-columns:95px minmax(0,1fr);gap:12px;padding:10px}.qcm-insight-donut{width:92px;height:92px}.qcm-insight-donut strong{font-size:.58rem}.qcm-insight-donut small{font-size:.37rem}.qcm-insight-donut-legend{gap:5px}.qcm-insight-donut-legend span{grid-template-columns:7px minmax(0,1fr) auto;gap:5px;font-size:.43rem}.qcm-insight-donut-legend i{width:7px;height:7px}
  .qcm-insight-bars{gap:7px;padding:9px}.qcm-insight-bars article{gap:3px}.qcm-insight-bars article>div{font-size:.46rem}.qcm-insight-bars article>i{height:7px}.qcm-insight-bars article>small{font-size:.36rem}.qcm-insight-columns{padding:8px 9px}.qcm-insight-column-grid{height:132px;gap:4px;margin-top:5px;padding-top:17px;background:repeating-linear-gradient(to bottom,#fff 0,#fff 31px,#edf2f8 32px)}.qcm-insight-column-grid article{grid-template-rows:15px minmax(0,1fr) 15px}.qcm-insight-column-grid article>em{padding:1px 3px;font-size:.35rem}.qcm-insight-column-grid article>div{gap:2px}.qcm-insight-column-grid article>div i,.qcm-insight-column-grid article>div b{width:9px}.qcm-insight-column-grid article>small{font-size:.36rem}.qcm-insight-columns>p{font-size:.35rem}.qcm-insight-empty{min-height:116px;font-size:.46rem}.qcm-insight-empty i{font-size:.9rem}
  .qcm-insight-alerts{gap:5px}.qcm-insight-alerts article{min-height:57px;gap:6px;padding:6px;border-radius:10px}.qcm-insight-alerts article>i{width:27px;height:27px;flex-basis:27px;font-size:.68rem}.qcm-insight-alerts strong{font-size:.45rem}.qcm-insight-alerts small{font-size:.36rem;line-height:1.15}
}
@media(prefers-reduced-motion:reduce){.qcm-mgmt-enter-left,.qcm-mgmt-enter-right{animation:none}}

/* Teacher syllabus hub: assigned-class overview and chapter status page. */
.qcm-syllabus-hub{width:min(100%,760px);gap:12px;padding-bottom:92px}.qcm-syllabus-tabs{position:sticky;z-index:8;top:0;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid var(--qcm-line,#dce5f1);border-radius:16px;background:color-mix(in srgb,var(--qcm-card,#fff) 94%,transparent);box-shadow:0 5px 18px rgba(15,23,42,.06);backdrop-filter:blur(14px)}.qcm-syllabus-tabs button{min-height:46px;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:12px;background:transparent;color:var(--text-soft,#64748b);font-size:.76rem;font-weight:850;cursor:pointer}.qcm-syllabus-tabs button.active{position:relative;background:linear-gradient(135deg,#f3e8ff,#eef2ff);color:#6d28d9}.qcm-syllabus-tabs button.active:after{content:"";position:absolute;right:12px;bottom:-4px;left:12px;height:3px;border-radius:4px;background:linear-gradient(90deg,#7c3aed,#2563eb)}
.qcm-syllabus-hero{min-height:148px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:23px 24px;border:1px solid #e6defd;border-radius:22px;background:radial-gradient(circle at 90% 0,#ede9fe,transparent 42%),linear-gradient(135deg,#fff,#fbf8ff);box-shadow:0 7px 24px rgba(91,33,182,.06)}.qcm-syllabus-hero>div{min-width:0}.qcm-syllabus-hero small{color:#7c3aed;font-size:.66rem;font-weight:900;letter-spacing:.14em}.qcm-syllabus-hero h2{margin:7px 0 0;color:var(--text,#172033);font-size:1.45rem;line-height:1.12;letter-spacing:-.03em}.qcm-syllabus-hero p{margin:7px 0 0;color:var(--text-soft,#64748b);font-size:.79rem}.qcm-syllabus-hero>.qcm-badge{flex:0 0 auto}
.qcm-syllabus-list{overflow:hidden;border:1px solid var(--qcm-line,#dce5f1);border-radius:21px;background:var(--qcm-card,#fff);box-shadow:0 7px 24px rgba(15,23,42,.05)}.qcm-syllabus-list>header{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 18px;border-bottom:1px solid var(--qcm-line,#dce5f1)}.qcm-syllabus-list>header h2{margin:0;font-size:1.05rem}.qcm-syllabus-list>header p{margin:4px 0 0;color:var(--text-soft,#64748b);font-size:.62rem;font-weight:700}.qcm-syllabus-list>header>span{padding:6px 10px;border-radius:999px;background:#f3e8ff;color:#6d28d9;font-size:.64rem;font-weight:900}.qcm-syllabus-list>div{display:grid;gap:10px;padding:12px}
.qcm-syllabus-assignment{position:relative;min-width:0;min-height:132px;display:grid;grid-template-columns:52px minmax(0,1fr) auto 10px;align-items:center;gap:11px;padding:13px 14px;border:1px solid var(--qcm-line,#dce5f1);border-radius:17px;background:var(--qcm-card,#fff);color:var(--text,#172033);text-align:left;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.qcm-syllabus-assignment:hover{border-color:#c4b5fd;box-shadow:0 7px 20px rgba(91,33,182,.08)}.qcm-syllabus-assignment:active{transform:scale(.993)}.qcm-syllabus-subject-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:#dbeafe;color:#2563eb;font-size:1.2rem}.qcm-syllabus-assignment.is-progress .qcm-syllabus-subject-icon{background:#fff3cd;color:#d89200}.qcm-syllabus-assignment.is-complete .qcm-syllabus-subject-icon{background:#dcfce7;color:#16a34a}.qcm-syllabus-assignment-copy{min-width:0}.qcm-syllabus-assignment-copy>small{color:#334155;font-size:.72rem;font-weight:900}.qcm-syllabus-assignment-copy h3{margin:3px 0 0;color:#2563eb;font-size:.98rem}.qcm-syllabus-assignment.is-progress h3{color:#6d28d9}.qcm-syllabus-assignment.is-complete h3{color:#159447}.qcm-syllabus-assignment-copy p{overflow:hidden;margin:7px 0 0;color:var(--text-soft,#64748b);font-size:.67rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.qcm-syllabus-assignment-copy p b{color:#526078}.qcm-syllabus-progress-line{display:grid;grid-template-columns:auto minmax(70px,1fr);align-items:center;gap:10px;margin-top:8px}.qcm-syllabus-progress-line>strong{font-size:.66rem}.qcm-syllabus-progress-line>span{height:6px;overflow:hidden;border-radius:999px;background:#e9eef5}.qcm-syllabus-progress-line>span i{display:block;width:var(--qcm-syllabus-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,#f59e0b,#facc15);transition:width .35s ease}.qcm-syllabus-assignment.is-complete .qcm-syllabus-progress-line>span i{background:linear-gradient(90deg,#16a34a,#22c55e)}.qcm-syllabus-assignment>em{align-self:start;padding:5px 8px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.56rem;font-style:normal;font-weight:900;white-space:nowrap}.qcm-syllabus-assignment.is-progress>em{background:#fff3cd;color:#b77900}.qcm-syllabus-assignment.is-complete>em{background:#dcfce7;color:#15803d}.qcm-syllabus-assignment>i{color:#64748b;font-size:.65rem}
.qcm-syllabus-detail{gap:13px}.qcm-syllabus-detail-head{min-height:69px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;padding:10px 13px;border:1px solid var(--qcm-line,#dce5f1);border-radius:17px;background:var(--qcm-card,#fff);box-shadow:0 5px 18px rgba(15,23,42,.05)}.qcm-syllabus-detail-head>button{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--qcm-line,#dce5f1);border-radius:12px;background:var(--qcm-card,#fff);color:#27364f;cursor:pointer}.qcm-syllabus-detail-head h2{margin:0;font-size:1.13rem}.qcm-syllabus-detail-head p{margin:3px 0 0;color:var(--text-soft,#64748b);font-size:.65rem;font-weight:700}
.qcm-syllabus-summary{min-height:154px;display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:17px;padding:20px;border:1px solid var(--qcm-line,#dce5f1);border-radius:21px;background:linear-gradient(135deg,var(--qcm-card,#fff),#f8fbff);box-shadow:0 7px 24px rgba(15,23,42,.05)}.qcm-syllabus-summary>span{width:72px;height:72px;display:grid;place-items:center;border-radius:21px;background:linear-gradient(145deg,#dbeafe,#ede9fe);color:#3157d5;font-size:1.7rem}.qcm-syllabus-summary>div{min-width:0;display:grid}.qcm-syllabus-summary>div>small{color:#334155;font-size:.72rem;font-weight:850}.qcm-syllabus-summary>div>strong{margin-top:3px;color:#3157d5;font-size:2rem;line-height:1}.qcm-syllabus-summary>div>p{margin:6px 0 8px;color:var(--text-soft,#64748b);font-size:.68rem}.qcm-syllabus-summary>div>em{height:7px;overflow:hidden;border-radius:999px;background:#e9eef5}.qcm-syllabus-summary>div>em i{display:block;width:var(--qcm-syllabus-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,#6d28d9,#2563eb);transition:width .35s ease}.qcm-syllabus-summary>.qcm-badge{align-self:start}
.qcm-syllabus-chapters{overflow:hidden;border:1px solid var(--qcm-line,#dce5f1);border-radius:20px;background:var(--qcm-card,#fff);box-shadow:0 7px 24px rgba(15,23,42,.045)}.qcm-syllabus-chapters>header{padding:15px 17px 11px}.qcm-syllabus-chapters>header h2{margin:0;font-size:1.02rem}.qcm-syllabus-chapters>header p{margin:4px 0 0;color:var(--text-soft,#64748b);font-size:.62rem}.qcm-syllabus-chapters>div{display:grid;gap:8px;padding:0 11px 12px}.qcm-syllabus-chapter{min-width:0;min-height:78px;display:grid;grid-template-columns:32px 38px minmax(0,1fr) 9px;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--qcm-line,#dce5f1);border-radius:14px;background:var(--qcm-card,#fff);color:var(--text,#172033);text-align:left;cursor:pointer}.qcm-syllabus-chapter>b{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#f1f5f9;color:#64748b;font-size:.72rem}.qcm-syllabus-chapter>span{width:36px;height:36px;display:grid;place-items:center;border:2px solid #cbd5e1;border-radius:50%;color:#94a3b8;font-size:.72rem}.qcm-syllabus-chapter>div{min-width:0;display:grid}.qcm-syllabus-chapter>div>strong{overflow:hidden;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.qcm-syllabus-chapter>div>small{margin-top:4px;color:var(--text-soft,#64748b);font-size:.58rem;font-weight:700}.qcm-syllabus-chapter>i{color:#64748b;font-size:.6rem}.qcm-syllabus-chapter.is-complete{border-color:#bbf7d0;background:linear-gradient(90deg,#f0fdf4,#fff)}.qcm-syllabus-chapter.is-complete>b{background:#dcfce7;color:#15803d}.qcm-syllabus-chapter.is-complete>span{border-color:#16a34a;background:#16a34a;color:#fff}.qcm-syllabus-chapter.is-complete>div>strong,.qcm-syllabus-chapter.is-complete>div>small{color:#159447}.qcm-syllabus-chapter.is-current{border-color:#f6cf63;background:linear-gradient(90deg,#fff9e6,#fff)}.qcm-syllabus-chapter.is-current>b{background:#fff0bd;color:#b77900}.qcm-syllabus-chapter.is-current>span{border-color:#f2b300;background:#f2b300;color:#fff}.qcm-syllabus-chapter.is-current>div>small{color:#b77900}.qcm-syllabus-chapter>div>em{height:5px;overflow:hidden;margin-top:7px;border-radius:999px;background:#eceff4}.qcm-syllabus-chapter>div>em i{display:block;width:var(--qcm-syllabus-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,#f59e0b,#facc15)}
.qcm-syllabus-update-current{position:sticky;z-index:6;bottom:76px;min-height:52px;width:100%;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:15px;background:linear-gradient(90deg,#7c3aed,#2563eb);box-shadow:0 10px 24px rgba(79,70,229,.24);color:#fff;font-size:.78rem;font-weight:900;cursor:pointer}
@media(max-width:599px){.qcm-syllabus-hub{gap:9px;padding:6px 6px 78px}.qcm-syllabus-tabs{border-radius:13px}.qcm-syllabus-tabs button{min-height:40px;font-size:.64rem}.qcm-syllabus-hero{min-height:116px;padding:16px;border-radius:17px}.qcm-syllabus-hero small{font-size:.49rem}.qcm-syllabus-hero h2{margin-top:5px;font-size:1.03rem}.qcm-syllabus-hero p{margin-top:5px;font-size:.58rem}.qcm-syllabus-list{border-radius:16px}.qcm-syllabus-list>header{min-height:54px;padding:9px 11px}.qcm-syllabus-list>header h2{font-size:.78rem}.qcm-syllabus-list>header p{font-size:.46rem}.qcm-syllabus-list>header>span{padding:4px 7px;font-size:.48rem}.qcm-syllabus-list>div{gap:7px;padding:8px}.qcm-syllabus-assignment{min-height:105px;grid-template-columns:42px minmax(0,1fr) auto 7px;gap:8px;padding:9px;border-radius:13px}.qcm-syllabus-subject-icon{width:42px;height:42px;border-radius:12px;font-size:.92rem}.qcm-syllabus-assignment-copy>small{font-size:.56rem}.qcm-syllabus-assignment-copy h3{font-size:.76rem}.qcm-syllabus-assignment-copy p{margin-top:5px;font-size:.5rem}.qcm-syllabus-progress-line{gap:6px;margin-top:6px}.qcm-syllabus-progress-line>strong{font-size:.5rem}.qcm-syllabus-progress-line>span{height:5px}.qcm-syllabus-assignment>em{padding:4px 6px;font-size:.42rem}.qcm-syllabus-detail-head{min-height:56px;grid-template-columns:34px minmax(0,1fr);gap:8px;padding:7px 9px;border-radius:14px}.qcm-syllabus-detail-head>button{width:32px;height:32px;border-radius:9px;font-size:.65rem}.qcm-syllabus-detail-head h2{font-size:.88rem}.qcm-syllabus-detail-head p{font-size:.47rem}.qcm-syllabus-summary{min-height:117px;grid-template-columns:53px minmax(0,1fr) auto;gap:10px;padding:13px;border-radius:16px}.qcm-syllabus-summary>span{width:53px;height:53px;border-radius:15px;font-size:1.18rem}.qcm-syllabus-summary>div>small{font-size:.53rem}.qcm-syllabus-summary>div>strong{font-size:1.4rem}.qcm-syllabus-summary>div>p{margin:4px 0 6px;font-size:.49rem}.qcm-syllabus-chapters{border-radius:15px}.qcm-syllabus-chapters>header{padding:10px 11px 7px}.qcm-syllabus-chapters>header h2{font-size:.76rem}.qcm-syllabus-chapters>header p{font-size:.45rem}.qcm-syllabus-chapters>div{gap:5px;padding:0 7px 8px}.qcm-syllabus-chapter{min-height:61px;grid-template-columns:25px 29px minmax(0,1fr) 7px;gap:6px;padding:7px 8px;border-radius:10px}.qcm-syllabus-chapter>b{width:24px;height:24px;font-size:.54rem}.qcm-syllabus-chapter>span{width:28px;height:28px;font-size:.52rem}.qcm-syllabus-chapter>div>strong{font-size:.6rem}.qcm-syllabus-chapter>div>small{margin-top:2px;font-size:.43rem}.qcm-syllabus-chapter>div>em{height:4px;margin-top:5px}.qcm-syllabus-update-current{bottom:70px;min-height:44px;border-radius:12px;font-size:.61rem}}
@media(prefers-reduced-motion:reduce){.qcm-syllabus-assignment,.qcm-syllabus-progress-line>span i,.qcm-syllabus-summary>div>em i{transition:none}}

/* Teacher home essentials: titles only; permissions, icons and actions remain unchanged. */
.qcm-fixed-home-actions .qcm-action{grid-template-rows:1fr}
.qcm-fixed-home-actions .qcm-action>span,.qcm-fixed-home-actions .qcm-action>i{grid-row:1}
.qcm-fixed-home-actions .qcm-action>strong{align-self:center;font-size:.78rem;font-weight:800;line-height:1.18}
@media(max-width:599px){.qcm-fixed-home-actions .qcm-action>strong{font-size:.7rem}}
