/* ProvaCerta — Sistema de Design Stitch Moderno (claro/escuro). Sem fontes externas (CSP). */
:root {
  color-scheme: light;
  --cor: #3525cd;
  --cor-hover: #291cb0;
  --cor-suave: #efeeff;
  --cor-container: #4f46e5;
  --on-cor-container: #dad7ff;
  --cor-texto: #ffffff;

  --secundaria: #712ae2;
  --secundaria-hover: #5d1ec2;
  --secundaria-suave: #f3ebff;
  --secundaria-container: #8a4cfc;
  --on-secundaria: #ffffff;

  --terciaria: #006c63;
  --terciaria-suave: #e0f6f3;
  --terciaria-container: #00524b;
  --on-terciaria: #ffffff;

  --fundo: #fdfcff;
  --superficie: #fdfcff;
  --superficie-branca: #ffffff;
  --superficie-2: #f8f8ff;
  --superficie-baixa: #f8f8ff;
  --superficie-media: #f1f3ff;
  --superficie-alta: #eaedff;
  --superficie-mais-alta: #e3e9ff;

  --texto: #131b2e;
  --texto-2: #464555;
  --texto-mudo: #777587;
  --borda: #e8eafb;
  --borda-suave: #f0f2fd;
  --borda-forte: #c7c4d8;

  --ok: #006c63;
  --ok-bg: #e6f7f5;
  --ok-borda: #89f5e7;
  --aviso: #b45309;
  --aviso-bg: #fffbeb;
  --aviso-borda: #fde68a;
  --erro: #ba1a1a;
  --erro-bg: #ffdad6;
  --erro-borda: #ffb4ab;

  --sombra-sm: 0 1px 3px rgba(19, 27, 46, 0.04);
  --sombra: 0 1px 4px rgba(19, 27, 46, 0.04), 0 4px 16px rgba(19, 27, 46, 0.05);
  --sombra-lg: 0 4px 24px -2px rgba(19, 27, 46, 0.08), 0 2px 8px rgba(19, 27, 46, 0.04);
  --sombra-card: 0 1px 6px rgba(19, 27, 46, 0.04), 0 4px 20px rgba(19, 27, 46, 0.03);

  --raio: 16px;
  --raio-p: 10px;
  --raio-lg: 20px;
  --raio-full: 9999px;

  --topo-bg: rgba(253, 252, 255, 0.88);
  --foco: rgba(79, 70, 229, 0.35);
  --menu-w: 16.5rem;
  --menu-w-p: 5rem;
}

:root[data-tema="escuro"] {
  color-scheme: dark;
  --cor: #a5b4fc;
  --cor-hover: #c7d2fe;
  --cor-suave: #222952;
  --cor-container: #4f46e5;
  --on-cor-container: #dad7ff;
  --cor-texto: #ffffff;

  --secundaria: #c4b5fd;
  --secundaria-hover: #ddd6fe;
  --secundaria-suave: #312356;
  --secundaria-container: #8a4cfc;
  --on-secundaria: #ffffff;

  --terciaria: #5eead4;
  --terciaria-suave: #133a38;
  --terciaria-container: #00524b;
  --on-terciaria: #ffffff;

  --fundo: #0d101a;
  --superficie: #141826;
  --superficie-branca: #191e30;
  --superficie-2: #191e30;
  --superficie-baixa: #171c2b;
  --superficie-media: #1e2439;
  --superficie-alta: #262e49;
  --superficie-mais-alta: #313a5b;

  --texto: #edf0f8;
  --texto-2: #9da5bc;
  --texto-mudo: #6f7791;
  --borda: #252b42;
  --borda-suave: #1e2338;
  --borda-forte: #3b4466;

  --ok: #5eead4;
  --ok-bg: #112e2c;
  --ok-borda: #1b4d49;
  --aviso: #fcd34d;
  --aviso-bg: #35260c;
  --aviso-borda: #5c451a;
  --erro: #fca5a5;
  --erro-bg: #381518;
  --erro-borda: #66262a;

  --sombra-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
  --sombra: 0 1px 4px rgba(0, 0, 0, 0.3), 0 6px 20px rgba(0, 0, 0, 0.25);
  --sombra-lg: 0 8px 30px rgba(0, 0, 0, 0.4);
  --sombra-card: 0 2px 10px rgba(0, 0, 0, 0.35);

  --topo-bg: rgba(20, 24, 38, 0.88);
  --foco: rgba(165, 180, 252, 0.45);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) {
    color-scheme: dark;
    --cor: #a5b4fc;
    --cor-hover: #c7d2fe;
    --cor-suave: #222952;
    --cor-container: #4f46e5;
    --on-cor-container: #dad7ff;
    --cor-texto: #ffffff;

    --secundaria: #c4b5fd;
    --secundaria-hover: #ddd6fe;
    --secundaria-suave: #312356;
    --secundaria-container: #8a4cfc;
    --on-secundaria: #ffffff;

    --terciaria: #5eead4;
    --terciaria-suave: #133a38;
    --terciaria-container: #00524b;
    --on-terciaria: #ffffff;

    --fundo: #0d101a;
    --superficie: #141826;
    --superficie-branca: #191e30;
    --superficie-2: #191e30;
    --superficie-baixa: #171c2b;
    --superficie-media: #1e2439;
    --superficie-alta: #262e49;
    --superficie-mais-alta: #313a5b;

    --texto: #edf0f8;
    --texto-2: #9da5bc;
    --texto-mudo: #6f7791;
    --borda: #252b42;
    --borda-suave: #1e2338;
    --borda-forte: #3b4466;

    --ok: #5eead4;
    --ok-bg: #112e2c;
    --ok-borda: #1b4d49;
    --aviso: #fcd34d;
    --aviso-bg: #35260c;
    --aviso-borda: #5c451a;
    --erro: #fca5a5;
    --erro-bg: #381518;
    --erro-borda: #66262a;

    --sombra-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
    --sombra: 0 1px 4px rgba(0, 0, 0, 0.3), 0 6px 20px rgba(0, 0, 0, 0.25);
    --sombra-lg: 0 8px 30px rgba(0, 0, 0, 0.4);
    --sombra-card: 0 2px 10px rgba(0, 0, 0, 0.35);

    --topo-bg: rgba(20, 24, 38, 0.88);
    --foco: rgba(165, 180, 252, 0.45);
  }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Plus Jakarta Sans", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 14.5px;
  line-height: 1.5;
  background: var(--fundo);
  color: var(--texto);
  -webkit-font-smoothing: antialiased;
}

a { color: var(--cor); text-decoration: none; text-underline-offset: 2px; }
a:hover { color: var(--cor-hover); }
:focus-visible { outline: 2px solid var(--cor); outline-offset: 2px; }
code {
  background: var(--superficie-alta);
  border: 1px solid var(--borda-suave);
  border-radius: 6px;
  padding: 0.1rem 0.4rem;
  font-family: ui-monospace, "JetBrains Mono", Consolas, monospace;
  font-size: 0.88em;
  color: var(--cor);
}
small { color: var(--texto-2); }

/* --- Estrutura Básica & Ícones --- */
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ico { width: 1.25rem; height: 1.25rem; flex: none; fill: none; stroke: currentColor; }

/* --- Menu Lateral (Sidebar Stitch) --- */
.menu {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--menu-w);
  background: var(--superficie-baixa);
  border-right: 1px solid var(--borda);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  z-index: 50;
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.03);
  transition: width 0.18s ease, transform 0.18s ease;
}
.principal {
  margin-left: var(--menu-w);
  min-height: 100vh;
  transition: margin 0.18s ease;
}
.sem-menu .principal { margin-left: 0; }

.menu-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 1.2rem 1.1rem;
  min-height: 4.5rem;
}
.marca {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: var(--texto) !important;
  min-width: 0;
}
.marca-icone {
  display: grid;
  place-items: center;
  flex: none;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: 12px;
  background: var(--cor);
  color: #ffffff;
  box-shadow: 0 4px 12px -2px rgba(53, 37, 205, 0.35);
}
.marca-icone.mini {
  width: 2rem;
  height: 2rem;
  border-radius: 9px;
}
.marca-icone .ico { width: 1.35rem; height: 1.35rem; stroke-width: 2.4; }
.marca-texto { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.marca-texto strong { font-size: 1.18rem; font-weight: 800; letter-spacing: -0.02em; color: var(--texto); }
.marca-texto small { font-size: 0.75rem; color: var(--texto-2); letter-spacing: 0.04em; text-transform: uppercase; font-weight: 600; }
.marca-texto-topo { font-size: 1.15rem; font-weight: 700; color: var(--texto); letter-spacing: -0.015em; }

.icone-btn {
  display: inline-grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border-radius: 10px;
  border: 1px solid var(--borda);
  background: var(--superficie-branca);
  color: var(--texto-2);
  cursor: pointer;
  transition: all 0.15s ease;
}
.icone-btn:hover {
  background: var(--superficie-alta);
  color: var(--texto);
  border-color: var(--borda-forte);
}

.menu-nav {
  flex: 1;
  overflow-y: auto;
  padding: 0.5rem 0.8rem;
}
.menu-secao {
  margin: 1.2rem 0.6rem 0.4rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--texto-mudo);
}
.nav-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  padding: 0.6rem 0.85rem;
  margin-bottom: 0.2rem;
  border-radius: 10px;
  color: var(--texto-2);
  font-weight: 600;
  font-size: 0.92rem;
  text-decoration: none;
  border: 0;
  background: transparent;
  transition: all 0.14s ease;
}
.nav-item:hover {
  background: var(--superficie-alta);
  color: var(--texto);
}
.nav-item[aria-current="page"] {
  background: var(--cor-container);
  color: #ffffff !important;
  box-shadow: 0 2px 8px -1px rgba(79, 70, 229, 0.4);
}
.nav-item[aria-current="page"] .ico {
  stroke-width: 2.3;
}
.nav-item .selo {
  margin-left: auto;
  background: var(--erro);
  color: #fff;
  border-radius: 999px;
  padding: 0.1rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
}

.menu-rodape-container {
  padding: 0.6rem 0.8rem 1rem;
  border-top: 1px solid var(--borda);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.menu-rodape { margin: 0; padding: 0; }
.nav-item.sair {
  color: var(--texto-2);
}
.nav-item.sair:hover {
  background: var(--erro-bg);
  color: var(--erro);
}
.menu-versao {
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.72rem;
  color: var(--texto-mudo);
  padding: 0.2rem 0.6rem;
}
.menu-fundo { display: none; }
.so-mobile { display: none; }

.menu-recolhido .menu { width: var(--menu-w-p); }
.menu-recolhido .principal { margin-left: var(--menu-w-p); }
.menu-recolhido .marca-texto,
.menu-recolhido .nav-item span,
.menu-recolhido .menu-secao,
.menu-recolhido .nav-item .selo,
.menu-recolhido .menu-versao { display: none; }
.menu-recolhido .menu-topo { flex-direction: column; padding: 1rem 0.5rem; gap: 0.5rem; }
.menu-recolhido .nav-item { justify-content: center; padding: 0.7rem 0; }
.menu-recolhido #recolher-menu .ico { transform: rotate(180deg); }

/* --- Barra Superior (Header Topo) --- */
.topo {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 2rem;
  min-height: 4.25rem;
  background: var(--topo-bg);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--borda);
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.03);
}
.espaco { flex: 1; }
.topo-marca { display: flex; align-items: center; }
.topo-acoes { display: flex; align-items: center; gap: 0.65rem; }
.topo-divisor { width: 1px; height: 1.5rem; background: var(--borda-forte); opacity: 0.5; margin: 0 0.25rem; }

.topo .botao.botao-topo-sec {
  background: var(--superficie-branca);
  color: var(--texto);
  border: 1px solid var(--borda-forte);
  padding: 0.55rem 1rem;
  border-radius: 9px;
  font-weight: 600;
  font-size: 0.88rem;
  white-space: nowrap;
}
.topo .botao.botao-topo-sec:hover {
  background: var(--cor-suave);
  border-color: var(--cor);
  color: var(--cor);
}
.topo .botao.botao-topo-pri {
  background: var(--cor-container);
  color: #ffffff;
  border: 1px solid var(--cor-container);
  padding: 0.55rem 1.05rem;
  border-radius: 9px;
  font-weight: 600;
  font-size: 0.88rem;
  white-space: nowrap;
  box-shadow: 0 2px 8px -1px rgba(79, 70, 229, 0.35);
}
.topo .botao.botao-topo-pri:hover {
  background: var(--cor);
  border-color: var(--cor);
  color: #ffffff;
  box-shadow: 0 4px 12px -2px rgba(79, 70, 229, 0.45);
}

.tema .ic-sol { display: none; }
:root[data-tema="escuro"] .tema .ic-sol { display: inline-flex; }
:root[data-tema="escuro"] .tema .ic-lua { display: none; }
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .tema .ic-sol { display: inline-flex; }
  :root:not([data-tema="claro"]) .tema .ic-lua { display: none; }
}

.usuario {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: var(--texto);
  padding: 0.25rem 0.4rem;
  border-radius: 999px;
  transition: all 0.15s ease;
}
.usuario:hover { opacity: 0.9; }
.usuario-dados {
  display: flex;
  flex-direction: column;
  text-align: right;
  line-height: 1.2;
}
.usuario-dados strong {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--texto);
}
.usuario-dados small {
  font-size: 0.73rem;
  color: var(--texto-mudo);
}
.avatar {
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--secundaria);
  color: #ffffff;
  font-weight: 700;
  font-size: 0.82rem;
  box-shadow: 0 2px 6px rgba(113, 42, 226, 0.25);
}

/* --- Área de Conteúdo Principal --- */
.conteudo {
  max-width: 1400px;
  margin: 0 auto;
  padding: 2rem 2rem 5rem;
}
.sem-menu .conteudo { max-width: 1200px; }

h1, .titulo-pagina {
  margin: 0 0 0.5rem;
  font-size: 1.85rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--texto);
  line-height: 1.2;
}
h2 {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--texto);
  margin: 0 0 0.5rem;
}
h3 {
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--texto);
  margin: 0 0 0.4rem;
}
.subtitulo-pagina {
  margin: 0;
  font-size: 0.96rem;
  color: var(--texto-2);
  line-height: 1.5;
}

/* --- Cartões e Elevações --- */
.cartao {
  background: var(--superficie-branca);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  padding: 1.4rem;
  margin-bottom: 1.2rem;
  box-shadow: var(--sombra-card);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.cartao:hover {
  box-shadow: var(--sombra-lg);
}

/* --- Botões Universais --- */
.botao, button {
  font: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.55rem 1.1rem;
  border-radius: var(--raio-p);
  border: 1px solid var(--borda-forte);
  background: var(--superficie-branca);
  color: var(--texto);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s ease;
}
.botao:hover, button:hover {
  background: var(--superficie-alta);
  border-color: var(--cor);
  color: var(--texto);
}
.botao.pri, .botao.primario, button.primario {
  background: var(--cor-container);
  color: #ffffff;
  border-color: var(--cor-container);
  box-shadow: 0 2px 6px rgba(79, 70, 229, 0.28);
}
.botao.pri:hover, .botao.primario:hover, button.primario:hover {
  background: var(--cor);
  border-color: var(--cor);
  color: #ffffff;
}
.botao.secundario, button.secundario {
  background: var(--superficie-alta);
  color: var(--cor);
  border-color: transparent;
}
.botao.secundario:hover, button.secundario:hover {
  background: var(--superficie-media);
}
.botao.perigo, button.perigo {
  background: var(--erro);
  color: #ffffff;
  border-color: var(--erro);
}

/* --- Inputs e Formulários Universais --- */
input[type=text],
input[type=search],
input[type=email],
input[type=password],
input[type=number],
input[type=date],
textarea,
select {
  width: 100%;
  padding: 0.65rem 0.9rem;
  border: 1px solid var(--borda);
  border-radius: var(--raio-p);
  background: var(--superficie-2);
  color: var(--texto);
  font: inherit;
  font-size: 0.92rem;
  transition: all 0.15s ease;
}
input:focus, textarea:focus, select:focus {
  outline: none;
  background: var(--superficie-branca);
  border-color: var(--cor);
  box-shadow: 0 0 0 3px var(--foco);
}
input::placeholder, textarea::placeholder {
  color: var(--texto-mudo);
}
input[type=checkbox], input[type=radio] {
  accent-color: var(--cor);
  width: 1.1rem;
  height: 1.1rem;
  cursor: pointer;
}

/* ========================================================
   TELA 1: INÍCIO / DASHBOARD (Google Stitch)
   ======================================================== */
.painel-inicio {
  display: flex;
  flex-direction: column;
  gap: 1.8rem;
}

/* Banner de Boas-vindas */
.cartao-boas-vindas {
  position: relative;
  overflow: hidden;
  padding: 2.2rem;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  border-radius: var(--raio-lg);
  background: var(--superficie-branca);
}
.aura-gradiente {
  position: absolute;
  right: -5rem;
  top: -6rem;
  width: 24rem;
  height: 24rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(79, 70, 229, 0.12) 0%, rgba(113, 42, 226, 0.08) 50%, transparent 70%);
  pointer-events: none;
}
.boas-vindas-conteudo {
  position: relative;
  z-index: 2;
  max-width: 44rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.meta-tag-linha {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.badge-status {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.2rem 0.75rem;
  border-radius: 999px;
  background: var(--superficie-alta);
  color: var(--cor);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ponto-pulso {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--cor);
  animation: pulso 2s infinite;
}
@keyframes pulso {
  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(79, 70, 229, 0.6); }
  70% { transform: scale(1.05); box-shadow: 0 0 0 6px rgba(79, 70, 229, 0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(79, 70, 229, 0); }
}
.tag-versao {
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.78rem;
  color: var(--texto-mudo);
}
.titulo-destaque {
  font-size: 2.1rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  margin: 0;
  color: var(--texto);
}
.subtitulo-destaque {
  margin: 0;
  font-size: 1.05rem;
  color: var(--texto-2);
  line-height: 1.6;
}
.boas-vindas-acoes {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  flex-shrink: 0;
}
.botao-banner-pri {
  background: var(--cor-container);
  color: #ffffff !important;
  border: 0;
  padding: 0.75rem 1.4rem;
  font-size: 0.95rem;
  font-weight: 700;
  border-radius: 11px;
  box-shadow: 0 3px 12px rgba(79, 70, 229, 0.35);
}
.botao-banner-pri:hover {
  background: var(--cor);
  box-shadow: 0 6px 18px rgba(79, 70, 229, 0.45);
}
.botao-banner-sec {
  background: var(--superficie-media);
  color: var(--texto) !important;
  border: 1px solid var(--borda);
  padding: 0.75rem 1.3rem;
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: 11px;
}
.botao-banner-sec:hover {
  background: var(--superficie-alta);
}

/* 4-Metric Grid */
.grid-metricas {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.2rem;
}
.cartao-metrica {
  padding: 1.4rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin: 0;
  text-decoration: none;
  color: var(--texto);
}
.cartao-metrica:hover {
  transform: translateY(-2px);
  border-color: var(--cor);
}
.metrica-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.metrica-dados { display: flex; flex-direction: column; }
.metrica-rotulo {
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--texto-mudo);
}
.metrica-valor {
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: var(--texto);
  margin-top: 0.25rem;
}
.metrica-icone {
  display: grid;
  place-items: center;
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 14px;
  flex-shrink: 0;
}
.metrica-icone .ico { width: 1.6rem; height: 1.6rem; }
.metrica-icone.azul { background: var(--superficie-alta); color: var(--cor); }
.metrica-icone.roxo { background: var(--secundaria-suave); color: var(--secundaria); }
.metrica-icone.verde { background: var(--terciaria-suave); color: var(--terciaria); }
.metrica-icone.ambar { background: #fff3db; color: #b45309; }
:root[data-tema="escuro"] .metrica-icone.ambar { background: #35260c; color: #fcd34d; }

.metrica-rodape {
  margin-top: 1.1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--borda-suave);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.82rem;
}
.metrica-status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--texto-2);
}
.metrica-status.ok { color: var(--terciaria); font-weight: 600; }
.metrica-link { color: var(--cor); font-weight: 600; }

/* Grid Dashboard Dividido (Timeline & Tools) */
.grid-dashboard {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: 1.5rem;
  align-items: start;
}
.bloco-fluxo { padding: 1.8rem; }
.secao-cabecalho {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.secao-titulo-linha {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.icone-secao {
  display: grid;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 8px;
  background: var(--cor-suave);
  color: var(--cor);
}
.icone-secao.sec { background: var(--secundaria-suave); color: var(--secundaria); }
.secao-titulo { margin: 0; font-size: 1.25rem; font-weight: 700; color: var(--texto); }
.secao-desc { margin: 0.25rem 0 0; font-size: 0.9rem; color: var(--texto-2); }

/* Timeline Vertical */
.timeline-passos {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.timeline-espinha {
  position: absolute;
  left: 1.15rem;
  top: 1rem;
  bottom: 2rem;
  width: 2px;
  background: var(--borda-forte);
  opacity: 0.4;
}
.passo-item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 1.1rem;
}
.passo-numero {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 2.3rem;
  height: 2.3rem;
  border-radius: 50%;
  background: var(--cor);
  color: #ffffff;
  font-weight: 800;
  font-size: 0.92rem;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(53, 37, 205, 0.3);
}
.passo-numero.verde {
  background: var(--terciaria);
  box-shadow: 0 2px 6px rgba(0, 108, 99, 0.3);
}
.passo-conteudo {
  flex: 1;
  background: var(--superficie-2);
  padding: 1rem 1.2rem;
  border-radius: 12px;
  transition: background 0.15s ease;
}
.passo-conteudo:hover {
  background: var(--superficie-media);
}
.passo-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.3rem;
}
.passo-topo strong { font-size: 0.98rem; font-weight: 700; color: var(--texto); }
.passo-chip {
  padding: 0.15rem 0.55rem;
  border-radius: 6px;
  background: var(--superficie-alta);
  color: var(--texto-2);
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.72rem;
  font-weight: 600;
}
.passo-chip.verde {
  background: var(--terciaria-suave);
  color: var(--terciaria);
}
.passo-conteudo p {
  margin: 0;
  font-size: 0.88rem;
  color: var(--texto-2);
  line-height: 1.5;
}
.destaque-icone { color: var(--terciaria); vertical-align: middle; display: inline-flex; }

/* Bloco Ferramentas & Utilidades */
.bloco-ferramentas {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.utilidades-card {
  padding: 1.8rem;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.util-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: var(--superficie-2);
  padding: 1.1rem;
  border-radius: 12px;
  transition: background 0.15s ease;
}
.util-item:hover { background: var(--superficie-media); }
.util-icone {
  display: grid;
  place-items: center;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 10px;
  flex-shrink: 0;
}
.util-icone.azul { background: var(--superficie-alta); color: var(--cor); }
.util-icone.roxo { background: var(--secundaria-suave); color: var(--secundaria); }
.util-info { flex: 1; display: flex; flex-direction: column; gap: 0.25rem; }
.util-info strong { font-size: 0.98rem; color: var(--texto); font-weight: 700; }
.util-info p { margin: 0; font-size: 0.85rem; color: var(--texto-2); line-height: 1.45; }
.util-rodape {
  margin-top: 0.6rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.util-tag {
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.75rem;
  color: var(--texto-mudo);
}
.botao-util {
  background: var(--cor-container);
  color: #ffffff !important;
  border: 0;
  padding: 0.45rem 0.9rem;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 600;
}
.botao-util:hover { background: var(--cor); }
.botao-util.secundario {
  background: var(--superficie-alta);
  color: var(--texto) !important;
  border: 1px solid var(--borda);
}

.aviso-seguranca {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  padding: 1rem;
  border-radius: 10px;
  background: var(--superficie-media);
}
.aviso-seguranca-icone { color: var(--terciaria); margin-top: 0.1rem; }
.aviso-seguranca-texto { display: flex; flex-direction: column; gap: 0.2rem; }
.aviso-seguranca-titulo {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--texto-mudo);
}
.aviso-seguranca-texto p {
  margin: 0;
  font-size: 0.82rem;
  color: var(--texto-2);
  line-height: 1.45;
}

.status-sistema-card {
  padding: 1.1rem 1.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0;
}
.status-sistema-info {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}
.ponto-status-verde {
  position: relative;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--terciaria);
}
.ponto-status-ping {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--terciaria);
  animation: pulso 2s infinite;
}
.status-sistema-info strong { display: block; font-size: 0.92rem; color: var(--texto); }
.status-sistema-info small { color: var(--texto-mudo); font-size: 0.78rem; }
.tag-delay {
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.75rem;
  padding: 0.2rem 0.55rem;
  border-radius: 6px;
  background: var(--superficie-alta);
  color: var(--texto-2);
}

/* ========================================================
   TELA 2: HISTÓRICO DE PROVAS GERADAS (Google Stitch)
   ======================================================== */
.painel-historico {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.historico-topo {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  flex-wrap: wrap;
}
.historico-titulos { max-width: 42rem; }
.historico-meta-topo {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.4rem;
}
.badge-repositorio {
  padding: 0.2rem 0.75rem;
  border-radius: 999px;
  background: var(--cor-suave);
  color: var(--cor);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.ponto-divisor { color: var(--texto-mudo); }
.texto-sincronizado {
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.78rem;
  color: var(--texto-mudo);
}

.historico-kpis {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.kpi-mini-card {
  background: var(--superficie-branca);
  border: 1px solid var(--borda);
  border-radius: 12px;
  padding: 0.75rem 1.1rem;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  box-shadow: var(--sombra-sm);
}
.kpi-mini-icone {
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 9px;
  flex-shrink: 0;
}
.kpi-mini-icone.azul { background: var(--superficie-alta); color: var(--cor); }
.kpi-mini-icone.roxo { background: var(--secundaria-suave); color: var(--secundaria); }
.kpi-mini-icone.verde { background: var(--terciaria-suave); color: var(--terciaria); }
.kpi-mini-info { display: flex; flex-direction: column; }
.kpi-mini-rotulo {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--texto-mudo);
}
.kpi-mini-valor {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--texto);
  line-height: 1.15;
}

/* Barra de Filtros e Busca */
.barra-filtros {
  padding: 0.85rem 1.1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin: 0;
}
.busca-input-container {
  position: relative;
  flex: 1;
  min-width: 260px;
}
.busca-icone {
  position: absolute;
  left: 0.85rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--texto-mudo);
  pointer-events: none;
}
.input-busca {
  padding-left: 2.5rem;
  background: var(--superficie-2);
  border: 1px solid transparent;
  height: 2.75rem;
}
.filtros-acoes {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.select-container { position: relative; }
.select-filtro {
  height: 2.75rem;
  padding: 0.5rem 1rem;
  border-radius: var(--raio-p);
  background: var(--superficie-2);
  font-weight: 500;
  cursor: pointer;
}
.botao-filtro-limpar {
  height: 2.75rem;
  width: 2.75rem;
  padding: 0;
  border-radius: var(--raio-p);
}

/* Cards de Prova Gerada */
.lista-provas-historico {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.cartao-prova {
  position: relative;
  overflow: hidden;
  padding: 1.6rem;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.cartao-prova::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 5px;
}
.cartao-prova.borda-pri::before { background: var(--cor-container); }
.cartao-prova.borda-sec::before { background: var(--secundaria-container); }
.cartao-prova.borda-ter::before { background: var(--terciaria); }

.cartao-prova-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.cartao-prova-info { flex: 1; display: flex; flex-direction: column; gap: 0.45rem; }
.badges-linha {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 600;
}
.badge-turma { background: var(--cor-suave); color: var(--cor); font-weight: 700; }
.badge-data { background: var(--superficie-alta); color: var(--texto-2); }
.badge-versoes { background: var(--secundaria-suave); color: var(--secundaria); font-weight: 700; }
.badge-blindado { background: var(--terciaria-suave); color: var(--terciaria); font-weight: 700; }

.prova-titulo {
  margin: 0.2rem 0 0;
  font-size: 1.35rem;
  font-weight: 700;
  letter-spacing: -0.015em;
}
.prova-titulo a {
  color: var(--texto);
  transition: color 0.15s ease;
}
.prova-titulo a:hover {
  color: var(--cor);
}
.prova-metadados {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.85rem;
  color: var(--texto-mudo);
  flex-wrap: wrap;
}
.meta-item { display: inline-flex; align-items: center; gap: 0.35rem; }
.meta-codigo { font-family: ui-monospace, Consolas, monospace; }

.prova-status-box {
  background: var(--superficie-2);
  padding: 0.5rem 0.9rem;
  border-radius: 10px;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.prova-status-texto { text-align: right; }
.status-rotulo { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; color: var(--texto-mudo); display: block; }
.status-valor { font-size: 0.86rem; font-weight: 700; color: var(--texto); display: block; }
.status-icone-bolha {
  display: grid;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 50%;
}
.status-icone-bolha.verde { background: var(--terciaria-suave); color: var(--terciaria); }

.divisor-suave {
  height: 1px;
  background: var(--borda-suave);
  width: 100%;
}

.cartao-prova-acoes {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.botoes-download {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
}
.botao-acao {
  height: 2.5rem;
  padding: 0 0.95rem;
  font-size: 0.86rem;
  font-weight: 600;
  border-radius: 9px;
  border: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.botao-acao.pri {
  background: var(--cor-container);
  color: #ffffff !important;
  box-shadow: 0 2px 6px rgba(79, 70, 229, 0.25);
}
.botao-acao.pri:hover { background: var(--cor); }
.botao-acao.alto {
  background: var(--superficie-alta);
  color: var(--cor);
}
.botao-acao.alto:hover { background: var(--superficie-media); }
.botao-acao.suave {
  background: var(--superficie-2);
  color: var(--texto);
}
.botao-acao.suave:hover { background: var(--superficie-alta); }
.botao-acao.sec {
  background: var(--secundaria-suave);
  color: var(--secundaria);
}
.botao-acao.sec:hover { background: #ebe3fd; }
.botao-link-icone {
  background: transparent;
  border: 0;
  color: var(--texto-2);
}
.botao-link-icone:hover { color: var(--texto); background: var(--superficie-alta); }

/* Infoboxes Inferiores */
.grid-infoboxes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.2rem;
  margin-top: 0.5rem;
}
.infobox-card {
  padding: 1.3rem;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin: 0;
}
.infobox-icone {
  display: grid;
  place-items: center;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 11px;
  flex-shrink: 0;
}
.infobox-icone.azul { background: var(--superficie-alta); color: var(--cor); }
.infobox-icone.roxo { background: var(--secundaria-suave); color: var(--secundaria); }
.infobox-icone.verde { background: var(--terciaria-suave); color: var(--terciaria); }
.infobox-conteudo h3 { margin: 0 0 0.25rem; font-size: 0.98rem; font-weight: 700; color: var(--texto); }
.infobox-conteudo p { margin: 0; font-size: 0.84rem; color: var(--texto-2); line-height: 1.45; }

/* Estado Vazio */
.estado-vazio {
  text-align: center;
  padding: 3rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.estado-vazio-icone {
  display: grid;
  place-items: center;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: var(--superficie-alta);
  color: var(--cor);
}
.vazio { margin: 0; font-size: 1.05rem; color: var(--texto-2); }

/* ========================================================
   TELA 3: NOVA QUESTÃO / EDITOR (Google Stitch)
   ======================================================== */
.painel-questao {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.questao-topo {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.migalhas {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--texto-mudo);
  margin-bottom: 0.35rem;
}
.migalhas-separador { font-size: 0.8rem; }
.migalhas-atual { color: var(--cor); font-weight: 700; }

.questao-titulo-linha {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  flex-wrap: wrap;
}
.badge-modo {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  background: var(--superficie-alta);
  color: var(--cor);
  font-size: 0.76rem;
  font-weight: 700;
}
.questao-topo-acoes {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.botao-topo-acao-sec {
  background: var(--superficie-media);
  color: var(--texto-2);
  border: 1px solid var(--borda);
  padding: 0.65rem 1.15rem;
  border-radius: 9px;
  font-weight: 600;
}
.botao-topo-acao-sec:hover {
  background: var(--superficie-alta);
  color: var(--texto);
}

/* Layout 12 Colunas (8 cols + 4 cols) */
.grid-editor-questao {
  display: grid;
  grid-template-columns: 8fr 4fr;
  gap: 1.5rem;
  align-items: start;
}
.coluna-principal-editor {
  display: flex;
  flex-direction: column;
  gap: 1.3rem;
}
.coluna-lateral-editor {
  display: flex;
  flex-direction: column;
  gap: 1.3rem;
}

.bloco-editor-card {
  padding: 1.6rem;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
fieldset.bloco-editor-card {
  border: 1px solid var(--borda);
}

.card-cabecalho-linha {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.card-cabecalho-titulo {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.icone-card {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
}
.icone-card.pri { background: var(--cor-suave); color: var(--cor); }
.icone-card.sec { background: var(--secundaria-suave); color: var(--secundaria); }
.icone-card.verde { background: var(--terciaria-suave); color: var(--terciaria); }
.label-proeminente, .card-titulo-texto {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--texto);
  margin: 0;
}
.card-titulo-legenda {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--texto);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.badge-obrigatorio {
  padding: 0.15rem 0.55rem;
  border-radius: 6px;
  background: var(--erro-bg);
  color: var(--erro);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.latex-status-info {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.78rem;
  color: var(--texto-mudo);
}
.latex-status-icone { color: var(--cor); }
.card-sub-texto { font-size: 0.84rem; color: var(--texto-mudo); }
.card-desc-pequeno { font-size: 0.86rem; color: var(--texto-2); margin: 0; }

/* Toolbar de Edição */
.editor-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  background: var(--superficie-2);
  padding: 0.35rem 0.6rem;
  border-radius: 10px;
  flex-wrap: wrap;
}
.toolbar-grupo {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.btn-tool {
  width: 2.1rem;
  height: 2.1rem;
  padding: 0;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: transparent;
  border: 0;
  color: var(--texto-2);
  cursor: pointer;
  transition: all 0.12s ease;
}
.btn-tool:hover {
  background: var(--superficie-alta);
  color: var(--cor);
}
.btn-tool-texto {
  width: auto;
  padding: 0 0.55rem;
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.82rem;
  font-weight: 600;
}
.toolbar-separador {
  width: 1px;
  height: 1.2rem;
  background: var(--borda-forte);
  margin: 0 0.35rem;
  opacity: 0.5;
}
.toolbar-dica {
  font-size: 0.75rem;
  color: var(--texto-mudo);
  padding-right: 0.4rem;
}

.textarea-container { position: relative; }
.textarea-enunciado {
  font-size: 1.02rem;
  line-height: 1.6;
  min-height: 150px;
  border-radius: 12px;
  padding: 1rem;
  background: var(--superficie-branca);
  border: 1px solid var(--borda);
  box-shadow: inset 0 1px 3px rgba(19, 27, 46, 0.03);
}

.aviso-latex-barra {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  background: var(--superficie-2);
  padding: 0.85rem 1.1rem;
  border-radius: 10px;
}
.aviso-latex-icone { color: var(--cor); margin-top: 0.15rem; }
.aviso-latex-texto {
  margin: 0;
  font-size: 0.85rem;
  color: var(--texto-2);
  line-height: 1.5;
}

/* Tipos de Questão (3 Cards Interativos) */
.grid-tipos-questao {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}
.card-tipo-opcao {
  cursor: pointer;
  position: relative;
  background: var(--superficie-2);
  border: 1.5px solid var(--borda-suave);
  border-radius: 14px;
  padding: 1.15rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.9rem;
  transition: all 0.15s ease;
}
.card-tipo-opcao:hover {
  background: var(--superficie-media);
  border-color: var(--borda-forte);
}
.card-tipo-opcao.selecionado {
  background: rgba(79, 70, 229, 0.07);
  border-color: var(--cor);
  box-shadow: 0 2px 10px rgba(79, 70, 229, 0.12);
}
.card-tipo-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.card-tipo-icone {
  display: grid;
  place-items: center;
  width: 2.3rem;
  height: 2.3rem;
  border-radius: 9px;
}
.card-tipo-icone.pri { background: var(--cor-container); color: #ffffff; }
.card-tipo-icone.roxo { background: var(--secundaria-container); color: #ffffff; }
.card-tipo-icone.ambar { background: #d97706; color: #ffffff; }
.radio-tipo { cursor: pointer; }

.card-tipo-corpo strong {
  display: block;
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--texto);
  margin-bottom: 0.2rem;
}
.card-tipo-corpo p {
  margin: 0;
  font-size: 0.82rem;
  color: var(--texto-2);
  line-height: 1.4;
}
.card-tipo-rodape {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--cor);
  padding-top: 0.35rem;
}

.opcoes-multipla-caixa {
  background: var(--superficie-2);
  padding: 1rem 1.2rem;
  border-radius: 11px;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.checkbox-rotulo {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-weight: 600;
  font-size: 0.93rem;
  cursor: pointer;
}
.checkbox-grande { width: 1.2rem; height: 1.2rem; }

/* Alternativas Cards */
.contador-slots-badge {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--texto-mudo);
  background: var(--superficie-alta);
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
}
.lista-alternativas-container {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.alt-card {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  background: var(--superficie-2);
  padding: 0.75rem 1rem;
  border-radius: 12px;
  border: 1.5px solid transparent;
  transition: all 0.15s ease;
  flex-wrap: wrap;
}
.alt-card:hover {
  background: var(--superficie-media);
}
.alt-card.is-correta {
  background: rgba(79, 70, 229, 0.05);
  border-color: var(--cor-suave);
}
.alt-esquerda {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.alt-letra-circulo {
  display: grid;
  place-items: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  background: var(--superficie-alta);
  color: var(--texto);
  font-weight: 800;
  font-size: 0.88rem;
  flex-shrink: 0;
  transition: all 0.15s ease;
}
.alt-card.is-correta .alt-letra-circulo {
  background: var(--cor-container);
  color: #ffffff;
  box-shadow: 0 2px 6px rgba(79, 70, 229, 0.35);
}
.alt-campo {
  flex: 1;
  min-width: 220px;
}
.alt-input {
  background: var(--superficie-branca);
  border: 1px solid var(--borda);
  border-radius: 8px;
  font-size: 0.94rem;
  padding: 0.55rem 0.85rem;
}
.alt-acoes {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}
.alt-label-correta {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  cursor: pointer;
  padding: 0.35rem 0.65rem;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 600;
  color: var(--texto-2);
  transition: background 0.12s ease;
}
.alt-card.is-correta .alt-label-correta {
  background: var(--cor-suave);
  color: var(--cor);
}
.alt-label-fixa {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  cursor: pointer;
  font-size: 0.82rem;
  color: var(--texto-mudo);
}
.btn-alt-remover {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 7px;
  color: var(--texto-mudo);
  border: 0;
  background: transparent;
  cursor: pointer;
}
.btn-alt-remover:hover {
  background: var(--erro-bg);
  color: var(--erro);
}

.alternativas-rodape {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 0.4rem;
  flex-wrap: wrap;
}
.botao-adicionar-alt {
  background: var(--superficie-media);
  color: var(--cor);
  border: 1px solid var(--borda);
  padding: 0.6rem 1.15rem;
  border-radius: 9px;
  font-weight: 700;
}
.botao-adicionar-alt:hover {
  background: var(--superficie-alta);
}
.dica-fixa-info { margin: 0; font-size: 0.82rem; color: var(--texto-mudo); }

/* Área de Prévia */
.area-previa-formulas {
  min-height: 80px;
  padding: 1.1rem;
  border-radius: 12px;
  background: var(--superficie-2);
  border: 1px dashed var(--borda-forte);
}

/* Upload Dropzone */
.upload-dropzone {
  position: relative;
  background: var(--superficie-2);
  border: 1.5px dashed var(--borda-forte);
  border-radius: 14px;
  padding: 1.8rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 0.5rem;
  cursor: pointer;
  transition: all 0.15s ease;
}
.upload-dropzone:hover {
  background: var(--superficie-media);
  border-color: var(--cor);
}
.upload-file-input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
}
.upload-dropzone-icone {
  display: grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 12px;
  background: var(--superficie-alta);
  color: var(--cor);
}
.upload-dropzone-texto strong { display: block; font-size: 0.92rem; color: var(--texto); }
.upload-clique-texto { color: var(--cor); font-weight: 600; font-size: 0.86rem; }
.upload-formato-dica {
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.74rem;
  color: var(--texto-mudo);
}

.imagem-atual-card {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  background: var(--superficie-2);
  padding: 0.75rem;
  border-radius: 10px;
}
.miniatura-moderna {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 8px;
  object-fit: cover;
  border: 1px solid var(--borda);
}
.imagem-atual-info { display: flex; flex-direction: column; gap: 0.2rem; }
.imagem-atual-nome { font-size: 0.82rem; font-weight: 600; color: var(--texto); word-break: break-all; }
.imagem-atual-remover { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: var(--erro); cursor: pointer; }

/* Tags Input */
.input-tags-campo {
  background: var(--superficie-2);
  border-radius: 10px;
  font-size: 0.9rem;
}
.tags-sugestoes-bloco {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.tags-sugestoes-rotulo {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--texto-mudo);
}
.tags-pills-linha {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.btn-sugestao-tag {
  background: var(--superficie-media);
  color: var(--texto-2);
  border: 0;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.12s ease;
}
.btn-sugestao-tag:hover {
  background: var(--cor-suave);
  color: var(--cor);
}

/* Metadados Grid */
.metadados-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.8rem;
}
.metadados-campo { display: flex; flex-direction: column; gap: 0.35rem; }
.metadados-label {
  font-size: 0.73rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--texto-mudo);
}
.input-sufixo-container {
  position: relative;
  display: flex;
  align-items: center;
}
.input-numero { padding-right: 2.2rem; }
.input-sufixo {
  position: absolute;
  right: 0.75rem;
  font-family: ui-monospace, Consolas, monospace;
  font-size: 0.78rem;
  color: var(--texto-mudo);
  pointer-events: none;
}
.select-metadados { font-size: 0.9rem; }

.visibilidade-linha {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--superficie-2);
  padding: 0.85rem 1rem;
  border-radius: 10px;
}
.visibilidade-info strong { display: block; font-size: 0.9rem; color: var(--texto); }
.visibilidade-info small { color: var(--texto-mudo); font-size: 0.78rem; }

/* Switch Toggle */
.switch-toggle {
  position: relative;
  display: inline-block;
  width: 2.75rem;
  height: 1.55rem;
  flex-shrink: 0;
}
.switch-toggle input { opacity: 0; width: 0; height: 0; }
.slider-round {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background-color: var(--superficie-mais-alta);
  border-radius: 34px;
  transition: 0.2s;
}
.slider-round:before {
  position: absolute;
  content: "";
  height: 1.15rem;
  width: 1.15rem;
  left: 0.2rem;
  bottom: 0.2rem;
  background-color: white;
  border-radius: 50%;
  transition: 0.2s;
}
.switch-toggle input:checked + .slider-round {
  background-color: var(--cor-container);
}
.switch-toggle input:checked + .slider-round:before {
  transform: translateX(1.2rem);
}

/* Barra de Ações Sticky no Rodapé */
.barra-acoes-flutuante {
  position: sticky;
  bottom: 1.5rem;
  z-index: 35;
  background: var(--superficie-branca);
  backdrop-filter: blur(12px);
  padding: 0.95rem 1.4rem;
  border-radius: 14px;
  border: 1px solid var(--borda);
  box-shadow: 0 4px 20px rgba(19, 27, 46, 0.1);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  margin-top: 1rem;
}
.status-salvamento {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.ponto-salvamento-verde {
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 50%;
  background: var(--terciaria);
}
.status-salvamento-texto strong { display: block; font-size: 0.9rem; color: var(--texto); }
.status-salvamento-texto small { color: var(--texto-mudo); font-size: 0.78rem; }
.acoes-flutuante-botoes {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}
.botao-cancelar {
  background: var(--superficie-media);
  border: 1px solid var(--borda);
  color: var(--texto-2);
}
.botao-cancelar:hover { background: var(--superficie-alta); color: var(--texto); }
.botao-salvar-destaque {
  padding: 0.65rem 1.4rem;
  font-weight: 700;
}

/* Erros de Formulário */
.erros-alerta {
  background: var(--erro-bg);
  border: 1px solid var(--erro-borda);
  padding: 1rem 1.25rem;
  border-radius: 12px;
}
.erros-topo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--erro);
  font-size: 0.95rem;
}
.erros-icone { color: var(--erro); }
.erros-lista {
  margin: 0.5rem 0 0;
  padding-left: 1.5rem;
  color: var(--erro);
  font-size: 0.9rem;
}
.erros, .sucesso, .aviso-texto {
  border: 1px solid;
  border-radius: var(--raio-p);
  padding: 0.7rem 1rem;
  margin: 0 0 1rem;
}
.erros { background: var(--erro-bg); border-color: var(--erro-borda); color: var(--erro); }
.sucesso { background: var(--ok-bg); border-color: var(--ok-borda); color: var(--ok); }
.aviso-texto { background: var(--aviso-bg); border-color: var(--aviso-borda); color: var(--aviso); font-size: 0.86rem; }
.erro-formula { color: var(--erro); margin: 0.2rem 0; }
.formula-erro { font-family: ui-monospace, monospace; background: var(--erro-bg); color: var(--erro); border-radius: 4px; padding: 0 0.25rem; }

/* Imagens de Fórmula LaTeX */
img.formula { vertical-align: middle; }
img.formula.bloco { display: block; margin: 0.5rem auto; }
:root[data-tema="escuro"] img.formula { filter: invert(1) hue-rotate(180deg); }
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) img.formula { filter: invert(1) hue-rotate(180deg); }
}

/* Tags Gerais */
.tag {
  display: inline-block;
  background: var(--cor-suave);
  color: var(--cor);
  border-radius: 999px;
  padding: 0.1rem 0.7rem;
  font-size: 0.78rem;
  font-weight: 700;
}
.tag.aviso { background: var(--aviso-bg); color: var(--aviso); }

/* Tabelas */
table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--superficie-branca);
  border: 1px solid var(--borda);
  border-radius: var(--raio);
  box-shadow: var(--sombra-sm);
  overflow: hidden;
}
th {
  background: var(--superficie-2);
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--texto-2);
  font-weight: 700;
  padding: 0.75rem 0.9rem;
}
td {
  padding: 0.75rem 0.9rem;
  border-bottom: 1px solid var(--borda);
  font-size: 0.92rem;
}
tbody tr:hover td { background: var(--superficie-2); }
tr:last-child td { border-bottom: 0; }
.rolagem { overflow-x: auto; }

/* --- Folha de Prova (Papel Físico: sempre claro) --- */
.folha {
  background: #ffffff;
  color: #1b1f2e;
  border: 1px solid var(--borda);
  border-radius: var(--raio-p);
  padding: 1.5rem 2rem;
  box-shadow: var(--sombra);
}
.folha img.formula { filter: none !important; }
.folha .questao { margin-bottom: 1rem; break-inside: avoid; }

/* Correção & Revisão */
.revisao { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.imagem-folha img { width: 100%; height: auto; border: 1px solid var(--borda); border-radius: var(--raio-p); }
.opcao { display: inline-block; margin-right: 0.25rem; position: relative; }
.opcao input { position: absolute; opacity: 0; }
.opcao span {
  display: inline-block;
  min-width: 2.3rem;
  text-align: center;
  padding: 0.35rem 0.55rem;
  border: 1px solid var(--borda-forte);
  border-radius: var(--raio-p);
  cursor: pointer;
  background: var(--superficie-branca);
  font-weight: 600;
}
.opcao span:hover { border-color: var(--cor); }
.opcao input:checked + span { background: var(--cor-container); color: #ffffff; border-color: var(--cor-container); }

/* --- Responsividade Mobile / Tablet --- */
@media (max-width: 1024px) {
  .grid-editor-questao { grid-template-columns: 1fr; }
  .grid-dashboard { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .menu { transform: translateX(-100%); width: min(18rem, 85vw); box-shadow: var(--sombra-lg); }
  .menu-aberto .menu { transform: none; }
  .menu-aberto .menu-fundo { display: block; position: fixed; inset: 0; background: rgba(8, 10, 20, 0.5); z-index: 45; }
  .principal, .menu-recolhido .principal { margin-left: 0; }
  .menu-recolhido .menu { width: min(18rem, 85vw); }
  .menu-recolhido .marca-texto, .menu-recolhido .nav-item span, .menu-recolhido .menu-secao { display: revert; }
  .menu-recolhido .nav-item { justify-content: flex-start; padding: 0.62rem 0.75rem; }
  .menu-recolhido .menu-topo { flex-direction: row; padding: 1.1rem 1rem; }
  #recolher-menu { display: none; }
  .so-mobile { display: inline-grid; }
  .usuario-dados { display: none; }
  .cartao-boas-vindas { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
  .topo { padding: 0.6rem 1rem; }
  .conteudo { padding: 1.25rem 1rem 4rem; }
  .so-desktop { display: none; }
  .metadados-grid { grid-template-columns: 1fr; }
  .historico-topo { flex-direction: column; align-items: flex-start; }
  .barra-acoes-flutuante { flex-direction: column; align-items: stretch; gap: 0.8rem; }
}

/* Número + unidade nos cartões de métrica da tela inicial */
.metrica-valor-bloco {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-top: 0.25rem;
  flex-wrap: wrap;
}
.metrica-valor-bloco strong {
  font-size: 2.2rem;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.03em;
  color: var(--texto);
}
.metrica-valor-bloco em {
  font-style: normal;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--texto-2);
}

/* O atributo hidden precisa vencer qualquer display definido nas classes */
[hidden] { display: none !important; }

.selo-integrado {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  background: var(--terciaria-suave);
  color: var(--terciaria);
  font-size: 0.75rem;
  font-weight: 700;
  white-space: nowrap;
  align-self: flex-start;
}

.metrica-rodape { flex-wrap: wrap; gap: 0.35rem 0.75rem; }
.metrica-link, .metrica-status { white-space: nowrap; }
.metrica-rotulo { overflow-wrap: anywhere; }

.barra-acoes-flutuante { justify-content: flex-end; }

/* --- Turmas --- */
.tm-pagina { max-width: 72rem; margin: 0 auto; display: flex; flex-direction: column; gap: 1.25rem; }
.tm-estreita { max-width: 34rem; }
.tm-voltar { margin: 0; font-size: 0.9rem; }
.tm-cabecalho { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.tm-titulo { margin: 0; font-size: 1.75rem; font-weight: 800; letter-spacing: -0.02em; }
.tm-sub { margin: 0.25rem 0 0; color: var(--texto-2); font-size: 0.95rem; }
.tm-secao { margin: 0 0 1rem; font-size: 1.1rem; font-weight: 700; }
.tm-rotulo { display: block; margin-bottom: 0.5rem; font-weight: 700; font-size: 0.85rem; color: var(--texto-2); }
.tm-nova { margin: 0; padding: 1.1rem 1.25rem; }
.tm-linha-form { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.tm-linha-form input { flex: 1 1 14rem; min-width: 0; }
.tm-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1rem; }
.tm-turma { margin: 0; display: flex; align-items: center; gap: 0.85rem; padding: 1.05rem 1.15rem; text-decoration: none; color: var(--texto); }
.tm-turma:hover { border-color: var(--cor); transform: translateY(-1px); }
.tm-turma-icone { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 12px; background: var(--cor-suave); color: var(--cor); flex: none; }
.tm-turma-info { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.tm-turma-info strong { overflow-wrap: anywhere; }
.tm-turma-info small { color: var(--texto-2); }
.tm-turma-seta { color: var(--cor); font-weight: 700; }

.tm-colunas { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: 1.25rem; align-items: start; }
@media (max-width: 960px) { .tm-colunas { grid-template-columns: minmax(0, 1fr); } }
.tm-alunos, .tm-lateral .cartao { margin: 0; }
.tm-lateral { display: flex; flex-direction: column; gap: 1rem; }
.tm-tabela-rolagem { overflow-x: auto; }
.tm-tabela { width: 100%; border-collapse: collapse; }
.tm-tabela th { text-align: left; font-size: 0.74rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--texto-mudo); padding: 0.5rem 0.75rem; border-bottom: 1px solid var(--borda-forte); }
.tm-tabela td { padding: 0.55rem 0.75rem; border-bottom: 1px solid var(--borda); vertical-align: middle; }
.tm-tabela tbody tr:hover { background: var(--superficie-2); }
.tm-matricula { font-variant-numeric: tabular-nums; color: var(--texto-2); }
.tm-col-acoes { text-align: right; white-space: nowrap; }
.tm-acoes { display: inline-flex; align-items: center; gap: 0.9rem; font-size: 0.85rem; }
.tm-acoes form { margin: 0; display: inline; }
button.link { background: none; border: 0; padding: 0; box-shadow: none; color: var(--cor); font-size: 0.85rem; font-weight: 600; cursor: pointer; }
button.link:hover { background: none; color: var(--cor-hover); text-decoration: underline; }
button.link.perigo-texto, .perigo-texto { color: var(--erro); }
.tm-form { display: flex; flex-direction: column; gap: 0.85rem; margin: 0; }
.tm-form label { display: flex; flex-direction: column; gap: 0.3rem; font-weight: 600; font-size: 0.88rem; }
.tm-form label small { font-weight: 400; color: var(--texto-mudo); }
.tm-form .botao { align-self: flex-start; }
.tm-form-acoes { display: flex; gap: 0.75rem; }
.tm-gerenciar summary { cursor: pointer; font-weight: 700; }
.tm-gerenciar .tm-form { margin-top: 0.85rem; }
.tm-gerenciar hr { border: 0; border-top: 1px solid var(--borda); margin: 1rem 0 0; }

/* Telas estreitas: nada estoura a largura da página */
.coluna-principal-editor, .bloco-editor-card { min-width: 0; }
.editor-toolbar { flex-wrap: wrap; }
.toolbar-grupo { flex-wrap: wrap; }
@media (max-width: 760px) {
  main table { display: block; max-width: 100%; overflow-x: auto; }
}

.busca-input-container .input-busca { padding-left: 2.75rem; width: 100%; }

/* Histórico: título e totais empilhados, alinhados à esquerda */
.historico-topo { flex-direction: column; align-items: flex-start; gap: 1.1rem; }
.historico-kpis { justify-content: flex-start; }
.kpi-mini-card { min-width: 11rem; }

/* --- Notas e correções --- */
.rs-pagina { max-width: 80rem; margin: 0 auto; display: flex; flex-direction: column; gap: 1.25rem; }
.rs-cabecalho { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.rs-acoes-topo { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.so-leitor { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.rs-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 1rem; }
.rs-kpi { margin: 0; padding: 1rem 1.15rem; display: flex; flex-direction: column; gap: 0.15rem; }
.rs-kpi-rotulo { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--texto-mudo); }
.rs-kpi-valor { font-size: 1.9rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; }
.rs-kpi-valor small { font-size: 0.9rem; font-weight: 600; color: var(--texto-2); letter-spacing: 0; }
.rs-kpi-destaque { border-color: var(--cor); background: var(--cor-suave); }
.rs-kpi-destaque .rs-kpi-valor { color: var(--cor); }
.rs-vazio { grid-column: 1 / -1; margin: 0; padding: 1.25rem; text-align: center; }

.rs-avisos { display: flex; flex-direction: column; gap: 0.5rem; }
.rs-aviso { margin: 0; padding: 0.7rem 0.95rem; border-radius: var(--raio-p); background: var(--superficie-2); border: 1px solid var(--borda); font-size: 0.9rem; }
.rs-aviso-amb { background: var(--aviso-bg); border-color: var(--aviso-borda); color: var(--texto); }

.rs-colunas { display: grid; grid-template-columns: minmax(0, 1fr) 18rem; gap: 1.25rem; align-items: start; }
@media (max-width: 1100px) { .rs-colunas { grid-template-columns: minmax(0, 1fr); } }
.rs-alunos, .rs-histograma { margin: 0; }
.rs-histograma .histograma { width: 100%; border-collapse: collapse; }
.rs-histograma .histograma th { text-align: left; font-weight: 600; font-size: 0.82rem; color: var(--texto-2); padding: 0.3rem 0.5rem 0.3rem 0; white-space: nowrap; }
.rs-histograma .histograma td { padding: 0.3rem 0; width: 100%; }
.rs-meter-hist { width: 70%; height: 0.9rem; vertical-align: middle; }
.rs-hist-n { font-weight: 700; margin-left: 0.4rem; font-variant-numeric: tabular-nums; }
.rs-meter { width: 5.5rem; height: 0.7rem; vertical-align: middle; }
.rs-meter-larga { width: 100%; height: 0.6rem; }
.rs-tabela td, .rs-tabela th { white-space: nowrap; }
.rs-nome { font-weight: 600; white-space: normal !important; }
.rs-num { font-variant-numeric: tabular-nums; }
.rs-pill { display: inline-flex; align-items: center; padding: 0.15rem 0.6rem; border-radius: 999px; font-size: 0.76rem; font-weight: 700; white-space: nowrap; background: var(--superficie-alta); color: var(--texto-2); }
.rs-pill-ok { background: var(--ok-bg); color: var(--ok); }
.rs-pill-amb { background: var(--aviso-bg); color: var(--aviso); }
.rs-pill-erro { background: var(--erro-bg); color: var(--erro); }
.rs-pill-neutro { background: var(--superficie-alta); color: var(--texto-2); }
.rs-pendentes { margin-left: 0.4rem; color: var(--aviso); font-weight: 600; }

.rs-lista-questoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(24rem, 1fr)); gap: 1rem; }
@media (max-width: 520px) { .rs-lista-questoes { grid-template-columns: minmax(0, 1fr); } }
.rs-questao { margin: 0; display: flex; flex-direction: column; gap: 0.7rem; }
.rs-questao-topo { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.rs-enunciado { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.rs-taxa { text-align: right; display: flex; flex-direction: column; flex: none; }
.rs-taxa strong { font-size: 1.4rem; line-height: 1.1; }
.rs-taxa small { color: var(--texto-2); }
.rs-escolhas { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.rs-escolhas .escolha { padding: 0.2rem 0.6rem; border-radius: 8px; background: var(--superficie-alta); font-size: 0.82rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.rs-escolhas .escolha.certa { background: var(--ok-bg); color: var(--ok); box-shadow: inset 0 0 0 1px var(--ok-borda); }
.rs-ajuste summary { cursor: pointer; color: var(--cor); font-weight: 600; font-size: 0.88rem; }
.rs-ajuste .ajuste { margin-top: 0.75rem; }
.opcoes-ajuste { display: flex; gap: 0.75rem; flex-wrap: wrap; padding-left: 1.5rem; }

.rs-filtros { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.rs-filtro { padding: 0.45rem 0.95rem; border-radius: 999px; border: 1px solid var(--borda-forte); background: var(--superficie-branca); color: var(--texto); font-weight: 600; font-size: 0.88rem; text-decoration: none; }
.rs-filtro:hover { border-color: var(--cor); color: var(--cor); }
.rs-filtro[aria-current="page"] { background: var(--cor-container); border-color: var(--cor-container); color: #fff; }
.rs-filtro-n { opacity: 0.8; font-weight: 500; }
.rs-botao-linha { padding: 0.35rem 0.9rem; font-size: 0.85rem; }
.lista-correcoes { display: table; }

.rs-colunas { grid-template-columns: minmax(0, 1fr); }
.rs-histograma { max-width: 32rem; }
.rs-nome { white-space: nowrap !important; }
.rs-tabela .tm-col-acoes { white-space: nowrap; }
.rs-aviso summary { cursor: pointer; font-weight: 600; }

/* Regras do desenho anterior ainda usadas por telas não redesenhadas (restauradas) */
.barra {display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: .5rem;}
.barra h1 {margin: 0;}
.dica {font-size: .88rem; color: var(--texto-2); margin: .3rem 0 1rem;}
.inline {display: inline; margin: 0;}
.acoes, .acoes-linha {display: flex; gap: .75rem; align-items: center; flex-wrap: wrap;}
.acoes-linha {justify-content: flex-end;}
input.curto {width: 5rem;}
label small, label .dica {font-weight: 400; color: var(--texto-2);}
.filtros {display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin: 1rem 0;}
.filtros input[type=search] {flex: 1; min-width: 14rem; width: auto;}
.filtros select {width: auto;}
.filtros a {text-decoration: none; padding: .3rem .7rem; border-radius: 999px; color: var(--texto-2); font-weight: 600; font-size: .9rem;}
.filtros a:hover {background: var(--superficie-2);}
.filtros a[aria-current="page"] {background: var(--cor-suave); color: var(--cor);}
.alt .rotulo {margin: 0; font-weight: 400; white-space: nowrap;}
.form-linha {display: flex; flex-wrap: wrap; gap: .75rem; align-items: end;}
.estreito {max-width: 440px; width: 100%; margin: 2rem auto; background: var(--superficie); border: 1px solid var(--borda); border-radius: 16px; padding: 1.75rem; box-shadow: var(--sombra);}
.isca {position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden;}
.enunciado {white-space: pre-wrap;}
.alternativas {padding-left: 1.4rem;}
.alternativas li.correta {font-weight: 700; color: var(--ok);}
.linha-resposta {border: 0; border-bottom: 1px solid var(--borda-forte); height: 1.6rem; margin: 0;}
.miniatura {max-width: 240px; max-height: 160px; display: block; margin: .4rem 0; border-radius: var(--raio-p); border: 1px solid var(--borda);}
.previa-item {border-top: 1px solid var(--borda); padding: .5rem 0;}
table.gabarito td.letra-gab {text-align: center; font-weight: 700; font-variant-numeric: tabular-nums;}
table.gabarito th {text-align: center;}
table.gabarito th:first-child {text-align: left;}
.candidata {display: flex; gap: .7rem; align-items: flex-start; font-weight: 400; padding: .5rem 0; border-bottom: 1px solid var(--borda);}
.acoes-envio {display: flex; gap: .75rem; flex-wrap: wrap; margin: 1rem 0;}
.acoes-envio .botao {padding: .9rem 1.4rem; font-size: 1.05rem;}
.fila-envio {list-style: none; padding: 0; margin: 1rem 0 0;}
.fila-envio li {display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: .6rem 0; border-bottom: 1px solid var(--borda);}
.fila-envio li[data-estado="erro"] .situacao {color: var(--erro);}
.fila-envio li[data-estado="confirmada"] .situacao {color: var(--ok);}
.fila-envio li[data-estado="em_revisao"] .situacao {color: var(--aviso);}
.centro {text-align: center;}
.discreto {color: var(--texto-2); font-size: .9rem;}
.qr-pareamento {max-width: 100%; height: auto; background: #fff; padding: .6rem; border-radius: var(--raio-p);}
.revisao-questoes {width: 100%;}
.revisao-questoes tr[tabindex]:focus {outline: 2px solid var(--cor); outline-offset: -2px; background: var(--cor-suave);}
.revisao-questoes tr.pendente td {background: var(--aviso-bg);}
.revisao-questoes .num {font-weight: 800; width: 2.5rem;}
.revisao-questoes .opcoes {white-space: normal;}
.opcao.branco span {font-size: .85rem;}
.selo-multipla {margin-left: .35rem; padding: .05rem .4rem; border: 1px solid var(--borda-forte); border-radius: 999px; color: var(--texto-mudo, inherit); font-size: .72rem; white-space: nowrap;}
.resultado {white-space: nowrap;}
.atalhos kbd {border: 1px solid var(--borda-forte); border-bottom-width: 2px; border-radius: 5px; padding: 0 .35rem; background: var(--superficie-2); font-size: .85em;}
@media (max-width: 600px) {
  .filtros input[type=search] {min-width: 0; width: 100%;}
  .estreito {padding: 1.2rem; margin-top: 1rem;}
}
.pagina-cab {margin-bottom: 1.5rem;}
.pagina-cab h1 {margin-bottom: .2rem;}
.sub {margin: 0; color: var(--texto-2);}
.duas-colunas {display: grid; grid-template-columns: 3fr 2fr; gap: 1rem; align-items: start;}
.topo-secao {margin: 0 0 1rem;}
@media (max-width: 900px) {
  .duas-colunas {grid-template-columns: 1fr;}
}
.cab-editor {grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);}
.cab-linha {display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: .5rem 1rem; align-items: start; padding: .8rem 0; border-top: 1px solid var(--borda); transition: opacity .15s;}
.cab-linha:first-of-type {border-top: 0; padding-top: 0;}
.cab-linha .rotulo {margin: 0;}
.cab-linha.desligado .cab-campo {opacity: .4;}
.cab-campo {display: flex; flex-direction: column; gap: .4rem; align-items: flex-start;}
.cab-campo input[type=text] {width: 100%;}
.cab-fixo {font-weight: 600;}
.cab-logo {max-width: 9rem; max-height: 5.5rem; object-fit: contain; border: 1px solid var(--borda); border-radius: var(--raio-p); padding: .3rem; background: #fff;}
.cab-lembrar {padding: .8rem 0 1rem; border-top: 1px solid var(--borda);}
.cab-resumo .sub {margin: 0 0 .2rem;}
.cab-previa {padding: 1.1rem 1.2rem; font-size: .85rem; position: sticky; top: 6rem;}
.cab-previa [hidden] {display: none;}
.cab-previa-topo {display: flex; align-items: center; gap: .9rem; padding-bottom: .6rem; border-bottom: 1px solid #bbb; margin-bottom: .6rem;}
.cab-previa-texto {flex: 1; display: flex; flex-direction: column; text-align: center; line-height: 1.3;}
.cab-previa-texto strong {font-size: 1rem;}
.cab-previa-texto span {color: #555;}
.cab-previa-titulo {margin: 0; font-size: 1.05rem;}
.cab-previa-meta {margin: .1rem 0 .6rem; color: #555; font-size: .8rem;}
.cab-previa-meta span:not([hidden]) + span:not([hidden])::before {content: " · ";}
.cab-previa-aluno {display: flex; justify-content: space-between; align-items: center; gap: .6rem;}
.cab-previa-nota {display: inline-block; width: 5.5rem; height: 2.4rem; border: 1.5px solid #222; border-radius: 6px; font-size: .62rem; font-weight: 700; padding: .15rem .3rem; color: #555;}
@media (max-width: 900px) {
  .cab-editor {grid-template-columns: 1fr;}
  .cab-previa {position: static;}
}
@media (max-width: 600px) {
  .cab-linha {grid-template-columns: 1fr;}
}
.cab-campo input[type=file] {width: 100%;}
.codigo-grande {font-size: 1.4rem; letter-spacing: .12em; font-weight: 700;}
.questao-aluno {margin: 0 0 1rem; padding: .6rem .8rem; border: 1px solid var(--borda); border-radius: var(--raio-p);}
.questao-aluno legend {font-weight: 700; padding: 0 .3rem;}
.nota-grande {font-size: 1.2rem;}
.resultado-aluno {width: 100%; border-collapse: collapse; table-layout: fixed; font-size: .92rem;}
.resultado-aluno th:nth-child(1) {width: 17%;}
.resultado-aluno th:nth-child(2), .resultado-aluno th:nth-child(3) {width: 25%;}
.resultado-aluno td {overflow-wrap: anywhere;}
.resultado-aluno th, .resultado-aluno td {padding: .4rem .5rem; border-bottom: 1px solid var(--borda); text-align: left;}
.resultado-aluno tr.certo td:last-child {color: var(--ok); font-weight: 600;}
.resultado-aluno tr.errado td:last-child {color: var(--erro); font-weight: 600;}
.folha .alternativas li.correta { color: #0b5d34; background: #e3f6ec; border-radius: 6px; padding: 0.1rem 0.45rem; margin-left: -0.45rem; }

/* Cabeçalho da prova: formulário e pré-visualização */
.cab-editor { gap: 1.25rem; }
.cab-editor > form { padding: 1.25rem 1.4rem; margin: 0; }
.cab-editor aside { position: sticky; top: 5.5rem; }
.cab-linha { padding: 0.9rem 0; align-items: center; }
.cab-linha:first-of-type { padding-top: 0; }
.cab-linha .rotulo { display: flex; align-items: center; gap: 0.55rem; }
.cab-lembrar { display: flex; align-items: flex-start; gap: 0.6rem; margin-top: 0.4rem; padding: 1rem 0; border-top: 1px solid var(--borda); line-height: 1.4; }
.cab-lembrar input { margin-top: 0.2rem; flex: none; }
.cab-lembrar small { display: block; margin-top: 0.15rem; color: var(--texto-2); font-weight: 400; }
.cab-editor .acoes { padding-top: 0.25rem; }
.cab-previa { margin: 0; top: 5.5rem; }
@media (max-width: 900px) {
  .cab-editor aside { position: static; }
  .cab-linha { grid-template-columns: 1fr; }
}

/* M33: discriminação e distratores */
.rs-psico { display: flex; flex-direction: column; gap: 0.5rem; }
.rs-psico-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0; }
.rs-faixa-excelente, .rs-faixa-boa { background: var(--ok-bg); color: var(--ok); }
.rs-faixa-regular { background: var(--aviso-bg); color: var(--aviso); }
.rs-faixa-fraca, .rs-faixa-invertida { background: var(--erro-bg, var(--aviso-bg)); color: var(--erro, var(--aviso)); }
.rs-distratores { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 0.82rem; font-variant-numeric: tabular-nums; }
.rs-distratores th, .rs-distratores td { padding: 0.25rem 0.5rem; text-align: left; border-bottom: 1px solid var(--borda); }
.rs-distratores tr.certa td:first-child { color: var(--ok); font-weight: 600; }

.rs-distratores th:first-child, .rs-distratores td:first-child { width: 40%; }
.rs-distratores-notas { margin: 0; padding-left: 1.1rem; font-size: 0.8rem; color: var(--texto); display: flex; flex-direction: column; gap: 0.2rem; }

/* M34: painel de pendências */
.painel-atencao { display: flex; flex-direction: column; gap: 0.75rem; }
.atencao-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.atencao-item a { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.7rem 0.9rem; border-radius: 10px; border: 1px solid var(--borda); background: var(--superficie-alta); color: var(--texto); text-decoration: none; border-left-width: 4px; }
.atencao-item a span { font-size: 0.82rem; color: var(--texto-mudo); }
.atencao-item.acao a { border-left-color: var(--aviso); }
.atencao-item.alerta a { border-left-color: var(--erro); }
.atencao-item.info a { border-left-color: var(--borda); }
.atencao-vazio { margin: 0; color: var(--texto-mudo); }

/* M35: importação em lote */
.importacao-lista { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.importacao-item { border: 1px solid var(--borda); border-left-width: 4px; border-radius: 10px; padding: 0.7rem 0.9rem; background: var(--superficie); }
.importacao-item.ok { border-left-color: var(--ok); }
.importacao-item.erro { border-left-color: var(--erro); }
.importacao-enunciado { margin: 0.4rem 0; white-space: pre-wrap; }
.importacao-alts { margin: 0; padding-left: 1.4rem; font-size: 0.9rem; }
.importacao-alts .certa { color: var(--ok); font-weight: 600; }

/* M40: câmera ao vivo na correção */
.camera-ao-vivo { margin-top: 1rem; display: flex; flex-direction: column; gap: 0.6rem; }
.camera-moldura { position: relative; width: 100%; max-width: 640px; background: #000; border-radius: 12px; overflow: hidden; }
.camera-moldura video { display: block; width: 100%; height: auto; }
.camera-guia { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.camera-dica { margin: 0; padding: 0.6rem 0.8rem; border-radius: 10px; background: var(--aviso-bg); color: var(--texto); font-weight: 600; }
.camera-dica[data-pronto="sim"] { background: var(--ok-bg); color: var(--ok); }

/* Diálogo de confirmação (confirmar.js) */
.dialogo-confirmar { border: 1px solid var(--borda); border-radius: 16px; padding: 1.25rem 1.4rem; width: min(92vw, 28rem); background: var(--superficie-branca, var(--superficie)); color: var(--texto); box-shadow: 0 24px 60px rgba(19, 27, 46, 0.28); }
.dialogo-confirmar::backdrop { background: rgba(19, 27, 46, 0.5); }
.dialogo-confirmar-titulo { margin: 0 0 0.5rem; font-size: 1.1rem; }
.dialogo-confirmar[data-perigo="sim"] .dialogo-confirmar-titulo { color: var(--erro); }
.dialogo-confirmar-texto { margin: 0 0 1.1rem; line-height: 1.5; }
.dialogo-confirmar-acoes { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 0.6rem; }

/* M41: histórico de revisões */
.revisao header { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: baseline; }
.diff-novo { background: var(--ok-bg); color: var(--ok); text-decoration: none; border-radius: 4px; padding: 0 0.15rem; }
.diff-removido { background: var(--erro-bg); color: var(--erro); text-decoration: line-through; border-radius: 4px; padding: 0 0.15rem; }
.uso-questao { display: flex; flex-direction: column; gap: 0.4rem; }

/* M42: presença */
.presenca-opcoes { display: flex; flex-wrap: wrap; gap: 0.2rem 0.9rem; }

/* M43: saúde da leitura */
.rs-kpi-alerta { border-color: var(--erro-borda); background: var(--erro-bg); }

/* Notas: cabeçalho, abas de ferramentas e painel de resumo */
.rs-abas { display: flex; gap: 0.35rem; overflow-x: auto; padding: 0.3rem; border: 1px solid var(--borda); border-radius: 14px; background: var(--superficie-baixa); scrollbar-width: thin; }
.rs-abas a { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.5rem 0.85rem; border-radius: 10px; color: var(--texto-2); text-decoration: none; font-weight: 600; font-size: 0.9rem; white-space: nowrap; }
.rs-abas a:hover { background: var(--superficie-branca, var(--superficie)); color: var(--cor); }
.rs-abas a svg { width: 1.05rem; height: 1.05rem; flex: none; }
.rs-abas .selo { font-style: normal; font-size: 0.72rem; background: var(--aviso-bg); color: var(--aviso); border-radius: 999px; padding: 0 0.45rem; }
.rs-painel { margin: 0; display: grid; grid-template-columns: minmax(0, 3fr) minmax(14rem, 2fr); gap: 1.5rem; align-items: center; padding: 1.25rem 1.4rem; }
.rs-painel-numeros { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
.rs-stat { display: flex; flex-direction: column; gap: 0.15rem; padding: 0.9rem 1.1rem; border-top: 1px solid var(--borda); }
.rs-stat:nth-child(odd) { border-right: 1px solid var(--borda); padding-left: 0; }
.rs-stat:nth-child(-n+2) { border-top: 0; }
.rs-stat-rotulo { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--texto-mudo); }
.rs-stat-valor { font-size: 1.85rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.15; font-variant-numeric: tabular-nums; }
.rs-stat-valor small { font-size: 0.9rem; font-weight: 600; color: var(--texto-2); letter-spacing: 0; }
.rs-stat-nota { font-size: 0.82rem; color: var(--texto-2); }
.rs-stat-destaque .rs-stat-valor { color: var(--cor); }
.rs-painel-grafico { margin: 0; display: flex; flex-direction: column; gap: 0.4rem; }
.rs-painel-grafico figcaption { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--texto-mudo); }
.rs-painel-grafico svg { width: 100%; height: auto; display: block; }
.rs-barra { fill: var(--cor-container, var(--cor)); opacity: 0.55; }
.rs-barra-max { opacity: 1; }
.rs-barra-n { font-size: 7px; font-weight: 700; fill: var(--texto); }
.rs-eixo { font-size: 6.5px; fill: var(--texto-mudo); }
@media (max-width: 52rem) {
  .rs-painel { grid-template-columns: minmax(0, 1fr); }
  .rs-acoes-topo { width: 100%; }
  .rs-acoes-topo .botao { flex: 1 1 0; justify-content: center; }
}
@media (max-width: 30rem) {
  .rs-stat-valor { font-size: 1.5rem; }
}

/* Páginas da prova e da turma */
.rs-acoes-linha { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 0.6rem; align-items: center; }
.turma-provas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.turma-provas li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; padding: 0.6rem 0; border-top: 1px solid var(--borda); }
.turma-provas li:first-child { border-top: 0; }
.turma-provas-links { margin-left: auto; display: flex; gap: 1rem; font-size: 0.9rem; }
.rs-pagina > .cartao, .rs-pagina > details.cartao, .tm-pagina > .cartao { margin: 0; }

/* Tabelas dos enunciados (sintaxe de barras): <span> com display de tabela, válidas dentro de <p> */
.tab { display: table; border-collapse: collapse; margin: 0.5rem 0; max-width: 100%; white-space: normal; font-size: 0.95em; }
.tab-linha { display: table-row; }
.tab-cel { display: table-cell; padding: 0.35rem 0.75rem; border: 1px solid var(--borda-forte); vertical-align: middle; }
.tab-cab .tab-cel { font-weight: 700; background: var(--superficie-alta); }
.tab-cel.al-c { text-align: center; }
.tab-cel.al-d { text-align: right; font-variant-numeric: tabular-nums; }
.folha .tab-cel { border-color: #8a8f98; }
.folha .tab-cab .tab-cel { background: #eef0f4; color: #1b1f2e; }

/* Formatação dos enunciados: código e listas (spans, válidos dentro de <p>) */
.enunciado code.cod, .folha code.cod { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 0.92em; background: var(--superficie-alta); padding: 0.05rem 0.35rem; border-radius: 5px; }
.folha code.cod { background: #eef0f4; color: #1b1f2e; }
.lista { display: block; margin: 0.35rem 0; }
.lista-item { display: flex; gap: 0.5rem; align-items: baseline; padding: 0.1rem 0; }
.lista-marca { flex: none; min-width: 1.4rem; text-align: right; font-weight: 600; color: var(--texto-2); }
.lista-texto { min-width: 0; overflow-wrap: anywhere; }
