Spaces:
Paused
Paused
File size: 5,306 Bytes
43e76ab 79977fa 43e76ab 79977fa 569fee8 79977fa 43e76ab 79977fa | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | @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 <pre><code> e também a <code> 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 <pre> 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; }
} |