/* ==========================================================================
   NLab — folha de estilos principal
   Laboratório de ensino e pesquisa em Inteligência Artificial aplicada ao Direito
   ========================================================================== */

:root {
  --papel: #F4EFE6;
  --papel-claro: #FDFBF5;
  --papel-sombra: #E8E1D2;
  --grafite: #1C1B1A;
  --grafite-suave: #3B3A38;
  --ardosia: #2C3E50;
  --ardosia-escuro: #1A2D3C;
  --bordo: #6E2A2A;
  --bordo-escuro: #551F1F;
  --oliva: #5C6B3A;
  --oliva-escuro: #48552D;
  --ocre: #B8823A;
  --linha: #D9CFBC;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background-color: var(--papel);
  background-image:
    repeating-linear-gradient(
      to bottom,
      transparent 0px,
      transparent 31px,
      rgba(120, 100, 70, 0.07) 31px,
      rgba(120, 100, 70, 0.07) 32px
    ),
    radial-gradient(circle at 15% 10%, rgba(180, 150, 100, 0.08), transparent 50%),
    radial-gradient(circle at 85% 90%, rgba(180, 150, 100, 0.06), transparent 50%);
  color: var(--grafite);
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 18px;
  line-height: 1.7;
  font-feature-settings: "onum", "kern";
}
.folha {
  max-width: 1180px;
  margin: 0 auto;
  padding: 64px 72px 96px 72px;
  position: relative;
}

/* Cabeçalho acadêmico com selo */
header.cabeca {
  display: grid;
  grid-template-columns: 96px 1fr auto;
  gap: 28px;
  align-items: start;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--linha);
  margin-bottom: 56px;
}
.selo { width: 96px; height: 96px; }
.marca-palavra {
  font-family: "EB Garamond", serif;
  font-size: 42px;
  font-weight: 500;
  letter-spacing: 0.5px;
  color: var(--grafite);
  margin: 0;
  line-height: 1;
}
.marca-palavra .lab {
  font-size: 0.72em;
  color: var(--bordo);
}
.marca-sub {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 16px;
  color: var(--grafite-suave);
  margin-top: 10px;
  max-width: 520px;
}
.meta {
  font-family: "Inter", sans-serif;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1.4px;
  color: var(--grafite-suave);
  text-align: right;
  line-height: 1.9;
}

/* Hero com marginalia */
section.hero {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 56px;
  margin-bottom: 72px;
}
.hero h1 {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 54px;
  line-height: 1.12;
  letter-spacing: -0.5px;
  margin: 0 0 26px 0;
  color: var(--grafite);
}
.hero h1 .destaque {
  font-style: italic;
  color: var(--bordo);
}
.hero p.abertura {
  font-size: 19px;
  line-height: 1.65;
  max-width: 60ch;
  margin: 0 0 18px 0;
  color: var(--grafite);
  text-align: justify;
}
.hero p.abertura:first-letter {
  font-family: "EB Garamond", serif;
  font-size: 64px;
  float: left;
  line-height: 0.9;
  padding: 8px 10px 0 0;
  color: var(--bordo);
  font-weight: 600;
}
.hero p.abertura.segundo {
  max-width: 60ch;
  font-size: 17px;
  color: var(--grafite-suave);
}
.hero p.abertura.segundo:first-letter {
  font-size: inherit;
  float: none;
  padding: 0;
  color: inherit;
  font-weight: inherit;
  font-family: inherit;
}
aside.marginalia {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 15px;
  line-height: 1.55;
  color: var(--grafite-suave);
  border-left: 1px dashed var(--ocre);
  padding: 14px 0 14px 22px;
  align-self: center;
  position: relative;
  text-align: justify;
  hyphens: auto;
}
aside.marginalia::before {
  content: "nota à margem";
  display: block;
  font-family: "Inter", sans-serif;
  font-style: normal;
  font-size: 10px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--ocre);
  margin-bottom: 8px;
}

/* Portaria do laboratório */
section.portaria {
  margin-bottom: 96px;
}
.portaria-cabeca { margin-bottom: 28px; }
.portaria-cabeca p {
  font-size: 16px;
  color: var(--grafite-suave);
  margin: 6px 0 0 0;
  max-width: 60ch;
  font-family: "EB Garamond", serif;
  font-style: italic;
}
.portaria-grade {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}
.portal {
  background-color: var(--papel-claro);
  border: 1px solid var(--linha);
  border-top: 3px solid var(--ardosia);
  padding: 38px 40px 36px 40px;
  position: relative;
  display: flex;
  flex-direction: column;
}
.portal.sessao { border-top-color: var(--oliva); }
.portal .icone {
  width: 38px;
  height: 38px;
  margin-bottom: 22px;
  color: var(--ardosia);
}
.portal.sessao .icone { color: var(--oliva); }
.portal .rotulo-portal {
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--ardosia);
  margin-bottom: 8px;
}
.portal.sessao .rotulo-portal { color: var(--oliva); }
.portal h4 {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 28px;
  margin: 0 0 14px 0;
  color: var(--grafite);
  line-height: 1.2;
}
.portal p.explicacao {
  font-size: 15.5px;
  color: var(--grafite-suave);
  margin: 0 0 26px 0;
  line-height: 1.6;
  flex: 1;
  text-align: justify;
  hyphens: auto;
}
.portal-botao {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background-color: var(--ardosia);
  color: var(--papel);
  padding: 13px 26px;
  text-decoration: none;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.6px;
  transition: background-color 0.2s ease;
  align-self: flex-start;
}
.portal-botao:hover { background-color: var(--ardosia-escuro); }
.portal-botao svg { width: 14px; height: 14px; }
.portal.sessao .portal-botao { background-color: var(--oliva); }
.portal.sessao .portal-botao:hover { background-color: var(--oliva-escuro); }
.portal-form {
  display: flex;
  gap: 10px;
  align-items: stretch;
}
.portal-form input {
  flex: 1;
  border: 1px solid var(--linha);
  background-color: var(--papel);
  padding: 13px 18px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  color: var(--grafite);
  letter-spacing: 2px;
  text-transform: uppercase;
}
.portal-form input::placeholder {
  color: var(--grafite-suave);
  text-transform: none;
  letter-spacing: normal;
  font-style: italic;
}
.portal-form input:focus {
  outline: none;
  border-color: var(--oliva);
}
.portal-form button {
  background-color: var(--oliva);
  color: var(--papel);
  border: none;
  padding: 13px 24px;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.6px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.portal-form button:hover { background-color: var(--oliva-escuro); }
.qr-ajuda {
  margin-top: 16px;
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 14px;
  color: var(--grafite-suave);
  display: flex;
  align-items: center;
  gap: 10px;
}
.qr-ajuda svg { width: 16px; height: 16px; color: var(--oliva); }

/* Seções numeradas */
section.bloco { margin-bottom: 96px; }
h2.titulo-secao {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--bordo);
  margin: 0 0 8px 0;
}
h3.chamada {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 34px;
  line-height: 1.2;
  margin: 0 0 28px 0;
  color: var(--grafite);
  max-width: 24ch;
}

/* Bloco com marginalia lateral */
.bloco-com-marginalia {
  display: grid;
  grid-template-columns: 1fr 240px;
  gap: 48px;
  align-items: start;
}
.bloco-com-marginalia > .marginalia {
  align-self: start;
}

/* Linhas de atuação */
.linhas {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 36px 56px;
}
.linha-item {
  border-top: 1px solid var(--linha);
  padding-top: 18px;
}
.linha-item .numero {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 14px;
  color: var(--ocre);
  display: block;
  margin-bottom: 6px;
}
.linha-item h4 {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 22px;
  margin: 0 0 10px 0;
  color: var(--grafite);
}
.linha-item p {
  margin: 0;
  color: var(--grafite-suave);
  font-size: 16px;
  text-align: justify;
  hyphens: auto;
}

/* Fichas de experimento principais */
.fichas {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 44px;
}
.ficha {
  background-color: rgba(255, 253, 247, 0.55);
  border: 1px solid var(--linha);
  border-left: 4px solid var(--oliva);
  padding: 32px 34px;
  position: relative;
}
.ficha .etiqueta {
  position: absolute;
  top: -12px;
  left: 28px;
  background-color: var(--papel);
  padding: 2px 10px;
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--oliva);
  border: 1px solid var(--oliva);
}
.ficha .codigo {
  font-family: "Inter", sans-serif;
  font-size: 11px;
  color: var(--ocre);
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
.ficha h4 {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 26px;
  margin: 8px 0 16px 0;
  color: var(--grafite);
  line-height: 1.2;
}
.ficha .pergunta {
  font-family: "EB Garamond", serif;
  font-style: italic;
  color: var(--bordo);
  font-size: 17px;
  margin: 0 0 14px 0;
  line-height: 1.5;
}
.ficha .descricao {
  font-size: 16px;
  color: var(--grafite-suave);
  margin: 0 0 16px 0;
}
.ficha .nota-metodo {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  color: var(--grafite-suave);
  border-top: 1px dashed var(--linha);
  padding-top: 12px;
  margin: 0;
}

/* Mini fichas de experimentos secundários */
.secundarios-titulo {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 16px;
  color: var(--grafite-suave);
  margin: 56px 0 22px 0;
  display: flex;
  align-items: center;
  gap: 18px;
}
.secundarios-titulo::before,
.secundarios-titulo::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: var(--linha);
}
.mini-fichas {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.mini-ficha {
  border-top: 1px solid var(--linha);
  padding-top: 18px;
}
.mini-ficha .mini-codigo {
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--ocre);
  display: block;
  margin-bottom: 10px;
}
.mini-ficha h5 {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 1.25;
  margin: 0 0 10px 0;
  color: var(--grafite);
}
.mini-ficha p {
  font-size: 14px;
  color: var(--grafite-suave);
  margin: 0;
  line-height: 1.55;
}

/* Caderno aberto */
.notas {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
}
.nota {
  border-top: 1px solid var(--linha);
  padding-top: 20px;
  display: flex;
  flex-direction: column;
}
.nota time {
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--ocre);
  margin-bottom: 12px;
}
.nota h4 {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 23px;
  line-height: 1.25;
  margin: 0 0 14px 0;
  color: var(--grafite);
}
.nota p.trecho {
  font-size: 15.5px;
  color: var(--grafite-suave);
  margin: 0 0 18px 0;
  flex: 1;
  line-height: 1.6;
}
.nota-link {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 15px;
  color: var(--bordo);
  text-decoration: none;
  border-bottom: 1px solid var(--bordo);
  padding-bottom: 2px;
  align-self: flex-start;
  transition: color 0.2s ease, border-color 0.2s ease;
}
.nota-link:hover { color: var(--ocre); border-color: var(--ocre); }

/* Boletim */
section.boletim {
  margin-bottom: 96px;
}
.boletim-caixa {
  background-color: rgba(255, 253, 247, 0.7);
  border: 1px solid var(--linha);
  border-left: 4px solid var(--ocre);
  padding: 48px 54px;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 56px;
  align-items: center;
}
.boletim-texto .rotulo-boletim {
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--ocre);
  margin: 0 0 10px 0;
}
.boletim-texto h3 {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 32px;
  line-height: 1.2;
  margin: 0 0 14px 0;
  color: var(--grafite);
  max-width: 22ch;
}
.boletim-texto p {
  font-size: 16px;
  color: var(--grafite-suave);
  margin: 0;
  line-height: 1.6;
}
.boletim-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.boletim-form input {
  border: 1px solid var(--linha);
  background-color: var(--papel);
  padding: 14px 18px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  color: var(--grafite);
}
.boletim-form input::placeholder {
  color: var(--grafite-suave);
  font-style: italic;
}
.boletim-form input:focus {
  outline: none;
  border-color: var(--bordo);
}
.boletim-form button {
  background-color: var(--bordo);
  color: var(--papel);
  border: none;
  padding: 14px 22px;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.boletim-form button:hover { background-color: var(--bordo-escuro); }
.boletim-disclaimer {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 13px;
  color: var(--grafite-suave);
  margin: 4px 0 0 0;
  text-align: center;
}

/* Biblioteca de materiais */
.biblioteca {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--linha);
}
.biblio-item {
  display: grid;
  grid-template-columns: 140px 140px 1fr;
  gap: 32px;
  padding: 26px 0;
  border-bottom: 1px solid var(--linha);
  align-items: start;
}
.biblio-item time {
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--ocre);
  padding-top: 6px;
}
.biblio-item .tipo {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 15px;
  color: var(--oliva);
  padding-top: 4px;
}
.biblio-item h4 {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 21px;
  margin: 0 0 6px 0;
  color: var(--grafite);
  line-height: 1.3;
}
.biblio-item p {
  font-size: 15px;
  color: var(--grafite-suave);
  margin: 0;
  line-height: 1.55;
}
.biblio-rodape {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 14px;
  color: var(--grafite-suave);
  margin-top: 22px;
  text-align: right;
}

/* Coordenação acadêmica */
.coordenacao {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 64px;
  align-items: start;
}
.coordenacao p {
  font-size: 16.5px;
  color: var(--grafite-suave);
  margin: 0 0 16px 0;
  line-height: 1.65;
  text-align: justify;
  hyphens: auto;
}
.coord-sub {
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--bordo);
  margin: 0 0 14px 0;
}
.coord-interesses {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--linha);
}
.coord-interesses li {
  padding: 14px 0;
  border-bottom: 1px solid var(--linha);
  font-family: "EB Garamond", serif;
  font-size: 16px;
  color: var(--grafite);
  font-style: italic;
  position: relative;
  padding-left: 20px;
}
.coord-interesses li::before {
  content: "·";
  position: absolute;
  left: 4px;
  color: var(--ocre);
  font-style: normal;
  font-weight: 600;
}

/* Sobre */
.posicionamento {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
}
.posicionamento p {
  font-size: 17px;
  color: var(--grafite-suave);
  margin: 0 0 16px 0;
  text-align: justify;
  hyphens: auto;
}
.citacao {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 22px;
  line-height: 1.5;
  color: var(--ardosia);
  border-left: 3px solid var(--bordo);
  padding-left: 24px;
  margin: 0;
}

/* Rodapé */
footer {
  border-top: 1px solid var(--linha);
  padding-top: 36px;
  margin-top: 40px;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 40px;
  font-size: 14px;
  color: var(--grafite-suave);
}
footer h5 {
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--bordo);
  margin: 0 0 10px 0;
}
footer p { margin: 0 0 6px 0; }
.colofao {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 13px;
  color: var(--grafite-suave);
  text-align: center;
  margin-top: 48px;
  border-top: 1px dashed var(--linha);
  padding-top: 20px;
}

/* ==========================================================================
   Páginas internas (login e área do aluno)
   ========================================================================== */

body.pagina-login {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 24px;
}
body.pagina-login .folha { display: none; }

.login-container {
  max-width: 440px;
  width: 100%;
}

.login-cabeca {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 48px;
  justify-content: center;
}
.login-cabeca .selo { width: 72px; height: 72px; }
.login-cabeca .marca-palavra { margin: 0; line-height: 1; }

.login-card {
  background: var(--papel-claro);
  border: 1px solid var(--linha);
  border-radius: 8px;
  padding: 40px 36px;
  margin-bottom: 24px;
}
.login-card h2 {
  font-family: "EB Garamond", serif;
  font-size: 26px;
  font-weight: 500;
  color: var(--ardosia);
  margin: 0 0 8px 0;
}
.login-subtitulo {
  font-size: 15px;
  color: var(--grafite-suave);
  margin: 0 0 28px 0;
  line-height: 1.5;
}

.login-card label {
  display: block;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--grafite-suave);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.login-card input[type="email"],
.login-card input[type="text"] {
  width: 100%;
  padding: 12px 16px;
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 17px;
  color: var(--grafite);
  background: #fff;
  border: 1px solid var(--linha);
  border-radius: 6px;
  outline: none;
  transition: border-color 0.2s;
}
.login-card input:focus {
  border-color: var(--ardosia);
  box-shadow: 0 0 0 3px rgba(44, 62, 80, 0.1);
}
.login-card input::placeholder { color: #B0A898; }

.campo-pin {
  font-family: "Inter", sans-serif !important;
  font-size: 28px !important;
  font-weight: 600;
  letter-spacing: 8px;
  text-align: center;
  color: var(--ardosia);
  padding: 14px 16px !important;
}

.btn-login {
  display: block;
  width: 100%;
  padding: 14px 24px;
  margin-top: 20px;
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  background: var(--ardosia);
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 0.2s;
  line-height: 1.4;
}
.btn-login:hover { background: var(--ardosia-escuro); }
.btn-login:disabled { opacity: 0.6; cursor: not-allowed; }

.login-msg {
  margin-top: 16px;
  padding: 0;
  font-size: 14px;
  line-height: 1.5;
  border-radius: 6px;
}
.login-msg:empty { display: none; }
.login-msg.sucesso {
  padding: 12px 16px;
  background: rgba(92, 107, 58, 0.1);
  border: 1px solid rgba(92, 107, 58, 0.3);
  color: #4A5A2E;
}
.login-msg.erro {
  padding: 12px 16px;
  background: rgba(110, 42, 42, 0.08);
  border: 1px solid rgba(110, 42, 42, 0.2);
  color: var(--bordo);
}

.login-voltar {
  display: block;
  text-align: center;
  margin-top: 16px;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  color: var(--grafite-suave);
  text-decoration: none;
}
.login-voltar:hover { color: var(--ardosia); text-decoration: underline; }

.login-rodape {
  text-align: center;
  margin-top: 8px;
}
.login-rodape a {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  color: var(--grafite-suave);
  text-decoration: none;
}
.login-rodape a:hover { color: var(--bordo); text-decoration: underline; }

.oculto { display: none !important; }

/* Área do aluno */

body.pagina-aluno {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 40px 24px;
}
body.pagina-aluno .folha { display: none; }

.aluno-container {
  max-width: 560px;
  width: 100%;
}

.aluno-cabeca {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 40px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--linha);
}
.aluno-cabeca-esquerda {
  display: flex;
  align-items: center;
  gap: 16px;
}
.aluno-cabeca .selo { width: 52px; height: 52px; }
.aluno-cabeca .marca-palavra { margin: 0; font-size: 28px; line-height: 1; }

.btn-sair {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--grafite-suave);
  background: none;
  border: 1px solid var(--linha);
  border-radius: 6px;
  padding: 8px 18px;
  cursor: pointer;
  transition: border-color 0.2s, color 0.2s;
}
.btn-sair:hover { border-color: var(--bordo); color: var(--bordo); }
.btn-sair:disabled { opacity: 0.5; cursor: not-allowed; }

.aluno-card {
  background: var(--papel-claro);
  border: 1px solid var(--linha);
  border-radius: 8px;
  padding: 40px 36px;
  margin-bottom: 24px;
}
.aluno-card h2 {
  font-family: "EB Garamond", serif;
  font-size: 28px;
  font-weight: 500;
  color: var(--ardosia);
  margin: 0 0 12px 0;
}
.aluno-boas-vindas {
  font-size: 16px;
  color: var(--grafite-suave);
  margin: 0 0 28px 0;
  line-height: 1.6;
}
.aluno-carregando {
  font-size: 15px;
  color: var(--grafite-suave);
  margin: 0;
  padding: 20px 0;
}

.aluno-dados {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.aluno-dado {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 12px 0;
  border-bottom: 1px solid var(--linha);
}
.aluno-dado:last-child { border-bottom: none; }
.aluno-rotulo {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--grafite-suave);
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.aluno-valor {
  font-size: 16px;
  color: var(--grafite);
  text-align: right;
}

.aluno-rodape {
  text-align: center;
  margin-top: 8px;
}
.aluno-rodape a {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  color: var(--grafite-suave);
  text-decoration: none;
}
.aluno-rodape a:hover { color: var(--bordo); text-decoration: underline; }

/* ==========================================================================
   Termômetro da turma (LL-02)
   ========================================================================== */

/* --- Página do aluno (entrada + votação) --- */

body.pagina-termometro {
  background: var(--papel);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.tm-container {
  width: 100%;
  max-width: 480px;
}
.tm-cabeca {
  text-align: center;
  margin-bottom: 28px;
}
.tm-cabeca .selo { width: 64px; height: 64px; display: block; margin: 0 auto 10px; }
.tm-cabeca .marca-palavra { font-size: 30px; }
.tm-card {
  background: var(--papel-claro);
  border: 1px solid var(--linha);
  border-radius: 8px;
  padding: 36px 32px;
}
.tm-card h2 {
  font-family: "EB Garamond", serif;
  font-size: 24px;
  color: var(--grafite);
  margin: 0 0 8px;
}
.tm-card .tm-subtitulo {
  font-family: "Source Serif 4", serif;
  font-size: 15px;
  color: var(--grafite-suave);
  margin: 0 0 24px;
  line-height: 1.5;
}
.tm-code-input {
  display: block;
  width: 100%;
  padding: 14px;
  font-family: "JetBrains Mono", "Courier New", monospace;
  font-size: 28px;
  letter-spacing: 8px;
  text-align: center;
  border: 1px solid var(--linha);
  border-radius: 6px;
  background: #fff;
  color: var(--grafite);
  outline: none;
  box-sizing: border-box;
}
.tm-code-input:focus { border-color: var(--oliva); box-shadow: 0 0 0 2px rgba(92,107,58,0.15); }
.tm-btn {
  display: block;
  width: 100%;
  padding: 14px;
  margin-top: 16px;
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #fff;
  background: var(--oliva);
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s;
}
.tm-btn:hover { background: var(--oliva-escuro); }
.tm-btn:disabled { opacity: 0.5; cursor: default; }
.tm-msg {
  margin-top: 12px;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  min-height: 20px;
}
.tm-msg.erro { color: #a94442; }
.tm-msg.sucesso { color: var(--oliva); }
.tm-msg.info { color: var(--grafite-suave); }

/* Pergunta na tela do aluno */
.tm-question-text {
  font-family: "EB Garamond", serif;
  font-size: 22px;
  color: var(--grafite);
  line-height: 1.4;
  margin: 0 0 6px;
}
.tm-question-indicator {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  color: var(--grafite-suave);
  margin: 0 0 20px;
}

/* Botões de alternativa */
.tm-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.tm-option-btn {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 56px;
  padding: 14px 16px;
  font-family: "Inter", sans-serif;
  font-size: 15px;
  color: var(--grafite);
  background: #fff;
  border: 1.5px solid var(--linha);
  border-left: 4px solid var(--linha);
  border-radius: 6px;
  cursor: pointer;
  text-align: left;
  transition: border-color 0.2s, background 0.2s;
  line-height: 1.4;
}
.tm-option-btn:hover { background: rgba(92,107,58,0.06); border-left-color: var(--oliva); }
.tm-option-btn.selecionado {
  background: rgba(92,107,58,0.1);
  border-color: var(--oliva);
  border-left-color: var(--oliva);
}
.tm-option-btn:disabled { opacity: 0.5; cursor: default; }
.tm-option-btn:disabled:hover { background: #fff; border-left-color: var(--linha); }
.tm-option-btn.selecionado:disabled { opacity: 0.7; background: rgba(92,107,58,0.1); border-left-color: var(--oliva); }
.tm-option-letter {
  font-weight: 600;
  margin-right: 12px;
  min-width: 20px;
  color: var(--grafite-suave);
  text-transform: uppercase;
}

/* Estado de espera */
.tm-aguardando-msg {
  text-align: center;
  padding: 32px 16px;
}
.tm-aguardando-msg p {
  font-family: "Source Serif 4", serif;
  font-size: 16px;
  color: var(--grafite-suave);
  line-height: 1.5;
}

.tm-rodape {
  text-align: center;
  margin-top: 24px;
}
.tm-rodape a {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  color: var(--grafite-suave);
  text-decoration: none;
}
.tm-rodape a:hover { color: var(--bordo); text-decoration: underline; }

/* --- Página de criação de sessão --- */

body.pagina-termometro-criar {
  background: var(--papel);
  min-height: 100vh;
  padding: 24px;
}
.tm-criar-container {
  max-width: 640px;
  margin: 0 auto;
}
.tm-criar-cabeca {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 28px;
}
.tm-criar-cabeca .selo { width: 48px; height: 48px; }
.tm-criar-cabeca .marca-palavra { font-size: 26px; }
.tm-criar-card {
  background: var(--papel-claro);
  border: 1px solid var(--linha);
  border-radius: 8px;
  padding: 36px 32px;
}
.tm-criar-card h2 {
  font-family: "EB Garamond", serif;
  font-size: 26px;
  color: var(--grafite);
  margin: 0 0 24px;
}
.tm-criar-label {
  display: block;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--grafite-suave);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}
.tm-criar-input {
  display: block;
  width: 100%;
  padding: 12px 14px;
  font-family: "Source Serif 4", serif;
  font-size: 16px;
  border: 1px solid var(--linha);
  border-radius: 6px;
  background: #fff;
  color: var(--grafite);
  outline: none;
  box-sizing: border-box;
}
.tm-criar-input:focus { border-color: var(--oliva); box-shadow: 0 0 0 2px rgba(92,107,58,0.15); }
.tm-criar-input::placeholder { color: #bbb; }

/* Bloco de pergunta */
.tm-question-block {
  border: 1px solid var(--linha);
  border-left: 3px solid var(--oliva);
  border-radius: 6px;
  padding: 20px;
  margin-top: 20px;
  position: relative;
}
.tm-question-block-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}
.tm-question-block-title {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--oliva);
}
.tm-remove-btn {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  color: var(--bordo);
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px 8px;
}
.tm-remove-btn:hover { text-decoration: underline; }
.tm-option-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
.tm-option-row-letter {
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: var(--grafite-suave);
  min-width: 20px;
}
.tm-option-row input {
  flex: 1;
}
.tm-question-block .tm-criar-input { margin-top: 0; }

.tm-add-btn {
  display: block;
  width: 100%;
  padding: 12px;
  margin-top: 20px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--oliva);
  background: transparent;
  border: 1.5px dashed var(--oliva);
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s;
}
.tm-add-btn:hover { background: rgba(92,107,58,0.06); }

.tm-criar-submit {
  display: block;
  width: 100%;
  padding: 14px;
  margin-top: 28px;
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #fff;
  background: var(--oliva);
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s;
}
.tm-criar-submit:hover { background: var(--oliva-escuro); }
.tm-criar-submit:disabled { opacity: 0.5; cursor: default; }

/* Exibição do código após criação */
.tm-code-display {
  font-family: "JetBrains Mono", "Courier New", monospace;
  font-size: 48px;
  letter-spacing: 12px;
  text-align: center;
  color: var(--ardosia);
  padding: 24px;
  margin: 20px 0;
  background: var(--papel);
  border: 2px dashed var(--linha);
  border-radius: 8px;
}
.tm-criar-link-painel {
  display: block;
  text-align: center;
  margin-top: 16px;
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: var(--ardosia);
  text-decoration: none;
  padding: 12px;
  border: 1.5px solid var(--ardosia);
  border-radius: 6px;
  transition: background 0.2s, color 0.2s;
}
.tm-criar-link-painel:hover { background: var(--ardosia); color: #fff; }
.tm-criar-rodape {
  text-align: center;
  margin-top: 24px;
}
.tm-criar-rodape a {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  color: var(--grafite-suave);
  text-decoration: none;
}
.tm-criar-rodape a:hover { color: var(--bordo); text-decoration: underline; }

/* --- Painel do professor (projeção) --- */

body.pagina-termometro-painel {
  background: var(--papel);
  margin: 0;
  overflow: hidden;
}
.tm-painel {
  width: 100vw;
  height: 100vh;
  display: flex;
  flex-direction: column;
}
.tm-painel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 40px;
  border-bottom: 1px solid var(--linha);
  flex-shrink: 0;
}
.tm-painel-header-left {
  display: flex;
  align-items: center;
  gap: 16px;
}
.tm-painel-title {
  font-family: "EB Garamond", serif;
  font-size: 22px;
  color: var(--grafite);
  margin: 0;
}
.tm-code-badge {
  font-family: "JetBrains Mono", "Courier New", monospace;
  font-size: 16px;
  letter-spacing: 3px;
  background: var(--ardosia);
  color: #fff;
  padding: 6px 16px;
  border-radius: 20px;
}
.tm-counter {
  font-family: "Inter", sans-serif;
  font-size: 28px;
  font-weight: 600;
  color: var(--grafite-suave);
}
.tm-counter .tm-counter-x { color: var(--oliva); }
.tm-counter .tm-counter-separator { margin: 0 4px; color: var(--linha); }

/* Corpo do painel */
.tm-painel-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 40px;
  overflow-y: auto;
}
.tm-painel-question {
  font-family: "EB Garamond", serif;
  font-size: 38px;
  color: var(--grafite);
  text-align: center;
  max-width: 900px;
  margin: 0 0 8px;
  line-height: 1.3;
}
.tm-painel-indicator {
  font-family: "Inter", sans-serif;
  font-size: 16px;
  color: var(--grafite-suave);
  text-align: center;
  margin: 0 0 32px;
}

/* Mensagem de aguardar */
.tm-painel-aguardando {
  font-family: "Source Serif 4", serif;
  font-size: 22px;
  color: var(--grafite-suave);
  text-align: center;
  padding: 40px 0;
}

/* Gráfico de barras */
.tm-chart {
  width: 100%;
  max-width: 800px;
}
.tm-bar-row {
  margin-bottom: 20px;
}
.tm-bar-top {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 6px;
}
.tm-bar-label {
  font-family: "Inter", sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--grafite-suave);
  min-width: 28px;
  text-transform: uppercase;
  text-align: center;
  flex-shrink: 0;
}
.tm-bar-text {
  font-family: "Source Serif 4", serif;
  font-size: 18px;
  color: var(--grafite);
  line-height: 1.4;
}
.tm-bar-bottom {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-left: 38px;
}
.tm-bar-track {
  flex: 1;
  height: 40px;
  background: var(--papel-sombra, #E8E1D2);
  border-radius: 6px;
  overflow: hidden;
}
.tm-bar-fill {
  height: 100%;
  border-radius: 6px;
  transition: width 0.5s ease;
  min-width: 0;
}
.tm-bar-fill[data-option="a"] { background: var(--ardosia); }
.tm-bar-fill[data-option="b"] { background: var(--oliva); }
.tm-bar-fill[data-option="c"] { background: var(--ocre); }
.tm-bar-fill[data-option="d"] { background: var(--bordo); }
.tm-bar-value {
  font-family: "Inter", sans-serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--grafite);
  min-width: 90px;
  text-align: right;
  white-space: nowrap;
}

/* Controles de navegação */
.tm-painel-nav {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 32px;
  flex-wrap: wrap;
  justify-content: center;
}
.tm-btn-nav {
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #fff;
  background: var(--ardosia);
  border: none;
  border-radius: 6px;
  padding: 12px 24px;
  cursor: pointer;
  transition: background 0.2s;
}
.tm-btn-nav:hover { background: var(--ardosia-escuro); }
.tm-btn-nav:disabled { opacity: 0.35; cursor: default; }
.tm-btn-revelar {
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: var(--oliva);
  background: transparent;
  border: 1.5px solid var(--oliva);
  border-radius: 6px;
  padding: 11px 24px;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.tm-btn-revelar:hover { background: var(--oliva); color: #fff; }
.tm-btn-revelar.ativo { background: var(--oliva); color: #fff; }
.tm-btn-encerrar {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--bordo);
  background: transparent;
  border: 1px solid var(--bordo);
  border-radius: 6px;
  padding: 8px 16px;
  cursor: pointer;
  margin-left: 12px;
  transition: background 0.2s, color 0.2s;
}
.tm-btn-encerrar:hover { background: var(--bordo); color: #fff; }

/* Estado encerrado no painel */
.tm-painel-encerrado {
  text-align: center;
  padding: 40px;
}
.tm-painel-encerrado h2 {
  font-family: "EB Garamond", serif;
  font-size: 32px;
  color: var(--grafite);
  margin: 0 0 12px;
}
.tm-painel-encerrado p {
  font-family: "Source Serif 4", serif;
  font-size: 18px;
  color: var(--grafite-suave);
}

/* Responsivo — telefones e tablets pequenos */
@media (max-width: 900px) {
  .folha { padding: 40px 28px 60px 28px; }
  header.cabeca { grid-template-columns: 72px 1fr; }
  header.cabeca .meta { display: none; }
  .marca-palavra { font-size: 34px; }
  section.hero { grid-template-columns: 1fr; gap: 32px; }
  .bloco-com-marginalia { grid-template-columns: 1fr; }
  .hero h1 { font-size: 38px; }
  .linhas, .fichas, .posicionamento, footer, .portaria-grade, .notas, .coordenacao { grid-template-columns: 1fr; gap: 28px; }
  .mini-fichas { grid-template-columns: 1fr 1fr; gap: 22px; }
  .boletim-caixa { grid-template-columns: 1fr; padding: 32px 28px; gap: 28px; }
  .boletim-texto h3 { font-size: 26px; }
  .biblio-item { grid-template-columns: 1fr; gap: 6px; padding: 20px 0; }
  .biblio-item time { padding-top: 0; }
  .biblio-item .tipo { padding-top: 0; }
  /* Login e área do aluno responsivos */
  .login-card { padding: 28px 20px; }
  .login-cabeca .marca-palavra { font-size: 28px; }
  .login-cabeca .selo { width: 56px; height: 56px; }
  .campo-pin { font-size: 24px !important; letter-spacing: 6px; }
  .aluno-card { padding: 28px 20px; }
  .aluno-cabeca .marca-palavra { font-size: 24px; }
  .aluno-cabeca .selo { width: 44px; height: 44px; }
  .aluno-dado { flex-direction: column; gap: 2px; }
  .aluno-valor { text-align: left; }
  /* Termômetro responsivo */
  .tm-card { padding: 28px 20px; }
  .tm-cabeca .selo { width: 52px; height: 52px; }
  .tm-cabeca .marca-palavra { font-size: 26px; }
  .tm-code-input { font-size: 24px; letter-spacing: 6px; }
  .tm-criar-card { padding: 28px 20px; }
  .tm-criar-cabeca .marca-palavra { font-size: 22px; }
  .tm-question-block { padding: 16px; }
  .tm-code-display { font-size: 36px; letter-spacing: 8px; }
  /* Painel responsivo */
  .tm-painel-header { padding: 12px 20px; flex-wrap: wrap; gap: 8px; }
  .tm-painel-title { font-size: 18px; }
  .tm-counter { font-size: 22px; }
  .tm-painel-body { padding: 20px; }
  .tm-painel-question { font-size: 26px; }
  .tm-bar-text { font-size: 16px; }
  .tm-bar-bottom { padding-left: 34px; }
  .tm-bar-value { font-size: 15px; min-width: 70px; }
  .tm-bar-track { height: 32px; }
}

/* Responsivo — tablets maiores */
@media (min-width: 901px) and (max-width: 1100px) {
  .mini-fichas { grid-template-columns: 1fr 1fr; }
}

/* ==========================================================================
   Área do professor
   ========================================================================== */

body.pagina-professor {
  background: var(--papel);
  min-height: 100vh;
}

/* --- Navegação --- */
.prof-nav {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 32px;
  border-bottom: 1px solid var(--linha);
  background: var(--papel-claro);
}
.prof-nav-selo { width: 40px; height: 40px; flex-shrink: 0; }
.prof-nav-marca {
  font-family: "EB Garamond", serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--grafite);
  text-decoration: none;
  margin-right: 24px;
}
.prof-nav-marca .lab { font-size: 0.72em; color: var(--bordo); }
.prof-nav-links { display: flex; gap: 4px; flex: 1; }
.prof-nav-link {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--grafite-suave);
  text-decoration: none;
  padding: 8px 14px;
  border-radius: 6px;
  transition: background 0.2s, color 0.2s;
}
.prof-nav-link:hover { background: rgba(110,42,42,0.06); color: var(--bordo); }
.prof-nav-link.ativo { color: var(--bordo); border-bottom: 2px solid var(--bordo); border-radius: 6px 6px 0 0; }
.prof-nav-sair {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  color: var(--grafite-suave);
  text-decoration: none;
  margin-left: auto;
  padding: 8px 14px;
}
.prof-nav-sair:hover { color: var(--bordo); }

/* --- Container e títulos --- */
.prof-container { max-width: 1060px; margin: 0 auto; padding: 40px 32px; }
.prof-page-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24px; gap: 16px; }
.prof-page-title { font-family: "EB Garamond", serif; font-size: 30px; font-weight: 500; color: var(--grafite); margin: 0 0 8px; }
.prof-page-subtitle { font-family: "Source Serif 4", serif; font-size: 15px; color: var(--grafite-suave); margin: 0; }
.prof-section-title { font-family: "EB Garamond", serif; font-size: 22px; font-weight: 500; color: var(--grafite); margin: 0 0 16px; }
.prof-back-link { font-family: "Inter", sans-serif; font-size: 13px; color: var(--grafite-suave); text-decoration: none; }
.prof-back-link:hover { color: var(--bordo); }

/* --- Botões --- */
.prof-btn-primary {
  font-family: "Inter", sans-serif; font-size: 14px; font-weight: 500;
  color: #fff; background: var(--ardosia); border: none; border-radius: 6px;
  padding: 10px 20px; cursor: pointer; transition: background 0.2s; white-space: nowrap;
}
.prof-btn-primary:hover { background: var(--ardosia-escuro); }
.prof-btn-secondary {
  font-family: "Inter", sans-serif; font-size: 14px; font-weight: 500;
  color: var(--grafite-suave); background: transparent; border: 1px solid var(--linha); border-radius: 6px;
  padding: 10px 20px; cursor: pointer; transition: background 0.2s;
}
.prof-btn-secondary:hover { background: rgba(0,0,0,0.03); }
.prof-btn-danger-sm {
  font-family: "Inter", sans-serif; font-size: 13px; font-weight: 500;
  color: var(--bordo); background: transparent; border: 1px solid var(--bordo); border-radius: 6px;
  padding: 8px 16px; cursor: pointer; transition: background 0.2s;
}
.prof-btn-danger-sm:hover { background: rgba(110,42,42,0.06); }
.prof-btn-micro {
  font-family: "Inter", sans-serif; font-size: 12px;
  color: var(--ardosia); background: none; border: 1px solid var(--linha); border-radius: 4px;
  padding: 4px 10px; cursor: pointer; transition: background 0.2s;
}
.prof-btn-micro:hover { background: rgba(44,62,80,0.06); }
.prof-btn-micro.danger { color: var(--bordo); border-color: rgba(110,42,42,0.3); }
.prof-btn-micro.danger:hover { background: rgba(110,42,42,0.06); }

/* --- Cards de estatísticas --- */
.stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; margin-bottom: 40px; }
.stat-card { background: var(--papel-claro); border: 1px solid var(--linha); border-radius: 8px; padding: 20px; }
.stat-card-label {
  font-family: "Inter", sans-serif; font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.8px; color: var(--grafite-suave); margin: 0 0 8px;
}
.stat-card-value { font-family: "EB Garamond", serif; font-size: 36px; font-weight: 500; color: var(--grafite); margin: 0; line-height: 1; }
.stat-card-value.bordo { color: var(--bordo); }
.stat-card-value.oliva { color: var(--oliva); }
.stat-card-value.ardosia { color: var(--ardosia); }
.stat-card-value.ocre { color: var(--ocre); }

/* --- Painéis e tabelas --- */
.prof-two-col { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; }
.prof-panel { background: var(--papel-claro); border: 1px solid var(--linha); border-radius: 8px; padding: 24px; }
.prof-panel-title { font-family: "EB Garamond", serif; font-size: 20px; font-weight: 500; color: var(--grafite); margin: 0 0 16px; }
.prof-table { width: 100%; border-collapse: collapse; }
.prof-table th {
  font-family: "Inter", sans-serif; font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.5px; color: var(--grafite-suave);
  text-align: left; padding: 8px 12px; border-bottom: 1px solid var(--linha);
}
.prof-table th.sortable { cursor: pointer; }
.prof-table th.sortable:hover { color: var(--bordo); }
.prof-table td {
  font-family: "Source Serif 4", serif; font-size: 14px; color: var(--grafite);
  padding: 10px 12px; border-bottom: 1px solid rgba(217,207,188,0.5);
}
.prof-table tr:last-child td { border-bottom: none; }
.prof-table .code-cell { font-family: "JetBrains Mono", monospace; font-size: 13px; letter-spacing: 1px; color: var(--ardosia); }
.prof-table-full { table-layout: auto; }
.acoes-cell { white-space: nowrap; }
.status-badge { font-family: "Inter", sans-serif; font-size: 11px; font-weight: 500; padding: 3px 8px; border-radius: 10px; }
.status-badge.ativa { background: rgba(92,107,58,0.12); color: var(--oliva); }
.status-badge.encerrada { background: rgba(59,58,56,0.08); color: var(--grafite-suave); }

/* --- Links rápidos --- */
.quick-links { display: flex; flex-direction: column; gap: 10px; }
.quick-link {
  display: block; font-family: "Inter", sans-serif; font-size: 14px; font-weight: 500;
  color: var(--ardosia); text-decoration: none; padding: 14px 16px;
  border: 1px solid var(--linha); border-radius: 6px; transition: background 0.2s, border-color 0.2s;
}
.quick-link:hover { background: rgba(44,62,80,0.04); border-color: var(--ardosia); }

/* --- Filtros --- */
.prof-filtros { display: flex; gap: 12px; margin-bottom: 20px; flex-wrap: wrap; }
.prof-filtro-input, .prof-filtro-select {
  font-family: "Inter", sans-serif; font-size: 13px;
  padding: 8px 12px; border: 1px solid var(--linha); border-radius: 6px;
  background: var(--papel-claro); color: var(--grafite); outline: none;
}
.prof-filtro-input { flex: 1; min-width: 200px; }
.prof-filtro-input:focus, .prof-filtro-select:focus { border-color: var(--ardosia); box-shadow: 0 0 0 2px rgba(44,62,80,0.1); }

/* --- Formulários inline --- */
.prof-form-inline { margin-bottom: 20px; }
.prof-form-titulo { font-family: "EB Garamond", serif; font-size: 20px; font-weight: 500; color: var(--grafite); margin: 0 0 16px; }
.prof-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.prof-form-field { display: flex; flex-direction: column; gap: 4px; }
.prof-form-label {
  font-family: "Inter", sans-serif; font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.5px; color: var(--grafite-suave);
}
.prof-form-input {
  font-family: "Source Serif 4", serif; font-size: 15px;
  padding: 10px 12px; border: 1px solid var(--linha); border-radius: 6px;
  background: #fff; color: var(--grafite); outline: none;
}
.prof-form-input:focus { border-color: var(--ardosia); box-shadow: 0 0 0 2px rgba(44,62,80,0.1); }
.prof-form-acoes { display: flex; gap: 10px; margin-top: 16px; }
.prof-msg { font-family: "Inter", sans-serif; font-size: 13px; margin-top: 8px; min-height: 18px; }
.prof-msg.erro { color: #a94442; }
.prof-msg.sucesso { color: var(--oliva); }
.prof-empty { text-align: center; padding: 40px 20px; color: var(--grafite-suave); font-family: "Source Serif 4", serif; font-size: 15px; }

/* --- Modal --- */
.prof-modal {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.4); display: flex; align-items: center; justify-content: center; z-index: 1000;
}
.prof-modal.oculto { display: none; }
.prof-modal-content {
  background: var(--papel-claro); border: 1px solid var(--linha); border-radius: 8px;
  padding: 32px; max-width: 560px; width: 90%; max-height: 90vh; overflow-y: auto;
}

/* --- Cards de aulas --- */
.aulas-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.aula-card {
  background: var(--papel-claro); border: 1px solid var(--linha); border-radius: 8px;
  padding: 20px; cursor: pointer; transition: border-color 0.2s, box-shadow 0.2s;
}
.aula-card:hover { border-color: var(--bordo); box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.aula-card-titulo { font-family: "EB Garamond", serif; font-size: 20px; font-weight: 500; color: var(--grafite); margin: 0 0 6px; }
.aula-card-desc { font-family: "Source Serif 4", serif; font-size: 14px; color: var(--grafite-suave); margin: 0 0 10px; line-height: 1.4; }
.aula-card-meta { font-family: "Inter", sans-serif; font-size: 12px; color: var(--grafite-suave); }

/* --- Editor de temas e perguntas --- */
.tema-section {
  border: 1px solid var(--linha); border-left: 3px solid var(--oliva);
  border-radius: 6px; padding: 20px; margin-bottom: 16px; background: var(--papel-claro);
}
.tema-header { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.tema-titulo-input {
  font-family: "EB Garamond", serif; font-size: 18px; font-weight: 500;
  border: 1px solid transparent; border-radius: 4px; padding: 4px 8px;
  background: transparent; color: var(--grafite); flex: 1; outline: none;
}
.tema-titulo-input:focus { border-color: var(--oliva); background: #fff; }
.tema-header-acoes { display: flex; gap: 6px; flex-shrink: 0; }

.pergunta-block {
  border: 1px solid rgba(217,207,188,0.5); border-radius: 6px;
  padding: 14px; margin-bottom: 10px; background: #fff;
}
.pergunta-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.pergunta-num {
  font-family: "Inter", sans-serif; font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.5px; color: var(--oliva);
}
.pergunta-opcoes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.pg-opt { display: flex; align-items: center; gap: 6px; }
.pg-opt-letter { font-family: "Inter", sans-serif; font-weight: 600; font-size: 13px; color: var(--grafite-suave); min-width: 16px; }
.pg-opt .prof-form-input { font-size: 14px; padding: 8px 10px; }

.prof-btn-add-tema {
  display: block; width: 100%; padding: 14px;
  font-family: "Inter", sans-serif; font-size: 14px; font-weight: 500;
  color: var(--oliva); background: transparent; border: 1.5px dashed var(--oliva);
  border-radius: 6px; cursor: pointer; transition: background 0.2s; margin-top: 16px;
}
.prof-btn-add-tema:hover { background: rgba(92,107,58,0.06); }
.prof-btn-add-pergunta {
  display: block; width: 100%; padding: 10px;
  font-family: "Inter", sans-serif; font-size: 13px; font-weight: 500;
  color: var(--oliva); background: transparent; border: 1px dashed var(--oliva);
  border-radius: 4px; cursor: pointer; margin-top: 10px; transition: background 0.2s;
}
.prof-btn-add-pergunta:hover { background: rgba(92,107,58,0.06); }

/* --- Sessões ativas --- */
.sessoes-ativas-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin-bottom: 24px; }
.sessao-ativa-card {
  background: var(--papel-claro); border: 2px solid var(--oliva); border-radius: 8px;
  padding: 24px; text-align: center;
}
.sessao-code-grande {
  font-family: "JetBrains Mono", monospace; font-size: 36px; letter-spacing: 8px;
  color: var(--ardosia); margin-bottom: 8px;
}
.sessao-card-titulo { font-family: "EB Garamond", serif; font-size: 18px; color: var(--grafite); margin-bottom: 4px; }
.sessao-card-meta { font-family: "Inter", sans-serif; font-size: 13px; color: var(--grafite-suave); }

/* --- Barra de temas no painel do Termômetro --- */
.tm-barra-temas {
  display: flex; gap: 8px; padding: 10px 40px; border-bottom: 1px solid var(--linha);
  background: var(--papel-claro); overflow-x: auto; flex-shrink: 0;
}
.tm-tema-tab {
  font-family: "Inter", sans-serif; font-size: 13px; font-weight: 500;
  color: var(--grafite-suave); background: transparent; border: 1px solid var(--linha);
  border-radius: 20px; padding: 6px 16px; cursor: pointer; white-space: nowrap;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.tm-tema-tab:hover { border-color: var(--oliva); color: var(--oliva); }
.tm-tema-tab-ativo { background: var(--oliva); color: #fff; border-color: var(--oliva); }
.tm-tema-tab-ativo:hover { background: var(--oliva-escuro); }

/* --- Conteúdos --- */
.header-btns { display: flex; gap: 10px; }
.conteudos-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.conteudo-card {
  background: var(--papel-claro); border: 1px solid var(--linha); border-radius: 8px;
  padding: 20px; cursor: pointer; transition: border-color 0.2s, box-shadow 0.2s;
}
.conteudo-card:hover { border-color: var(--bordo); box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.conteudo-card-titulo { font-family: "EB Garamond", serif; font-size: 20px; font-weight: 500; color: var(--grafite); margin: 0 0 8px; }
.conteudo-card-resumo {
  font-family: "Source Serif 4", serif; font-size: 14px; color: var(--grafite-suave); margin: 0 0 12px;
  line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.conteudo-card-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.conteudo-badge { font-family: "Inter", sans-serif; font-size: 11px; font-weight: 500; padding: 2px 8px; border-radius: 10px; display: inline-block; }
.conteudo-badge-tipo { background: rgba(44,62,80,0.08); color: var(--ardosia); }
.conteudo-badge-nivel { background: rgba(184,130,58,0.12); color: var(--ocre); }
.conteudo-badge-publicado { background: rgba(92,107,58,0.12); color: var(--oliva); }
.conteudo-badge-rascunho { background: rgba(59,58,56,0.08); color: var(--grafite-suave); }
.conteudo-badge-serie { background: rgba(110,42,42,0.08); color: var(--bordo); font-weight: 600; letter-spacing: 0.04em; }
.conteudo-badge-publico { background: rgba(92,107,58,0.2); color: var(--oliva); font-weight: 600; letter-spacing: 0.04em; }
.conteudo-card-data { font-family: "Inter", sans-serif; font-size: 12px; color: var(--grafite-suave); margin-left: auto; }

/* Editor de conteúdo */
.conteudo-editor { margin-top: 10px; }
.conteudo-textarea {
  width: 100%; min-height: 250px; font-family: "Source Serif 4", serif; font-size: 15px; line-height: 1.7;
  padding: 16px; border: 1px solid var(--linha); border-radius: 6px;
  background: #fff; color: var(--grafite); resize: vertical; outline: none;
}
.conteudo-textarea:focus { border-color: var(--ardosia); box-shadow: 0 0 0 2px rgba(44,62,80,0.1); }
.niveis-checkboxes { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 4px; }
.nivel-check {
  display: flex; align-items: center; gap: 6px;
  font-family: "Inter", sans-serif; font-size: 13px; color: var(--grafite); cursor: pointer;
}
.nivel-check input[type="checkbox"] { accent-color: var(--bordo); width: 16px; height: 16px; cursor: pointer; }
.editor-footer { display: flex; gap: 10px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--linha); align-items: center; }
.editor-footer-info { font-family: "Inter", sans-serif; font-size: 12px; color: var(--grafite-suave); margin-left: auto; }
.prof-btn-publicar {
  font-family: "Inter", sans-serif; font-size: 14px; font-weight: 500;
  color: var(--oliva); background: rgba(92,107,58,0.08); border: 1px solid var(--oliva);
  border-radius: 6px; padding: 10px 20px; cursor: pointer; transition: background 0.2s;
}
.prof-btn-publicar:hover { background: rgba(92,107,58,0.15); }

/* Configuração de perfis e tipos */
.perfis-config { margin-bottom: 20px; }
.perfis-config-desc { font-family: "Source Serif 4", serif; font-size: 14px; color: var(--grafite-suave); margin-bottom: 16px; }
.perfis-config-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.perfil-config-row { display: flex; align-items: center; gap: 10px; }
.perfil-config-label { font-family: "Inter", sans-serif; font-size: 13px; font-weight: 500; color: var(--grafite-suave); min-width: 60px; }
.perfil-config-input {
  font-family: "Source Serif 4", serif; font-size: 14px; padding: 8px 10px;
  border: 1px solid var(--linha); border-radius: 6px; background: #fff; color: var(--grafite); flex: 1; outline: none;
}
.perfil-config-input:focus { border-color: var(--ardosia); box-shadow: 0 0 0 2px rgba(44,62,80,0.1); }
.tipos-lista { margin-bottom: 14px; }
.tipo-item { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid rgba(217,207,188,0.5); }
.tipo-item:last-child { border-bottom: none; }
.tipo-item-nome { font-family: "Source Serif 4", serif; font-size: 15px; color: var(--grafite); }
.tipos-novo { display: flex; gap: 10px; margin-top: 10px; }

/* Visualização como aluno */
.vis-perfil-selector { display: flex; gap: 8px; margin-bottom: 24px; flex-wrap: wrap; }
.vis-perfil-tab {
  font-family: "Inter", sans-serif; font-size: 13px; font-weight: 500;
  color: var(--grafite-suave); background: transparent; border: 1px solid var(--linha);
  border-radius: 20px; padding: 6px 16px; cursor: pointer; white-space: nowrap;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.vis-perfil-tab:hover { border-color: var(--bordo); color: var(--bordo); }
.vis-perfil-tab.ativo { background: var(--bordo); color: #fff; border-color: var(--bordo); }
.vis-conteudo-item {
  background: var(--papel-claro); border: 1px solid var(--linha); border-radius: 8px;
  padding: 24px; margin-bottom: 16px;
}
.vis-conteudo-titulo { font-family: "EB Garamond", serif; font-size: 22px; font-weight: 500; color: var(--grafite); margin: 0 0 6px; }
.vis-conteudo-meta { font-family: "Inter", sans-serif; font-size: 12px; color: var(--grafite-suave); margin-bottom: 12px; }
.vis-conteudo-corpo { font-family: "Source Serif 4", serif; font-size: 15px; color: var(--grafite); line-height: 1.7; white-space: pre-wrap; }

/* Papers entram em sua própria moldura (.paper-ll), então o wrapper
   não duplica borda/fundo do card genérico de conteúdo */
.vis-conteudo-item-paper {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  margin-bottom: 32px;
}

/* --- Responsivo área do professor --- */
@media (max-width: 768px) {
  .prof-nav { padding: 10px 16px; gap: 10px; flex-wrap: wrap; }
  .prof-nav-marca { font-size: 18px; margin-right: 12px; }
  .prof-nav-links { gap: 2px; }
  .prof-nav-link { font-size: 12px; padding: 6px 8px; }
  .prof-container { padding: 24px 16px; }
  .prof-page-header { flex-direction: column; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .prof-two-col { grid-template-columns: 1fr; }
  .prof-filtros { flex-direction: column; }
  .prof-form-grid { grid-template-columns: 1fr; }
  .pergunta-opcoes { grid-template-columns: 1fr; }
  .aulas-grid { grid-template-columns: 1fr; }
  .sessoes-ativas-grid { grid-template-columns: 1fr; }
  .header-btns { flex-wrap: wrap; }
  .conteudos-grid { grid-template-columns: 1fr; }
  .perfis-config-grid { grid-template-columns: 1fr; }
  .tipos-novo { flex-direction: column; }
  .niveis-checkboxes { flex-direction: column; gap: 8px; }
  .tm-barra-temas { padding: 8px 16px; }
  .prof-table-full { display: block; overflow-x: auto; }
}

/* ==========================================================================
   Paper acadêmico (formato = 'paper')
   Estilo sóbrio inspirado no arXiv, adaptado à paleta NLab.
   Escopo restrito a .paper-ll para não afetar outros conteúdos.
   ========================================================================== */

.paper-ll {
  max-width: 760px;
  margin: 0 auto;
  padding: 56px 56px 72px;
  background: var(--papel-claro);
  border: 1px solid var(--linha);
  border-top: 3px solid var(--oliva);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 16px;
  line-height: 1.7;
  color: var(--grafite);
}

/* Cabeçalho identificador do paper */
.paper-ll .paper-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-family: "Inter", sans-serif;
  font-size: 10.5px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--oliva-escuro);
  border-bottom: 1px solid var(--linha);
  padding-bottom: 10px;
  margin-bottom: 32px;
}
.paper-ll .paper-head .serie { font-weight: 600; }
.paper-ll .paper-head .serie a { color: inherit; text-decoration: none; }
.paper-ll .paper-head .data { color: var(--grafite-suave); }

/* Título e subtítulo */
.paper-ll h1.paper-titulo {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 36px;
  line-height: 1.15;
  letter-spacing: -0.3px;
  margin: 0 0 10px;
  color: var(--grafite);
}
.paper-ll p.paper-subtitulo {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 19px;
  color: var(--grafite-suave);
  margin: 0 0 26px;
  line-height: 1.4;
}

/* Autoria institucional */
.paper-ll .paper-autoria {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  line-height: 1.6;
  color: var(--grafite);
  margin: 0 0 6px;
}
.paper-ll .paper-autoria .instituicao {
  font-style: normal;
  color: var(--grafite-suave);
  font-size: 12px;
  display: block;
  margin-top: 2px;
}
.paper-ll .paper-coordenacao {
  font-family: "Inter", sans-serif;
  font-size: 11px;
  color: var(--grafite-suave);
  margin: 0 0 30px;
}

/* Abstract */
.paper-ll .paper-abstract {
  border-left: 3px solid var(--oliva);
  padding: 4px 0 4px 20px;
  margin: 0 0 26px;
}
.paper-ll .paper-abstract .rotulo {
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--oliva-escuro);
  display: block;
  margin-bottom: 6px;
}
.paper-ll .paper-abstract p {
  font-family: "Source Serif 4", serif;
  font-size: 15.5px;
  line-height: 1.68;
  margin: 0;
  color: var(--grafite);
  text-align: justify;
}

/* Palavras-chave */
.paper-ll .paper-keywords {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  color: var(--grafite-suave);
  margin: 0 0 36px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--linha);
}
.paper-ll .paper-keywords .rotulo {
  font-weight: 600;
  color: var(--grafite);
  letter-spacing: 0.4px;
}

/* Sumário */
.paper-ll .paper-sumario {
  background: transparent;
  border: 1px dashed var(--linha);
  padding: 14px 20px;
  margin: 0 0 40px;
  font-family: "Inter", sans-serif;
  font-size: 12.5px;
}
.paper-ll .paper-sumario .rotulo {
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  font-size: 10.5px;
  color: var(--oliva-escuro);
  display: block;
  margin-bottom: 8px;
}
.paper-ll .paper-sumario ol { margin: 0; padding-left: 22px; color: var(--grafite); }
.paper-ll .paper-sumario li { margin: 3px 0; }
.paper-ll .paper-sumario a { color: inherit; text-decoration: none; }
.paper-ll .paper-sumario a:hover { color: var(--oliva-escuro); }

/* Seções */
.paper-ll h2.paper-secao {
  font-family: "EB Garamond", serif;
  font-weight: 600;
  font-size: 22px;
  color: var(--grafite);
  margin: 40px 0 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--linha);
}
.paper-ll h2.paper-secao .num {
  font-family: "Inter", sans-serif;
  font-weight: 500;
  font-size: 13px;
  color: var(--oliva);
  margin-right: 10px;
  letter-spacing: 1px;
}
.paper-ll h3.paper-sub {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-style: italic;
  font-size: 18px;
  color: var(--grafite);
  margin: 24px 0 10px;
}
.paper-ll h3.paper-sub .num {
  font-family: "Inter", sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: 12px;
  color: var(--oliva);
  margin-right: 8px;
  letter-spacing: 0.6px;
}

/* Parágrafos */
.paper-ll p {
  text-align: justify;
  margin: 0 0 14px;
  hyphens: auto;
}
.paper-ll p + p { text-indent: 1.4em; }

/* Citação legal ou doutrinária em bloco */
.paper-ll blockquote.citacao {
  margin: 18px 36px 22px;
  padding: 0 0 0 18px;
  border-left: 2px solid var(--grafite-suave);
  font-family: "Source Serif 4", serif;
  font-size: 15px;
  font-style: italic;
  color: var(--grafite-suave);
}
.paper-ll blockquote.citacao .fonte {
  display: block;
  margin-top: 6px;
  font-style: normal;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.6px;
  color: var(--grafite-suave);
}

/* Referência numérica inline [1] */
.paper-ll sup.ref a {
  color: var(--oliva-escuro);
  text-decoration: none;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  padding: 0 1px;
}
.paper-ll sup.ref a:hover { text-decoration: underline; }

/* Bloco Exemplo — traço distintivo didático */
.paper-ll .paper-exemplo {
  background: var(--papel);
  border: 1px solid var(--linha);
  border-left: 4px solid var(--oliva);
  padding: 18px 22px;
  margin: 26px 0;
  border-radius: 2px;
}
.paper-ll .paper-exemplo .rotulo {
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--oliva-escuro);
  display: block;
  margin-bottom: 10px;
}
.paper-ll .paper-exemplo p:last-child { margin-bottom: 0; }

/* Bloco O que fica — síntese */
.paper-ll .paper-sintese {
  background: var(--papel-sombra);
  padding: 18px 24px;
  margin: 32px 0 24px;
  border-top: 1px solid var(--linha);
  border-bottom: 1px solid var(--linha);
}
.paper-ll .paper-sintese .rotulo {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 18px;
  color: var(--grafite);
  display: block;
  margin-bottom: 10px;
}
.paper-ll .paper-sintese ul { margin: 0; padding-left: 20px; }
.paper-ll .paper-sintese li { margin: 6px 0; padding-left: 4px; }

/* Referências numeradas */
.paper-ll .paper-refs {
  margin-top: 44px;
  padding-top: 20px;
  border-top: 2px solid var(--linha);
}
.paper-ll .paper-refs h2 {
  font-family: "EB Garamond", serif;
  font-weight: 500;
  font-size: 20px;
  margin: 0 0 14px;
  color: var(--grafite);
}
.paper-ll .paper-refs ol {
  padding-left: 26px;
  margin: 0;
  font-family: "Source Serif 4", serif;
  font-size: 14px;
  line-height: 1.55;
  color: var(--grafite);
}
.paper-ll .paper-refs li { margin-bottom: 10px; padding-left: 4px; }
.paper-ll .paper-refs li a {
  color: var(--oliva-escuro);
  text-decoration: none;
  border-bottom: 1px dotted var(--oliva);
}

/* Rodapé institucional do paper */
.paper-ll .paper-foot {
  margin-top: 36px;
  padding-top: 16px;
  border-top: 1px solid var(--linha);
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.4px;
  color: var(--grafite-suave);
  text-align: center;
}
.paper-ll .paper-foot .marca {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 14px;
  color: var(--bordo);
  letter-spacing: 0;
  display: block;
  margin-bottom: 4px;
}

/* Destaque tipográfico em parágrafos */
.paper-ll strong {
  font-weight: 600;
  color: var(--grafite);
}

/* Código inline, para URLs, nomes de cabeçalhos, identificadores técnicos */
.paper-ll code {
  font-family: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;
  font-size: 0.88em;
  background: var(--papel-sombra);
  color: var(--oliva-escuro);
  padding: 1px 6px;
  border-radius: 3px;
  white-space: nowrap;
}

/* Bloco de código, para snippets executáveis */
.paper-ll pre {
  background: var(--papel-sombra);
  border: 1px solid var(--linha);
  border-left: 3px solid var(--oliva);
  border-radius: 4px;
  padding: 14px 18px;
  margin: 16px 0 22px;
  overflow-x: auto;
  line-height: 1.55;
}
.paper-ll pre code {
  background: transparent;
  color: var(--grafite);
  padding: 0;
  font-size: 13.5px;
  white-space: pre;
  border-radius: 0;
}

/* Figura e legenda, para diagramas SVG ou imagens didáticas */
.paper-ll figure {
  margin: 28px 0 12px;
  text-align: center;
}
.paper-ll figure svg,
.paper-ll figure img,
.paper-ll svg.diagrama,
.paper-ll img.diagrama {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
.paper-ll figcaption,
.paper-ll .legenda {
  font-family: "EB Garamond", serif;
  font-style: italic;
  font-size: 14px;
  text-align: center;
  color: var(--grafite-suave);
  margin: 10px 0 28px;
  line-height: 1.5;
}

/* Lista ordenada e não ordenada dentro do corpo */
.paper-ll ol, .paper-ll ul {
  padding-left: 26px;
  margin: 0 0 14px;
}
.paper-ll ol li, .paper-ll ul li {
  margin-bottom: 6px;
  text-align: justify;
}

/* Tabelas comparativas */
.paper-ll table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0 26px;
  font-size: 14.5px;
  line-height: 1.55;
}
.paper-ll table thead th {
  background: var(--oliva-escuro);
  color: var(--papel-claro);
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 12.5px;
  letter-spacing: 0.6px;
  text-align: left;
  padding: 10px 14px;
  border: 1px solid var(--oliva-escuro);
}
.paper-ll table tbody td {
  padding: 9px 14px;
  border: 1px solid var(--linha);
  vertical-align: top;
  text-align: left;
}
.paper-ll table tbody tr:nth-child(even) td {
  background: rgba(232, 225, 210, 0.35);
}

@media (max-width: 720px) {
  .paper-ll { padding: 36px 24px 56px; }
  .paper-ll h1.paper-titulo { font-size: 28px; }
  .paper-ll p.paper-subtitulo { font-size: 17px; }
  .paper-ll blockquote.citacao { margin: 18px 0 22px; }
  .paper-ll pre { padding: 12px 14px; }
  .paper-ll pre code { font-size: 12.5px; }
}

/* ==========================================================================
   Área do aluno v2, layout de abas Série Didática + Aulas (preview 3 aprovado)
   ========================================================================== */

body.pagina-aluno-v2 .folha { display: none; }
body.pagina-aluno-v2 {
  display: block;
  padding: 0;
}

.alu-folha {
  max-width: 1080px;
  margin: 0 auto;
  padding: 48px 56px 96px 56px;
}

.alu-cabeca {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--linha);
  margin-bottom: 40px;
  gap: 20px;
}
.alu-cabeca-esq {
  display: flex;
  align-items: center;
  gap: 18px;
}
.alu-cabeca .selo { width: 56px; height: 56px; flex-shrink: 0; }
.alu-cabeca .marca-palavra { margin: 0; font-size: 30px; line-height: 1; }
.alu-saudacao {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  color: var(--grafite-suave);
  margin: 4px 0 0 0;
  letter-spacing: 0.2px;
}
.alu-saudacao strong { color: var(--grafite); font-weight: 500; }

/* Abas */
.alu-abas {
  display: flex;
  gap: 32px;
  border-bottom: 1px solid var(--linha);
  margin-bottom: 32px;
}
.alu-aba {
  font-family: "EB Garamond", serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--grafite-suave);
  background: none;
  border: none;
  padding: 10px 2px 16px 2px;
  cursor: pointer;
  position: relative;
  letter-spacing: 0.3px;
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.alu-aba-contador {
  font-family: "Inter", sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1px;
  color: var(--grafite-suave);
  background: var(--papel-sombra);
  padding: 3px 9px;
  border-radius: 999px;
  transition: background 0.2s, color 0.2s;
}
.alu-aba:hover { color: var(--ardosia); }
.alu-aba.ativa { color: var(--ardosia); }
.alu-aba.ativa::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: -1px;
  height: 2px;
  background: var(--ardosia);
}
.alu-aba.ativa .alu-aba-contador { background: var(--ardosia); color: var(--papel-claro); }

.alu-painel { display: none; }
.alu-painel.ativo { display: block; }

/* Chips de filtro */
.alu-filtros {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}
.alu-chip {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--grafite-suave);
  background: var(--papel-claro);
  border: 1px solid var(--linha);
  border-radius: 999px;
  padding: 7px 16px;
  cursor: pointer;
  transition: all 0.2s;
}
.alu-chip:hover { border-color: var(--ardosia); color: var(--ardosia); }
.alu-chip.ativo {
  background: var(--ardosia);
  border-color: var(--ardosia);
  color: var(--papel-claro);
}
.alu-chip-contador { font-size: 11px; opacity: 0.7; margin-left: 6px; }

/* Grade da biblioteca */
.alu-grade {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 18px;
}
.alu-card {
  display: flex;
  flex-direction: column;
  background: var(--papel-claro);
  border: 1px solid var(--linha);
  border-radius: 8px;
  padding: 22px;
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
  cursor: pointer;
}
.alu-card:hover {
  transform: translateY(-2px);
  border-color: var(--bordo);
  box-shadow: 0 6px 18px rgba(110, 42, 42, 0.08);
}
.alu-card-num {
  font-family: "Inter", sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.2px;
  color: var(--bordo);
  background: rgba(110, 42, 42, 0.08);
  padding: 4px 10px;
  border-radius: 4px;
  align-self: flex-end;
  margin-bottom: 12px;
}
.alu-card-titulo {
  font-family: "EB Garamond", serif;
  font-size: 20px;
  font-weight: 500;
  color: var(--grafite);
  margin: 0 0 16px 0;
  line-height: 1.3;
  letter-spacing: 0.2px;
}
.alu-card-rod {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  gap: 10px;
}
.alu-card-tipo {
  font-family: "Inter", sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 4px;
}
.alu-card-tipo.paper { color: var(--ardosia); background: rgba(44, 62, 80, 0.08); }
.alu-card-tipo.artigo { color: var(--oliva); background: rgba(92, 107, 58, 0.1); }
.alu-card-tipo.apostila { color: var(--bordo); background: rgba(110, 42, 42, 0.08); }
.alu-card-tipo.caderno { color: var(--ocre); background: rgba(184, 130, 58, 0.1); }
.alu-card-tipo.nota { color: var(--grafite-suave); background: rgba(120, 100, 70, 0.08); }
.alu-card-data {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  color: var(--grafite-suave);
  letter-spacing: 0.2px;
}

/* Estado vazio da biblioteca */
.alu-vazio {
  padding: 40px 24px;
  text-align: center;
  background: var(--papel-claro);
  border: 1px dashed var(--linha);
  border-radius: 8px;
  color: var(--grafite-suave);
}
.alu-vazio p {
  margin: 0;
  font-family: "EB Garamond", serif;
  font-size: 18px;
  font-style: italic;
}

/* Aba Aulas, aviso e grade */
.alu-aviso-aulas {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 1.4px;
  color: var(--ocre);
  background: rgba(184, 130, 58, 0.08);
  border: 1px dashed rgba(184, 130, 58, 0.4);
  border-radius: 6px;
  padding: 10px 16px;
  margin-bottom: 22px;
  display: inline-block;
}
.alu-grade-aulas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 18px;
}
.alu-card-aula {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 20px;
  align-items: center;
  background: var(--papel-claro);
  border: 1px solid var(--linha);
  border-left: 3px solid var(--oliva);
  border-radius: 8px;
  padding: 20px 22px;
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s, box-shadow 0.2s;
}
.alu-card-aula:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(92, 107, 58, 0.1);
}
.alu-aula-data { text-align: center; color: var(--oliva); }
.alu-aula-data .dia {
  font-family: "EB Garamond", serif;
  display: block;
  font-size: 30px;
  font-weight: 600;
  line-height: 1;
}
.alu-aula-data .mes {
  display: block;
  font-family: "Inter", sans-serif;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 1.4px;
  color: var(--grafite-suave);
  margin-top: 4px;
}
.alu-aula-rotulo {
  font-family: "Inter", sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--oliva);
  margin: 0 0 4px 0;
}
.alu-aula-titulo {
  font-family: "EB Garamond", serif;
  font-size: 19px;
  font-weight: 500;
  color: var(--grafite);
  margin: 0 0 2px 0;
  line-height: 1.3;
}
.alu-aula-desc {
  font-size: 14px;
  color: var(--grafite-suave);
  margin: 0;
  line-height: 1.5;
}

/* Rodapé da folha do aluno */
.alu-rodape {
  margin-top: 72px;
  padding-top: 24px;
  border-top: 1px solid var(--linha);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  color: var(--grafite-suave);
  letter-spacing: 0.3px;
}
.alu-rodape a {
  color: var(--grafite-suave);
  text-decoration: none;
  border-bottom: 1px dotted var(--linha);
  padding-bottom: 1px;
}
.alu-rodape a:hover { color: var(--bordo); border-color: var(--bordo); }

/* Página dedicada de conteúdo */
.alu-voltar {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--grafite-suave);
  text-decoration: none;
  margin-bottom: 24px;
  display: inline-block;
  border-bottom: 1px dotted var(--linha);
  padding-bottom: 2px;
}
.alu-voltar:hover { color: var(--bordo); border-color: var(--bordo); }
.alu-doc-standalone {
  background: var(--papel-claro);
  border: 1px solid var(--linha);
  border-radius: 8px;
  padding: 40px 36px;
  text-align: center;
}
.alu-doc-standalone h2 {
  font-family: "EB Garamond", serif;
  font-size: 26px;
  font-weight: 500;
  color: var(--ardosia);
  margin: 0 0 16px 0;
}
.alu-doc-standalone p {
  color: var(--grafite-suave);
  margin: 0 0 24px 0;
}
.alu-doc-standalone .botao {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--papel-claro);
  background: var(--ardosia);
  border: none;
  border-radius: 6px;
  padding: 12px 24px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s;
}
.alu-doc-standalone .botao:hover { background: var(--ardosia-escuro); }
.alu-doc-texto {
  background: var(--papel-claro);
  border: 1px solid var(--linha);
  border-radius: 8px;
  padding: 40px 36px;
  font-family: "Source Serif 4", serif;
  font-size: 17px;
  line-height: 1.7;
  color: var(--grafite);
  white-space: pre-wrap;
}
.alu-doc-cabeca {
  margin-bottom: 24px;
}
.alu-doc-cabeca .alu-card-num { margin-bottom: 12px; align-self: flex-start; display: inline-block; }
.alu-doc-cabeca h1 {
  font-family: "EB Garamond", serif;
  font-size: 32px;
  font-weight: 500;
  color: var(--grafite);
  margin: 0 0 8px 0;
  line-height: 1.2;
}
.alu-doc-cabeca .meta {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  color: var(--grafite-suave);
  letter-spacing: 0.3px;
}
.alu-doc-cabeca .meta .card-tipo { margin-right: 12px; }

@media (max-width: 720px) {
  .alu-folha { padding: 32px 22px 64px 22px; }
  .alu-cabeca { flex-wrap: wrap; }
  .alu-cabeca .marca-palavra { font-size: 24px; }
  .alu-cabeca .selo { width: 44px; height: 44px; }
  .alu-abas { gap: 18px; }
  .alu-aba { font-size: 18px; }
  .alu-card-aula { grid-template-columns: 1fr; gap: 8px; }
  .alu-aula-data { text-align: left; display: flex; gap: 8px; align-items: baseline; }
  .alu-aula-data .dia { font-size: 22px; }
  .alu-doc-texto, .alu-doc-standalone { padding: 28px 22px; }
  .alu-doc-cabeca h1 { font-size: 26px; }
}

/* =============================================
   Migração turmas (v4) — 2026-04-20
   Estilos novos para filtros, checkboxes de turma e badges.
   ============================================= */

.prof-form-field-wide { grid-column: 1 / -1; }

.prof-checkbox-grupo {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  padding: 10px 12px;
  border: 1px solid var(--linha);
  border-radius: 6px;
  background: var(--papel-claro);
}

.prof-form-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  color: var(--grafite);
  cursor: pointer;
}

.prof-form-check input[type="checkbox"] {
  accent-color: var(--ardosia);
  cursor: pointer;
}

.prof-form-hint {
  font-family: "Inter", sans-serif;
  font-size: 13px;
  color: var(--grafite-suave);
  margin: 6px 0;
}

.prof-form-hint a { color: var(--ardosia); }

.status-badge.admin {
  background: var(--bordo);
  color: var(--papel-claro);
}

.alu-turmas-info {
  font-family: "Inter", sans-serif;
  font-size: 12px;
  color: var(--grafite-suave);
  margin-top: 2px;
  letter-spacing: 0.2px;
}

.alu-filtros-turmas {
  margin-bottom: 8px;
}

.alu-filtros-turmas .alu-chip {
  font-size: 13px;
}
