/* Portal Simuliz — estilo compartilhado */
* { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --fundo1: #1b2a4a; --fundo2: #0d1526; --fundo3: #080d18;
  --azul: #6db3ff; --roxo: #a78bfa;
  --texto: #eaf0fa; --texto2: #9fb3d1;
  /* cores da escola (sobrescritas por página) */
  --cor1: #1565c0; --cor2: #0d47a1;
}

body {
  min-height: 100vh;
  font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
  background: radial-gradient(ellipse at 50% 30%, var(--fundo1) 0%, var(--fundo2) 60%, var(--fundo3) 100%);
  background-attachment: fixed;
  color: var(--texto);
}

a { color: var(--azul); text-decoration: none; }
a:hover { text-decoration: underline; }

.cartao {
  background: rgba(109, 179, 255, 0.06);
  border: 1px solid rgba(109, 179, 255, 0.25);
  border-radius: 16px;
  padding: 28px;
}

h1.marca {
  font-weight: 700; letter-spacing: 1px;
  background: linear-gradient(90deg, var(--azul), var(--roxo));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

label { display: block; font-size: 0.85rem; color: var(--texto2); margin: 14px 0 5px; }

input[type=text], input[type=email], input[type=password], select {
  width: 100%; padding: 10px 12px; font-size: 1rem;
  color: var(--texto); background: rgba(13, 21, 38, 0.7);
  border: 1px solid rgba(109, 179, 255, 0.35); border-radius: 8px;
}
input:focus, select:focus { outline: 2px solid var(--azul); border-color: transparent; }
input[type=color] { width: 54px; height: 34px; border: none; background: none; cursor: pointer; }

button, .botao {
  display: inline-block; padding: 11px 26px; font-size: 1rem; font-weight: 600;
  color: #fff; background: linear-gradient(90deg, #4f9dff, #8b5cf6);
  border: none; border-radius: 999px; cursor: pointer;
}
button:hover, .botao:hover { filter: brightness(1.12); text-decoration: none; }
button.discreto, .botao.discreto {
  background: none; border: 1px solid rgba(109, 179, 255, 0.4); color: var(--azul);
  padding: 7px 16px; font-size: 0.85rem;
}
button.perigo { background: #b3402f; }

.aviso { padding: 12px 16px; border-radius: 10px; margin-bottom: 18px; font-size: 0.95rem; }
.aviso.ok   { background: rgba(67, 160, 71, 0.18); border: 1px solid rgba(129, 199, 132, 0.5); }
.aviso.erro { background: rgba(229, 57, 53, 0.18); border: 1px solid rgba(239, 154, 154, 0.5); }

table.lista { border-collapse: collapse; width: 100%; }
table.lista th, table.lista td {
  padding: 10px 12px; text-align: left; font-size: 0.92rem;
  border-bottom: 1px solid rgba(109, 179, 255, 0.18);
}
table.lista th { color: var(--texto2); font-weight: 600; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 1px; }

.etiqueta { display: inline-block; font-size: 0.72rem; font-weight: 600; letter-spacing: 1px;
  padding: 3px 10px; border-radius: 999px; text-transform: uppercase; }
.etiqueta.ativo     { color: #a5d6a7; border: 1px solid rgba(129, 199, 132, 0.5); }
.etiqueta.inativo   { color: #ef9a9a; border: 1px solid rgba(239, 154, 154, 0.5); }

/* barra do topo (páginas internas) */
.topo {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 26px;
  background: linear-gradient(90deg, var(--cor1), var(--cor2));
  box-shadow: 0 4px 20px rgba(0,0,0,0.35);
}
.topo img.logo-escola { height: 44px; max-width: 140px; object-fit: contain; background: #fff; border-radius: 8px; padding: 3px 8px; }
.topo .nome-escola { font-size: 1.15rem; font-weight: 600; color: #fff; }
.topo .direita { margin-left: auto; display: flex; align-items: center; gap: 14px; font-size: 0.9rem; color: rgba(255,255,255,0.85); }

.conteudo { max-width: 1050px; margin: 0 auto; padding: 36px 24px 60px; }
