body { font-family: 'Inter', sans-serif; background-color: #020617; color: #f8fafc; transition: all 0.3s ease; }
html { scroll-behavior: smooth; }
.section-title { font-weight: 800; font-size: 2.25rem; letter-spacing: -0.025em; }
.page { display: none; animation: fadeIn 0.4s ease-out; }
.page.active { display: block; }

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.modal-backdrop {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background-color: rgba(0, 0, 0, 0.75); backdrop-filter: blur(4px);
    z-index: 100; display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden; transition: all 0.3s ease; padding: 1rem;
}
.modal-backdrop.active { opacity: 1; visibility: visible; }
.modal-content {
    background-color: #0f172a; padding: 2rem; border-radius: 1.5rem; border: 1px solid #1e293b;
    max-width: 600px; width: 100%; transform: scale(0.95); transition: transform 0.3s ease;
    max-height: 90vh; overflow-y: auto; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
}
.modal-backdrop.active .modal-content { transform: scale(1); }

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #0f172a; }
::-webkit-scrollbar-thumb { background: #475569; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #64748b; }

input[type="file"]::file-selector-button {
    border: none; background: #4f46e5; padding: 0.5rem 1rem; border-radius: 0.5rem;
    color: white; cursor: pointer; font-weight: 600; transition: background .2s ease-in-out; margin-right: 1rem;
}
input[type="file"]::file-selector-button:hover { background: #4338ca; }
details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }
.file-custom::-webkit-file-upload-button { display: none; }
.file-custom::file-selector-button { display: none; }

/* ACESSIBILIDADE - CORREÇÃO DE BUG VISUAL (SEM AMARELÃO) */
body.a11y-large-text { font-size: 110%; }
body.a11y-large-text h1 { font-size: 115%; }
body.a11y-large-text h2, body.a11y-large-text h3 { font-size: 110%; }

body.a11y-high-contrast { background-color: #000000 !important; color: #ffffff !important; }
body.a11y-high-contrast .bg-slate-900, body.a11y-high-contrast .bg-slate-950, body.a11y-high-contrast .bg-slate-800 { background-color: #0a0a0a !important; border-color: #333333 !important; }
body.a11y-high-contrast .text-slate-400, body.a11y-high-contrast .text-slate-500, body.a11y-high-contrast .text-slate-300 { color: #f1f1f1 !important; }
body.a11y-high-contrast .text-indigo-400, body.a11y-high-contrast .text-indigo-500, body.a11y-high-contrast .text-purple-500 { color: #3b82f6 !important; }
body.a11y-high-contrast .bg-indigo-600, body.a11y-high-contrast .bg-indigo-500 { background-color: #2563eb !important; color: #ffffff !important; border: 1px solid #3b82f6 !important; }
body.a11y-high-contrast .border-indigo-500, body.a11y-high-contrast .border-slate-800, body.a11y-high-contrast .border-slate-700 { border-color: #444444 !important; }

body.a11y-highlight-links a, body.a11y-highlight-links button { outline: 3px solid #facc15 !important; outline-offset: 2px; text-decoration: underline !important; }

#chat-messages-container::-webkit-scrollbar { width: 4px; }

/* Ajuste do Widget do Vlibras para não sobrepor o botão de acessibilidade esquerdo */
.enabled.vw-plugin-wrapper { right: 20px !important; bottom: 20px !important; }

/* ESTÉTICA SOCIAL (TWITTER/INSTAGRAM) ACRESCENTADA */
.social-post-card { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.social-post-card:hover { transform: translateY(-2px); box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5); }
.btn-social-action { display: flex; align-items: center; gap: 0.5rem; color: #64748b; font-size: 0.875rem; font-weight: 600; transition: color 0.2s ease; }
.btn-social-action:hover { color: #818cf8; }
.btn-social-action.liked { color: #f43f5e; }