/* Merdeka Mastery Learning - Khan Academy Authentic Theme & Layout */
:root {
  --mml-primary: #1865f2;
  --mml-primary-hover: #134ec4;
  --mml-green: #008848;
  --mml-purple: #7c3aed;
  --mml-blue-proficient: #2563eb;
  --mml-cyan-familiar: #0284c7;
  --mml-gray-unstarted: #e2e8f0;
  --mml-bg: #f8fafc;
  --mml-card-bg: #ffffff;
  --mml-text-main: #21242c;
  --mml-text-muted: #575a65;
  --mml-border: #e4e7eb;
  --mml-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --mml-radius: 12px;
}

.mml-container {
  font-family: var(--mml-font);
  max-width: 1240px;
  margin: 15px auto;
  padding: 16px;
  background: var(--mml-bg);
  box-sizing: border-box;
  color: var(--mml-text-main);
}

/* 1-Page SPA View Handling */
.mml-app-view {
  display: none;
}

.mml-app-view.active {
  display: block;
  animation: mmlFadeIn 0.2s ease-in-out;
}

@keyframes mmlFadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* TOP APP BAR (KHAN ACADEMY STYLE) */
.mml-top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #ffffff;
  padding: 12px 20px;
  border-radius: var(--mml-radius);
  border: 1px solid var(--mml-border);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  margin-bottom: 16px;
  gap: 15px;
  flex-wrap: wrap;
}

.mml-top-bar-left {
  display: flex;
  align-items: center;
  gap: 14px;
}

.mml-top-bar-right {
  display: flex;
  align-items: center;
  gap: 16px;
}

.mml-explore-courses-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #eff6ff;
  color: #1865f2;
  border: 1.5px solid #bfdbfe;
  font-size: 14px;
  font-weight: 800;
  padding: 8px 16px;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-explore-courses-btn:hover {
  background: #1865f2;
  color: #ffffff;
  border-color: #1865f2;
  box-shadow: 0 4px 12px rgba(24, 101, 242, 0.25);
}

.mml-explore-courses-btn .explore-arrow {
  font-size: 11px;
}

.mml-current-course-badge {
  font-size: 13px;
  font-weight: 700;
  color: #475569;
  background: #f8fafc;
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
}

.mml-current-course-badge .badge-grade {
  color: #0f172a;
  font-weight: 800;
}

.mml-current-course-badge .badge-subject {
  color: #1865f2;
}

.mml-user-badge {
  display: flex;
  align-items: center;
  gap: 10px;
}

.mml-avatar {
  font-size: 28px;
  background: #fef3c7;
  padding: 4px;
  border-radius: 50%;
}

.mml-user-text strong {
  display: block;
  font-size: 15px;
  color: #1e293b;
}

.mml-user-text span {
  font-size: 13px;
  color: #ea580c;
  font-weight: 700;
}

.mml-points-pill {
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  color: #fff;
  font-weight: 800;
  font-size: 16px;
  padding: 6px 16px;
  border-radius: 20px;
  box-shadow: 0 3px 10px rgba(245, 158, 11, 0.25);
}

/* KHAN ACADEMY COURSE EXPLORER MEGA MENU MODAL */
.mml-course-explorer-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mml-explorer-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(15, 23, 42, 0.6);
  backdrop-filter: blur(2px);
}

.mml-explorer-content {
  position: relative;
  background: #ffffff;
  width: 94%;
  max-width: 1100px;
  max-height: 90vh;
  overflow-y: auto;
  border-radius: 18px;
  padding: 28px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
  z-index: 2;
}

.mml-explorer-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  border-bottom: 2px solid #f1f5f9;
  padding-bottom: 16px;
  margin-bottom: 20px;
}

.mml-explorer-header .header-title h3 {
  font-size: 22px;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 6px 0;
}

.mml-explorer-header .header-title p {
  color: #64748b;
  font-size: 14px;
  margin: 0;
}

.mml-explorer-close {
  background: #f1f5f9;
  border: none;
  font-size: 16px;
  cursor: pointer;
  color: #64748b;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
}

.mml-explorer-close:hover {
  background: #e2e8f0;
  color: #0f172a;
}

.mml-explorer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 16px;
}

.mml-explorer-col {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 16px;
  display: flex;
  flex-direction: column;
}

.mml-explorer-col.highlight {
  border-color: #93c5fd;
  background: #f0f7ff;
}

.mml-explorer-col .col-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
  margin-bottom: 12px;
  position: relative;
}

.mml-explorer-col .col-icon {
  font-size: 20px;
}

.mml-explorer-col .col-head h4 {
  font-size: 14px;
  font-weight: 800;
  color: #1e293b;
  margin: 0;
}

.mml-explorer-col .hot-badge {
  position: absolute;
  top: -8px;
  right: -8px;
  background: #ef4444;
  color: #ffffff;
  font-size: 9px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 10px;
}

.mml-explorer-col .col-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mml-course-link {
  font-size: 13px;
  font-weight: 700;
  color: #334155;
  text-decoration: none;
  padding: 8px 10px;
  border-radius: 8px;
  background: #ffffff;
  border: 1px solid #e2e8f0;
  transition: all 0.15s ease;
  display: block;
}

.mml-course-link:hover {
  background: #1865f2;
  color: #ffffff;
  border-color: #1865f2;
  transform: translateX(3px);
}

.mml-course-link.active {
  border-color: #1865f2;
  background: #eff6ff;
  color: #1865f2;
}

/* MAIN NAVIGATION TABS */
.mml-main-nav {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 18px;
  background: #ffffff;
  padding: 6px;
  border-radius: var(--mml-radius);
  border: 1px solid var(--mml-border);
}

.mml-nav-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: transparent;
  border: none;
  padding: 10px 8px;
  border-radius: 8px;
  font-family: var(--mml-font);
  font-size: 14px;
  font-weight: 700;
  color: #64748b;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-nav-tab:hover {
  background: #f1f5f9;
  color: var(--mml-primary);
}

.mml-nav-tab.active {
  background: var(--mml-primary);
  color: #ffffff;
}

/* Filter Section */
.mml-filter-section {
  background: #ffffff;
  padding: 14px 18px;
  border-radius: var(--mml-radius);
  border: 1px solid var(--mml-border);
}

.mml-filter-title {
  font-size: 13px;
  font-weight: 800;
  color: #475569;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.mml-btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.mml-tab-btn, .mml-mapel-btn {
  background: #f8fafc;
  border: 1px solid var(--mml-border);
  padding: 7px 14px;
  border-radius: 8px;
  font-family: var(--mml-font);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  color: #475569;
  transition: all 0.15s ease;
}

.mml-tab-btn:hover, .mml-mapel-btn:hover {
  border-color: var(--mml-primary);
  color: var(--mml-primary);
  background: #eff6ff;
}

.mml-tab-btn.active {
  background: var(--mml-primary);
  border-color: var(--mml-primary);
  color: #ffffff;
  box-shadow: 0 2px 6px rgba(24, 101, 242, 0.25);
}

.mml-mapel-btn.active {
  background: var(--mml-green);
  border-color: var(--mml-green);
  color: #ffffff;
  box-shadow: 0 2px 6px rgba(0, 136, 72, 0.25);
}

/* =========================================================================
   KHAN ACADEMY AUTHENTIC TWO-COLUMN LAYOUT
   ========================================================================= */
.mml-khan-layout {
  display: flex;
  gap: 24px;
  align-items: flex-start;
  margin-top: 18px;
}

/* 1. Left Sticky Sidebar */
.mml-khan-sidebar {
  width: 250px;
  flex-shrink: 0;
  position: sticky;
  top: 20px;
  background: #ffffff;
  border-radius: var(--mml-radius);
  border: 1px solid var(--mml-border);
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
  box-sizing: border-box;
}

.mml-sidebar-header {
  border-bottom: 1px solid var(--mml-border);
  padding-bottom: 12px;
  margin-bottom: 12px;
}

.mml-sidebar-course-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #1e293b;
  margin-bottom: 6px;
}

.mml-sidebar-unit-badge {
  display: inline-block;
  background: #eff6ff;
  color: var(--mml-primary);
  font-size: 11px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 6px;
}

.mml-sidebar-nav-list {
  max-height: calc(100vh - 300px);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mml-sidebar-unit-link {
  display: flex;
  flex-direction: column;
  padding: 8px 10px;
  border-radius: 8px;
  text-decoration: none;
  color: #475569;
  transition: all 0.15s ease;
  border-left: 3px solid transparent;
}

.mml-sidebar-unit-link:hover {
  background: #f8fafc;
  color: var(--mml-primary);
  border-left-color: var(--mml-primary);
}

.mml-sidebar-unit-link.active {
  background: #eff6ff;
  color: var(--mml-primary);
  border-left-color: var(--mml-primary);
  font-weight: 700;
}

.mml-sidebar-num {
  font-size: 11px;
  text-transform: uppercase;
  color: #94a3b8;
  font-weight: 700;
}

.mml-sidebar-text {
  font-size: 13px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mml-sidebar-challenge-box {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--mml-border);
}

.challenge-tag {
  font-size: 11px;
  font-weight: 800;
  color: #ea580c;
  letter-spacing: 0.5px;
}

.mml-sidebar-challenge-box p {
  font-size: 12px;
  color: #64748b;
  margin: 4px 0 10px 0;
  line-height: 1.4;
}

.mml-btn-course-challenge {
  width: 100%;
  background: #ffffff;
  border: 1.5px solid var(--mml-primary);
  color: var(--mml-primary);
  font-weight: 700;
  font-size: 13px;
  padding: 8px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-btn-course-challenge:hover {
  background: var(--mml-primary);
  color: #ffffff;
}

.mml-btn-course-challenge.btn-compact {
  width: auto;
  padding: 6px 14px;
}

/* 2. Main Course Area */
.mml-khan-main {
  flex: 1;
  min-width: 0;
}

.mml-khan-top-header {
  background: #ffffff;
  padding: 20px 24px;
  border-radius: var(--mml-radius);
  border: 1px solid var(--mml-border);
  margin-bottom: 20px;
}

.mml-breadcrumb {
  font-size: 12px;
  color: #64748b;
  margin-bottom: 8px;
}

.mml-course-main-title {
  font-size: 26px;
  font-weight: 800;
  color: #1e293b;
  margin: 0 0 16px 0;
}

.mml-course-mastery-wrap {
  margin-bottom: 16px;
}

.mastery-label-bar {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: #334155;
  margin-bottom: 6px;
}

.mastery-points-detail {
  font-size: 13px;
  color: #64748b;
}

.mml-course-progress-track {
  height: 10px;
  background: #e2e8f0;
  border-radius: 8px;
  overflow: hidden;
}

.mml-course-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #7c3aed, #1865f2);
  border-radius: 8px;
  transition: width 0.4s ease;
}

/* Khan Academy Mastery Legend */
.mml-mastery-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--mml-border);
  font-size: 12px;
  color: #475569;
  font-weight: 600;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.legend-item .chip {
  width: 14px;
  height: 14px;
  border-radius: 3px;
  display: inline-block;
}

.chip.lvl-3, .mml-mastery-chip.lvl-3 { background: #7c3aed; }
.chip.lvl-2, .mml-mastery-chip.lvl-2 { background: #2563eb; }
.chip.lvl-1, .mml-mastery-chip.lvl-1 { background: #38bdf8; }
.chip.lvl-0, .mml-mastery-chip.lvl-0 { background: #ffffff; border: 1.5px solid #cbd5e1; }

/* Khan Academy Visual Mastery Matrix Grid */
.mml-khan-mastery-matrix {
  background: #ffffff;
  padding: 18px 22px;
  border-radius: var(--mml-radius);
  border: 1px solid var(--mml-border);
  margin-bottom: 24px;
}

.matrix-top-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
  color: #334155;
  font-size: 14px;
}

.matrix-grid-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.mml-matrix-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 0;
  border-bottom: 1px solid #f1f5f9;
}

.mml-matrix-unit-label {
  font-size: 12px;
  font-weight: 700;
  color: #475569;
  width: 60px;
  text-decoration: none;
}

.mml-matrix-unit-label:hover {
  color: var(--mml-primary);
}

.mml-matrix-chips {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.mml-mastery-chip {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  display: inline-block;
  cursor: pointer;
  transition: transform 0.1s ease;
}

.mml-mastery-chip:hover {
  transform: scale(1.2);
}

.mml-chip-icon {
  font-size: 13px;
  cursor: pointer;
}

/* Unit Cards */
.mml-khan-units-container {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.mml-khan-unit-card {
  background: #ffffff;
  border-radius: var(--mml-radius);
  border: 1px solid var(--mml-border);
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
}

.mml-khan-unit-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 18px 22px;
  border-bottom: 1px solid var(--mml-border);
  background: #fafbfc;
}

.unit-title-group h3 {
  font-size: 18px;
  font-weight: 800;
  color: #1e293b;
  margin: 0 0 4px 0;
}

.unit-subtitle {
  font-size: 13px;
  color: #64748b;
  margin: 0;
  line-height: 1.4;
}

.unit-mastery-indicator {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #475569;
  white-space: nowrap;
}

.info-bubble {
  color: #94a3b8;
  cursor: pointer;
}

/* 2-Column Responsive Sub-Units Grid */
.mml-khan-subunits-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  padding: 20px 22px;
}

.mml-subunit-card {
  background: #f8fafc;
  border: 1px solid var(--mml-border);
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.mml-subunit-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 12px;
}

.mml-subunit-title {
  font-size: 14px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.4;
}

.mml-skill-chip-mini {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 6px;
  white-space: nowrap;
}

.mml-skill-chip-mini.lvl-3 { background: #f3e8ff; color: #7c3aed; }
.mml-skill-chip-mini.lvl-2 { background: #dbeafe; color: #1d4ed8; }
.mml-skill-chip-mini.lvl-1 { background: #e0f2fe; color: #0284c7; }
.mml-skill-chip-mini.lvl-0 { background: #f1f5f9; color: #64748b; }

.mml-subunit-items {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mml-concept-link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--mml-primary);
  text-decoration: none;
  font-weight: 600;
  padding: 4px 0;
}

.mml-concept-link:hover {
  text-decoration: underline;
}

.mml-practice-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #ffffff;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--mml-border);
}

.practice-left {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #334155;
}

.mml-start-btn {
  background: var(--mml-primary);
  color: #ffffff;
  border: none;
  font-size: 12px;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-start-btn:hover {
  background: var(--mml-primary-hover);
  transform: translateY(-1px);
}

.mml-sprint-row {
  margin-top: 6px;
  background: #fffbeb;
  border: 1px dashed #fcd34d;
  border-radius: 8px;
  padding: 6px 10px;
}

.mml-sprint-row .text {
  color: #b45309;
  font-weight: 700;
  font-size: 12px;
}

.mml-sprint-btn {
  background: #f59e0b;
  color: #ffffff;
  border: none;
  font-size: 11.5px;
  font-weight: 800;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.mml-sprint-btn:hover {
  background: #d97706;
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(217, 119, 6, 0.3);
}

/* Printable Worksheet Action Row & Direct Buttons */
.mml-print-row {
  margin-top: 6px;
  background: #f0fdf4;
  border: 1px dashed #86efac;
  border-radius: 8px;
  padding: 6px 10px;
}

.mml-print-row .text {
  color: #15803d;
  font-weight: 700;
  font-size: 12px;
}

.mml-direct-print-btn {
  background: #16a34a;
  color: #ffffff;
  border: none;
  font-size: 11.5px;
  font-weight: 800;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.mml-direct-print-btn:hover {
  background: #15803d;
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(22, 163, 74, 0.3);
}

.mml-slide-print-btn-large {
  background: #f0fdf4;
  color: #15803d;
  border: 1.5px solid #86efac;
  font-size: 14px;
  font-weight: 800;
  padding: 12px 18px;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.15s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.mml-slide-print-btn-large:hover {
  background: #16a34a;
  color: #ffffff;
  border-color: #16a34a;
}

.mml-print-practice-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f0fdf4;
  color: #15803d;
  border: 1.5px solid #86efac;
  font-size: 13.5px;
  font-weight: 700;
  padding: 9px 15px;
  border-radius: 10px;
  cursor: pointer;
  margin-left: 8px;
  transition: all 0.15s ease;
}

.mml-print-practice-btn:hover {
  background: #16a34a;
  color: #ffffff;
  border-color: #16a34a;
}

/* Anti-Spam / Anti-Guessing Option Lock */
.mml-options-grid.mml-options-locked {
  opacity: 0.55;
  pointer-events: none;
  filter: grayscale(35%);
  transition: all 0.25s ease;
  cursor: not-allowed;
}

/* Sakamoto Comparison Bar Model */
.sakamoto-bar-box {
  background: #f8fafc;
  border: 1.5px solid #cbd5e1;
  border-radius: 12px;
  padding: 14px 18px;
  margin: 12px auto;
  max-width: 480px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.04);
  text-align: left;
}

.sakamoto-bar-box-title {
  font-size: 13px;
  font-weight: 800;
  color: #1e293b;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.sakamoto-bar-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.sakamoto-bar-label {
  min-width: 75px;
  font-weight: 700;
  font-size: 13px;
  color: #334155;
}

.sakamoto-bar-track {
  display: flex;
  align-items: center;
  flex: 1;
}

.sakamoto-bar-fill {
  background: #2563eb;
  color: #ffffff;
  font-weight: 800;
  font-size: 12px;
  padding: 6px 12px;
  border-radius: 6px;
  text-align: center;
  box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15);
}

.sakamoto-bar-fill.bar-alt {
  background: #059669;
}

.sakamoto-bar-diff {
  border: 2px dashed #f59e0b;
  background: #fef3c7;
  color: #b45309;
  font-weight: 800;
  font-size: 11.5px;
  padding: 4px 8px;
  border-radius: 6px;
  margin-left: 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* Parent Concept Reminder Nudge Bar */
.mml-parent-nudge-bar {
  background: #fefce8;
  border: 1.5px solid #fde047;
  border-radius: 10px;
  padding: 10px 16px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-size: 13px;
  color: #713f12;
  box-shadow: 0 1px 3px rgba(0,0,0,0.03);
}

.mml-parent-nudge-bar .nudge-icon {
  font-size: 20px;
  flex-shrink: 0;
}

.mml-parent-nudge-bar .nudge-text {
  flex: 1;
  line-height: 1.45;
}

.mml-nudge-btn {
  background: #f59e0b;
  color: #ffffff;
  border: none;
  font-weight: 700;
  font-size: 12.5px;
  padding: 6px 14px;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s ease;
  flex-shrink: 0;
}

.mml-nudge-btn:hover {
  background: #d97706;
  transform: translateY(-1px);
}

/* Unit Test Footer */
.mml-unit-test-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 22px;
  background: #f1f5f9;
  border-top: 1px solid var(--mml-border);
}

.test-bar-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.test-bar-info .icon {
  font-size: 24px;
}

.test-bar-info strong {
  display: block;
  font-size: 14px;
  color: #1e293b;
}

.test-bar-info span {
  font-size: 12px;
  color: #64748b;
}

.mml-btn-unit-test {
  background: #ffffff;
  border: 1.5px solid var(--mml-purple);
  color: var(--mml-purple);
  font-size: 13px;
  font-weight: 700;
  padding: 7px 16px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-btn-unit-test:hover {
  background: var(--mml-purple);
  color: #ffffff;
}

/* =========================================================================
   PRACTICE PLAYER VIEW
   ========================================================================= */
.mml-player-card {
  background: #ffffff;
  border-radius: var(--mml-radius);
  border: 1px solid var(--mml-border);
  padding: 24px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
}

.mml-player-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--mml-border);
  padding-bottom: 16px;
  margin-bottom: 20px;
}

.mml-icon-btn {
  background: #f1f5f9;
  border: 1px solid var(--mml-border);
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #334155;
  cursor: pointer;
}

.mml-icon-btn:hover {
  background: #e2e8f0;
}

.mml-progress-container {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  max-width: 450px;
  margin: 0 20px;
}

.mml-progress-track {
  flex: 1;
  height: 10px;
  background: #e2e8f0;
  border-radius: 6px;
  overflow: hidden;
}

.mml-progress-fill {
  height: 100%;
  background: var(--mml-green);
  border-radius: 6px;
  transition: width 0.3s ease;
}

.mml-counter-pill {
  font-size: 13px;
  font-weight: 700;
  color: #64748b;
  white-space: nowrap;
}

.mml-energy-badge {
  background: #fef3c7;
  color: #b45309;
  font-size: 13px;
  font-weight: 800;
  padding: 6px 14px;
  border-radius: 20px;
}

.mml-question-body {
  padding: 10px 0;
}

.mml-speak-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #eff6ff;
  border: 1.5px solid #bfdbfe;
  color: var(--mml-primary);
  font-size: 14px;
  font-weight: 700;
  padding: 8px 16px;
  border-radius: 20px;
  cursor: pointer;
  margin-bottom: 16px;
  transition: all 0.15s ease;
}

.mml-speak-btn:hover {
  background: #dbeafe;
}

.mml-visual-box {
  background: #f8fafc;
  border: 1.5px dashed #cbd5e1;
  border-radius: 12px;
  padding: 20px;
  font-size: 26px;
  text-align: center;
  margin-bottom: 20px;
  color: #0f172a;
}

.mml-question-text {
  font-size: 18px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.6;
  margin-bottom: 24px;
}

.mml-options-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 24px;
}

.mml-option-card {
  background: #ffffff;
  border: 2px solid var(--mml-border);
  border-radius: 10px;
  padding: 14px 18px;
  font-size: 16px;
  font-weight: 600;
  color: #334155;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-option-card:hover {
  border-color: var(--mml-primary);
  background: #f8fafc;
}

.mml-option-card.selected {
  border-color: var(--mml-primary);
  background: #eff6ff;
  color: var(--mml-primary);
}

.mml-option-card.correct {
  border-color: var(--mml-green);
  background: #f0fdf4;
  color: #166534;
}

.mml-option-card.wrong {
  border-color: #ef4444;
  background: #fef2f2;
  color: #991b1b;
}

.mml-hints-wrapper {
  margin-bottom: 20px;
}

.mml-hint-btn {
  background: transparent;
  border: none;
  color: #ea580c;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  padding: 0;
}

.mml-hints-list {
  background: #fffbeb;
  border: 1px solid #fef3c7;
  border-radius: 8px;
  padding: 12px;
  margin-top: 10px;
}

.mml-hint-step {
  font-size: 14px;
  color: #92400e;
  line-height: 1.5;
  padding: 4px 0;
  border-bottom: 1px dashed #fde68a;
}

.mml-hint-step:last-child {
  border-bottom: none;
}

.mml-player-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--mml-border);
  padding-top: 18px;
}

.mml-feedback-toast {
  font-size: 15px;
  font-weight: 700;
  padding: 10px 18px;
  border-radius: 8px;
}

.mml-feedback-toast.correct {
  background: #dcfce7;
  color: #166534;
}

.mml-feedback-toast.wrong {
  background: #fffbeb;
  color: #92400e;
  border: 1.5px solid #fde68a;
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.12);
  line-height: 1.5;
}

/* Scaffolding Tier Indicators */
.mml-scaffold-tier-indicator {
  margin-bottom: 12px;
  display: flex;
  align-items: center;
}

.mml-scaffold-tier-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  padding: 5px 14px;
  border-radius: 9999px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.mml-scaffold-tier-badge.tier-1 {
  background: #ecfdf5;
  color: #065f46;
  border: 1px solid #a7f3d0;
}

.mml-scaffold-tier-badge.tier-2 {
  background: #eff6ff;
  color: #1e40af;
  border: 1px solid #bfdbfe;
}

.mml-scaffold-tier-badge.tier-3 {
  background: #fdf4ff;
  color: #86198f;
  border: 1px solid #f5d0fe;
}

/* Friendly Hint Pulse Animation */
@keyframes mmlHintPulse {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.4); }
  50% { transform: scale(1.03); box-shadow: 0 0 0 8px rgba(245, 158, 11, 0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(245, 158, 11, 0); }
}

.mml-hint-btn.mml-hint-pulse {
  animation: mmlHintPulse 1.8s infinite ease-in-out;
  border-color: #f59e0b !important;
  background: #fffbeb !important;
  color: #b45309 !important;
  font-weight: 800;
}

/* Slow-Paced Learner Guidance Card for Parents */
.mml-slow-paced-box {
  background: #fefce8;
  border: 1.5px dashed #facc15;
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 14px;
}

.mml-slow-paced-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 800;
  color: #854d0e;
  margin-bottom: 8px;
}

.mml-slow-paced-body {
  font-size: 13.5px;
  line-height: 1.65;
  color: #713f12;
}

.mml-btn-primary {
  background: var(--mml-primary);
  color: #ffffff;
  border: none;
  font-size: 15px;
  font-weight: 700;
  padding: 12px 24px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-btn-primary:hover:not(:disabled) {
  background: var(--mml-primary-hover);
}

.mml-btn-primary:disabled {
  background: #cbd5e1;
  cursor: not-allowed;
}

/* =========================================================================
   GRADE-SPECIFIC TYPOGRAPHY & AGE-APPROPRIATE STYLES
   ========================================================================= */

/* PAUD & Kelas 1 SD: Rounded, large, friendly font */
.mml-grade-paud, .mml-grade-k1 {
  font-family: 'Fredoka', 'Nunito', system-ui, -apple-system, sans-serif;
}
.mml-grade-paud .mml-slide-headline,
.mml-grade-k1 .mml-slide-headline {
  font-size: 24px;
  font-weight: 800;
  line-height: 1.35;
  color: #1e3a8a;
}
.mml-grade-paud .mml-slide-text,
.mml-grade-k1 .mml-slide-text,
.mml-grade-paud .mml-question-text,
.mml-grade-k1 .mml-question-text {
  font-size: 19px;
  line-height: 1.85;
  letter-spacing: 0.4px;
  color: #1e293b;
}
.mml-grade-paud .mml-option-card,
.mml-grade-k1 .mml-option-card {
  font-size: 18px;
  padding: 16px 20px;
  border-radius: 14px;
  font-weight: 700;
}
.mml-grade-paud .mml-interactive-point-card,
.mml-grade-k1 .mml-interactive-point-card {
  font-size: 18px;
}

/* Kelas 2 SD: Friendly rounded, transition to slightly more compact text */
.mml-grade-k2 {
  font-family: 'Fredoka', 'Nunito', system-ui, sans-serif;
}
.mml-grade-k2 .mml-slide-headline {
  font-size: 22px;
  font-weight: 800;
  color: #1e3a8a;
}
.mml-grade-k2 .mml-slide-text,
.mml-grade-k2 .mml-question-text {
  font-size: 18px;
  line-height: 1.8;
  color: #1e293b;
}
.mml-grade-k2 .mml-option-card {
  font-size: 17px;
  padding: 14px 18px;
}

/* SD Fase B (Kelas 3 - 4): Semi-formal, clear, legible */
.mml-grade-fase-b {
  font-family: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
.mml-grade-fase-b .mml-slide-headline {
  font-size: 21px;
  font-weight: 800;
  color: #0f172a;
}
.mml-grade-fase-b .mml-slide-text,
.mml-grade-fase-b .mml-question-text {
  font-size: 16.5px;
  line-height: 1.7;
  color: #334155;
}
.mml-grade-fase-b .mml-option-card {
  font-size: 16px;
  padding: 13px 16px;
}

/* SD Fase C (Kelas 5 - 6): Analytical, crisp, academic */
.mml-grade-fase-c {
  font-family: 'Inter', 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
.mml-grade-fase-c .mml-slide-headline {
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
}
.mml-grade-fase-c .mml-slide-text,
.mml-grade-fase-c .mml-question-text {
  font-size: 15.5px;
  line-height: 1.65;
  color: #334155;
}
.mml-grade-fase-c .mml-option-card {
  font-size: 15px;
  padding: 12px 16px;
}

/* IN-PAGE QUICK SUBJECT SWITCHER PILLS */
.mml-quick-subject-switcher {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  margin-bottom: 20px;
  flex-wrap: wrap;
  padding: 10px 16px;
  background: #ffffff;
  border-radius: 12px;
  border: 1px solid var(--mml-border);
}

.mml-quick-subject-switcher .switcher-label {
  font-size: 13px;
  font-weight: 800;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.mml-quick-subject-switcher .switcher-pills {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.mml-quick-pill {
  background: #f1f5f9;
  color: #334155;
  border: 1.5px solid #cbd5e1;
  font-size: 13px;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-quick-pill:hover {
  background: #e2e8f0;
  color: #0f172a;
}

.mml-quick-pill.active {
  background: #1865f2;
  color: #ffffff;
  border-color: #1865f2;
  box-shadow: 0 2px 8px rgba(24, 101, 242, 0.3);
}

/* =========================================================================
   INTERACTIVE MULTI-SLIDE CONCEPT READER MODAL
   ========================================================================= */

.mml-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mml-modal-backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(3px);
}

.mml-slide-reader-box {
  position: relative;
  background: #ffffff;
  width: 92%;
  max-width: 740px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  border-radius: 18px;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
  z-index: 2;
}

.mml-slide-reader-box .mml-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 24px;
  background: #f8fafc;
  border-bottom: 1.5px solid #e2e8f0;
  margin-bottom: 0;
}

.mml-modal-head-info .mml-modal-tag {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  color: #1865f2;
  letter-spacing: 0.6px;
  display: block;
  margin-bottom: 2px;
}

.mml-modal-head-info h4 {
  font-size: 18px;
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}

.mml-modal-head-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.mml-slide-audio-btn {
  background: #eff6ff;
  color: #1865f2;
  border: 1.5px solid #bfdbfe;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
}

.mml-slide-audio-btn:hover {
  background: #1865f2;
  color: #ffffff;
  border-color: #1865f2;
}

.mml-slide-print-btn {
  background: #f0fdf4;
  color: #16a34a;
  border: 1.5px solid #bbf7d0;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
}

.mml-slide-print-btn:hover {
  background: #16a34a;
  color: #ffffff;
  border-color: #16a34a;
  transform: translateY(-1px);
}

.mml-modal-close {
  background: #ffffff;
  border: 1px solid #cbd5e1;
  font-size: 15px;
  cursor: pointer;
  color: #64748b;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
}

.mml-modal-close:hover {
  background: #ef4444;
  color: #ffffff;
  border-color: #ef4444;
}

/* =========================================================================
   PRINT DIALOG MODAL (5 PAKET & PILIHAN FORMAT ISIAN / PILGAN)
   ========================================================================= */

.mml-print-dialog-box {
  position: relative;
  background: #ffffff;
  width: 92%;
  max-width: 680px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
  z-index: 2;
  animation: mmlModalPop 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.mml-print-dialog-body {
  padding: 20px 24px;
  overflow-y: auto;
  max-height: calc(90vh - 140px);
}

.mml-print-field-group {
  margin-bottom: 16px;
}

.mml-print-label {
  display: block;
  font-size: 14px;
  color: #1e293b;
  margin-bottom: 8px;
}

.mml-print-sublabel {
  display: block;
  font-size: 12px;
  color: #64748b;
  font-weight: normal;
  margin-top: 2px;
}

.mml-format-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 8px;
}

.mml-format-card {
  border: 2px solid #e2e8f0;
  border-radius: 12px;
  padding: 12px 14px;
  cursor: pointer;
  transition: all 0.15s ease;
  background: #f8fafc;
  display: flex;
  position: relative;
}

.mml-format-card input[type="radio"] {
  position: absolute;
  top: 12px;
  right: 12px;
  accent-color: #16a34a;
}

.mml-format-card.active, .mml-format-card:has(input:checked) {
  border-color: #16a34a;
  background: #f0fdf4;
  box-shadow: 0 2px 8px rgba(22, 163, 74, 0.15);
}

.mml-format-card .card-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  background: #dcfce7;
  color: #15803d;
  padding: 2px 8px;
  border-radius: 9999px;
  margin-bottom: 4px;
}

.mml-format-card .card-badge.neutral {
  background: #f1f5f9;
  color: #64748b;
}

.mml-format-card strong {
  display: block;
  font-size: 13.5px;
  color: #0f172a;
  margin-bottom: 4px;
}

.mml-format-card p {
  font-size: 11.5px;
  color: #475569;
  line-height: 1.4;
  margin: 0;
}

/* Category Tabs Filter */
.mml-print-cat-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
  margin-bottom: 10px;
}

.mml-cat-tab {
  background: #f1f5f9;
  color: #475569;
  border: 1.5px solid #cbd5e1;
  border-radius: 20px;
  padding: 4px 12px;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-cat-tab:hover {
  background: #e2e8f0;
  color: #1e293b;
}

.mml-cat-tab.active {
  background: #0284c7;
  color: #ffffff;
  border-color: #0284c7;
  box-shadow: 0 2px 6px rgba(2, 132, 199, 0.25);
}

.mml-cat-tab.gold {
  border-color: #f59e0b;
  color: #b45309;
}

.mml-cat-tab.gold.active {
  background: #f59e0b;
  color: #ffffff;
  border-color: #f59e0b;
  box-shadow: 0 2px 6px rgba(245, 158, 11, 0.25);
}

/* 18-Model Catalog Grid */
.mml-model-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  max-height: 320px;
  overflow-y: auto;
  padding: 2px;
  margin-top: 4px;
}

.mml-model-item {
  border: 2px solid #e2e8f0;
  border-radius: 12px;
  padding: 10px 12px;
  cursor: pointer;
  transition: all 0.15s ease;
  background: #ffffff;
  display: block;
  position: relative;
}

.mml-model-item input[type="radio"] {
  position: absolute;
  top: 10px;
  right: 10px;
  accent-color: #0284c7;
}

.mml-model-item.active, .mml-model-item:has(input:checked) {
  border-color: #0284c7;
  background: #f0f9ff;
  box-shadow: 0 2px 8px rgba(2, 132, 199, 0.15);
}

.mml-model-item.special-bundle {
  grid-column: span 2;
  border-color: #f59e0b;
  background: #fffbeb;
}

.mml-model-item.special-bundle.active, .mml-model-item.special-bundle:has(input:checked) {
  border-color: #d97706;
  background: #fef3c7;
  box-shadow: 0 2px 10px rgba(217, 119, 6, 0.2);
}

.model-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 4px;
  margin-bottom: 4px;
  letter-spacing: 0.3px;
}

.model-badge.gold { background: #fef3c7; color: #b45309; border: 1px solid #fde68a; }
.model-badge.purple { background: #faf5ff; color: #7e22ce; border: 1px solid #e9d5ff; }
.model-badge.red { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.model-badge.orange { background: #fff7ed; color: #c2410c; border: 1px solid #ffedd5; }
.model-badge.blue { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }
.model-badge.amber { background: #fffbeb; color: #b45309; border: 1px solid #fde68a; }
.model-badge.green { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.model-badge.indigo { background: #eef2ff; color: #4338ca; border: 1px solid #c7d2fe; }
.model-badge.cyan { background: #ecfeff; color: #0e7490; border: 1px solid #a5f3fc; }
.model-badge.pink { background: #fdf2f8; color: #be185d; border: 1px solid #fbcfe8; }
.model-badge.teal { background: #f0fdfa; color: #0f766e; border: 1px solid #99f6e4; }
.model-badge.violet { background: #f5f3ff; color: #6d28d9; border: 1px solid #ddd6fe; }
.model-badge.rose { background: #fff1f2; color: #be123c; border: 1px solid #fecdd3; }

.mml-model-item strong {
  display: block;
  font-size: 13px;
  color: #0f172a;
  line-height: 1.3;
}

.mml-model-item small {
  display: block;
  font-size: 11px;
  color: #64748b;
  margin-top: 3px;
  line-height: 1.35;
}

/* Extra Options Checkbox */
.mml-print-extra-opts {
  margin-top: 14px;
  padding: 10px 14px;
  background: #f8fafc;
  border: 1.5px dashed #cbd5e1;
  border-radius: 10px;
}

.mml-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
  color: #334155;
  cursor: pointer;
  line-height: 1.4;
}

.mml-checkbox-label input[type="checkbox"] {
  margin-top: 2px;
  accent-color: #0284c7;
}

.mml-print-dialog-footer {
  padding: 14px 24px;
  background: #f8fafc;
  border-top: 1.5px solid #e2e8f0;
  display: flex;
  justify-content: flex-end;
}

.mml-btn-print-confirm {
  background: #16a34a;
  color: #ffffff;
  border: none;
  font-weight: 800;
  font-size: 15px;
  padding: 10px 22px;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.15s ease;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.mml-btn-print-confirm:hover {
  background: #15803d;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.3);
}

/* TOP STEPPER / CLICKABLE POINTS BAR */
.mml-slide-stepper-bar {
  display: flex;
  background: #ffffff;
  border-bottom: 1px solid #e2e8f0;
  padding: 8px 16px;
  gap: 8px;
  overflow-x: auto;
}

.mml-step-tab {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 12px;
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 800;
  color: #64748b;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.mml-step-tab:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.mml-step-tab.active {
  background: #eff6ff;
  border-color: #1865f2;
  color: #1865f2;
  box-shadow: 0 2px 6px rgba(24, 101, 242, 0.15);
}

.mml-step-tab .step-num {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #cbd5e1;
  color: #ffffff;
  font-size: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.mml-step-tab.active .step-num {
  background: #1865f2;
}

/* SLIDE VIEWPORT & STAGE */
.mml-slide-viewport {
  padding: 24px;
  overflow-y: auto;
  flex: 1;
  min-height: 380px;
  background: #ffffff;
}

.mml-slide-item {
  animation: mmlSlideIn 0.25s ease-out;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

@keyframes mmlSlideIn {
  from { opacity: 0; transform: translateX(12px); }
  to { opacity: 1; transform: translateX(0); }
}

.mml-slide-badge {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: #ea580c;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  padding: 4px 10px;
  border-radius: 14px;
  display: inline-block;
  align-self: flex-start;
}

.mml-slide-greeting {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-left: 4px solid #16a34a;
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 15px;
  color: #14532d;
  font-weight: 700;
  line-height: 1.6;
}

.mml-slide-visual-box {
  background: #fdfbf7;
  border: 2px dashed #f59e0b;
  border-radius: 14px;
  padding: 20px;
  text-align: center;
  margin: 4px 0;
}

/* Ten-Frames Styling */
.cpa-frame-box {
  display: inline-block;
  background: #ffffff;
  border: 3px solid #0284c7;
  border-radius: 12px;
  padding: 8px;
  box-shadow: 0 4px 12px rgba(2, 132, 199, 0.15);
}

.cpa-frame-box .frame-row {
  display: flex;
  gap: 10px;
  padding: 4px 0;
}

.cpa-frame-box .frame-row span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 2px solid #bae6fd;
  border-radius: 10px;
  background: #f0f9ff;
  font-size: 26px;
}

/* INTERACTIVE CLICKABLE POINT CARDS */
.mml-interactive-points-wrap {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 8px;
}

.mml-interactive-point-card {
  background: #ffffff;
  border: 2px solid #e2e8f0;
  border-radius: 14px;
  padding: 14px 18px;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
}

.mml-interactive-point-card:hover {
  border-color: #93c5fd;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.mml-interactive-point-card.active {
  border-color: #1865f2;
  background: #f8faff;
  box-shadow: 0 4px 14px rgba(24, 101, 242, 0.15);
}

.mml-point-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.mml-point-title-group {
  display: flex;
  align-items: center;
  gap: 10px;
}

.mml-point-badge {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #eff6ff;
  color: #1865f2;
  font-size: 15px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.mml-interactive-point-card.active .mml-point-badge {
  background: #1865f2;
  color: #ffffff;
}

.mml-point-title {
  font-weight: 800;
  color: #1e293b;
  font-size: 16px;
}

.mml-point-icon-status {
  font-size: 16px;
  color: #94a3b8;
  transition: transform 0.2s ease;
}

.mml-interactive-point-card.active .mml-point-icon-status {
  transform: rotate(90deg);
  color: #1865f2;
}

.mml-point-content {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed #cbd5e1;
}

.mml-point-text {
  font-size: 16px;
  line-height: 1.75;
  color: #334155;
  margin: 0 0 8px 0;
}

.mml-point-tip {
  background: #fef3c7;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 14px;
  color: #92400e;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 6px;
}

.mml-point-speak-btn {
  background: transparent;
  border: none;
  font-size: 13px;
  font-weight: 700;
  color: #1865f2;
  cursor: pointer;
  padding: 4px 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* INTERACTIVE SOLUTION REVEAL BOX */
.mml-solution-secret-box {
  background: #f0fdf4;
  border: 2px solid #bbf7d0;
  border-radius: 14px;
  padding: 18px;
  margin-top: 10px;
  text-align: center;
}

.mml-btn-reveal-solution {
  background: #16a34a;
  color: #ffffff;
  border: none;
  font-size: 15px;
  font-weight: 800;
  padding: 12px 24px;
  border-radius: 12px;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(22, 163, 74, 0.25);
  transition: all 0.15s ease;
}

.mml-btn-reveal-solution:hover {
  background: #15803d;
  transform: translateY(-1px);
}

.mml-secret-content {
  text-align: left;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px dashed #86efac;
  font-size: 16px;
  line-height: 1.8;
  color: #14532d;
}

/* SUMMARY & READINESS CHECKLIST */
.mml-summary-checklist {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 10px 0;
}

.mml-checklist-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 15px;
  line-height: 1.6;
  color: #1e293b;
}

.mml-checklist-item .chk-icon {
  font-size: 18px;
  color: #16a34a;
}

.mml-modal-start-practice.button-hero {
  background: linear-gradient(135deg, #1865f2, #2563eb);
  color: #ffffff;
  font-size: 17px;
  font-weight: 800;
  padding: 16px 28px;
  border-radius: 14px;
  border: none;
  cursor: pointer;
  width: 100%;
  box-shadow: 0 6px 18px rgba(24, 101, 242, 0.35);
  transition: all 0.15s ease;
  margin-top: 10px;
}

.mml-modal-start-practice.button-hero:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(24, 101, 242, 0.45);
}

/* PARENT GUIDE & PEDAGOGICAL TOOLKIT */
.mml-parent-guide-card {
  background: #fffdf5;
  border: 1.5px solid #fed7aa;
  border-left: 5px solid #f59e0b;
  border-radius: 12px;
  padding: 16px 18px;
  margin: 14px 0;
  box-shadow: 0 2px 8px rgba(245, 158, 11, 0.08);
}

.mml-parent-guide-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.mml-parent-guide-header strong {
  font-size: 15px;
  color: #92400e;
  font-weight: 800;
}

.mml-guide-badge {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  background: #fef3c7;
  color: #b45309;
  padding: 2px 8px;
  border-radius: 10px;
}

.mml-guide-body {
  font-size: 14px;
  line-height: 1.65;
  color: #78350f;
}

.mml-guide-list {
  margin: 8px 0 0 0;
  padding-left: 20px;
}

.mml-guide-list li {
  margin-bottom: 6px;
}

/* DIALOG SCRIPT BOX (PARENT-CHILD INTERACTIVE SCRIPT) */
.mml-dialog-box {
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: 14px;
  padding: 16px;
  margin: 14px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mml-dialog-box-title {
  font-size: 13px;
  font-weight: 800;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
}

.dialog-bubble {
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.55;
  max-width: 90%;
}

.dialog-bubble.parent {
  align-self: flex-start;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e40af;
}

.dialog-bubble.child {
  align-self: flex-end;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
}

.dialog-bubble strong {
  display: block;
  font-size: 11px;
  text-transform: uppercase;
  margin-bottom: 2px;
}

.dialog-bubble.parent strong { color: #2563eb; }
.dialog-bubble.child strong { color: #16a34a; }

/* HOME ACTIVITY CHALLENGE */
.mml-home-challenge-box {
  background: #f0fdf4;
  border: 1.5px solid #bbf7d0;
  border-left: 5px solid #16a34a;
  border-radius: 12px;
  padding: 16px 18px;
  margin: 14px 0;
}

.mml-home-challenge-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.mml-home-challenge-header strong {
  font-size: 15px;
  font-weight: 800;
  color: #14532d;
}

.mml-home-challenge-box p {
  font-size: 14px;
  line-height: 1.65;
  color: #166534;
  margin: 0;
}

/* MISCONCEPTION WARNING CARD */
.mml-misconception-card {
  background: #fff1f2;
  border: 1.5px solid #fecdd3;
  border-radius: 10px;
  padding: 10px 14px;
  margin-top: 8px;
  font-size: 13.5px;
  color: #9f1239;
  line-height: 1.55;
}

.mml-misconception-card strong {
  color: #be123c;
}

/* BOTTOM SLIDE FOOTER & CONTROLS */
.mml-slide-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 24px;
  background: #f8fafc;
  border-top: 1.5px solid #e2e8f0;
}

.mml-slide-nav-btn {
  background: #ffffff;
  color: #334155;
  border: 1.5px solid #cbd5e1;
  font-size: 14px;
  font-weight: 800;
  padding: 9px 18px;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-slide-nav-btn:hover:not(:disabled) {
  background: #f1f5f9;
  border-color: #94a3b8;
}

.mml-slide-nav-btn.next {
  background: #1865f2;
  color: #ffffff;
  border-color: #1865f2;
  box-shadow: 0 2px 8px rgba(24, 101, 242, 0.25);
}

.mml-slide-nav-btn.next:hover:not(:disabled) {
  background: #1450c2;
  border-color: #1450c2;
}

.mml-slide-nav-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.mml-slide-indicators-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.mml-slide-dots {
  display: flex;
  gap: 6px;
}

.mml-slide-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #cbd5e1;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-slide-dot.active {
  background: #1865f2;
  width: 22px;
  border-radius: 10px;
}

.mml-slide-counter {
  font-size: 11px;
  font-weight: 700;
  color: #64748b;
}

/* =========================================================================
   BERANDA / LEARNER DASHBOARD VIEW
   ========================================================================= */
.mml-home-hero {
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  border-radius: var(--mml-radius);
  padding: 28px 32px;
  color: #ffffff;
  margin-bottom: 24px;
  box-shadow: 0 10px 25px rgba(15, 23, 42, 0.12);
  position: relative;
  overflow: hidden;
}

.mml-home-hero::after {
  content: '';
  position: absolute;
  top: -50%;
  right: -10%;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(24, 101, 242, 0.3), transparent 70%);
  pointer-events: none;
}

.mml-home-hero-content {
  display: flex;
  align-items: center;
  gap: 24px;
  position: relative;
  z-index: 1;
}

.mml-home-hero-avatar {
  font-size: 52px;
  width: 84px;
  height: 84px;
  background: rgba(255, 255, 255, 0.1);
  border: 2px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
  flex-shrink: 0;
}

.mml-home-hero-text h2 {
  font-size: 24px;
  font-weight: 800;
  margin: 0 0 6px 0;
  color: #ffffff;
}

.mml-home-hero-text p {
  font-size: 14.5px;
  color: #cbd5e1;
  margin: 0 0 14px 0;
  line-height: 1.5;
  max-width: 650px;
}

.mml-home-hero-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.hero-chip {
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #ffffff;
}

.hero-chip.streak { background: rgba(234, 88, 12, 0.25); border-color: rgba(234, 88, 12, 0.5); color: #fed7aa; }
.hero-chip.xp { background: rgba(234, 179, 8, 0.25); border-color: rgba(234, 179, 8, 0.5); color: #fef08a; }
.hero-chip.rank { background: rgba(168, 85, 247, 0.25); border-color: rgba(168, 85, 247, 0.5); color: #e9d5ff; }

/* Sections in Home */
.mml-home-section {
  margin-bottom: 28px;
}

.mml-home-section-header {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.mml-home-section-header h3 {
  font-size: 20px;
  font-weight: 800;
  color: #1e293b;
  margin: 0;
}

.mml-section-badge {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  background: #dcfce7;
  color: #16a34a;
  padding: 3px 10px;
  border-radius: 12px;
}

.mml-section-sub {
  font-size: 14px;
  color: #64748b;
  margin: 4px 0 0 0;
  width: 100%;
}

/* Resume Cards Grid */
.mml-resume-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
}

.mml-resume-card {
  background: #ffffff;
  border: 1.5px solid var(--mml-border);
  border-radius: var(--mml-radius);
  padding: 22px;
  display: flex;
  flex-direction: column;
  transition: all 0.2s ease;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.03);
}

.mml-resume-card:hover {
  border-color: #93c5fd;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.mml-resume-card.highlight {
  border-color: #bfdbfe;
  background: linear-gradient(180deg, #ffffff 0%, #f8faff 100%);
}

.resume-card-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}

.resume-icon {
  font-size: 32px;
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #eff6ff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.resume-info h4 {
  font-size: 17px;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 4px 0;
}

.resume-meta {
  font-size: 12px;
  color: #64748b;
  font-weight: 600;
}

.resume-desc {
  font-size: 13.5px;
  color: #475569;
  line-height: 1.55;
  margin: 0 0 16px 0;
  flex: 1;
}

.resume-progress-wrap {
  margin-bottom: 16px;
}

.resume-progress-bar {
  height: 8px;
  background: #e2e8f0;
  border-radius: 6px;
  overflow: hidden;
  margin-bottom: 6px;
}

.resume-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #1865f2, #2563eb);
  border-radius: 6px;
}

.resume-progress-text {
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
}

.mml-btn-resume-course {
  background: #1865f2;
  color: #ffffff;
  border: none;
  font-size: 14px;
  font-weight: 800;
  padding: 12px 18px;
  border-radius: 10px;
  cursor: pointer;
  width: 100%;
  transition: all 0.15s ease;
  box-shadow: 0 4px 12px rgba(24, 101, 242, 0.25);
  text-align: center;
}

.mml-btn-resume-course:hover {
  background: #1450c2;
  transform: translateY(-1px);
}

.mml-btn-resume-course.outline {
  background: #ffffff;
  color: #1865f2;
  border: 1.5px solid #bfdbfe;
  box-shadow: none;
}

.mml-btn-resume-course.outline:hover {
  background: #eff6ff;
  border-color: #1865f2;
}

/* Catalog Grid in Home */
.mml-home-catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 14px;
}

.mml-catalog-card {
  background: #ffffff;
  border: 1.5px solid var(--mml-border);
  border-radius: var(--mml-radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: all 0.2s ease;
}

.mml-catalog-card:hover {
  border-color: #94a3b8;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04);
}

.mml-catalog-card.active-card {
  border-color: #bfdbfe;
  box-shadow: 0 4px 16px rgba(24, 101, 242, 0.08);
}

.catalog-card-header {
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--mml-border);
}

.catalog-card-header.paud { background: #fdf2f8; }
.catalog-card-header.k1 { background: #eff6ff; }
.catalog-card-header.k2 { background: #f0fdf4; }
.catalog-card-header.fase-b { background: #faf5ff; }
.catalog-card-header.fase-c { background: #fffbeb; }

.cat-icon {
  font-size: 24px;
}

.catalog-card-header h4 {
  font-size: 15px;
  font-weight: 800;
  color: #0f172a;
  margin: 0;
}

.cat-badge {
  font-size: 11px;
  color: #64748b;
  font-weight: 700;
}

.cat-badge.popular {
  color: #ea580c;
  font-weight: 800;
}

.catalog-course-list {
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.mml-home-course-btn {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #334155;
  cursor: pointer;
  text-align: left;
  transition: all 0.15s ease;
}

.mml-home-course-btn:hover {
  background: #eff6ff;
  border-color: #93c5fd;
  color: #1865f2;
}

.mml-home-course-btn.highlight {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1d4ed8;
  font-weight: 800;
}

/* Responsive Media Queries */
@media (max-width: 992px) {
  .mml-khan-layout {
    flex-direction: column;
  }
  .mml-khan-sidebar {
    width: 100%;
    position: static;
  }
  .matrix-grid-columns {
    grid-template-columns: 1fr;
  }
  .mml-khan-subunits-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .mml-main-nav {
    grid-template-columns: repeat(2, 1fr);
  }
  .mml-options-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================================
   BANK LKPD HUB (PUSAT LEMBAR KERJA SISWA 18 MODEL)
   ========================================================================= */

#mml-view-worksheets {
  width: 100%;
}

.mml-worksheets-hub {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

/* Hero Section */
.mml-hub-hero {
  background: linear-gradient(135deg, #0369a1 0%, #0284c7 50%, #0ea5e9 100%);
  border-radius: 20px;
  padding: 28px 32px;
  color: #ffffff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.25);
  position: relative;
  overflow: hidden;
}

.mml-hub-hero::before {
  content: '';
  position: absolute;
  top: -40px;
  right: -40px;
  width: 180px;
  height: 180px;
  background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0) 70%);
  border-radius: 50%;
  pointer-events: none;
}

.mml-hub-hero-text {
  flex: 1;
  max-width: 650px;
}

.mml-hub-hero-badge {
  display: inline-block;
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(4px);
  padding: 4px 12px;
  border-radius: 9999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-bottom: 10px;
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.mml-hub-hero-text h2 {
  font-size: 26px;
  font-weight: 900;
  color: #ffffff;
  margin: 0 0 10px 0;
  line-height: 1.25;
}

.mml-hub-hero-text p {
  font-size: 13.5px;
  line-height: 1.6;
  color: #f0f9ff;
  margin: 0 0 16px 0;
}

.mml-hub-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mml-hub-hero-meta .hero-chip {
  background: rgba(15, 23, 42, 0.25);
  color: #ffffff;
  padding: 5px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.mml-hub-hero-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 280px;
  flex-shrink: 0;
}

.mml-hub-hero-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: all 0.2s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.mml-hub-hero-btn.bundle-5 {
  background: #ffffff;
  color: #0369a1;
  border: 2px solid #e0f2fe;
}
.mml-hub-hero-btn.bundle-5:hover {
  background: #f0fdf4;
  color: #15803d;
  border-color: #86efac;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}

.mml-hub-hero-btn.bundle-18,
.mml-hub-hero-btn.bundle-24 {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #ffffff;
}
.mml-hub-hero-btn.bundle-18:hover,
.mml-hub-hero-btn.bundle-24:hover {
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(217, 119, 6, 0.35);
}

.mml-hub-hero-btn.map-btn {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(6px);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.mml-hub-hero-btn.map-btn:hover {
  background: rgba(255, 255, 255, 0.25);
  transform: translateY(-2px);
}

.mml-hub-hero-btn .btn-icon {
  font-size: 22px;
}

.mml-hub-hero-btn .btn-text {
  display: flex;
  flex-direction: column;
}

.mml-hub-hero-btn .btn-text strong {
  font-size: 13.5px;
  font-weight: 800;
  line-height: 1.25;
}

.mml-hub-hero-btn .btn-text small {
  font-size: 11px;
  opacity: 0.85;
}

/* Toolbar & Filters */
.mml-hub-toolbar {
  background: #ffffff;
  border: 1.5px solid var(--mml-border);
  border-radius: 16px;
  padding: 18px 22px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.mml-hub-filter-row {
  display: grid;
  grid-template-columns: 1.4fr 1.2fr 1.4fr;
  gap: 14px;
  align-items: flex-end;
}

.mml-hub-select-group,
.mml-hub-search-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.mml-hub-select-group label,
.mml-hub-search-group label {
  font-size: 12.5px;
  font-weight: 800;
  color: #334155;
}

.mml-hub-select,
.mml-hub-input {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  font-size: 13.5px;
  color: #1e293b;
  background: #f8fafc;
  outline: none;
  transition: all 0.2s ease;
  font-family: inherit;
}

.mml-hub-select:focus,
.mml-hub-input:focus {
  border-color: #0284c7;
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(2, 132, 199, 0.15);
}

.mml-hub-cat-row {
  display: flex;
  align-items: center;
  gap: 12px;
  border-top: 1px solid #f1f5f9;
  padding-top: 12px;
}

.mml-hub-cat-label {
  font-size: 12.5px;
  font-weight: 800;
  color: #64748b;
  white-space: nowrap;
}

.mml-hub-cat-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.mml-hub-cat-pill {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  color: #475569;
  padding: 6px 14px;
  border-radius: 9999px;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-hub-cat-pill:hover {
  background: #e2e8f0;
  color: #1e293b;
}

.mml-hub-cat-pill.active {
  background: #0284c7;
  color: #ffffff;
  border-color: #0284c7;
  box-shadow: 0 2px 8px rgba(2, 132, 199, 0.25);
}

.mml-hub-status-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px dashed #e2e8f0;
  padding-top: 10px;
  font-size: 13px;
  color: #475569;
}

.mml-hub-reset-btn {
  background: none;
  border: none;
  color: #dc2626;
  font-weight: 700;
  cursor: pointer;
  font-size: 12.5px;
  padding: 2px 8px;
  border-radius: 6px;
  transition: background 0.15s ease;
}

.mml-hub-reset-btn:hover {
  background: #fef2f2;
}

/* Cards Grid */
.mml-hub-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.mml-hub-lkpd-card {
  background: #ffffff;
  border: 1.5px solid var(--mml-border);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: all 0.2s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
}

.mml-hub-lkpd-card:hover {
  transform: translateY(-3px);
  border-color: #38bdf8;
  box-shadow: 0 8px 24px rgba(2, 132, 199, 0.12);
}

.mml-hub-card-header {
  padding: 14px 16px;
  border-bottom: 1px solid #f1f5f9;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f8fafc;
}

.mml-hub-card-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.mml-hub-badge-num {
  background: #e0f2fe;
  color: #0369a1;
  font-size: 11px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 6px;
}

.mml-hub-badge-pop {
  background: #fef3c7;
  color: #b45309;
  font-size: 11px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 6px;
  border: 1px solid #fde68a;
}

.mml-hub-badge-cat {
  font-size: 11px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
}
.mml-hub-badge-cat.cat-arithmetic { background: #eff6ff; color: #1d4ed8; }
.mml-hub-badge-cat.cat-number { background: #ecfdf5; color: #047857; }
.mml-hub-badge-cat.cat-visual { background: #faf5ff; color: #7e22ce; }

.mml-hub-card-icon {
  font-size: 26px;
}

.mml-hub-card-body {
  padding: 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.mml-hub-card-title {
  font-size: 15px;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 8px 0;
  line-height: 1.35;
}

.mml-hub-card-desc {
  font-size: 12.5px;
  color: #475569;
  line-height: 1.5;
  margin: 0 0 14px 0;
  flex: 1;
}

.mml-hub-card-meta {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 11.5px;
}

.mml-hub-meta-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.mml-hub-meta-row .meta-label {
  font-weight: 700;
  color: #64748b;
  min-width: 80px;
}

.mml-hub-meta-row .meta-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.mml-hub-unit-tag {
  background: #dbeafe;
  color: #1d4ed8;
  font-size: 11px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 4px;
  border: none;
  cursor: pointer;
  transition: all 0.15s ease;
}
.mml-hub-unit-tag:hover {
  background: #1d4ed8;
  color: #ffffff;
}

.mml-hub-subunit-tag {
  background: #f1f5f9;
  color: #334155;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
}

.mml-hub-meta-topic {
  color: #334155;
  line-height: 1.4;
  border-top: 1px dashed #e2e8f0;
  padding-top: 6px;
}

.mml-hub-card-actions {
  padding: 12px 16px;
  border-top: 1px solid #f1f5f9;
  display: flex;
  gap: 8px;
  background: #fafbfc;
}

.mml-hub-btn-view-single {
  flex: 1.1;
  background: #0284c7;
  color: #ffffff;
  border: none;
  font-weight: 800;
  font-size: 12.5px;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: center;
}
.mml-hub-btn-view-single:hover {
  background: #0369a1;
  box-shadow: 0 4px 10px rgba(2, 132, 199, 0.25);
}

.mml-hub-btn-print {
  flex: 1.1;
  background: #16a34a;
  color: #ffffff;
  border: none;
  font-weight: 800;
  font-size: 12.5px;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: center;
}
.mml-hub-btn-print:hover {
  background: #15803d;
  box-shadow: 0 4px 10px rgba(22, 163, 74, 0.25);
}

.mml-hub-btn-jump-map {
  flex: 1;
  background: #ffffff;
  color: #0369a1;
  border: 1.5px solid #bfdbfe;
  font-weight: 700;
  font-size: 12px;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: center;
}
.mml-hub-btn-jump-map:hover {
  background: #eff6ff;
  border-color: #60a5fa;
  color: #1d4ed8;
}

/* Empty State */
.mml-hub-empty-state {
  text-align: center;
  padding: 60px 20px;
  background: #ffffff;
  border: 2px dashed #cbd5e1;
  border-radius: 16px;
  margin: 10px 0;
}
.mml-hub-empty-state .empty-icon {
  font-size: 48px;
  margin-bottom: 12px;
  display: inline-block;
}
.mml-hub-empty-state h3 {
  font-size: 18px;
  font-weight: 800;
  color: #1e293b;
  margin: 0 0 6px 0;
}
.mml-hub-empty-state p {
  color: #64748b;
  font-size: 13.5px;
  margin: 0 0 16px 0;
}
.mml-hub-empty-reset-btn {
  background: #0284c7;
  color: #ffffff;
  border: none;
  font-weight: 800;
  padding: 10px 20px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 13.5px;
  transition: background 0.15s ease;
}
.mml-hub-empty-reset-btn:hover {
  background: #0369a1;
}

/* Unit Header Actions & Shortcut Button in Peta Belajar */
.unit-header-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex-shrink: 0;
}

.mml-unit-lkpd-shortcut-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f0fdf4;
  color: #15803d;
  border: 1.5px solid #86efac;
  padding: 6px 14px;
  border-radius: 9999px;
  font-size: 12.5px;
  font-weight: 800;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.mml-unit-lkpd-shortcut-btn:hover {
  background: #16a34a;
  color: #ffffff;
  border-color: #16a34a;
  box-shadow: 0 3px 10px rgba(22, 163, 74, 0.25);
  transform: translateY(-1px);
}

/* Highlight Card for LKPD in Home */
.mml-resume-card.highlight-lkpd {
  border-color: #7dd3fc;
  background: linear-gradient(180deg, #f0f9ff 0%, #ffffff 100%);
}
.mml-resume-card.highlight-lkpd:hover {
  border-color: #0284c7;
  box-shadow: 0 8px 24px rgba(2, 132, 199, 0.12);
}

/* Responsive Rules for Hub */
@media (max-width: 1024px) {
  .mml-hub-hero {
    flex-direction: column;
    align-items: stretch;
  }
  .mml-hub-hero-actions {
    min-width: 100%;
  }
  .mml-hub-filter-row {
    grid-template-columns: 1fr 1fr;
  }
  .mml-hub-cards-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  .mml-hub-filter-row {
    grid-template-columns: 1fr;
  }
  .mml-hub-cards-grid {
    grid-template-columns: 1fr;
  }
  .unit-header-actions {
    align-items: flex-start;
    margin-top: 8px;
  }
  .mml-khan-unit-header {
    flex-direction: column;
  }
}

/* =========================================================================
   SINGLE WORKSHEET VIEWER (1 HALAMAN = 1 WORKSHEET)
   ========================================================================= */

.mml-hub-view-mode-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  flex-wrap: wrap;
  gap: 10px;
}

.mml-hub-mode-tabs {
  display: inline-flex;
  background: #e2e8f0;
  padding: 3px;
  border-radius: 10px;
  gap: 4px;
}

.mml-mode-tab {
  background: transparent;
  border: none;
  padding: 7px 16px;
  border-radius: 8px;
  font-weight: 800;
  font-size: 13px;
  color: #475569;
  cursor: pointer;
  transition: all 0.15s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.mml-mode-tab.active {
  background: #ffffff;
  color: #0284c7;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.mml-single-toolbar {
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-radius: 14px;
  padding: 14px 18px;
  margin-bottom: 16px;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mml-single-tool-row-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.mml-single-select-group {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 280px;
}

.mml-single-select {
  border: 1.5px solid #94a3b8;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 700;
  color: #0f172a;
  background: #ffffff;
  outline: none;
  cursor: pointer;
}

.mml-single-select:focus {
  border-color: #0284c7;
  box-shadow: 0 0 0 3px rgba(2, 132, 199, 0.15);
}

.mml-single-stepper {
  display: flex;
  align-items: center;
  gap: 8px;
}

.mml-single-btn-step {
  background: #f1f5f9;
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 7px 14px;
  font-weight: 800;
  font-size: 12.5px;
  color: #1e293b;
  cursor: pointer;
  transition: all 0.15s ease;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.mml-single-btn-step:hover:not(:disabled) {
  background: #e2e8f0;
  border-color: #94a3b8;
}

.mml-single-btn-step:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.mml-single-badge-num {
  font-size: 12.5px;
  font-weight: 800;
  color: #0284c7;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  padding: 4px 10px;
  border-radius: 6px;
  white-space: nowrap;
}

.mml-single-tool-row-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  border-top: 1px dashed #e2e8f0;
  padding-top: 10px;
}

.mml-single-format-group {
  display: flex;
  align-items: center;
  gap: 6px;
}

.mml-single-format-label {
  font-size: 11.5px;
  font-weight: 800;
  color: #475569;
}

.mml-single-format-btn {
  border: 1.5px solid #cbd5e1;
  background: #f8fafc;
  color: #475569;
  padding: 5px 12px;
  border-radius: 9999px;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-single-format-btn.active {
  background: #eff6ff;
  border-color: #3b82f6;
  color: #1d4ed8;
}

.mml-single-action-btns {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.mml-btn-print-single-act {
  background: linear-gradient(135deg, #16a34a 0%, #15803d 100%);
  color: #ffffff;
  border: none;
  border-radius: 8px;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(22, 163, 74, 0.25);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
}

.mml-btn-print-single-act:hover {
  background: linear-gradient(135deg, #15803d 0%, #166534 100%);
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(22, 163, 74, 0.35);
}

.mml-btn-key-toggle-act {
  background: #fffbeb;
  border: 1.5px solid #fde68a;
  color: #b45309;
  border-radius: 8px;
  padding: 7px 14px;
  font-size: 12.5px;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
}

.mml-btn-key-toggle-act:hover,
.mml-btn-key-toggle-act.active {
  background: #fef3c7;
  border-color: #f59e0b;
  color: #92400e;
}

.mml-single-guide-opt {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: #64748b;
  cursor: pointer;
  user-select: none;
}

/* Authentic Paper Stage */
.mml-worksheet-paper-stage {
  background: #f1f5f9;
  background-image: radial-gradient(#cbd5e1 1.2px, transparent 1.2px);
  background-size: 18px 18px;
  padding: 24px 14px;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 10px 0 20px 0;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.05);
}

.mml-worksheet-paper {
  background: #ffffff;
  width: 100%;
  max-width: 820px;
  min-height: 850px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12), 0 2px 8px rgba(15, 23, 42, 0.04);
  border: 1.5px solid #cbd5e1;
  border-radius: 14px;
  padding: 28px 34px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  transition: all 0.2s ease;
}

.mml-worksheet-paper .print-page-sheet {
  width: 100%;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
}

/* Key Answer Box below paper */
.mml-worksheet-key-panel {
  width: 100%;
  max-width: 820px;
  background: #fffbeb;
  border: 2px solid #fde68a;
  border-radius: 12px;
  padding: 14px 18px;
  margin-top: 14px;
  font-size: 12px;
  color: #78350f;
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.1);
}

.mml-worksheet-key-panel h4 {
  margin: 0 0 6px 0;
  font-size: 13.5px;
  font-weight: 800;
  color: #b45309;
}

/* Common Header LembarKerja.com */
.lk-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  border-bottom: 2.5px solid #0284c7;
  padding-bottom: 8px;
  margin-bottom: 12px;
}
.lk-header.guide { border-bottom-color: #f59e0b; }
.lk-tag-pill {
  display: inline-block;
  background: #22c55e;
  color: #ffffff;
  font-weight: 800;
  font-size: 10px;
  padding: 2px 10px;
  border-radius: 9999px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}
.lk-tag-pill.guide { background: #f59e0b; }
.lk-sheet-title {
  font-size: 22px;
  font-weight: 900;
  color: #dc2626;
  margin: 2px 0 2px 0;
  letter-spacing: -0.5px;
}
.lk-sheet-subtitle { font-size: 11px; color: #475569; margin: 0; }
.lk-header-right { display: flex; align-items: center; gap: 12px; }
.lk-student-info {
  border: 1.5px dashed #94a3b8;
  border-radius: 8px;
  padding: 6px 12px;
  background: #f8fafc;
  font-size: 11px;
  min-width: 220px;
}
.lk-info-line { display: flex; align-items: center; gap: 4px; margin-bottom: 3px; }
.lk-info-line:last-child { margin-bottom: 0; }
.lk-fill-line { flex: 1; border-bottom: 1px solid #94a3b8; height: 12px; }
.lk-fill-line.sm { max-width: 60px; }
.lk-header-mascot, .lk-mascot-badge { font-size: 32px; line-height: 1; }

/* Common Footer LembarKerja.com */
.lk-footer {
  border-top: 1.5px solid #cbd5e1;
  padding-top: 6px;
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  font-size: 9.5px;
  color: #64748b;
}

/* Model 1: Penjumlahan Bergambar */
.lk-pic-grid { display: flex; flex-direction: column; gap: 10px; margin: 8px 0; }
.lk-pic-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.lk-pic-box {
  flex: 1;
  border: 2.5px solid #ef4444;
  border-radius: 12px;
  padding: 8px 10px;
  min-height: 52px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.lk-pic-icons { font-size: 20px; letter-spacing: 2px; line-height: 1.2; }
.lk-pic-sub { font-size: 10px; font-weight: 800; color: #64748b; margin-top: 2px; }
.lk-pic-op { font-size: 24px; font-weight: 900; color: #0f172a; width: 28px; text-align: center; }
.lk-pic-ans-box {
  width: 64px;
  height: 52px;
  border: 3px solid #ef4444;
  border-radius: 12px;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lk-opt-mc-mini { font-size: 9px; font-weight: 700; color: #64748b; display: flex; flex-direction: column; gap: 2px; }

/* Model 2: Pengurangan Bergambar */
.lk-sub-grid { display: flex; flex-direction: column; gap: 10px; margin: 8px 0; }
.lk-sub-row {
  border: 2px solid #ea580c;
  border-radius: 12px;
  padding: 8px 12px;
  background: #fff7ed;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.lk-sub-visual { flex: 1; }
.lk-sub-objects { font-size: 22px; letter-spacing: 2px; line-height: 1.3; }
.lk-obj-crossed { position: relative; display: inline-block; opacity: 0.45; }
.lk-obj-crossed em {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  color: #dc2626;
  font-size: 20px;
  font-style: normal;
  font-weight: 900;
}
.lk-sub-label { font-size: 10px; color: #9a3412; font-weight: 700; margin-top: 2px; }
.lk-sub-formula { display: flex; align-items: center; gap: 6px; font-size: 18px; font-weight: 900; }
.lk-sub-num { color: #0f172a; }
.lk-sub-sign { color: #dc2626; }
.lk-sub-ans-box {
  width: 50px;
  height: 44px;
  border: 2.5px solid #ea580c;
  border-radius: 8px;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Model 3: Penjumlahan Bersusun + Kepiting */
.lk-vert-grid { margin: 8px 0; }
.lk-vert-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.lk-vert-cell {
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 6px;
  text-align: right;
  background: #f8fafc;
}
.lk-vert-top, .lk-vert-bot { font-size: 16px; font-weight: 800; line-height: 1.2; padding-right: 12px; }
.lk-vert-sym { float: left; font-size: 14px; font-weight: 900; margin-left: 6px; color: #0284c7; }
.lk-vert-line { border-bottom: 2px solid #0f172a; margin: 4px 6px; }
.lk-vert-ans { height: 26px; }
.lk-vert-crab-box {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eff6ff;
  border: 1.5px dashed #93c5fd;
  border-radius: 8px;
  font-size: 26px;
}

/* Model 4: Pengurangan Bersusun Matahari */
.lk-sun-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 8px 0;
}
.lk-sun-card {
  border: 2px solid #f59e0b;
  border-radius: 12px;
  padding: 8px 6px;
  text-align: center;
  background: #fffbeb;
  position: relative;
}
.lk-sun-rays { font-size: 20px; line-height: 1; }
.lk-sun-math {
  font-size: 15px;
  font-weight: 800;
  text-align: right;
  padding: 0 10px;
  margin-top: 4px;
}
.lk-sun-line { border-bottom: 2px solid #b45309; margin: 2px 8px; }
.lk-sun-ans { height: 22px; }

/* Model 5: Kotak Kosong */
.lk-box-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 10px 0;
}
.lk-box-col { display: flex; flex-direction: column; gap: 8px; }
.lk-box-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  font-weight: 900;
  background: #f8fafc;
  padding: 5px 10px;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
}
.lk-box-empty {
  width: 32px;
  height: 28px;
  border: 2px dashed #0284c7;
  border-radius: 6px;
  background: #ffffff;
}
.lk-box-grass {
  border-top: 2px solid #86efac;
  padding-top: 6px;
  margin-top: 8px;
  text-align: center;
  font-size: 18px;
  color: #15803d;
}

/* Model 6: 4 Kuadran Speed Math */
.lk-quad-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 10px 0;
}
.lk-quad-block {
  border: 2px solid #cbd5e1;
  border-radius: 12px;
  padding: 8px 10px;
}
.lk-quad-title {
  font-weight: 900;
  font-size: 11px;
  margin-bottom: 6px;
  text-transform: uppercase;
}
.lk-quad-items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 8px;
  font-size: 12.5px;
  font-weight: 800;
}

/* Model 7: Nilai Tempat */
.lk-place-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
  margin: 10px 0;
}
.lk-place-row {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #f0fdf4;
  border: 1.5px solid #86efac;
  border-radius: 8px;
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 800;
}
.lk-place-num-badge {
  background: #0284c7;
  color: #ffffff;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 14px;
}
.lk-place-write-box {
  width: 28px;
  height: 24px;
  border: 1.5px solid #0284c7;
  border-radius: 4px;
  background: #ffffff;
  display: inline-block;
}

/* Model 8: Balok Dienes */
.lk-dienes-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 10px 0;
}
.lk-dienes-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 10px;
  background: #ffffff;
}
.lk-dienes-visual { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.lk-dienes-ten-rod {
  width: 14px;
  height: 52px;
  background: #3b82f6;
  border: 1px solid #1d4ed8;
  border-radius: 2px;
}
.lk-dienes-units-wrap { display: flex; flex-wrap: wrap; gap: 2px; max-width: 60px; }
.lk-dienes-unit-cube {
  width: 10px;
  height: 10px;
  background: #f59e0b;
  border: 1px solid #b45309;
  border-radius: 1px;
}
.lk-dienes-write { font-size: 11px; font-weight: 700; color: #475569; }

/* Model 9: Taman Bunga */
.lk-flower-garden {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 10px 0;
}
.lk-flower-row { display: flex; align-items: center; gap: 6px; }
.lk-flower-stem { font-size: 20px; line-height: 1; }
.lk-flower-disc {
  width: 28px;
  height: 28px;
  border: 2px solid #ec4899;
  border-radius: 50%;
  background: #fdf2f8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 900;
  color: #9d174d;
}
.lk-flower-disc.blank { background: #ffffff; border-style: dashed; }

/* Model 10: Kereta Angka */
.lk-train-list { display: flex; flex-direction: column; gap: 14px; margin: 10px 0; }
.lk-train-track {
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 12px;
  background: #f8fafc;
}
.lk-train-mode { font-weight: 800; font-size: 11px; color: #0284c7; margin-bottom: 4px; }
.lk-train-line { display: flex; align-items: center; gap: 8px; }
.lk-train-engine { font-size: 32px; }
.lk-train-car {
  width: 48px;
  height: 40px;
  border: 2.5px solid #2563eb;
  border-radius: 6px;
  background: #eff6ff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 900;
  color: #1e3a8a;
  position: relative;
}
.lk-train-car.blank { border-style: dashed; background: #ffffff; }

/* Model 11: Perbandingan Jumlah */
.lk-comp-list { display: flex; flex-direction: column; gap: 10px; }
.lk-comp-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.lk-comp-card {
  flex: 1;
  border: 2px solid #ea580c;
  border-radius: 10px;
  padding: 8px;
  text-align: center;
  background: #fff7ed;
}
.lk-comp-icons { font-size: 22px; line-height: 1.2; }
.lk-comp-label { font-size: 10px; color: #9a3412; font-weight: 700; margin-top: 2px; }
.lk-comp-circle {
  width: 44px;
  height: 44px;
  border: 2.5px solid #dc2626;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 900;
  color: #94a3b8;
}

/* Model 12: Pengelompokan Puluhan */
.lk-group-list { display: flex; flex-direction: column; gap: 12px; margin: 8px 0; }
.lk-group-card {
  border: 2px solid #86efac;
  border-radius: 12px;
  padding: 8px 12px;
  background: #f0fdf4;
}
.lk-group-head {
  display: flex;
  justify-content: space-between;
  font-weight: 800;
  font-size: 11.5px;
  color: #15803d;
  margin-bottom: 4px;
}
.lk-group-body { display: flex; justify-content: space-between; align-items: center; }
.lk-group-array { font-size: 19px; letter-spacing: 4px; line-height: 1.4; max-width: 75%; }
.lk-dashed-write-box {
  width: 60px;
  height: 48px;
  border: 2.5px dashed #15803d;
  border-radius: 8px;
  background: #ffffff;
}

/* Model 13: Hitung & Silang */
.lk-cross-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 10px 0;
}
.lk-cross-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 10px;
  text-align: center;
  background: #ffffff;
}
.lk-cross-visual { font-size: 24px; letter-spacing: 3px; min-height: 50px; }
.lk-cross-options { display: flex; justify-content: center; gap: 12px; margin-top: 6px; }
.lk-cross-opt-circle {
  width: 34px;
  height: 34px;
  border: 2px solid #0284c7;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 900;
  color: #0284c7;
}

/* Model 14: Menjodohkan / Tarik Garis */
.lk-match-container { margin: 10px 0; }
.lk-match-cols {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.lk-match-left, .lk-match-right {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}
.lk-match-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 8px 12px;
  background: #f8fafc;
  font-weight: 800;
  font-size: 14px;
}
.lk-match-dot {
  width: 12px;
  height: 12px;
  background: #0284c7;
  border-radius: 50%;
}

/* Model 15: Pola Berulang */
.lk-pattern-list { display: flex; flex-direction: column; gap: 10px; margin: 8px 0; }
.lk-pattern-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1.5px solid #e2e8f0;
  border-radius: 8px;
  padding: 6px 10px;
  background: #ffffff;
}
.lk-pat-seq { display: flex; align-items: center; gap: 8px; }
.lk-pat-box {
  width: 40px;
  height: 40px;
  border: 1.5px solid #94a3b8;
  border-radius: 6px;
  background: #ffffff;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lk-pat-box.blank { border: 2px dashed #0284c7; background: #eff6ff; }
.lk-pat-arrow { font-size: 20px; color: #0284c7; font-weight: 900; }

/* Model 16: Geometri */
.lk-geo-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 8px 0; }
.lk-geo-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 8px 6px;
  text-align: center;
  background: #f8fafc;
}
.lk-geo-name { font-weight: 800; font-size: 11px; margin: 4px 0; }
.lk-geo-field { font-size: 9.5px; color: #64748b; }
.lk-geo-shape { width: 32px; height: 32px; margin: 0 auto; }
.lk-geo-shape.circle { border-radius: 50%; background: #22c55e; }
.lk-geo-shape.triangle {
  width: 0; height: 0;
  border-left: 18px solid transparent;
  border-right: 18px solid transparent;
  border-bottom: 32px solid #ef4444;
  background: transparent;
}
.lk-geo-shape.square { background: #3b82f6; }
.lk-geo-shape.rect { width: 42px; height: 26px; background: #eab308; }
.lk-geo-icon { font-size: 32px; line-height: 1; }

/* Model 17: Jam */
.lk-clock-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 10px 0;
}
.lk-clock-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 12px;
  padding: 10px;
  text-align: center;
  background: #f8fafc;
}
.lk-clock-dial {
  width: 70px;
  height: 70px;
  border: 3px solid #0f172a;
  border-radius: 50%;
  margin: 0 auto 6px auto;
  position: relative;
  background: #ffffff;
}
.clock-center-dot {
  width: 6px; height: 6px;
  background: #0f172a;
  border-radius: 50%;
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}
.clock-hand-hour {
  width: 3px; height: 18px;
  background: #0f172a;
  position: absolute;
  bottom: 50%; left: 50%;
  transform-origin: bottom center;
}
.clock-hand-min {
  width: 2px; height: 26px;
  background: #dc2626;
  position: absolute;
  bottom: 50%; left: 50%;
  transform-origin: bottom center;
}
.clock-hand-hour.h-07 { transform: translateX(-50%) rotate(210deg); }
.clock-hand-hour.h-09 { transform: translateX(-50%) rotate(270deg); }
.clock-hand-hour.h-12 { transform: translateX(-50%) rotate(0deg); }
.clock-hand-hour.h-04 { transform: translateX(-50%) rotate(120deg); }
.clock-hand-hour.h-11 { transform: translateX(-50%) rotate(330deg); }
.clock-hand-hour.h-02 { transform: translateX(-50%) rotate(60deg); }
.lk-clock-dial span { position: absolute; font-size: 8px; font-weight: 800; color: #64748b; }
.num-12 { top: 2px; left: 50%; transform: translateX(-50%); }
.num-3 { right: 4px; top: 50%; transform: translateY(-50%); }
.num-6 { bottom: 2px; left: 50%; transform: translateX(-50%); }
.num-9 { left: 4px; top: 50%; transform: translateY(-50%); }
.lk-clock-desc { font-size: 10px; font-weight: 700; color: #475569; }
.lk-clock-write { font-size: 12px; font-weight: 800; color: #0f172a; margin-top: 4px; }

/* Model 18: Soal Cerita */
.lk-story-list { display: flex; flex-direction: column; gap: 10px; margin: 8px 0; }
.lk-story-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 12px;
  background: #ffffff;
}
.lk-story-num {
  background: #0284c7;
  color: #ffffff;
  font-size: 9.5px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 4px;
}
.lk-story-text { font-size: 12px; font-weight: 700; color: #0f172a; margin: 4px 0 6px 0; }
.lk-story-cpa-box {
  background: #f8fafc;
  border-radius: 6px;
  padding: 4px 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.lk-story-visual-strip { font-size: 11px; color: #475569; }
.lk-sentence-boxes { display: inline-flex; align-items: center; gap: 4px; font-weight: 800; font-size: 14px; }
.lk-mini-box {
  width: 32px;
  height: 24px;
  border: 1.5px solid #0284c7;
  border-radius: 4px;
  background: #ffffff;
}
.lk-mini-box.result { border-color: #16a34a; background: #f0fdf4; }

/* Model 19: Garis Bilangan */
.lk-nline-container { display: flex; flex-direction: column; gap: 12px; margin: 8px 0; }
.lk-nline-card { border: 1.5px solid #cbd5e1; border-radius: 12px; padding: 8px 12px; background: #ffffff; }
.lk-nline-header { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.lk-nline-badge { color: #ffffff; font-size: 9.5px; font-weight: 800; padding: 2px 8px; border-radius: 4px; }
.lk-nline-text { font-size: 11.5px; color: #1e293b; }
.lk-nline-stage { position: relative; margin: 4px 10px 8px 10px; }
.lk-nline-svg-wrap { width: 100%; height: 42px; margin-bottom: -10px; }
.lk-nline-svg { width: 100%; height: 100%; overflow: visible; }
.lk-nline-track {
  display: flex;
  align-items: center;
  width: 100%;
  border-top: 2.5px solid #0f172a;
  padding-top: 4px;
  position: relative;
}
.lk-nline-arrow { font-size: 10px; color: #0f172a; margin-top: -12px; }
.lk-nline-arrow.left { margin-right: 4px; }
.lk-nline-arrow.right { margin-left: 4px; }
.lk-nline-nodes { display: flex; justify-content: space-between; width: 100%; }
.lk-nl-tick-node { display: flex; flex-direction: column; align-items: center; position: relative; }
.lk-nl-notch { width: 2px; height: 8px; background: #0f172a; margin-top: -6px; }
.lk-nl-digit { font-size: 11px; font-weight: 800; color: #1e293b; margin-top: 4px; }
.lk-nl-tick-node.tick-start .lk-nl-digit { color: #16a34a; font-weight: 900; transform: scale(1.15); }
.lk-nl-tick-node.tick-end .lk-nl-digit { color: #dc2626; font-weight: 900; transform: scale(1.15); }
.lk-nline-equation-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f8fafc;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
}
.lk-nline-eq-boxes { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 900; }
.lk-nline-operand { color: #0f172a; }
.lk-nline-sym { color: #64748b; }
.lk-nline-res-box {
  width: 44px;
  height: 28px;
  border: 2px solid #16a34a;
  border-radius: 6px;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Model 20: Domino & Dadu Subitizing */
.lk-subitize-inst {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 11px;
  color: #1e40af;
  margin-bottom: 8px;
}
.lk-subitize-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 8px 0; }
.lk-subitize-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px;
  background: #ffffff;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 140px;
}
.lk-subitize-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.lk-subitize-badge {
  background: #3b82f6;
  color: #ffffff;
  font-size: 9px;
  font-weight: 800;
  padding: 1px 6px;
  border-radius: 4px;
}
.lk-subitize-sub { font-size: 9px; color: #64748b; }
.lk-subitize-visual-center { display: flex; justify-content: center; align-items: center; padding: 6px 0; }
.lk-domino-tile {
  display: inline-flex;
  background: #ffffff;
  border: 2.5px solid #0f172a;
  border-radius: 8px;
  padding: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.domino-half {
  width: 40px;
  height: 40px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 1fr);
  padding: 2px;
  gap: 2px;
}
.domino-pip { width: 7px; height: 7px; border-radius: 50%; margin: auto; }
.domino-pip.pip-black { background: #0f172a; }
.domino-pip.pip-blank { background: transparent; }
.domino-divider {
  width: 2px;
  background: #cbd5e1;
  margin: 0 4px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.domino-pin { width: 4px; height: 4px; background: #d97706; border-radius: 50%; }
.lk-dice-pair { display: inline-flex; align-items: center; gap: 6px; }
.lk-single-die { background: #f8fafc; border: 2px solid #0f172a; border-radius: 6px; padding: 3px; }
.lk-dice-plus { font-size: 16px; font-weight: 900; color: #0f172a; }
.lk-subitize-formula {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin-top: 6px;
  font-size: 14px;
  font-weight: 800;
}
.lk-sub-slot {
  width: 26px;
  height: 24px;
  border: 1.5px solid #94a3b8;
  border-radius: 4px;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  color: #0f172a;
}
.lk-sub-sign { font-size: 14px; color: #475569; }
.lk-sub-ans-target {
  width: 32px;
  height: 26px;
  border: 2px solid #2563eb;
  border-radius: 6px;
  background: #eff6ff;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Model 21: Neraca Timbangan */
.lk-balance-intro {
  background: #fffbeb;
  border: 1px solid #fef3c7;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 11px;
  color: #92400e;
  margin-bottom: 8px;
}
.lk-balance-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 8px 0; }
.lk-balance-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 12px;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.lk-balance-head { display: flex; align-items: center; gap: 6px; font-size: 11px; margin-bottom: 6px; }
.lk-balance-badge {
  background: #ea580c;
  color: #ffffff;
  font-size: 9px;
  font-weight: 800;
  padding: 1px 6px;
  border-radius: 4px;
}
.lk-balance-illustration { padding: 6px 0; }
.lk-balance-graphic {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  position: relative;
  height: 60px;
  margin: 0 10px;
}
.lk-pan-wrap { width: 44%; text-align: center; z-index: 2; }
.lk-pan-contents { font-size: 13px; margin-bottom: 2px; min-height: 20px; line-height: 1.2; }
.lk-pan-plate { height: 5px; background: #0284c7; border-radius: 9999px; width: 100%; }
.lk-balance-beam {
  position: absolute;
  bottom: 12px;
  left: 10%;
  right: 10%;
  height: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  z-index: 1;
}
.lk-beam-bar { width: 100%; height: 4px; background: #475569; border-radius: 2px; }
.lk-fulcrum-triangle {
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-bottom: 16px solid #d97706;
  margin-top: 1px;
}
.lk-fulcrum-stand { width: 26px; height: 4px; background: #78350f; border-radius: 2px; }
.lk-balance-bottom { border-top: 1px dashed #e2e8f0; padding-top: 6px; margin-top: 4px; }
.lk-balance-hint { font-size: 10px; color: #64748b; margin-bottom: 4px; }
.lk-balance-formula-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f8fafc;
  border-radius: 6px;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 700;
}
.lk-balance-eq { font-size: 13px; font-weight: 900; color: #0284c7; }

/* Model 22: Pecahan 1/2 & 1/4 */
.lk-frac-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 8px 0; }
.lk-frac-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.lk-frac-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.lk-frac-badge {
  background: #e11d48;
  color: #ffffff;
  font-size: 9px;
  font-weight: 800;
  padding: 1px 6px;
  border-radius: 4px;
}
.lk-frac-title { font-size: 11px; font-weight: 800; color: #0f172a; margin: 0; }
.lk-frac-visual-box { min-height: 60px; display: flex; align-items: center; justify-content: center; padding: 4px 0; }
.lk-frac-circle {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  border: 2px solid #0f172a;
  overflow: hidden;
  display: flex;
  position: relative;
}
.lk-frac-circle.halves .frac-part {
  width: 50%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 8px;
  font-weight: 800;
}
.lk-frac-circle.halves .frac-part.left { border-right: 1.5px solid #0f172a; }
.frac-part.shaded { background: #fecdd3; color: #9f1239; }
.lk-frac-circle.quarters { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
.lk-frac-circle.quarters .frac-part {
  border: 0.5px solid #0f172a;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 7px;
  font-weight: 800;
}
.lk-frac-watermelon { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; color: #059669; }
.wm-cut-line { width: 1.5px; height: 24px; background: #dc2626; border-left: 1.5px dashed #dc2626; }
.lk-frac-bar.four-bars {
  display: flex;
  border: 2px solid #78350f;
  border-radius: 4px;
  width: 90px;
  height: 36px;
  overflow: hidden;
}
.choco-cell {
  flex: 1;
  border-right: 1px solid #78350f;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 7px;
  font-weight: 800;
  background: #fef3c7;
}
.choco-cell:last-child { border-right: none; }
.choco-cell.shaded { background: #b45309; color: #ffffff; }
.lk-frac-compare-cuts { display: flex; gap: 8px; }
.cut-option { text-align: center; font-size: 9px; }
.cut-circle {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px solid #0f172a;
  margin: 0 auto 2px auto;
}
.cut-circle.fair { background: linear-gradient(90deg, #fbcfe8 50%, #ffffff 50%); }
.cut-circle.unfair { background: linear-gradient(90deg, #fbcfe8 25%, #ffffff 25%); }
.lk-frac-set-items { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.set-sep { font-weight: 900; color: #dc2626; }
.lk-frac-info { border-top: 1px dashed #e2e8f0; padding-top: 4px; }
.lk-frac-inst { font-size: 9.5px; color: #475569; margin: 0 0 4px 0; line-height: 1.25; }
.lk-frac-write { font-size: 11px; color: #0f172a; font-weight: 700; }
.frac-val { font-size: 13px; color: #e11d48; }

/* Model 23: Pengukuran Satuan Tidak Baku */
.lk-measure-list { display: flex; flex-direction: column; gap: 8px; margin: 6px 0; }
.lk-measure-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 6px 12px;
  gap: 10px;
}
.lk-measure-item-info { display: flex; align-items: center; gap: 8px; width: 140px; }
.lk-measure-item-icon { font-size: 22px; }
.lk-measure-item-texts strong { font-size: 11px; display: block; color: #0f172a; }
.lk-measure-item-texts small { font-size: 9px; color: #64748b; }
.lk-measure-graphic-zone { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.lk-measure-object-bar { height: 10px; border-radius: 5px; }
.lk-measure-units-line { display: flex; gap: 6px; font-size: 15px; line-height: 1; }
.lk-measure-answer-wrap { display: flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700; }
.lk-measure-ans-box {
  width: 38px;
  height: 28px;
  border: 2px solid #0f172a;
  border-radius: 6px;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lk-measure-ans-unit { font-size: 10px; color: #475569; }
.lk-measure-summary-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 12px;
  background: #f8fafc;
  margin-top: 8px;
}
.lk-measure-summary-card h4 { margin: 0 0 6px 0; font-size: 11.5px; color: #0284c7; }
.lk-measure-summary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; font-size: 11px; font-weight: 700; }
.lk-summary-item { display: flex; flex-direction: column; gap: 4px; }
.lk-summary-line { border-bottom: 1.5px dashed #94a3b8; height: 18px; }

/* Model 24: Color by Math Code */
.lk-palette-banner {
  background: #f8fafc;
  border: 1.5px solid #e2e8f0;
  border-radius: 10px;
  padding: 6px 10px;
  margin-bottom: 8px;
}
.lk-palette-title { font-size: 10.5px; font-weight: 800; color: #475569; margin-bottom: 4px; }
.lk-palette-row { display: flex; justify-content: space-between; gap: 6px; }
.lk-palette-pill {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 5px;
  border: 1.5px solid #cbd5e1;
  border-radius: 6px;
  padding: 3px 6px;
  background: #ffffff;
}
.lk-pill-dot { width: 12px; height: 12px; border-radius: 50%; }
.lk-pill-meta { display: flex; flex-direction: column; line-height: 1.1; }
.lk-pill-meta strong { font-size: 10px; color: #0f172a; }
.lk-pill-meta span { font-size: 8px; color: #64748b; }
.lk-color-art-canvas {
  border: 2px solid #0f172a;
  border-radius: 12px;
  padding: 10px;
  background: #ffffff;
  text-align: center;
  margin-bottom: 8px;
}
.lk-art-title-tag { font-size: 11px; font-weight: 800; color: #6d28d9; margin-bottom: 8px; }
.lk-rocket-art-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-template-rows: repeat(5, 42px);
  gap: 6px;
  max-width: 480px;
  margin: 0 auto;
}
.art-cell {
  border: 1.5px solid #0f172a;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
  color: #1e293b;
  background: #ffffff;
}
.art-cell.rocket-nose { grid-column: 3; grid-row: 1; border-radius: 20px 20px 4px 4px; background: #fff1f2; }
.art-cell.top-star { grid-column: 2; grid-row: 1; border-radius: 50%; }
.art-cell.planet-moon { grid-column: 5; grid-row: 1; border-radius: 50%; background: #f0fdf4; }
.art-cell.wing.left { grid-column: 2; grid-row: 2 / span 2; border-radius: 16px 4px 4px 16px; background: #fef2f2; }
.art-cell.rocket-window { grid-column: 3; grid-row: 2; border-radius: 50%; background: #f0f9ff; }
.art-cell.rocket-body { grid-column: 3; grid-row: 3; background: #faf5ff; }
.art-cell.wing.right { grid-column: 4; grid-row: 2 / span 2; border-radius: 4px 16px 16px 4px; background: #fef2f2; }
.art-cell.flame.f1 { grid-column: 2; grid-row: 4; border-radius: 4px 4px 12px 12px; background: #fefce8; }
.art-cell.flame.f2 { grid-column: 3; grid-row: 4; border-radius: 4px 4px 16px 16px; background: #fefce8; }
.art-cell.flame.f3 { grid-column: 4; grid-row: 4; border-radius: 4px 4px 12px 12px; background: #fefce8; }
.art-cell.sky { background: #f0f9ff; border-style: dashed; }
.art-cell.star { border-radius: 8px; background: #fffbeb; }
.art-cell.bot-star-1 { grid-column: 1; grid-row: 5; }
.art-cell.bot-star-2 { grid-column: 5; grid-row: 5; }
.lk-color-checklist {
  border: 1.5px solid #cbd5e1;
  border-radius: 8px;
  padding: 6px 12px;
  background: #f8fafc;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 10px;
}
.lk-check-item { display: flex; align-items: center; gap: 6px; }
.lk-check-box { width: 14px; height: 14px; border: 1.5px solid #0f172a; border-radius: 3px; background: #ffffff; }
.lk-star-score { font-weight: 800; color: #d97706; font-size: 11px; }

/* Archetype: Ten-Frames (Bingkai Sepuluh) */
.lk-tf-grid-wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.lk-tf-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 8px 12px;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.lk-tf-card-label {
  font-size: 11px;
  font-weight: 800;
  color: #334155;
  width: 100%;
  text-align: left;
}
.lk-tf-frames-container {
  display: flex;
  gap: 8px;
  justify-content: center;
  align-items: center;
  width: 100%;
}
.lk-ten-frame {
  display: grid;
  grid-template-columns: repeat(5, 26px);
  grid-template-rows: repeat(2, 26px);
  border: 2px solid #1e293b;
  border-radius: 4px;
  background: #ffffff;
  overflow: hidden;
}
.lk-tf-cell {
  border-right: 1px solid #94a3b8;
  border-bottom: 1px solid #94a3b8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}
.lk-tf-cell:nth-child(5n) { border-right: none; }
.lk-tf-cell:nth-child(n+6) { border-bottom: none; }
.lk-tf-ans-box {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  font-size: 11px;
  font-weight: 700;
  color: #1e293b;
}

/* Archetype: Number Bonds (Ikatan Bilangan Part-Whole) */
.lk-nb-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.lk-nb-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 12px;
  padding: 10px 14px;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.lk-nb-tree {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 160px;
  margin: 4px auto;
}
.lk-nb-whole-node {
  width: 44px;
  height: 44px;
  border: 2.5px solid #0284c7;
  border-radius: 50%;
  background: #f0f9ff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 900;
  color: #0369a1;
  z-index: 2;
}
.lk-nb-lines-svg {
  width: 120px;
  height: 24px;
  margin: -2px 0;
}
.lk-nb-parts-row {
  display: flex;
  justify-content: space-between;
  width: 130px;
  z-index: 2;
}
.lk-nb-part-node {
  width: 40px;
  height: 40px;
  border: 2px solid #16a34a;
  border-radius: 50%;
  background: #f0fdf4;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 900;
  color: #15803d;
}
.lk-nb-node-empty {
  border-style: dashed;
  background: #ffffff;
  color: #94a3b8;
}

/* Archetype: Pictograms (Diagram Gambar) */
.lk-picto-container {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 12px;
  background: #ffffff;
}
.lk-picto-header {
  background: #f1f5f9;
  border-bottom: 1.5px solid #cbd5e1;
  padding: 6px 12px;
  font-size: 11px;
  font-weight: 800;
  color: #334155;
  display: flex;
  justify-content: space-between;
}
.lk-picto-row {
  display: flex;
  align-items: center;
  border-bottom: 1px dashed #e2e8f0;
  padding: 6px 12px;
}
.lk-picto-row:last-child { border-bottom: none; }
.lk-picto-label {
  width: 130px;
  font-size: 11px;
  font-weight: 700;
  color: #1e293b;
  flex-shrink: 0;
}
.lk-picto-icons {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  flex: 1;
  align-items: center;
  min-height: 24px;
}
.lk-picto-count-box {
  width: 42px;
  height: 24px;
  border: 1.5px dashed #94a3b8;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  color: #0284c7;
}

/* Archetype: Geometry 3D Solids */
.lk-geo3d-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 12px;
}
.lk-geo3d-card {
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  padding: 10px 14px;
  background: #ffffff;
  display: flex;
  gap: 10px;
  align-items: center;
}
.lk-geo3d-icon {
  font-size: 32px;
  width: 48px;
  height: 48px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.lk-geo3d-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}
.lk-geo3d-title {
  font-size: 12px;
  font-weight: 800;
  color: #1e293b;
}
.lk-geo3d-desc {
  font-size: 10px;
  color: #64748b;
  line-height: 1.3;
}
.lk-geo3d-input {
  border-bottom: 1.5px dashed #94a3b8;
  height: 20px;
  margin-top: 4px;
  width: 80px;
}

@media (max-width: 768px) {
  .mml-worksheet-paper {
    padding: 16px 14px;
    border-radius: 8px;
  }
  .mml-single-select-group {
    flex-direction: column;
    align-items: stretch;
    min-width: 100%;
  }
  .mml-single-tool-row-top,
  .mml-single-tool-row-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .mml-single-stepper {
    justify-content: space-between;
  }
}

/* =========================================================================
   PRINT OPTIMIZATION & CLEAN PAGE LAYOUT
   ========================================================================= */
@media print {
  #wpadminbar,
  #adminmenumain,
  #adminmenuback,
  #adminmenuwrap,
  #wpfooter,
  .mml-navbar,
  .mml-khan-sidebar,
  .mml-khan-top-header,
  .mml-single-toolbar,
  .mml-worksheet-key-panel,
  .mml-hub-hero,
  .mml-hub-view-mode-bar,
  .mml-hub-toolbar,
  .mml-modal,
  .mml-loading-spinner {
    display: none !important;
  }

  body {
    background: #ffffff !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .print-page-sheet {
    page-break-after: always !important;
    page-break-inside: avoid !important;
    min-height: 275mm !important;
    margin: 0 !important;
    box-shadow: none !important;
  }
}

/* Interactive Sub-Unit Print Row Enhancement */
.mml-print-row {
  cursor: pointer;
  transition: all 0.15s ease;
}
.mml-print-row:hover {
  background: #dcfce7;
  border-color: #4ade80;
  box-shadow: 0 2px 6px rgba(22, 163, 74, 0.15);
}

.mml-modal[style*="display: block"],
.mml-modal[style*="display: flex"] {
  display: flex !important;
}
.mml-print-dialog-box {
  margin: auto;
}

/* Sound Completely Disabled per User Preference */
.mml-slide-audio-btn,
.mml-point-speak-btn,
.mml-speak-btn,
#mml-slide-speak-btn,
.mml-ex-audio-btn,
.mml-audio-btn {
  display: none !important;
}

/* Buku Siswa Rich Pedagogical Presentation Cards */
.mml-book-ref-badge {
  font-family: inherit;
  letter-spacing: 0.2px;
}
.mml-cerita-card {
  box-shadow: 0 1px 3px rgba(245, 158, 11, 0.1);
}
.mml-aturan-card {
  box-shadow: 0 1px 3px rgba(34, 197, 94, 0.1);
}
.mml-tahukah-card {
  box-shadow: 0 1px 3px rgba(192, 38, 211, 0.1);
}
.mml-tag-badge {
  display: inline-block;
  transition: transform 0.15s ease;
}
.mml-tag-badge:hover {
  transform: translateY(-1px);
}

/* ==========================================================================
   Buku Siswa Digital Terbingkai (Kurikulum Merdeka) Modal & Embed Styles
   ========================================================================== */
.mml-book-banner-bar {
  margin: 14px 0 18px 0;
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
  border: 1.5px solid #93c5fd;
  border-radius: 12px;
  padding: 12px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.08);
}

.mml-book-banner-info {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 260px;
}

.mml-book-banner-icon {
  font-size: 28px;
  line-height: 1;
}

.mml-book-banner-info strong {
  display: block;
  font-size: 14px;
  font-weight: 800;
  color: #1e3a8a;
  line-height: 1.3;
}

.mml-book-banner-info span {
  display: block;
  font-size: 12px;
  color: #2563eb;
  margin-top: 2px;
}

.mml-book-banner-btn {
  background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);
  color: #ffffff;
  border: none;
  border-radius: 8px;
  padding: 9px 18px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(29, 78, 216, 0.25);
  transition: all 0.15s ease;
  white-space: nowrap;
}

.mml-book-banner-btn:hover {
  background: #1e3a8a;
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(29, 78, 216, 0.35);
}

/* Sub-Unit & Unit Book Buttons */
.mml-book-row {
  background: #f0f9ff;
  border: 1.5px solid #bae6fd;
  border-radius: 8px;
  padding: 8px 12px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-book-row:hover {
  background: #e0f2fe;
  border-color: #38bdf8;
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(2, 132, 199, 0.12);
}

.mml-book-banner-bar {
  cursor: pointer;
}

.mml-book-row .practice-left .text {
  color: #0369a1;
  font-weight: 700;
}

.mml-book-row .mml-btn-open-book-modal {
  background: #0284c7;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease;
}

.mml-book-row .mml-btn-open-book-modal:hover {
  background: #0369a1;
}

.mml-unit-book-btn {
  background: #f0f9ff;
  color: #0369a1;
  border: 1.5px solid #7dd3fc;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
}

.mml-unit-book-btn:hover {
  background: #e0f2fe;
  border-color: #38bdf8;
  color: #0284c7;
}

.mml-slide-book-btn {
  background: #f0f9ff;
  color: #0284c7;
  border: 1.5px solid #bae6fd;
  border-radius: 6px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.15s ease;
}

.mml-slide-book-btn:hover {
  background: #e0f2fe;
  border-color: #7dd3fc;
  color: #0369a1;
}

/* Framed Book Viewer Box inside Slide 1 */
.mml-framed-book-box {
  margin: 12px 0 16px 0;
  border: 2px solid #bfdbfe;
  background: #eff6ff;
  border-radius: 12px;
  padding: 10px 12px;
}

.mml-framed-book-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

.mml-frame-expand-btn {
  background: #2563eb;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease;
}

.mml-frame-expand-btn:hover {
  background: #1d4ed8;
}

.mml-framed-book-viewport {
  width: 100%;
  height: 380px;
  border-radius: 8px;
  border: 1px solid #cbd5e1;
  overflow: hidden;
  background: #f8fafc;
}

.mml-book-iframe-embed {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

/* Fullscreen Framed Book Reader Modal */
.mml-book-dialog-box {
  width: 94vw;
  max-width: 1120px;
  height: 92vh;
  max-height: 900px;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 20px 45px rgba(15, 23, 42, 0.3);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  margin: auto;
  position: relative;
  z-index: 10001;
}

.mml-book-dialog-box .mml-modal-head {
  padding: 14px 20px;
  background: #ffffff;
  border-bottom: 1px solid #e2e8f0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}

.mml-book-nav-bar {
  background: #f8fafc;
  border-bottom: 1.5px solid #e2e8f0;
  padding: 8px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  flex-shrink: 0;
}

.mml-book-chapters-scroll {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: thin;
}

.mml-book-chap-btn {
  background: #ffffff;
  color: #334155;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.12s ease;
}

.mml-book-chap-btn:hover {
  background: #f1f5f9;
  border-color: #94a3b8;
  color: #0f172a;
}

.mml-book-chap-btn.active {
  background: #1865f2;
  color: #ffffff;
  border-color: #1865f2;
  box-shadow: 0 2px 4px rgba(24, 101, 242, 0.25);
}

.mml-book-page-jump {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.mml-book-iframe-wrapper {
  flex: 1;
  width: 100%;
  height: 100%;
  background: #475569;
  position: relative;
  overflow: hidden;
}

#mml-book-main-iframe {
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}


/* ==========================================================================
   BUKU SISWA DIGITAL INTERAKTIF (ATM CIRI KHAS PLATFORM)
   Ramah Anak, Interaktif, Mandiri & Responsif
   ========================================================================== */
.mml-atm-book-section {
  background: #ffffff;
  border: 2px solid #e2e8f0;
  border-radius: 16px;
  padding: 16px;
  margin: 14px 0;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}
.mml-atm-book-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #eff6ff;
  border: 1.5px solid #bfdbfe;
  color: #1d4ed8;
  font-weight: 800;
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 9999px;
  margin-bottom: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.mml-atm-playground-box {
  background: linear-gradient(180deg, #f0fdf4 0%, #e0f2fe 100%);
  border: 2px solid #bae6fd;
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 16px;
}
.mml-atm-scene-header {
  margin-bottom: 12px;
}
.mml-atm-scene-title {
  font-size: 17px;
  font-weight: 800;
  color: #0369a1;
}
.mml-atm-scene-sub {
  font-size: 13.5px;
  color: #475569;
  font-weight: 600;
  margin-top: 2px;
}
.mml-atm-clickable-items {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
}
.mml-atm-item-btn {
  flex: 1 1 calc(20% - 10px);
  min-width: 105px;
  background: #ffffff;
  border: 2px solid #cbd5e1;
  border-radius: 12px;
  padding: 12px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}
.mml-atm-item-btn:hover {
  transform: translateY(-3px) scale(1.03);
  border-color: #3b82f6;
  box-shadow: 0 6px 14px rgba(59, 130, 246, 0.15);
}
.mml-atm-item-btn.active {
  border-color: #f59e0b;
  background: #fffbeb;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.25);
  transform: scale(1.04);
}
.atm-item-emoji {
  font-size: 26px;
  line-height: 1.2;
}
.atm-item-label {
  font-size: 12px;
  font-weight: 800;
  color: #1e293b;
  text-align: center;
}
.mml-atm-count-banner {
  background: #ffffff;
  border: 1.5px solid #fde68a;
  border-left: 4px solid #f59e0b;
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 14.5px;
  color: #78350f;
  box-shadow: 0 2px 8px rgba(245, 158, 11, 0.08);
}
.mml-atm-tenframe-card {
  background: #ffffff;
  border: 2px solid #dbeafe;
  border-radius: 14px;
  padding: 14px 16px;
  margin-top: 14px;
}
.mml-atm-tf-header {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 12px;
}
.atm-tf-title {
  font-size: 15.5px;
  font-weight: 800;
  color: #1e40af;
}
.atm-tf-hint {
  font-size: 13px;
  color: #64748b;
  font-weight: 600;
}
.mml-atm-tf-grid {
  display: flex;
  flex-direction: column;
  gap: 6px;
  max-width: 320px;
  margin: 0 auto 12px auto;
  background: #f8fafc;
  padding: 8px;
  border-radius: 12px;
  border: 2px solid #cbd5e1;
}
.mml-atm-tf-row {
  display: flex;
  gap: 6px;
  justify-content: center;
}
.mml-atm-tf-slot {
  width: 52px;
  height: 52px;
  background: #ffffff;
  border: 2px solid #94a3b8;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  cursor: pointer;
  user-select: none;
  transition: all 0.15s ease;
}
.mml-atm-tf-slot:hover {
  border-color: #3b82f6;
  background: #eff6ff;
  transform: scale(1.05);
}
.mml-atm-tf-slot.filled {
  background: #fef3c7;
  border-color: #f59e0b;
}
.mml-atm-tf-controls {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.mml-tf-ctrl-btn {
  padding: 7px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  border: none;
  transition: all 0.15s ease;
}
.mml-tf-ctrl-btn.add {
  background: #16a34a;
  color: #fff;
}
.mml-tf-ctrl-btn.add:hover {
  background: #15803d;
}
.mml-tf-ctrl-btn.sub {
  background: #ea580c;
  color: #fff;
}
.mml-tf-ctrl-btn.sub:hover {
  background: #c2410c;
}
.mml-tf-ctrl-btn.clear {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #cbd5e1;
}
.mml-tf-ctrl-btn.clear:hover {
  background: #e2e8f0;
}
.mml-atm-tf-status {
  text-align: center;
  font-size: 15px;
  font-weight: 700;
  color: #1e293b;
  padding: 8px 12px;
  background: #eff6ff;
  border-radius: 8px;
  border: 1px solid #bfdbfe;
}
/* Number Explorer */
.mml-atm-num-explorer-wrap {
  margin-top: 14px;
}
.mml-atm-num-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.mml-atm-num-nav .nav-label {
  font-size: 13.5px;
  font-weight: 700;
  color: #475569;
}
.mml-atm-num-btn {
  padding: 6px 14px;
  background: #f1f5f9;
  border: 2px solid #cbd5e1;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 800;
  color: #334155;
  cursor: pointer;
  transition: all 0.15s ease;
}
.mml-atm-num-btn:hover {
  border-color: #3b82f6;
  background: #eff6ff;
}
.mml-atm-num-btn.active {
  background: #2563eb;
  color: #fff;
  border-color: #1d4ed8;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.25);
}
.mml-atm-num-card {
  background: #ffffff;
  border: 2px solid #bfdbfe;
  border-radius: 14px;
  padding: 16px;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.08);
}
/* ATM Chapter Navigator & Topics */
.mml-atm-topic-tab {
  padding: 6px 14px;
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-radius: 9999px;
  font-size: 12.5px;
  font-weight: 700;
  color: #475569;
  cursor: pointer;
  transition: all 0.15s ease;
}
.mml-atm-topic-tab:hover {
  border-color: #3b82f6;
  color: #1d4ed8;
  background: #eff6ff;
}
.mml-atm-topic-tab.active {
  background: #2563eb !important;
  color: #ffffff !important;
  border-color: #1d4ed8 !important;
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.25);
}
.mml-atm-next-sec-btn {
  transition: all 0.15s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.mml-atm-next-sec-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.mml-atm-comp-btn {
  transition: all 0.15s ease;
}
.mml-atm-comp-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08);
}
.mml-train-opt-btn {
  transition: all 0.15s ease;
}
.mml-train-opt-btn:hover {
  border-color: #2563eb !important;
  background: #eff6ff !important;
  transform: scale(1.05);
}
.mml-nb-part-btn {
  padding: 6px 14px;
  background: #ffffff;
  border: 1.5px solid #d8b4fe;
  border-radius: 9999px;
  font-size: 13px;
  font-weight: 700;
  color: #7e22ce;
  cursor: pointer;
  transition: all 0.15s ease;
}
.mml-nb-part-btn:hover {
  background: #f3e8ff;
  border-color: #a855f7;
}
.mml-nb-part-btn.active {
  background: #9333ea !important;
  color: #ffffff !important;
  border-color: #7e22ce !important;
  box-shadow: 0 2px 6px rgba(147, 51, 234, 0.25);
}
.mml-step-bar {
  transition: all 0.15s ease;
}
.mml-step-bar:hover {
  opacity: 0.85;
  transform: scaleY(1.08);
  transform-origin: bottom;
}
/* Matching Game */
.match-game-arena {
  display: flex;
  gap: 16px;
  margin-top: 12px;
}
.match-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.match-card {
  padding: 12px;
  background: #f8fafc;
  border: 2px solid #cbd5e1;
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.15s ease;
}
.match-card:hover {
  border-color: #3b82f6;
  background: #eff6ff;
}
.match-card.selected {
  border-color: #2563eb;
  background: #dbeafe;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
}
.match-card.matched {
  border-color: #16a34a !important;
  background: #dcfce7 !important;
  color: #15803d !important;
  pointer-events: none;
}
.dice-quick-drill-box {
  background: #faf5ff;
  border: 2px solid #e9d5ff;
  border-radius: 12px;
  padding: 14px;
}
.dice-arena {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 10px 0;
}
.dice-display {
  font-size: 52px;
  line-height: 1;
  background: #fff;
  border: 2px solid #c084fc;
  border-radius: 12px;
  padding: 6px 16px;
  box-shadow: 0 4px 10px rgba(192, 132, 252, 0.2);
}
.dice-roll-btn {
  padding: 8px 16px;
  background: #9333ea;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-weight: 800;
  cursor: pointer;
  font-size: 13.5px;
}
.dice-roll-btn:hover {
  background: #7e22ce;
}
.dice-options {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.dice-opt-btn {
  width: 44px;
  height: 44px;
  background: #fff;
  border: 2px solid #cbd5e1;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 800;
  color: #1e293b;
  cursor: pointer;
  transition: all 0.15s ease;
}
.dice-opt-btn:hover {
  border-color: #9333ea;
  background: #f3e8ff;
}
.mml-book-mode-switch {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
  background: #f1f5f9;
  padding: 4px;
  border-radius: 8px;
}
.mml-book-mode-btn {
  flex: 1;
  padding: 8px 14px;
  border: none;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  background: transparent;
  color: #475569;
  transition: all 0.15s ease;
}
.mml-book-mode-btn.active {
  background: #2563eb;
  color: #fff;
  box-shadow: 0 2px 6px rgba(37, 99, 235, 0.2);
}

/* ==========================================================================
   MODE 1: PETUALANGAN TANGGA JUARA (LATIHAN BERTAHAP)
   ========================================================================== */
.mml-mastery-journey-mode {
  background: linear-gradient(180deg, #ffffff 0%, #f0fdf4 100%) !important;
  border: 2px solid #86efac !important;
  box-shadow: 0 8px 24px rgba(34, 197, 94, 0.08) !important;
}
.mml-journey-stepper-wrap {
  margin: 12px 0 20px 0;
  background: #ffffff;
  border: 1.5px solid #bbf7d0;
  border-radius: 14px;
  padding: 12px 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
}
.mml-journey-steps {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
}
.journey-step-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  position: relative;
  z-index: 2;
  flex: 1;
}
.journey-step-circle {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #f1f5f9;
  border: 2px solid #cbd5e1;
  color: #64748b;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 14px;
  transition: all 0.3s ease;
}
.journey-step-item.active .journey-step-circle {
  background: #059669;
  border-color: #047857;
  color: #fff;
  transform: scale(1.15);
  box-shadow: 0 0 0 4px rgba(5, 150, 105, 0.2);
}
.journey-step-item.completed .journey-step-circle {
  background: #10b981;
  border-color: #059669;
  color: #fff;
}
.journey-step-label {
  font-size: 11px;
  font-weight: 700;
  color: #64748b;
  text-align: center;
}
.journey-step-item.active .journey-step-label {
  color: #047857;
  font-weight: 800;
}
.journey-conn-line {
  position: absolute;
  top: 18px;
  left: 30px;
  right: 30px;
  height: 3px;
  background: #e2e8f0;
  z-index: 1;
}
.journey-conn-line-fill {
  height: 100%;
  background: #10b981;
  transition: width 0.3s ease;
}
.mml-mastery-journey-mode .mml-option-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border: 2px solid #cbd5e1;
  border-radius: 12px;
  background: #ffffff;
  font-size: 17px;
  font-weight: 700;
}
.mml-mastery-journey-mode .mml-option-card:hover {
  border-color: #059669;
  background: #f0fdf4;
  transform: translateY(-2px);
}
.mml-opt-pin {
  width: 30px;
  height: 30px;
  border-radius: 6px;
  background: #f1f5f9;
  color: #475569;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  flex-shrink: 0;
}
.mml-mastery-journey-mode .mml-option-card.selected .mml-opt-pin {
  background: #059669;
  color: #fff;
}

/* ==========================================================================
   MODE 2: ARENA BALAP KILAT (SPRINT KUMON & GASING)
   ========================================================================== */
.mml-arcade-sprint-mode {
  background: #0f172a !important;
  color: #f8fafc !important;
  border: 2px solid #f59e0b !important;
  box-shadow: 0 0 30px rgba(245, 158, 11, 0.25) !important;
}
.mml-arcade-sprint-mode .mml-player-header {
  border-bottom: 1.5px solid #334155;
}
.mml-arcade-sprint-mode .mml-icon-btn {
  background: #1e293b;
  color: #94a3b8;
  border-color: #334155;
}
.mml-arcade-sprint-mode .mml-icon-btn:hover {
  background: #334155;
  color: #fff;
}
.mml-sprint-dashboard-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex: 1;
  margin: 0 15px;
}
.mml-sprint-timer-badge {
  background: #1e293b;
  border: 2px solid #f59e0b;
  color: #fbbf24;
  font-family: 'Courier New', Courier, monospace;
  font-size: 18px;
  font-weight: 900;
  padding: 6px 14px;
  border-radius: 8px;
  letter-spacing: 1px;
  animation: pulse-border 1.5s infinite;
}
.mml-sprint-speed-meter {
  background: #1e293b;
  border: 1.5px solid #334155;
  color: #38bdf8;
  font-size: 13px;
  font-weight: 800;
  padding: 6px 12px;
  border-radius: 20px;
}
.mml-sprint-combo-badge {
  background: linear-gradient(135deg, #ea580c 0%, #dc2626 100%);
  color: #fff;
  font-size: 14px;
  font-weight: 900;
  padding: 6px 14px;
  border-radius: 20px;
  box-shadow: 0 0 12px rgba(234, 88, 12, 0.4);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.mml-arcade-flashcard {
  background: #1e293b;
  border: 2px solid #3b82f6;
  border-radius: 16px;
  padding: 24px 16px;
  text-align: center;
  margin-bottom: 20px;
  box-shadow: inset 0 0 20px rgba(59, 130, 246, 0.15);
}
.mml-arcade-formula {
  font-size: 38px;
  font-weight: 900;
  color: #f8fafc;
  letter-spacing: 2px;
}
.mml-arcade-gasing-hint {
  font-size: 13.5px;
  font-weight: 700;
  color: #fbbf24;
  margin-top: 8px;
}
.mml-arcade-sprint-mode .mml-options-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.mml-arcade-sprint-mode .mml-option-card {
  background: #1e293b;
  border: 2px solid #475569;
  color: #f8fafc;
  font-size: 26px;
  font-weight: 900;
  padding: 22px;
  border-radius: 14px;
  text-align: center;
  cursor: pointer;
  transition: all 0.12s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}
.mml-arcade-sprint-mode .mml-option-card:hover {
  border-color: #f59e0b;
  background: #334155;
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 6px 16px rgba(245, 158, 11, 0.3);
}
.mml-arcade-sprint-mode .mml-option-card.correct-flash {
  background: #16a34a !important;
  border-color: #22c55e !important;
  color: #fff !important;
  transform: scale(1.06);
  box-shadow: 0 0 20px rgba(34, 197, 94, 0.6) !important;
}
.mml-arcade-sprint-mode .mml-option-card.wrong-flash {
  background: #dc2626 !important;
  border-color: #ef4444 !important;
  color: #fff !important;
  animation: shake 0.3s ease;
}
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-6px); }
  40%, 80% { transform: translateX(6px); }
}
@keyframes pulse-border {
  0%, 100% { border-color: #f59e0b; box-shadow: 0 0 8px rgba(245, 158, 11, 0.3); }
  50% { border-color: #fbbf24; box-shadow: 0 0 16px rgba(251, 191, 36, 0.6); }
}
