@media (max-width: 640px) {
  /* Container & Layout */
  .navbar {
    padding: 0.5rem 0.75rem;
  }
  main.container {
    padding: 0.75rem;
  }
  .footer {
    padding: 1rem;
  }

  /* Dashboard */
  .max-w-3xl.mx-auto.space-y-10 {
    row-gap: 1.5rem;
  }
  .max-w-3xl.mx-auto.space-y-10 h1 {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .max-w-3xl.mx-auto.space-y-10 .card-body.p-5 {
    padding: 0.75rem;
  }
  .max-w-3xl.mx-auto.space-y-10 .card-body.p-5 .w-8.h-8 {
    width: 1.5rem;
    height: 1.5rem;
  }
  .max-w-3xl.mx-auto.space-y-10 .card-body.p-5 h3 {
    font-size: 0.875rem;
  }
  .max-w-3xl.mx-auto.space-y-10 .grid.grid-cols-2 {
    gap: 0.75rem;
  }

  /* Login */
  .max-w-sm.mx-auto.mt-12.card.p-6 {
    margin-top: 1.5rem;
    padding: 1rem;
  }
  .max-w-sm.mx-auto.mt-12.card .w-12.h-12 {
    width: 2.5rem;
    height: 2.5rem;
  }
  .max-w-sm.mx-auto.mt-12.card h1 {
    font-size: 1.25rem;
  }
  form.space-y-5 > * + * {
    margin-top: 1rem;
  }

  /* Estudo — Header */
  #study-header h2.text-lg {
    font-size: 1rem;
  }
  #study-header .progress.h-2 {
    height: 0.375rem;
  }
  .font-mono.text-lg {
    font-size: 0.875rem;
  }

  /* Navigation Bar */
  #question-navigation-bar.card.p-3 {
    padding: 0.5rem;
  }
  #question-navigation-bar .collapse-title.px-3.py-2 {
    padding: 0.375rem 0.5rem;
  }
  #question-navigation-bar .w-11.h-11 {
    width: 2.25rem;
    height: 2.25rem;
  }
  #question-navigation-bar .w-11.h-11 .text-sm {
    font-size: 0.75rem;
  }
  #question-navigation-bar .w-11.h-11 svg.h-4.w-4 {
    width: 0.75rem;
    height: 0.75rem;
  }
  #question-navigation-bar .gap-1 {
    gap: 0.125rem;
  }

  /* Question Card (Bloco) */
  #question-card.space-y-5 .p-3 {
    padding: 0.75rem;
  }
  #question-card.space-y-5 p.text-lg {
    font-size: 0.9375rem;
  }
  #question-card.space-y-5 .text-base {
    font-size: 0.875rem;
  }
  #question-card.space-y-5 .prose {
    font-size: 0.875rem;
  }
  #question-card.space-y-5 .space-y-5 > * + * {
    margin-top: 1rem;
  }

  /* Question Card (Simulado) */
  #question-card.space-y-4 .w-7 {
    width: 1.5rem;
  }
  #question-card.space-y-4 .h-7 {
    height: 1.5rem;
  }
  #question-card.space-y-4 .text-sm {
    font-size: 0.75rem;
  }
  #question-card.space-y-4 .min-h-\[52px\] {
    min-height: 2.75rem;
  }
  #question-card.space-y-4 .space-y-4 > * + * {
    margin-top: 0.75rem;
  }

  /* Resultado */
  .max-w-2xl.mx-auto.py-8 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }
  .max-w-2xl.mx-auto.py-8 .text-7xl.font-bold {
    font-size: 3rem;
    line-height: 1;
  }
  .max-w-2xl.mx-auto.py-8 .text-2xl.font-medium {
    font-size: 1.25rem;
  }
  .max-w-2xl.mx-auto.py-8 .gap-6 {
    gap: 0.75rem;
  }
  .max-w-2xl.mx-auto.py-8 .w-5.h-5 {
    width: 1rem;
    height: 1rem;
  }
  .max-w-2xl.mx-auto.py-8 .btn-lg.w-full.max-w-xs {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
  }

  /* Revisão */
  .max-w-3xl.mx-auto.py-6 {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
  .max-w-3xl.mx-auto.py-6 .w-7.h-7 {
    width: 1.5rem;
    height: 1.5rem;
  }
  .max-w-3xl.mx-auto.py-6 .card.bg-base-100.border.p-4 {
    padding: 0.75rem;
  }
  .max-w-3xl.mx-auto.py-6 .prose.prose-base {
    font-size: 0.875rem;
  }
  .max-w-3xl.mx-auto.py-6 .md\:text-lg.text-base {
    font-size: 0.875rem;
  }
  .max-w-3xl.mx-auto.py-6 .space-y-2.mt-4 > * + * {
    margin-top: 0.375rem;
  }

  /* Essay: input de tema + botão em coluna no mobile */
  .card-body .flex.gap-2.mt-1 {
    flex-direction: column;
  }
  .card-body .flex.gap-2.mt-1 #tema-input,
  .card-body .flex.gap-2.mt-1 input#tema-input {
    width: 100%;
    flex: none;
  }
  .card-body .flex.gap-2.mt-1 button[onclick="sortearTema()"] {
    width: 100%;
    flex: none;
    margin-top: 0.5rem;
    justify-content: center;
  }
}
