.saveStatus {
  padding: 12px 16px;
  margin: 12px 0;
  border-radius: 10px;
  background: #edf5f7;
  color: #004f6e;
  font-size: 14px;
  line-height: 1.5;
}
.saveStatus.error {
  background: #fff0ed;
  color: #9d2c20;
}
.saveStatus.success {
  background: #effaf5;
  color: #147a54;
}
.saveStatus button {
  margin-left: 8px;
  padding: 6px 10px;
  border: 1px solid currentColor;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
button:disabled {
  cursor: wait;
  opacity: 0.65;
}
:focus-visible {
  outline: 3px solid #08799c !important;
  outline-offset: 3px;
}
.practiceNotice {
  color: #526d7a;
  font-size: 13px;
  line-height: 1.5;
  margin: 12px 0;
}
.empty {
  padding: 16px;
  color: #526d7a;
}

/* Code Editor Toolbar & Dark Mode */
.editorControls {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  gap: 8px;
  flex-wrap: wrap;
}
.editorControlsLeft {
  display: flex;
  align-items: center;
  gap: 8px;
}
.editorControlsRight {
  display: flex;
  align-items: center;
  gap: 6px;
}
.editorLangBadge {
  font-size: 11px;
  font-weight: 750;
  text-transform: uppercase;
  background: #e1f1f7;
  color: #004f6e;
  padding: 3px 8px;
  border-radius: 6px;
  letter-spacing: 0.5px;
}
.draftIndicator {
  font-size: 12px;
  color: #557280;
}
.draftIndicator.saved {
  color: #147a54;
}
.editorBtn {
  background: #ffffff;
  border: 1px solid #d0e1ea;
  color: #153b4b;
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.editorBtn:hover {
  background: #eef7fb;
  border-color: #9acde4;
}
.editorDark {
  background: #181f26 !important;
  color: #e6edf3 !important;
  border-color: #303e4d !important;
  caret-color: #58a6ff !important;
}
.consoleDark {
  background: #0d1217 !important;
  color: #7ee787 !important;
  border-color: #212c37 !important;
}

/* Mobile Bottom Navigation Bar */
.mobileBottomNav {
  display: none;
}
@media (max-width: 720px) {
  body {
    padding-bottom: 64px !important;
  }
  .mobileBottomNav {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60px;
    background: #ffffff;
    border-top: 1px solid #d4e3eb;
    box-shadow: 0 -4px 16px rgba(11, 44, 69, 0.08);
    z-index: 999;
    justify-content: space-around;
    align-items: center;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  .mobileNavItem {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #637d8b;
    font-size: 11px;
    font-weight: 650;
    padding: 6px 10px;
    gap: 3px;
    transition: color 0.15s ease;
    flex: 1;
    text-align: center;
  }
  .mobileNavItem svg {
    width: 20px;
    height: 20px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .mobileNavItem.active,
  .mobileNavItem:hover {
    color: #004f6e;
  }
  .mobileNavItem.active svg {
    stroke-width: 2.4;
  }
}

/* Streak Pill & Gamification */
.streakPill {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(254, 243, 199, 0.95);
  color: #92400e;
  border: 1px solid #fde68a;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  user-select: none;
  transition: all 0.2s ease;
  line-height: 1;
}
.streakPill:hover, .streakPill:focus-within {
  background: #fef08a;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(217, 119, 6, 0.15);
}
.streakFlame {
  font-size: 15px;
  animation: flamePulse 1.8s infinite ease-in-out;
}
@keyframes flamePulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.15) rotate(4deg); }
}
.streakDropdown {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 190px;
  background: #ffffff;
  border: 1px solid #d4e3eb;
  border-radius: 12px;
  padding: 12px 14px;
  box-shadow: 0 10px 25px rgba(11, 44, 69, 0.15);
  z-index: 1000;
  color: #173746;
  text-align: right;
  direction: rtl;
}
.streakPill:hover .streakDropdown,
.streakPill:focus-within .streakDropdown {
  display: block;
}
.streakDropTitle {
  font-size: 11px;
  color: #637d8b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}
.streakDropStreak {
  font-size: 14px;
  font-weight: 750;
  color: #b45309;
  margin-bottom: 8px;
}
.streakDropGoalLabel {
  font-size: 12px;
  color: #486270;
  margin-bottom: 5px;
}
.streakDropBar {
  width: 100%;
  height: 6px;
  background: #e2eef2;
  border-radius: 999px;
  overflow: hidden;
}
.streakDropFill {
  height: 100%;
  background: linear-gradient(90deg, #f59e0b, #10b981);
  border-radius: 999px;
  transition: width 0.4s ease;
}

/* Lab Zen / Fullscreen Mode */
.labZenFullscreen {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10000 !important;
  background: #f8fafc !important;
  padding: 24px !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  overflow-y: auto !important;
}
.labZenFullscreen .editor {
  flex: 1 1 350px !important;
  min-height: 380px !important;
  font-size: 15px !important;
}
.labZenFullscreen.editorDark {
  background: #0d161d !important;
}

/* Expected vs Actual Diff Display */
.diffContainer {
  margin-top: 12px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 12px;
  text-align: left;
  direction: ltr;
}
@media (max-width: 640px) {
  .diffContainer {
    grid-template-columns: 1fr;
  }
}
.diffBox {
  border-radius: 8px;
  padding: 8px 12px;
  border: 1px solid;
  overflow-x: auto;
}
.diffBoxHeader {
  font-weight: 700;
  margin-bottom: 4px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.diffActual {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}
.diffExpected {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #166534;
}
