}
    </script>
</body>
</html>

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: var(--text-main);
    background-color: var(--bg-main);
    transition: all 0.3s ease;
    line-height: 1.6;
}

/* ✅ Header responsivo (quebra no mobile) */ header {
    position: sticky;
    top: 0;
    z-index: 20;

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: 12px;

    padding: 10px 16px;
    background: linear-gradient(180deg,#020617,#020617);
    border-bottom: 1px solid rgba(30,41,59,.9);
    box-shadow: 0 10px 30px rgba(0,0,0,.45);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

/* lado esquerdo */ header .left {
    display:flex;
    align-items:center;
    gap: 12px;
    min-width: 0;
    flex: 1;
}

/* logo/imagem */ header .brand {
    display:flex;
    align-items:center;
    gap: 10px;
    min-width: 0;
}

header .brand img {
    height: 40px;
    width: auto;
    display:block;
}

/* badge “editando aluno” */ .impersonation-badge {
    font-size: 12px;
    color: rgba(250,204,21,.95);
    white-space: nowrap;
}

/* form do select */ header .row-inline {
    display:flex;
    align-items:center;
    gap: 10px;
    margin: 0;
}

/* lado direito */ header .user {
    display:flex;
    align-items:center;
    gap: 10px;
    font-size: 13px;
    min-width: 0;
}

header .user img {
    width: 34px;
    height: 34px;
    border-radius: 0;
    border: 1px solid rgba(56,189,248,.8);
    object-fit: cover;
    background: #020617;
}

header .user .who {
    display:flex;
    flex-direction:column;
    gap: 2px;
    min-width: 0;
}

header .user .who strong {
    max-width: 70vw;
}

header a.logout {
    color: rgba(248,113,113,.95);
    text-decoration:none;
    font-size: 12px;
}

header a.logout:hover {
    text-decoration: underline;
}

/* ✅ Mobile: empilha tudo (um abaixo do outro) */ @media (max-width: 820px) {
    header{
    flex-direction: column;
    align-items: stretch;
}

header .left {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
}

header .row-inline {
    width: 100%;
}

header .row-inline select {
    width: 100%;
}

.impersonation-badge {
    white-space: normal;
}

header .user {
    width: 100%;
    justify-content: space-between;
}

} .site-menu {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.site-menu a {
    color: #e5e7eb;
    text-decoration: none;
    padding: 0.35rem 0.8rem;
    border-radius: 999px;
    border: 1px solid rgba(148,163,184,0.4);
    font-size: 0.9rem;
}

.site-menu a:hover {
    background: rgba(56,189,248,0.12);
    border-color: #38bdf8;
}

main {
    padding: 1.5rem;
    max-width: 1000px;
    margin: 0 auto;
}

footer {
    padding: 1rem 1.5rem;
    border-top: 1px solid rgba(148,163,184,0.3);
    font-size: 0.8rem;
    color: #9ca3af;
    text-align: center;
}

<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Guia de Acessibilidade Digital</title> <script src="https://cdn.tailwindcss.com"></script> <style> :root {
    --primary: #1a365d;
    --secondary: #2b6cb0;
    --accent: #ed8936;
    --text-main: #2d3748;
    --bg-main: #f7fafc;
}

.high-contrast {
    --primary: #ffff00 !important;
    --secondary: #ffffff !important;
    --accent: #ffff00 !important;
    --text-main: #ffffff !important;
    --bg-main: #000000 !important;
}

.contrast-mode body {
    background-color: #000;
    color: #fff;
}

header {
    background-color: var(--primary);
    color: white;
    padding: 2rem 1rem;
    text-align: center;
}

.btn-accessible {
    background-color: var(--accent);
    color: #000;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    font-weight: bold;
    text-decoration: none;
    display: inline-block;
    border: 2px solid transparent;
    transition: 0.2s;
}

.btn-accessible:hover, .btn-accessible:focus {
    border-color: white;
    outline: 3px solid var(--accent);
    transform: scale(1.05);
}

.card {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: 0.3s;
    border: 1px solid #e2e8f0;
}

.contrast-mode .card {
    background: #1a1a1a;
    border: 2px solid #ffff00;
    color: #fff;
}

.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: var(--accent);
    color: black;
    padding: 8px;
    z-index: 100;
    transition: top 0.3s;
}

.skip-link:focus {
    top: 0;
}

img {
    max-width: 100%;
    height: auto;
    border-bottom: 4px solid var(--secondary);
}

/* Foco visível para navegação por teclado */ *:focus {
    outline: 3px solid var(--accent);
    outline-offset: 2px;
}

</style> </head> <body> <a href="#main-content" class="skip-link">Pular para o conteúdo principal</a> <header role="banner"> <h1 class="text-4xl font-bold mb-4">Acessibilidade Digital para Todos</h1> <p class="max-w-2xl mx-auto text-lg">Construindo uma web onde ninguém fica para trás. Conheça as melhores práticas para tornar seu site inclusivo.</p> <div class="mt-6 flex justify-center gap-4"> <button onclick="toggleContrast()" class="btn-accessible" aria-label="Ativar modo de alto contraste"> Alternar Alto Contraste </button> </div> </header> <main id="main-content" class="container mx-auto px-4 py-12"> <!-- Introdução --> <section class="mb-16 grid md:grid-cols-2 gap-8 items-center" aria-labelledby="intro-title"> <div> <h2 id="intro-title" class="text-3xl font-bold mb-4 text-blue-900 contrast-mode:text-yellow-400">Por que a acessibilidade importa?</h2> <p class="text-lg mb-4"> A acessibilidade web garante que pessoas com deficiências visuais, auditivas, motoras ou cognitivas possam perceber, entender, navegar e interagir com a web. </p> <ul class="list-disc pl-6 space-y-2"> <li>Inclusão social para milhões de usuários.</li> <li>Melhor SEO (motores de busca amam sites estruturados).</li> <li>Melhor experiência de usuário para todos (ex: idosos).</li> </ul> </div> <div class="rounded-lg overflow-hidden shadow-xl"> <img src="https://images.unsplash.com/photo-1573497491208-6b1acb260507?auto=format&fit=crop&q=80&w=800" alt="Uma mulher sorridente com deficiência visual usando um notebook com um leitor de tela e fones de ouvido." title="A tecnologia assistiva em uso"> </div> </section> <!-- Pilares da Acessibilidade --> <section aria-labelledby="pilares-title"> <h2 id="pilares-title" class="text-3xl font-bold mb-8 text-center">Os 4 Pilares da Inclusão</h2> <div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6"> <article class="card p-6"> <img src="https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&q=80&w=400" alt="Ícone representando percepção visual" class="mb-4 rounded"> <h3 class="text-xl font-bold mb-2">Perceptível</h3> <p>As informações e os componentes da interface devem ser apresentados de forma que os usuários possam percebê-los.</p> </article> <article class="card p-6"> <img src="https://images.unsplash.com/photo-1586717791821-3f44a563eb4c?auto=format&fit=crop&q=80&w=400" alt="Mãos operando um teclado de computador" class="mb-4 rounded"> <h3 class="text-xl font-bold mb-2">Operável</h3> <p>A navegação deve ser fácil. Todos os controles devem ser acessíveis via teclado ou comandos de voz.</p> </article> <article class="card p-6"> <img src="https://images.unsplash.com/photo-1454165833767-027ff33027ef?auto=format&fit=crop&q=80&w=400" alt="Pessoa lendo um documento de forma clara" class="mb-4 rounded"> <h3 class="text-xl font-bold mb-2">Compreensível</h3> <p>O conteúdo deve ser legível e as operações da interface não devem ser confusas ou imprevisíveis.</p> </article> <article class="card p-6"> <img src="https://images.unsplash.com/photo-1551288049-bbbda536339a?auto=format&fit=crop&q=80&w=400" alt="Vários dispositivos como celulares e tablets conectados" class="mb-4 rounded"> <h3 class="text-xl font-bold mb-2">Robusto</h3> <p>O conteúdo deve ser compatível com diferentes navegadores e tecnologias assistivas atuais e futuras.</p> </article> </div> </section> <!-- Dicas Práticas --> <section class="mt-16 bg-blue-50 p-8 rounded-2xl contrast-mode:bg-gray-900 border-2 border-blue-200 contrast-mode:border-yellow-400"> <h2 class="text-3xl font-bold mb-6">Dicas de Implementação</h2> <div class="space-y-4"> <details class="bg-white p-4 rounded shadow contrast-mode:bg-black border"> <summary class="font-bold cursor-pointer text-lg">Use Atributos ALT em Imagens</summary> <p class="mt-2">Sempre descreva o que está na imagem para que cegos, usando leitores de tela, saibam do que se trata o conteúdo visual.</p> </details> <details class="bg-white p-4 rounded shadow contrast-mode:bg-black border"> <summary class="font-bold cursor-pointer text-lg">Contraste de Cor Adequado</summary> <p class="mt-2">Evite texto cinza claro em fundo branco. Use ferramentas de verificação de contraste para garantir que o texto seja legível.</p> </details> <details class="bg-white p-4 rounded shadow contrast-mode:bg-black border"> <summary class="font-bold cursor-pointer text-lg">Formulários Acessíveis</summary> <p class="mt-2">Use a tag &lt;label&gt; associada corretamente ao seu input. Isso permite que o usuário saiba exatamente o que digitar.</p> </details> </div> </section> </main> <footer class="bg-slate-800 text-white py-12 mt-12 text-center" role="contentinfo"> <p class="mb-4">Desenvolvido com foco em acessibilidade e inclusão.</p> <p class="text-sm text-slate-400">© 2024 Guia de Acessibilidade Digital</p> </footer> <script> function toggleContrast() {
    document.documentElement.classList.toggle('contrast-mode');
    const btn = document.querySelector('.btn-accessible');
    const isHigh = document.documentElement.classList.contains('contrast-mode');

    if (isHigh) {
    btn.innerText = "Modo Normal";
    localStorage.setItem('contrast', 'high');
}

else {
    btn.innerText = "Alternar Alto Contraste";
    localStorage.setItem('contrast', 'normal');
}

} // Persistir preferência do usuário window.onload = () => {
    if (localStorage.getItem('contrast') === 'high') {
    toggleContrast();
}