.sptmc-wrap{--blue:#174d7a;--blue2:#0f3556;--bg:#f5f8fb;--line:#dfe7ef;--text:#17202a;--muted:#66788a;color:var(--text);font-family:inherit}.sptmc-mobile-flow{max-width:760px;margin:12px auto 88px!important;padding:0 10px}.sptmc-mobile-shell{background:#f7f9fb;min-height:calc(100vh - 120px);border-radius:22px;overflow:hidden;border:1px solid #e2e9ef;box-shadow:0 10px 28px rgba(15,53,86,.08)}.sptmc-mobile-header{background:linear-gradient(135deg,var(--blue2),var(--blue));color:#fff;padding:20px 18px 16px;display:flex;justify-content:space-between;gap:12px;align-items:center}.sptmc-mobile-header h1{color:#fff;margin:2px 0 0;font-size:27px;line-height:1.1}.sptmc-eyebrow{font-size:11px;letter-spacing:.12em;opacity:.72}.sptmc-mobile-teacher{background:rgba(255,255,255,.12);border-radius:12px;padding:8px 11px;display:flex;flex-direction:column;min-width:110px;text-align:right}.sptmc-mobile-teacher span{font-size:11px;opacity:.75}.sptmc-mobile-teacher strong{font-size:15px;line-height:1.2}.sptmc-progress{display:flex;align-items:center;padding:12px 14px;background:#fff;border-bottom:1px solid var(--line)}.sptmc-progress-step{display:flex;flex-direction:column;align-items:center;min-width:62px;color:#9aa6b2}.sptmc-progress-step span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e8edf2;font-weight:700}.sptmc-progress-step small{font-size:10px;margin-top:3px}.sptmc-progress-step.is-active{color:var(--blue)}.sptmc-progress-step.is-active span{background:var(--blue);color:#fff}.sptmc-progress-step.is-done{color:#2c8c58}.sptmc-progress-step.is-done span{background:#dff3e8;color:#1e7a48}.sptmc-progress-line{height:2px;background:#e2e8ee;flex:1}.sptmc-step-area{padding:14px}.sptmc-step{display:none}.sptmc-step.is-active{display:block}.sptmc-step-title{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-bottom:12px}.sptmc-step-title small{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.08em}.sptmc-step-title h2{margin:1px 0 0;font-size:22px}.sptmc-date-compact{display:flex;flex-direction:column;gap:3px;font-size:10px;color:var(--muted);text-align:right}.sptmc-date-compact input{height:36px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 8px;font-size:13px;max-width:145px}.sptmc-message{min-height:0;margin:0 0 8px}.sptmc-message.error{color:#b42318}.sptmc-message.success{color:#18703b}.sptmc-class-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.sptmc-class-button{min-height:78px;border:1px solid #d8e3ed;border-radius:16px;background:#fff;padding:13px 12px;text-align:left;display:flex;flex-direction:column;justify-content:center;box-shadow:0 4px 12px rgba(15,53,86,.05);cursor:pointer}.sptmc-class-button span{font-size:20px;font-weight:800;color:var(--blue)}.sptmc-class-button small{color:var(--muted);margin-top:4px}.sptmc-class-button:active{transform:scale(.985);background:#f1f7fb}.sptmc-loading-card{padding:28px 14px;background:#fff;border:1px dashed #cad6e0;border-radius:14px;text-align:center;color:var(--muted);grid-column:1/-1}.sptmc-loading-card.error{color:#b42318;border-color:#efb5b5}.sptmc-counter-badge{background:#eaf2f8;border-radius:999px;padding:7px 10px;color:var(--blue);font-size:12px;white-space:nowrap}.sptmc-counter-badge strong{font-size:15px}.sptmc-mini-summary{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.sptmc-mini-summary span{background:#fff;border:1px solid var(--line);padding:5px 8px;border-radius:999px;font-size:12px}.sptmc-student-page{display:grid;gap:8px}.sptmc-mobile-student{width:100%;border:1px solid var(--line);background:#fff;border-radius:15px;padding:11px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;text-align:left;min-height:68px;cursor:pointer;box-shadow:0 3px 10px rgba(15,53,86,.04)}.sptmc-mobile-student:active{transform:scale(.992);background:#f8fbfd}.sptmc-mobile-student.is-locked{opacity:.7}.sptmc-mobile-number{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eef4f8;color:var(--blue);font-weight:800;font-size:12px}.sptmc-mobile-person{display:flex;flex-direction:column;min-width:0}.sptmc-mobile-person strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sptmc-mobile-person small{font-size:11px;color:var(--muted);margin-top:2px}.sptmc-mobile-state{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.sptmc-mobile-status{font-size:12px;font-weight:700;border-radius:999px;padding:5px 7px;white-space:nowrap}.sptmc-mobile-status.present{background:#e6f6ec;color:#176a34}.sptmc-mobile-status.late{background:#fff3ca;color:#765700}.sptmc-mobile-status.leave{background:#e7f4ff;color:#165f9a}.sptmc-mobile-status.absent{background:#ffe7e7;color:#a11e1e}.sptmc-mobile-status.activity{background:#f2e8ff;color:#6e2aa5}.sptmc-mobile-status.unmarked{background:#f0f2f4;color:#66717c}.sptmc-mobile-lock{font-size:9px;color:#8a949e}.sptmc-pager{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-top:12px}.sptmc-pager button{height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:700;color:var(--blue);cursor:pointer}.sptmc-pager button:disabled{opacity:.35}.sptmc-page-indicator{font-weight:800;color:#536574}.sptmc-status-student{text-align:center;padding:8px 4px 10px}.sptmc-status-student small{color:var(--muted);font-weight:700}.sptmc-status-name{margin:4px 0 2px!important;font-size:24px!important}.sptmc-status-id{color:var(--muted);font-size:12px}.sptmc-current-status{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px;margin-bottom:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sptmc-current-status span{font-size:11px;color:var(--muted);width:100%}.sptmc-current-status strong{font-size:16px}.sptmc-current-status small{font-size:11px;color:var(--muted)}.sptmc-status-buttons{display:grid;gap:9px}.sptmc-status-buttons button{height:64px;border:0;border-radius:16px;background:#fff;box-shadow:0 4px 12px rgba(15,53,86,.07);font-size:20px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}.sptmc-status-buttons button:active{transform:scale(.985)}.sptmc-status-buttons button:disabled{opacity:.45}.sptmc-status-buttons .status-present{border:2px solid #bde5ca}.sptmc-status-buttons .status-late{border:2px solid #ffe095}.sptmc-status-buttons .status-leave{border:2px solid #b6dbf7}.sptmc-status-buttons .status-absent{border:2px solid #f4b4b4}.sptmc-status-buttons .status-activity{border:2px solid #d8bdf1}.sptmc-status-icon{font-size:24px}.sptmc-note-compact{display:flex;flex-direction:column;gap:5px;margin-top:11px;font-size:11px;color:var(--muted)}.sptmc-note-compact input{height:43px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 11px;font-size:14px}.sptmc-bottom-nav{position:fixed;z-index:99998;left:50%;transform:translateX(-50%);bottom:10px;width:min(740px,calc(100vw - 20px));display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border:1px solid #dfe6ec;border-radius:18px;box-shadow:0 12px 32px rgba(15,53,86,.18)}.sptmc-bottom-nav button{height:52px;border:0;border-radius:13px;font-size:15px;font-weight:800;cursor:pointer}.sptmc-bottom-back{background:#edf3f7;color:var(--blue)}.sptmc-bottom-home{background:var(--blue);color:#fff}.sptmc-bottom-nav button:disabled{opacity:.38;cursor:default}.sptmc-save-toast{position:fixed;z-index:100000;left:50%;transform:translate(-50%,20px);bottom:84px;background:#173a56;color:#fff;padding:10px 16px;border-radius:999px;font-weight:800;opacity:0;pointer-events:none;transition:.18s ease;box-shadow:0 10px 28px rgba(0,0,0,.18)}.sptmc-save-toast.is-show{opacity:1;transform:translate(-50%,0)}.sptmc-save-toast.error{background:#ad2d2d}.sptmc-save-toast.complete{background:#197b49}.sptmc-notice{padding:16px;border-left:4px solid #dba617;background:#fff8dd}.sptmc-dashboard{max-width:1180px;margin:20px auto}.sptmc-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:26px 30px;border-radius:20px;background:linear-gradient(135deg,var(--blue2),var(--blue));color:#fff;box-shadow:0 10px 30px rgba(15,53,86,.16)}.sptmc-hero h1{margin:4px 0 2px;font-size:30px;line-height:1.15;color:#fff}.sptmc-hero p{margin:0;opacity:.86}.sptmc-dashboard-date-wrap{display:flex;flex-direction:column;gap:6px;font-weight:600;min-width:180px}.sptmc-dashboard-date{height:44px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:#fff}.sptmc-kpis{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin:18px 0}.sptmc-kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;box-shadow:0 3px 12px rgba(15,53,86,.04)}.sptmc-kpi span{color:var(--muted);font-size:13px}.sptmc-kpi strong{font-size:28px;margin-top:4px}.sptmc-kpi.present{border-top:4px solid #43a866}.sptmc-kpi.late{border-top:4px solid #e9b93b}.sptmc-kpi.leave{border-top:4px solid #5da8e6}.sptmc-kpi.absent{border-top:4px solid #e05e5e}.sptmc-kpi.activity{border-top:4px solid #9a65c7}.sptmc-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.sptmc-panel-title{font-size:18px;font-weight:700;margin-bottom:12px}.sptmc-dashboard-table{width:100%;border-collapse:collapse}.sptmc-dashboard-table th,.sptmc-dashboard-table td{padding:10px;border-bottom:1px solid #edf1f4;text-align:center}.sptmc-dashboard-table th:first-child,.sptmc-dashboard-table td:first-child{text-align:left}.sptmc-dashboard-table-wrap{overflow-x:auto}@media(min-width:760px){.sptmc-mobile-flow{max-width:860px}.sptmc-class-buttons{grid-template-columns:repeat(3,1fr)}.sptmc-status-buttons{grid-template-columns:repeat(2,1fr)}.sptmc-status-buttons .status-activity{grid-column:1/-1}}@media(max-width:900px){.sptmc-kpis{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.sptmc-mobile-flow{margin:0 auto 86px!important;padding:0}.sptmc-mobile-shell{border-radius:0;border-left:0;border-right:0;min-height:calc(100vh - 44px)}.sptmc-mobile-header{padding:14px 14px 12px}.sptmc-mobile-header h1{font-size:24px}.sptmc-mobile-teacher{padding:7px 9px;min-width:95px}.sptmc-step-area{padding:12px}.sptmc-class-buttons{grid-template-columns:repeat(2,1fr)}.sptmc-class-button{min-height:70px}.sptmc-mobile-student{grid-template-columns:31px minmax(0,1fr) auto;padding:9px;min-height:62px}.sptmc-mobile-person strong{font-size:14px}.sptmc-status-buttons button{height:58px;font-size:18px}.sptmc-status-name{font-size:21px!important}.sptmc-bottom-nav{bottom:6px;width:calc(100vw - 12px)}.sptmc-kpis{grid-template-columns:repeat(2,1fr)}}

/* =========================================================
   V1.1.1 Executive Dashboard
   ========================================================= */
.sptmc-executive-dashboard{
  max-width:1280px!important;
  margin:18px auto!important;
  padding:0 10px 30px;
}
.sptmc-exec-hero{
  background:linear-gradient(135deg,#0f3556,#174d7a);
  color:#fff;
  border-radius:22px;
  padding:24px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  box-shadow:0 14px 34px rgba(15,53,86,.16);
}
.sptmc-exec-hero h1{color:#fff;margin:3px 0 4px;font-size:32px}
.sptmc-exec-hero p{margin:0;opacity:.82}
.sptmc-exec-controls{display:flex;align-items:flex-end;gap:10px}
.sptmc-exec-controls label{display:flex;flex-direction:column;gap:5px;font-size:11px;opacity:.9}
.sptmc-exec-controls input{
  height:42px;border:0;border-radius:11px;padding:0 11px;background:#fff;color:#17202a;
}
.sptmc-dashboard-refresh{
  height:42px;border:1px solid rgba(255,255,255,.3);border-radius:11px;
  background:rgba(255,255,255,.13);color:#fff;padding:0 16px;font-weight:800;cursor:pointer;
}
.sptmc-dashboard-refresh.is-loading{opacity:.55}
.sptmc-exec-meta{
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:10px 4px 2px;color:#637587;font-size:12px;
}
.sptmc-exec-overview{
  display:grid;grid-template-columns:minmax(0,2.2fr) minmax(220px,.8fr);
  gap:12px;margin:14px 0;
}
.sptmc-exec-progress-card,.sptmc-exec-attendance-card{
  background:#fff;border:1px solid #dfe7ef;border-radius:18px;padding:20px;
  box-shadow:0 5px 16px rgba(15,53,86,.05);
}
.sptmc-exec-progress-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.sptmc-exec-progress-head>div:first-child{display:flex;flex-direction:column}
.sptmc-exec-progress-head span{color:#6c7d8e;font-size:13px}
.sptmc-progress-percent{font-size:34px;color:#174d7a;line-height:1.05;margin-top:3px}
.sptmc-progress-fraction{display:flex;align-items:baseline;gap:4px}
.sptmc-progress-fraction strong{font-size:28px}.sptmc-progress-fraction span{font-size:13px}
.sptmc-progress-track,.sptmc-class-progress-track{
  height:10px;background:#edf2f6;border-radius:999px;overflow:hidden;margin-top:14px;
}
.sptmc-progress-fill,.sptmc-class-progress-fill{
  height:100%;width:0;background:linear-gradient(90deg,#2b7fb7,#3da36a);
  border-radius:999px;transition:width .35s ease;
}
.sptmc-progress-caption{font-size:11px;color:#7b8996;margin-top:8px}
.sptmc-exec-attendance-card{
  display:flex;flex-direction:column;justify-content:center;
  background:linear-gradient(145deg,#eef8f2,#fff);
}
.sptmc-exec-attendance-card>span{font-size:13px;color:#527060}
.sptmc-exec-attendance-card>strong{font-size:40px;color:#1c8249;line-height:1.05;margin:5px 0}
.sptmc-exec-attendance-card small{color:#73857a}
.sptmc-exec-kpis{
  grid-template-columns:repeat(7,minmax(110px,1fr))!important;
  gap:10px!important;
}
.sptmc-exec-kpis .sptmc-kpi{min-height:108px}
.sptmc-exec-kpis .sptmc-kpi strong{font-size:30px}
.sptmc-exec-kpis .sptmc-kpi small{color:#778796;margin-top:auto;font-weight:700}
.sptmc-exec-kpis .sptmc-kpi.total{border-top:4px solid #174d7a}
.sptmc-exec-kpis .sptmc-kpi.unmarked{border-top:4px solid #8d98a3}
.sptmc-exec-alerts{margin:14px 0}
.sptmc-alert-panel{border-left:5px solid #e4aa23!important}
.sptmc-panel-title-row,.sptmc-alert-panel .sptmc-panel-title{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}
.sptmc-incomplete-count,.sptmc-class-count{
  color:#6d7c8b;font-size:12px;font-weight:600;background:#f0f3f6;padding:5px 9px;border-radius:999px;
}
.sptmc-incomplete-classes{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;
}
.sptmc-incomplete-item{
  padding:11px 12px;background:#fff9e9;border:1px solid #f0dfaa;border-radius:12px;
  display:flex;flex-direction:column;gap:3px;
}
.sptmc-incomplete-item strong{color:#5d4910}
.sptmc-incomplete-item span{font-size:12px;color:#7b6c42}
.sptmc-incomplete-item em{font-size:11px;color:#a26800;font-style:normal;font-weight:700}
.sptmc-all-complete{
  padding:14px;background:#eaf7ef;color:#1f7547;border-radius:12px;font-weight:800;text-align:center;
}
.sptmc-class-panel{margin-top:14px}
.sptmc-exec-class-list{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 18px;
}
.sptmc-exec-class-card{
  border:1px solid #dfe7ef;border-radius:15px;background:#fff;padding:13px;
  box-shadow:0 3px 10px rgba(15,53,86,.04);
}
.sptmc-exec-class-card.is-incomplete{border-color:#ead9a6;background:#fffdf7}
.sptmc-exec-class-card.is-complete{border-color:#cde6d6}
.sptmc-exec-class-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sptmc-exec-class-head>div{display:flex;flex-direction:column}
.sptmc-exec-class-head strong{font-size:17px;color:#174d7a}
.sptmc-exec-class-head small{color:#758492;margin-top:2px}
.sptmc-class-progress-label{font-size:13px;font-weight:800;color:#536b7d}
.sptmc-class-progress-track{height:7px;margin-top:8px}
.sptmc-exec-class-statuses{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.sptmc-exec-pill{font-size:10px;border-radius:999px;padding:4px 6px;background:#f1f3f5;color:#5e6c78}
.sptmc-exec-pill.present{background:#e7f7ec;color:#176a34}
.sptmc-exec-pill.late{background:#fff4cf;color:#7b5b00}
.sptmc-exec-pill.leave{background:#e7f4ff;color:#175f9a}
.sptmc-exec-pill.absent{background:#ffe8e8;color:#a11e1e}
.sptmc-exec-pill.activity{background:#f2e8ff;color:#6e2aa5}
.sptmc-exec-pill.unmarked{background:#edf0f2;color:#687581}
.sptmc-exec-table tbody tr.is-incomplete{background:#fffaf0}
.sptmc-exec-table tbody tr.is-incomplete td:last-child{color:#a26800}
@media(max-width:1050px){
  .sptmc-exec-kpis{grid-template-columns:repeat(4,1fr)!important}
  .sptmc-incomplete-classes{grid-template-columns:repeat(2,1fr)}
  .sptmc-exec-class-list{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .sptmc-executive-dashboard{margin:6px auto!important;padding:0 6px 24px}
  .sptmc-exec-hero{border-radius:16px;padding:18px;flex-direction:column;align-items:stretch}
  .sptmc-exec-hero h1{font-size:27px}
  .sptmc-exec-controls{align-items:end}
  .sptmc-exec-controls label{flex:1}
  .sptmc-exec-controls input{width:100%;box-sizing:border-box}
  .sptmc-exec-overview{grid-template-columns:1fr}
  .sptmc-exec-kpis{grid-template-columns:repeat(2,1fr)!important}
  .sptmc-incomplete-classes{grid-template-columns:1fr}
  .sptmc-exec-class-list{grid-template-columns:1fr}
  .sptmc-dashboard-table-wrap{display:none}
}


/* =========================================================
   V1.1.2 Dashboard Drill-down
   ========================================================= */
.sptmc-exec-class-card{
  width:100%;text-align:left;cursor:pointer;font-family:inherit;
}
.sptmc-exec-class-card:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,53,86,.09)}
.sptmc-incomplete-item{border:1px solid #f0dfaa;cursor:pointer;text-align:left;font-family:inherit}
.sptmc-table-class-link{
  border:0;background:transparent;color:#174d7a;font:inherit;font-weight:800;cursor:pointer;padding:0;
  text-decoration:underline;text-decoration-color:#bad0df;text-underline-offset:3px;
}
.sptmc-drilldown-panel[hidden],.sptmc-student-detail-modal[hidden]{display:none!important}
.sptmc-drilldown-panel{
  margin-top:14px;background:#fff;border:1px solid #dfe7ef;border-radius:18px;padding:18px;
  box-shadow:0 5px 16px rgba(15,53,86,.05);
}
.sptmc-drilldown-toolbar{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-bottom:14px;
}
.sptmc-drilldown-back{
  height:42px;border:1px solid #d6e0e8;border-radius:11px;background:#f4f7f9;color:#174d7a;
  padding:0 14px;font-weight:800;cursor:pointer;
}
.sptmc-drilldown-title-wrap small{color:#758492;font-size:11px}
.sptmc-drilldown-title-wrap h2{margin:1px 0 0;font-size:25px;color:#173f61}
.sptmc-drilldown-count{
  background:#edf3f7;color:#174d7a;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;
}
.sptmc-drilldown-filters{
  display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:thin;
}
.sptmc-drilldown-filters button{
  border:1px solid #dfe7ef;background:#fff;border-radius:999px;padding:8px 11px;white-space:nowrap;
  cursor:pointer;font-weight:700;color:#546574;
}
.sptmc-drilldown-filters button.is-active{background:#174d7a;border-color:#174d7a;color:#fff}
.sptmc-drilldown-students{display:grid;gap:8px}
.sptmc-drill-student{
  border:1px solid #e0e7ed;background:#fff;border-radius:14px;padding:11px 13px;
  display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;
  cursor:pointer;font-family:inherit;box-shadow:0 2px 8px rgba(15,53,86,.035);
}
.sptmc-drill-student:hover{border-color:#bdd0df;background:#fbfdff}
.sptmc-drill-no{
  width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#edf3f7;
  color:#174d7a;font-size:12px;font-weight:800;
}
.sptmc-drill-person{display:flex;flex-direction:column;min-width:0}
.sptmc-drill-person strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sptmc-drill-person small{font-size:11px;color:#758492;margin-top:2px}
.sptmc-drill-status{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.sptmc-drill-status small{font-size:10px;color:#798795}
.sptmc-drill-empty{
  padding:28px;border:1px dashed #cad6df;border-radius:13px;text-align:center;color:#758492;background:#fafcfd;
}
.sptmc-drill-empty.error{color:#a72a2a;border-color:#e9b0b0}
.sptmc-student-detail-modal{
  position:fixed;inset:0;z-index:100001;display:grid;place-items:center;padding:16px;
}
.sptmc-student-detail-backdrop{position:absolute;inset:0;background:rgba(10,24,38,.56)}
.sptmc-student-detail-card{
  position:relative;width:min(590px,100%);max-height:86vh;overflow:auto;background:#fff;border-radius:20px;
  padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.25);
}
.sptmc-student-detail-close{
  position:absolute;right:13px;top:9px;border:0;background:transparent;font-size:30px;color:#5e6c78;cursor:pointer;
}
.sptmc-student-detail-head small{color:#718292;font-weight:700}
.sptmc-student-detail-head h2{font-size:23px;margin:3px 38px 2px 0}
.sptmc-detail-id{font-size:12px;color:#758492}
.sptmc-detail-current{margin:14px 0}
.sptmc-detail-status-box{
  border-radius:14px;padding:13px;border:1px solid #dfe7ef;background:#f8fafb;
  display:grid;grid-template-columns:1fr auto;gap:4px 10px;
}
.sptmc-detail-status-box span{grid-column:1/-1;color:#758492;font-size:11px}
.sptmc-detail-status-box strong{font-size:19px}
.sptmc-detail-status-box small{color:#637586;text-align:right}
.sptmc-detail-status-box.present{background:#eef9f2;border-color:#cce7d6}
.sptmc-detail-status-box.late{background:#fffae9;border-color:#eedda6}
.sptmc-detail-status-box.leave{background:#edf7ff;border-color:#c8e1f4}
.sptmc-detail-status-box.absent{background:#fff0f0;border-color:#efcaca}
.sptmc-detail-status-box.activity{background:#f8f0ff;border-color:#e0cdef}
.sptmc-detail-history-title{font-weight:800;font-size:15px;margin:14px 0 8px}
.sptmc-detail-history{display:grid;gap:8px}
.sptmc-history-row{
  display:grid;grid-template-columns:58px 1fr;gap:10px;border-left:3px solid #b7cad8;padding:8px 10px;background:#f8fafb;border-radius:8px;
}
.sptmc-history-time{font-weight:800;color:#174d7a}
.sptmc-history-main{display:flex;flex-direction:column;gap:2px}
.sptmc-history-main strong{font-size:14px}.sptmc-history-main small{font-size:11px;color:#6f7f8d}
.sptmc-history-empty{
  padding:18px;background:#f7f9fa;border-radius:10px;text-align:center;color:#758492;font-size:12px;
}
.sptmc-history-empty.error{color:#a72a2a}
@media(max-width:700px){
  .sptmc-drilldown-panel{border-radius:13px;padding:12px}
  .sptmc-drilldown-toolbar{grid-template-columns:auto 1fr;gap:9px}
  .sptmc-drilldown-count{grid-column:2;justify-self:start}
  .sptmc-drilldown-title-wrap h2{font-size:21px}
  .sptmc-drill-student{grid-template-columns:31px minmax(0,1fr);padding:10px}
  .sptmc-drill-status{grid-column:2;align-items:flex-start;flex-direction:row;flex-wrap:wrap}
  .sptmc-student-detail-card{padding:18px 15px}
}


/* =========================================================
   V1.1.3 Mobile navigation refinement
   ========================================================= */
.sptmc-bottom-nav[hidden]{display:none!important}

.sptmc-mobile-flow{
  margin-bottom:18px!important;
}

.sptmc-mobile-flow.has-bottom-nav{
  padding-bottom:84px!important;
}

.sptmc-bottom-nav{
  position:fixed;
  z-index:99998;
  left:50%;
  transform:translateX(-50%);
  bottom:10px;
  width:min(520px,calc(100vw - 24px));
  display:block;
  padding:7px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);
  border:1px solid #dfe6ec;
  border-radius:17px;
  box-shadow:0 12px 30px rgba(15,53,86,.16);
  grid-template-columns:none!important;
}

.sptmc-bottom-context{
  width:100%;
  height:50px;
  border:0;
  border-radius:12px;
  background:#174d7a;
  color:#fff;
  font-size:15px;
  font-weight:800;
  cursor:pointer;
}

.sptmc-bottom-context:active{
  transform:scale(.99);
  background:#123f65;
}

.sptmc-mobile-flow:not(.has-bottom-nav) .sptmc-step-area{
  padding-bottom:28px;
}

.sptmc-mobile-flow.has-bottom-nav .sptmc-step-area{
  padding-bottom:34px;
}

@media(min-width:760px){
  .sptmc-bottom-nav{width:420px}
}

@media(max-width:620px){
  .sptmc-mobile-flow{margin-bottom:0!important}
  .sptmc-mobile-flow.has-bottom-nav{padding-bottom:78px!important}
  .sptmc-bottom-nav{
    bottom:6px;
    width:calc(100vw - 14px);
    padding:6px;
    border-radius:15px;
  }
  .sptmc-bottom-context{
    height:50px;
    font-size:16px;
  }
}


/* =========================================================
   V1.1.4 Status button text visibility fix
   Prevent Astra / Elementor global button styles from hiding labels
   ========================================================= */
.sptmc-mobile-flow .sptmc-status-buttons button,
.sptmc-mobile-flow .sptmc-status-buttons button span{
  color:#17202a !important;
  opacity:1 !important;
  -webkit-text-fill-color:#17202a !important;
  text-shadow:none !important;
}

.sptmc-mobile-flow .sptmc-status-buttons button{
  background:#ffffff !important;
  font-family:inherit !important;
  line-height:1.2 !important;
}

.sptmc-mobile-flow .sptmc-status-buttons button > span:not(.sptmc-status-icon){
  display:inline-block !important;
  visibility:visible !important;
  font-size:19px !important;
  font-weight:800 !important;
}

.sptmc-mobile-flow .sptmc-status-buttons .sptmc-status-icon{
  display:inline-block !important;
  visibility:visible !important;
  font-size:25px !important;
  line-height:1 !important;
}

/* Gentle status-tinted backgrounds for faster one-hand recognition */
.sptmc-mobile-flow .sptmc-status-buttons .status-present{
  background:#f3fbf6 !important;
  border-color:#9bd7ae !important;
}
.sptmc-mobile-flow .sptmc-status-buttons .status-late{
  background:#fffaf0 !important;
  border-color:#f0c85a !important;
}
.sptmc-mobile-flow .sptmc-status-buttons .status-leave{
  background:#f2f9ff !important;
  border-color:#8fcdf5 !important;
}
.sptmc-mobile-flow .sptmc-status-buttons .status-absent{
  background:#fff5f5 !important;
  border-color:#f09c9c !important;
}
.sptmc-mobile-flow .sptmc-status-buttons .status-activity{
  background:#faf5ff !important;
  border-color:#c9a3ee !important;
}

.sptmc-mobile-flow .sptmc-status-buttons button:hover,
.sptmc-mobile-flow .sptmc-status-buttons button:focus{
  color:#17202a !important;
  filter:brightness(.985);
}

.sptmc-mobile-flow .sptmc-status-buttons button:disabled{
  color:#66717c !important;
  -webkit-text-fill-color:#66717c !important;
}

/* V1.1.6: hide student ID from teacher Morning Check UI.
   IDs remain in data and Executive Dashboard. */
.sptmc-mobile-flow .sptmc-status-id{display:none!important}
.sptmc-mobile-flow .sptmc-mobile-person small{display:none!important}


/* =========================================================
   V1.1.7 - Student Name Visibility Fix
   Astra / Elementor may apply a light/white text color to buttons.
   Force the student name to be readable on the white attendance card.
   ========================================================= */
.sptmc-mobile-flow .sptmc-mobile-student{
  color:var(--text)!important;
  -webkit-text-fill-color:var(--text)!important;
}
.sptmc-mobile-flow .sptmc-mobile-person{
  color:var(--text)!important;
  opacity:1!important;
  visibility:visible!important;
}
.sptmc-mobile-flow .sptmc-mobile-person strong{
  display:block!important;
  color:#17202a!important;
  -webkit-text-fill-color:#17202a!important;
  opacity:1!important;
  visibility:visible!important;
  font-size:16px!important;
  font-weight:800!important;
  line-height:1.25!important;
}
.sptmc-mobile-flow .sptmc-mobile-person strong *{
  color:#17202a!important;
  -webkit-text-fill-color:#17202a!important;
}
