@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Lora:ital,wght@0,500;0,600;1,400&display=swap'); @tailwind base; @tailwind components; @tailwind utilities; /* ── BASE ────────────────────────────────────────────────────────── */ @layer base { *, *::before, *::after { box-sizing: border-box; } html { font-size: 16px; } body { @apply bg-dark-950 text-slate-100; font-family: 'Inter', system-ui, -apple-system, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } ::-webkit-scrollbar { width: 5px; height: 5px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { @apply bg-dark-600 rounded-full; } ::-webkit-scrollbar-thumb:hover { @apply bg-gold-700; } ::selection { @apply bg-gold-700/40 text-gold-100; } } /* ── CUSTOM PROSE (markdown in chat) ─────────────────────────────── */ @layer components { .prose-para { @apply text-slate-200 leading-relaxed; } .prose-para h1 { @apply font-serif font-semibold text-gold-300 text-xl mt-4 mb-2 pb-1 border-b border-dark-600; } .prose-para h2 { @apply font-serif font-semibold text-gold-300 text-lg mt-3 mb-1.5; } .prose-para h3 { @apply font-serif font-medium text-slate-200 text-base mt-3 mb-1; } .prose-para strong { @apply font-semibold text-slate-100; } .prose-para em { @apply italic text-slate-300; } .prose-para code { @apply font-mono text-xs bg-navy-900/60 border border-navy-600/40 text-sky-300 rounded px-1.5 py-0.5; /* Garantir quebra de linha para código inline */ white-space: pre-wrap; word-wrap: break-word; overflow-wrap: break-word; max-width: 100%; } .prose-para blockquote { @apply border-l-2 border-gold-600 bg-gold-950/20 rounded-r-lg px-4 py-2.5 my-3; @apply font-serif italic text-gold-200/90 text-sm; } .prose-para a { @apply text-gold-400 underline underline-offset-2 hover:text-gold-300 transition-colors; } .prose-para hr { @apply border-dark-600 my-4; } .prose-para br { @apply leading-relaxed; } /* Consecutive blockquotes */ .prose-para blockquote + blockquote { @apply mt-1; } /* ── BLOCOS DE CÓDIGO (para highlight.js ou outros) ────────── */ /* Aplica a blocos
 e também a  com classes de highlight */
  pre code,
  pre code.hljs,
  code.hljs,
  .hljs {
    white-space: pre-wrap !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    max-width: 100%;
  }
  /* Ajuste adicional para 
 que envolve o código */
  pre {
    @apply bg-navy-900/80 border border-navy-700 rounded-lg p-3 overflow-x-auto;
  }

  /* ── ESTILO ESPECÍFICO PARA EMENTAS (language-ementa) ────────── */
  pre code.language-ementa {
    display: block;
    position: relative;
    padding-top: 2rem; /* espaço para o label */
    background-color: #1e293b; /* tom navy mais escuro */
    border-left: 4px solid #c9a84c; /* dourado */
    border-radius: 0.5rem;
    font-family: 'Lora', Georgia, serif; /* fonte serifada para contraste */
    font-size: 0.9rem;
    line-height: 1.6;
    color: #e2e8f0;
  }

  /* Pseudo-elemento para o label "EMENTA" */
  pre code.language-ementa::before {
    content: "⚖ EMENTA";
    position: absolute;
    top: 0;
    left: 0;
    background: #c9a84c;
    color: #0f172a;
    font-family: 'Inter', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    padding: 0.25rem 0.75rem;
    border-radius: 0 0 0.5rem 0;
    text-transform: uppercase;
    z-index: 10;
  }
}

/* ── ANIMATIONS ───────────────────────────────────────────────────── */
@layer utilities {
  @keyframes slideUp {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0);     }
  }
  @keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
  }
  @keyframes float {
    0%, 100% { transform: translateY(0);    }
    50%       { transform: translateY(-6px); }
  }
  @keyframes blink {
    0%, 100% { opacity: 1;  }
    50%       { opacity: 0;  }
  }
  @keyframes accordion {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0);    }
  }
  @keyframes goldPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(201,168,76,0); }
    50%       { box-shadow: 0 0 12px 3px rgba(201,168,76,.25); }
  }
  @keyframes spin {
    to { transform: rotate(360deg); }
  }

  .animate-slideUp  { animation: slideUp 0.35s ease both; }
  .animate-fadeIn   { animation: fadeIn 0.5s ease both; }
  .animate-float    { animation: float 3s ease-in-out infinite; }
  .animate-blink    { animation: blink 1s step-end infinite; }
  .animate-accordion { animation: accordion 0.25s ease both; }
  .animate-goldPulse { animation: goldPulse 2s ease-in-out infinite; }
  .animate-spin-slow { animation: spin 1.5s linear infinite; }
}