/**
 * IELTS Academic & General Training Listening Full Test Simulator CSS
 * Standard 40 Questions • Audio Dock Controller • 4 Parts • High-Performance CD-IELTS Ergonomics
 */

:root {
  --simulator-font-size: 16px;
  --audio-bar-height: 56px;
}

* {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  background-color: #0f172a;
  color: #1e293b;
  -webkit-font-smoothing: antialiased;
}

.exam-container {
  display: flex;
  flex-direction: column;
  height: 100vh;
  width: 100vw;
  overflow: hidden;
  background-color: #f1f5f9;
}

/* -------------------------------------------------------------
   EXAMINATION HEADER
------------------------------------------------------------- */
.exam-header {
  flex: 0 0 54px;
  background: #0b1120;
  border-bottom: 1px solid #1e293b;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
  color: #f8fafc;
  z-index: 40;
  user-select: none;
  gap: 0.75rem;
}

.header-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

/* 4-Part Tab Strip */
.part-tabs-container {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  background: #020617;
  padding: 3px;
  border-radius: 0.5rem;
  border: 1px solid #1e293b;
}

.part-tab-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.75rem;
  border-radius: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #94a3b8;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.part-tab-btn:hover {
  color: #f8fafc;
  background: rgba(255, 255, 255, 0.05);
}

.part-tab-btn.active {
  background: #0369a1;
  color: #ffffff;
  box-shadow: 0 2px 8px rgba(3, 105, 161, 0.3);
}

.tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6875rem;
  padding: 0.1rem 0.4rem;
  border-radius: 9999px;
  background: #1e293b;
  color: #cbd5e1;
  font-weight: 700;
}

.part-tab-btn.active .tab-badge {
  background: rgba(255, 255, 255, 0.2);
  color: #ffffff;
}

/* Header Right Actions */
.header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}

.timer-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.7rem;
  border-radius: 0.5rem;
  background: #0f172a;
  border: 1px solid #334155;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-weight: 700;
  font-size: 0.9375rem;
  color: #38bdf8;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.timer-pill.urgent-warning {
  background: rgba(245, 158, 11, 0.15);
  border-color: #f59e0b;
  color: #fbbf24;
}

.timer-pill.urgent-critical {
  background: rgba(239, 68, 68, 0.2);
  border-color: #ef4444;
  color: #f87171;
  animation: timerPulse 1s infinite alternate;
}

@keyframes timerPulse {
  0% { transform: scale(1); }
  100% { transform: scale(1.03); }
}

/* -------------------------------------------------------------
   PERSISTENT AUDIO DOCK PLAYER
------------------------------------------------------------- */
.audio-dock-bar {
  display: none !important;
  flex: 0 0 var(--audio-bar-height);
  background: #0f172a;
  border-bottom: 1px solid #334155;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.25rem;
  color: #f8fafc;
  z-index: 30;
  gap: 1rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.audio-track-info {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-width: 170px;
}

.audio-pulse-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #10b981;
}

.audio-pulse-dot.playing {
  animation: pulseDot 1.4s infinite ease-in-out;
}

@keyframes pulseDot {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.4); opacity: 0.7; }
}

.audio-track-title {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #e2e8f0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.audio-track-part {
  font-size: 0.6875rem;
  color: #38bdf8;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
}

/* Audio Controls Center */
.audio-controls-center {
  flex: 1;
  max-width: 720px;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.audio-btn {
  background: transparent;
  border: none;
  color: #94a3b8;
  cursor: pointer;
  padding: 4px;
  border-radius: 0.375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
}

.audio-btn:hover {
  color: #f8fafc;
  background: rgba(255, 255, 255, 0.1);
}

.audio-play-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #0284c7;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(2, 132, 199, 0.4);
  transition: all 0.15s ease;
}

.audio-play-btn:hover {
  background: #0369a1;
  transform: scale(1.05);
}

.audio-scrub-container {
  flex: 1;
  display: flex;
  align-items: center;
  position: relative;
  height: 24px;
  cursor: pointer;
}

.audio-scrub-track {
  width: 100%;
  height: 6px;
  background: #334155;
  border-radius: 9999px;
  position: relative;
  overflow: hidden;
}

.audio-scrub-progress {
  height: 100%;
  width: 0%;
  background: #38bdf8;
  border-radius: 9999px;
  transition: width 0.1s linear;
}

.audio-time-display {
  font-family: ui-monospace, SFMono-Regular, monospace;
  font-size: 0.75rem;
  font-weight: 600;
  color: #94a3b8;
  white-space: nowrap;
  min-width: 80px;
  text-align: right;
}

.audio-speed-btn {
  font-size: 0.6875rem;
  font-weight: 700;
  background: #1e293b;
  border: 1px solid #334155;
  color: #e2e8f0;
  padding: 2px 7px;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.audio-speed-btn:hover {
  background: #334155;
  color: #ffffff;
}

/* -------------------------------------------------------------
   MAIN EXAMINATION CONTENT AREA
------------------------------------------------------------- */
/* -------------------------------------------------------------
   MAIN EXAMINATION CONTENT AREA (AUTHENTIC DUAL-PANE SPLIT SCREEN)
------------------------------------------------------------- */
.content-panes {
  flex: 1;
  min-height: 0;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, calc(50% - 3px)) 6px minmax(0, calc(50% - 3px));
  height: calc(100vh - 110px);
  overflow: hidden;
  background-color: #0f172a;
  padding: 0 !important;
}

/* -------------------------------------------------------------
   MAIN EXAMINATION CONTENT AREA: OFFICIAL CD-IELTS SINGLE VIEW SCREEN
------------------------------------------------------------- */
.content-panes.rte-single-view,
.real-exam-page .content-panes {
  display: block !important;
  width: 100% !important;
  height: calc(100vh - 110px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  background-color: #f8fafc;
  padding: 0 !important;
  scroll-behavior: smooth;
}

.pane.single-pane,
.rte-single-view .pane {
  display: block;
  width: 100% !important;
  min-height: 100%;
  height: auto;
  overflow-y: visible !important;
  padding: 2rem 1.25rem 6.5rem 1.25rem;
  background-color: #f8fafc;
  box-sizing: border-box;
}

@media (min-width: 640px) {
  .pane.single-pane,
  .rte-single-view .pane {
    padding: 2.5rem 2.5rem 7.5rem 2.5rem;
  }
}

.part-single-layout {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

.part-single-layout .questions-section-block,
.part-single-layout .questions-section {
  width: 100%;
  position: relative;
}

/* Seamless Continuous Flow: Neutralize harsh horizontal rules & dividing lines between question blocks */
.part-single-layout .right-section {
  border-top: none !important;
  padding-top: 0 !important;
  margin-top: 1.5rem !important;
}

.part-single-layout .right-section > .questions-content > div > .border-b,
.part-single-layout .right-section .border-b.border-slate-200,
.part-single-layout .right-section div[class*="border-b"] {
  border-bottom: none !important;
  padding-bottom: 0.25rem !important;
  margin-bottom: 0.75rem !important;
}

/* Suppress redundant secondary page/test titles in mid-section */
.part-single-layout .right-section > .questions-content > div > .border-b > h2,
.part-single-layout .right-section > .questions-content > div > .border-b > h3,
.part-single-layout .right-section .border-b > h2,
.part-single-layout .right-section h2.tracking-tight,
.part-single-layout .right-section h2.font-black {
  display: none !important;
}

/* Harmonious Card Spacing within Continuous Stream */
.part-single-layout .bg-white.rounded-2xl {
  margin-bottom: 1.25rem !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

/* Subtle inline section badges for Questions 6-10 / 15-20 / etc */
.part-single-layout .right-section span[class*="bg-"][class*="-100"] {
  font-size: 0.75rem;
  letter-spacing: 0.04em;
  padding: 0.25rem 0.65rem;
}

/* Soften Advice Callout Boxes in continuous single-column flow */
.part-single-layout div[class*="bg-"][class*="-50"]:has(svg):not(.q-item):not(.bg-white) {
  margin-top: 1.25rem !important;
  margin-bottom: 1.25rem !important;
  border-radius: 0.75rem !important;
  padding: 0.85rem 1.1rem !important;
}

/* Neutralize legacy fixed-height utility constraints on injected parts in single-view */
.single-pane .h-full,
.rte-single-view .h-full {
  height: auto !important;
  min-height: 0 !important;
}

/* Part 4 Authentic Continuous Lecture Monologue Section */
.part-single-layout .continuous-part4-section .bg-white.rounded-2xl {
  padding: 1.75rem 2rem !important;
  margin-bottom: 1.5rem !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

.part-single-layout .continuous-part4-section .bg-white p.font-bold {
  margin-top: 1.25rem !important;
  margin-bottom: 0.5rem !important;
  color: #0f172a !important;
}

html.theme-inverted .part-single-layout .continuous-part4-section .bg-white p.font-bold {
  color: #f8fafc !important;
}

html.theme-yellow-on-black .part-single-layout .continuous-part4-section .bg-white p.font-bold {
  color: #facc15 !important;
}

/* Authentic CD-IELTS Single View Theme Adaptation */
html.theme-inverted .content-panes.rte-single-view,
html.theme-inverted .real-exam-page .content-panes,
html.theme-inverted .pane.single-pane,
html.theme-inverted .rte-single-view .pane {
  background-color: #000000 !important;
  color: #ffffff !important;
}

html.theme-inverted .part-single-layout .border-slate-200 {
  border-color: #334155 !important;
}

html.theme-yellow-on-black .content-panes.rte-single-view,
html.theme-yellow-on-black .real-exam-page .content-panes,
html.theme-yellow-on-black .pane.single-pane,
html.theme-yellow-on-black .rte-single-view .pane {
  background-color: #000000 !important;
  color: #facc15 !important;
}

html.theme-yellow-on-black .part-single-layout .border-slate-200 {
  border-color: #854d0e !important;
}

.pane {
  overflow-y: auto;
  overflow-x: hidden;
  height: 100%;
  scroll-behavior: smooth;
  font-size: var(--simulator-font-size);
  position: relative;
  box-sizing: border-box;
}

#left-pane {
  background-color: #fdfdfd;
  padding: 1.5rem 2rem 5rem 2rem;
}

#right-pane {
  background-color: #f8fafc;
  /* Generous 5.5rem right padding guarantees questions are NEVER covered by the floating toolkit (#geToolkitContainer) */
  padding: 1.5rem 5.5rem 5rem 2rem !important;
  border-left: 1px solid #e2e8f0;
}

.splitter {
  background-color: #cbd5e1;
  cursor: col-resize;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  transition: background-color 0.15s ease;
}

.splitter:hover,
.splitter.active {
  background-color: #0284c7;
}

.splitter-handle {
  width: 2px;
  height: 32px;
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 9999px;
}

.part-pane-viewport {
  display: none;
  width: 100%;
}

.part-pane-viewport.active {
  display: block;
  animation: emhPaneFadeIn 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

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

/* Question Items & Section Blocks */
.q-item,
.question-block {
  padding: 1.25rem 1.5rem;
  border-radius: 0.75rem;
  transition: all 0.2s ease;
  background-color: #ffffff;
  border: 1.5px solid #e2e8f0;
  margin-bottom: 1.25rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.q-item.highlight-focus {
  border-color: #0284c7;
  box-shadow: 0 0 0 3px rgba(2, 132, 199, 0.25);
}

/* -------------------------------------------------------------
   EXERCISE LAYOUT & INPUT TYPOGRAPHY (TASTE SKILL REFINEMENT)
------------------------------------------------------------- */
/* Summary & Notes completion blocks */
.summary-block,
.notes-block,
.form-block {
  background: #f8fafc !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 0.75rem !important;
  padding: 1.25rem 1.5rem !important;
  margin-bottom: 1.25rem !important;
}

.summary-block h5,
.notes-block h5,
.form-block h5 {
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  color: #0369a1 !important;
  margin: 0 0 1rem 0 !important;
  letter-spacing: -0.01em !important;
}

/* Generous line-height prevents inline text inputs from colliding vertically */
.summary-block p,
.notes-block p,
.notes-block ul li,
.q-item p:has(input[type="text"]),
.leading-loose {
  line-height: 2.5 !important;
  font-size: 1rem !important;
  color: #334155 !important;
  margin-bottom: 0.85rem !important;
}

.notes-block ul {
  list-style: disc !important;
  padding-left: 1.5rem !important;
  margin: 0 !important;
}

.notes-block ul li {
  margin-bottom: 0.75rem !important;
  line-height: 2.4 !important;
  color: #334155 !important;
}

/* Proportional Inline Text Inputs */
.fill-in-blank,
.text-input,
.text-input-word,
.select-input,
input[type="text"].fill-in-blank,
input[type="text"].text-input {
  display: inline-block !important;
  height: 32px !important;
  min-height: 32px !important;
  line-height: 30px !important;
  padding: 0 0.5rem !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  color: #0f172a !important;
  background-color: #ffffff !important;
  border: 1.5px solid #94a3b8 !important;
  border-radius: 6px !important;
  text-align: center !important;
  vertical-align: middle !important;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05) !important;
  transition: all 0.15s ease !important;
}

.fill-in-blank:focus,
.text-input:focus,
input[type="text"].fill-in-blank:focus {
  outline: none !important;
  border-color: #0284c7 !important;
  background-color: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(2, 132, 199, 0.25) !important;
}

.fill-in-blank,
.text-input-word,
.summary-block input[type="text"]:not(.text-input-two):not(.text-input-md),
.notes-block input[type="text"]:not(.text-input-two):not(.text-input-md) {
  width: 120px !important;
  min-width: 100px !important;
  max-width: 140px !important;
}

.text-input-two,
.text-input-md {
  width: 155px !important;
  min-width: 130px !important;
  max-width: 180px !important;
}

/* Question Number + Input Container Alignment */
span[id^="container-q"]:has(input[type="text"]),
.inline-block:has(input[type="text"]),
.inline-flex:has(input[type="text"]) {
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
  margin: 0 0.35rem !important;
  white-space: nowrap !important;
}

span[id^="container-q"] strong,
.inline-block:has(input[type="text"]) strong,
.inline-flex:has(input[type="text"]) strong {
  display: inline-block !important;
  font-weight: 800 !important;
  font-size: 0.875rem !important;
  margin-right: 0.35rem !important;
  color: #0284c7 !important;
}

/* Option Containers Stacking (Fixes unstyled Tailwind space-y-* run-on lists) */
.space-y-1,
.space-y-1\.5,
.space-y-2,
.space-y-3,
.space-y-4,
.space-y-5,
[id*="container-q"].space-y-2,
[id*="container-q"].space-y-1 {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.45rem !important;
  width: 100% !important;
}

/* Multiple-Choice, Choose TWO & Full-Width Option Cards */
.mc-label,
.choose2-label,
.tfng-label,
.q-item label.mc-label,
.q-item label:has(input[type="checkbox"]),
.q-item label:has(input[type="radio"]),
.space-y-1 > label,
.space-y-2 > label,
[id*="container-q"] label.mc-label,
[id*="container-q"] label:has(input[type="checkbox"]) {
  display: flex !important;
  align-items: flex-start !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 0.75rem 1rem !important;
  margin: 0.25rem 0 !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: 0.625rem !important;
  background-color: #ffffff !important;
  color: #1e293b !important;
  font-weight: 500 !important;
  font-size: 0.9375rem !important;
  line-height: 1.55 !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  user-select: none !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03) !important;
}

.mc-label:hover,
.choose2-label:hover,
.tfng-label:hover,
.q-item label:hover {
  background-color: #f0f9ff !important;
  border-color: #0284c7 !important;
  color: #0f172a !important;
}

.mc-label input[type="checkbox"],
.mc-label input[type="radio"],
.choose2-label input[type="checkbox"],
.q-item label input[type="checkbox"],
.q-item label input[type="radio"] {
  width: 1.2rem !important;
  height: 1.2rem !important;
  margin: 0.15rem 0.75rem 0 0 !important;
  flex-shrink: 0 !important;
  accent-color: #0284c7 !important;
  cursor: pointer !important;
}

/* Selected State for Multi-Choice / Checkbox Cards */
.mc-label:has(input:checked),
.choose2-label:has(input:checked),
.tfng-label:has(input:checked),
.q-item label:has(input:checked) {
  background-color: #f0f9ff !important;
  border-color: #0284c7 !important;
  color: #0f172a !important;
  box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.25) !important;
}

.mc-label:has(input:checked) strong,
.choose2-label:has(input:checked) strong,
.tfng-label:has(input:checked) strong,
.q-item label:has(input:checked) strong {
  color: #0284c7 !important;
}

/* Hide legacy check-all wrappers and section check buttons */
#check-all-wrapper,
.check-all-wrapper,
.check-btn,
#check-answers-btn,
#clear-all-btn {
  display: none !important;
}

/* -------------------------------------------------------------
   BOTTOM 40-QUESTION PALETTE STRIP
------------------------------------------------------------- */
.exam-footer {
  flex: 0 0 54px;
  background: #0b1120;
  border-top: 1px solid #1e293b;
  position: relative;
  z-index: 40;
  user-select: none;
  display: flex;
  flex-direction: column;
}

.progress-line-container {
  height: 3px;
  width: 100%;
  background: #1e293b;
}

.progress-line-bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #0284c7, #10b981);
  transition: width 0.3s ease;
}

.footer-content {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
  gap: 0.75rem;
}

.footer-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.stats-badge {
  color: #94a3b8;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
}

/* Segmented 1 to 40 Question Palette Strip */
.questions-strip-scroll {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 4px 0.5rem;
  scrollbar-width: thin;
  scrollbar-color: #334155 transparent;
  flex: 1;
  min-width: 0;
  justify-content: flex-start;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

.questions-strip-scroll::-webkit-scrollbar {
  height: 4px;
}
.questions-strip-scroll::-webkit-scrollbar-thumb {
  background: #334155;
  border-radius: 4px;
}

.part-group-strip {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  background: #020617;
  padding: 2px 6px;
  border-radius: 0.5rem;
  border: 1px solid #1e293b;
  flex-shrink: 0;
}

.group-label {
  font-size: 0.6875rem;
  font-weight: 800;
  color: #38bdf8;
  margin-right: 2px;
}

/* Individual Question Palette Pill */
.q-palette-btn {
  width: 25px;
  height: 25px;
  border-radius: 4px;
  background: #1e293b;
  color: #94a3b8;
  border: 1px solid #334155;
  font-size: 0.6875rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.22s cubic-bezier(0.2, 0.9, 0.3, 1.2), transform 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
  position: relative;
  padding: 0;
}

.q-palette-btn:hover {
  background: #334155;
  color: #ffffff;
  transform: translateY(-1px) scale(1.08);
}

.q-palette-btn:active {
  transform: scale(0.92);
}

/* Answered State */
.q-palette-btn.is-answered {
  background: #0284c7;
  color: #ffffff;
  border-color: #0284c7;
}

/* Flagged State */
.q-palette-btn.is-flagged::after {
  content: '';
  position: absolute;
  top: -2px;
  right: -2px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f59e0b;
  border: 1.5px solid #0b1120;
}

/* Active Highlight */
.q-palette-btn.is-current {
  border-color: #38bdf8;
  box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.4), 0 0 10px rgba(56, 189, 248, 0.25);
  transform: scale(1.1);
  z-index: 2;
}

/* -------------------------------------------------------------
   MODAL DIALOGS (READINESS, SOUND CHECK, RESULTS)
------------------------------------------------------------- */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.75);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  z-index: 1000;
  animation: fadeIn 0.2s ease-out;
}

.modal-card {
  background: #ffffff;
  border-radius: 1rem;
  max-width: 580px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  padding: 1.75rem;
  position: relative;
}

@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.98); }
  to { opacity: 1; transform: scale(1); }
}

@media (max-width: 860px) {
  .exam-header {
    flex-wrap: wrap;
    height: auto;
    padding: 0.5rem 0.75rem;
  }
  .content-panes {
    padding: 1rem 1rem 6rem !important;
  }
  .audio-dock-bar {
    flex-wrap: wrap;
    height: auto;
    padding: 0.5rem 0.75rem;
  }
}
