Iniciativa Cidadã Independente · Transparência Parlamentar
TSX247 linhas9.490 bytes

apps/web/src/app/layout.tsx

SHA-256

ae78a240c00ec5157516d2f83b23c9fe9f27497df94c0a55af2fa58ffe92c716

Somente leiturafonte-acf635076da2
import type { Metadata, Viewport } from 'next'
import './globals.css'
import Link from 'next/link'
import Image from 'next/image'

export const metadata: Metadata = {
  title: 'Observatório do Senado — Índice de Desempenho Senatorial',
  description:
    'Iniciativa cidadã independente de transparência parlamentar. Avaliação multidimensional do desempenho dos Senadores da 57ª Legislatura, baseada em dados públicos oficiais.',
  metadataBase: new URL('https://observasenado.org'),
  applicationName: 'Observatório do Senado',
  creator: 'Observatório do Senado',
  publisher: 'Observatório do Senado',
  manifest: '/manifest.webmanifest',
  openGraph: {
    title: 'Observatório do Senado — IDS',
    description:
      'Plataforma independente de monitoramento parlamentar baseada em dados públicos do Senado Federal.',
    type: 'website',
    url: 'https://observasenado.org',
    siteName: 'Observatório do Senado',
    images: [
      {
        url: '/og-image.png',
        width: 1200,
        height: 630,
        alt: 'Observatório do Senado — Índice de Desempenho Senatorial',
      },
    ],
  },
  twitter: {
    card: 'summary_large_image',
    title: 'Observatório do Senado — IDS',
    description:
      'Plataforma independente de monitoramento parlamentar baseada em dados públicos do Senado Federal.',
    images: ['/og-image.png'],
  },
  icons: {
    icon: [
      { url: '/favicon.ico', sizes: 'any' },
      { url: '/icon-192.png', type: 'image/png', sizes: '192x192' },
      { url: '/icon-512.png', type: 'image/png', sizes: '512x512' },
    ],
    shortcut: '/favicon.ico',
    apple: [
      {
        url: '/apple-touch-icon.png',
        type: 'image/png',
        sizes: '180x180',
      },
    ],
  },
}

export const viewport: Viewport = {
  colorScheme: 'light',
  themeColor: '#0F3D5C',
}

const NAV = [
  { href: '/', label: 'Ranking' },
  { href: '/comparar', label: 'Comparar' },
  { href: '/metodologia', label: 'Metodologia' },
  { href: '/newsletter', label: 'Newsletter' },
  { href: '/apoie', label: 'Apoie' },
  { href: '/transparencia', label: 'Transparência' },
]

export default function RootLayout({
  children,
}: {
  children: React.ReactNode
}) {
  return (
    <html lang="pt-BR">
      <body className="min-h-screen flex flex-col bg-background text-ink">
        {/* Faixa institucional superior */}
        <div className="bg-primary text-white">
          <div className="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8">
            <div className="flex h-8 items-center justify-between text-[11px] tracking-wider uppercase">
              <span className="opacity-90">
                Iniciativa Cidadã Independente · Transparência Parlamentar
              </span>
              <span className="hidden sm:inline opacity-75">
                57ª Legislatura · 2023 — 2027
              </span>
            </div>
          </div>
        </div>

        {/* Cabeçalho institucional */}
        <header className="border-b border-border bg-surface">
          <div className="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8">
            <div className="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 py-5">
              <Link href="/" className="flex items-center gap-3">
                <Image
                  src="/icon-192.png"
                  alt="Observatório do Senado"
                  width={56}
                  height={56}
                  className="h-14 w-14 shrink-0 object-contain"
                  priority
                />
                <span className="flex flex-col">
                  <span className="font-serif text-xl font-semibold leading-tight text-ink">
                    Observatório do Senado
                  </span>
                  <span className="text-xs text-muted tracking-wide">
                    Índice de Desempenho Senatorial · IDS
                  </span>
                </span>
              </Link>
              <nav className="flex flex-wrap items-center gap-x-6 gap-y-2 text-sm">
                {NAV.map((item) => (
                  <Link
                    key={item.href}
                    href={item.href}
                    className="text-muted hover:text-primary transition-colors"
                  >
                    {item.label}
                  </Link>
                ))}
                <Link
                  href="/codigo"
                  className="text-muted hover:text-primary transition-colors"
                >
                  Código auditável
                </Link>
              </nav>
            </div>
          </div>
        </header>

        <main className="flex-1">
          <div className="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10">
            {children}
          </div>
        </main>

        {/* Rodapé institucional */}
        <footer className="mt-16 border-t border-border bg-panel">
          <div className="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8 py-10">
            <div className="grid grid-cols-1 md:grid-cols-4 gap-8">
              <div className="md:col-span-2">
                <h3 className="font-serif text-base font-semibold text-ink">
                  Observatório do Senado
                </h3>
                <p className="mt-2 text-sm text-muted leading-relaxed">
                  Iniciativa cidadã independente de transparência parlamentar.
                  Os dados aqui apresentados são obtidos de fontes públicas
                  oficiais e podem ser auditados nas bases do Senado Federal.
                </p>
                <p className="mt-3 text-xs text-muted leading-relaxed">
                  Esta plataforma não possui vínculo institucional com o Senado
                  Federal, partidos políticos, mandatos parlamentares,
                  campanhas eleitorais ou grupos de interesse.
                </p>
              </div>
              <div>
                <h4 className="eyebrow">Plataforma</h4>
                <ul className="mt-3 space-y-2 text-sm">
                  <li>
                    <Link href="/metodologia" className="text-muted hover:text-primary transition-colors">
                      Metodologia
                    </Link>
                  </li>
                  <li>
                    <Link href="/newsletter" className="text-muted hover:text-primary transition-colors">
                      Newsletter
                    </Link>
                  </li>
                  <li>
                    <Link href="/apoie" className="text-muted hover:text-primary transition-colors">
                      Apoie o projeto
                    </Link>
                  </li>
                  <li>
                    <Link href="/transparencia" className="text-muted hover:text-primary transition-colors">
                      Transparência financeira
                    </Link>
                  </li>
                  <li>
                    <Link href="/contato" className="text-muted hover:text-primary transition-colors">
                      Contato e correções
                    </Link>
                  </li>
                  <li>
                    <Link
                      href="/codigo"
                      className="text-muted hover:text-primary transition-colors"
                    >
                      Código auditável
                    </Link>
                  </li>
                </ul>
              </div>
              <div>
                <h4 className="eyebrow">Legal</h4>
                <ul className="mt-3 space-y-2 text-sm">
                  <li>
                    <Link href="/termos" className="text-muted hover:text-primary transition-colors">
                      Termos de uso
                    </Link>
                  </li>
                  <li>
                    <Link href="/privacidade" className="text-muted hover:text-primary transition-colors">
                      Política de privacidade
                    </Link>
                  </li>
                  <li>
                    <a
                      href="https://legis.senado.leg.br/dadosabertos"
                      target="_blank"
                      rel="noopener noreferrer"
                      className="text-muted hover:text-primary transition-colors"
                    >
                      Fonte: LEGIS
                    </a>
                  </li>
                  <li>
                    <a
                      href="https://adm.senado.gov.br/adm-dadosabertos"
                      target="_blank"
                      rel="noopener noreferrer"
                      className="text-muted hover:text-primary transition-colors"
                    >
                      Fonte: ADM
                    </a>
                  </li>
                </ul>
              </div>
            </div>
            <hr className="divider-rule mt-8" />
            <p className="mt-6 text-xs text-muted text-center max-w-3xl mx-auto leading-relaxed">
              As contribuições financeiras eventualmente recebidas são
              voluntárias e destinadas exclusivamente à manutenção técnica,
              metodológica e operacional do projeto. Nenhum apoiador, doador
              ou parceiro técnico possui controle sobre os resultados do IDS,
              sobre a ordem do ranking ou sobre a metodologia de cálculo.
            </p>
          </div>
        </footer>
      </body>
    </html>
  )
}